srecord ChromeBookmark(S url, S name, long dateAdded) { toString { ret name + appendRoundBracketed(url) + " " + timestamp(); } Timestamp timestamp() { ret chromeTimestampToTimestamp(dateAdded); } } static L getChromeBookmarks(File bookmarksFile default chromeBookmarksFile()) { assertTrue("No bookmarks dir", isFile(bookmarksFile)); S text = loadTextFile(bookmarksFile); assertNotNull("No Bookmarks file: " + bookmarksFile.getAbsolutePath(), text); O json = jsonDecode(text); new L list; for (Map map : findAllMaps(json)) pcall { O url = map.get("url"); if (url instanceof S) { new ChromeBookmark b; b.url = (S) url; b.name = (S) map.get("name"); b.dateAdded = parseLong(map.get("date_added")); list.add(b); } } ret list; }