From f25387b62a3cccde48622d0b7fca57cd6fb16ab7 Mon Sep 17 00:00:00 2001 From: "sky@google.com" Date: Thu, 21 Aug 2008 15:20:33 +0000 Subject: Moves bookmarks out of history into its own file (JSON). Interesting points: . Migration was a bit atypical. Here is the approach I took: . If the URL db contains bookmarks it writes the bookmarks to a temporary file. . When the bookmark bar model is loaded it assumes bookmarks are stored in a file. If the bookmarks file doesn't exist it then attempts to load from history, after waiting for history to finish processing tasks. . I've broken having the omnibox query for starred only. This patch was already too ginormous for me to contemplate this too. I'll return to it after I land this. . Similarly the history page isn't searching for starred titles now. As we discussed with Glen, that is probably fine for now. . I've converted NOTIFY_STARRED_FAVICON_CHANGED to NOTIFY_FAVICON_CHANGED and it is notified ANY time a favicon changes. I'm mildly concerned about the extra notifications, but without having history know about starred it's the best I can do for now. . Autocomplete (specifically URLDatabase::AutocompleteForPrefix) previously sorted by starred. It can no longer do this. I don't think I can get this functionality back:( Luckily it only mattered if you had a starred and non-starred URL with the same type count that matched a query. Probably pretty rare. What's left: . Fix up HistoryContentsProvider to query for starred entries titles. . Clean up the delete all case. I basically just made it compile; it can be greatly simplified. . Rename BookmarkBarModel to BookmarksModel. BUG=1256202 TEST=this is a huge change to bookmarks. Thanfully it's pretty well covered by tests, none-the-less make sure you exercise bookmarks pretty heavily to make sure nothing is busted. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1153 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/history/archived_database.h | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'chrome/browser/history/archived_database.h') diff --git a/chrome/browser/history/archived_database.h b/chrome/browser/history/archived_database.h index 985dd35..d6617ff 100644 --- a/chrome/browser/history/archived_database.h +++ b/chrome/browser/history/archived_database.h @@ -67,6 +67,15 @@ class ArchivedDatabase : public URLDatabase, virtual sqlite3* GetDB(); virtual SqliteStatementCache& GetStatementCache(); + // Makes sure the version is up-to-date, updating if necessary. If the + // database is too old to migrate, the user will be notified. In this case, or + // for other errors, false will be returned. True means it is up-to-date and + // ready for use. + // + // This assumes it is called from the init function inside a transaction. It + // may commit the transaction and start a new one if migration requires it. + InitStatus EnsureCurrentVersion(); + // The database. // // The close scoper will free the database and delete the statement cache in -- cgit v1.1