diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-21 15:20:33 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-21 15:20:33 +0000 |
commit | f25387b62a3cccde48622d0b7fca57cd6fb16ab7 (patch) | |
tree | 06ac2c1972d6608fb65979c3a279a6d214fecc6c /chrome/browser/history/history_database.h | |
parent | bcc682fc4f5050ac911635ab649fbd30002fc2b4 (diff) | |
download | chromium_src-f25387b62a3cccde48622d0b7fca57cd6fb16ab7.zip chromium_src-f25387b62a3cccde48622d0b7fca57cd6fb16ab7.tar.gz chromium_src-f25387b62a3cccde48622d0b7fca57cd6fb16ab7.tar.bz2 |
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
Diffstat (limited to 'chrome/browser/history/history_database.h')
-rw-r--r-- | chrome/browser/history/history_database.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/chrome/browser/history/history_database.h b/chrome/browser/history/history_database.h index 92c356d..f386a2a 100644 --- a/chrome/browser/history/history_database.h +++ b/chrome/browser/history/history_database.h @@ -56,6 +56,9 @@ class TextDatabaseManager; // as the storage interface. Logic for manipulating this storage layer should // be in HistoryBackend.cc. class HistoryDatabase : public DownloadDatabase, + // TODO(sky): See if we can nuke StarredURLDatabase and just create on the + // stack for migration. Then HistoryDatabase would directly descend from + // URLDatabase. public StarredURLDatabase, public VisitDatabase, public VisitSegmentDatabase { @@ -84,7 +87,8 @@ class HistoryDatabase : public DownloadDatabase, // Must call this function to complete initialization. Will return true on // success. On false, no other function should be called. You may want to call // BeginExclusiveMode after this when you are ready. - InitStatus Init(const std::wstring& history_name); + InitStatus Init(const std::wstring& history_name, + const std::wstring& tmp_bookmarks_path); // Call to set the mode on the database to exclusive. The default locking mode // is "normal" but we want to run in exclusive mode for slightly better @@ -141,6 +145,9 @@ class HistoryDatabase : public DownloadDatabase, // visit id wasn't found. SegmentID GetSegmentID(VisitID visit_id); + // Drops the starred table and star_id from urls. + bool MigrateFromVersion15ToVersion16(); + private: // Implemented for URLDatabase. virtual sqlite3* GetDB(); @@ -161,7 +168,7 @@ class HistoryDatabase : public DownloadDatabase, // // 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(); + InitStatus EnsureCurrentVersion(const std::wstring& tmp_bookmarks_path); // --------------------------------------------------------------------------- |