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.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.h')
-rw-r--r-- | chrome/browser/history/history.h | 75 |
1 files changed, 7 insertions, 68 deletions
diff --git a/chrome/browser/history/history.h b/chrome/browser/history/history.h index 9dca73a..3db1e23 100644 --- a/chrome/browser/history/history.h +++ b/chrome/browser/history/history.h @@ -393,29 +393,6 @@ class HistoryService : public CancelableRequestProvider, void SetImportedFavicons( const std::vector<history::ImportedFavIconUsage>& favicon_usage); - // Starring ------------------------------------------------------------------ - - // Starring mutation methods are private, go through the BookmarkBarModel - // instead. - // - // The typedefs are public to allow template magic to work. - - typedef Callback2<Handle, std::vector<history::StarredEntry>* >::Type - GetStarredEntriesCallback; - - typedef Callback2<Handle, history::StarID>::Type CreateStarredEntryCallback; - - typedef Callback2<Handle, std::vector<history::StarredEntry>* >::Type - GetMostRecentStarredEntriesCallback; - - // Fetches up to max_count starred entries of type URL. - // The results are ordered by date added in descending order (most recent - // first). - Handle GetMostRecentStarredEntries( - int max_count, - CancelableRequestConsumerBase* consumer, - GetMostRecentStarredEntriesCallback* callback); - // Database management operations -------------------------------------------- // Delete all the information related to a single url. @@ -544,6 +521,13 @@ class HistoryService : public CancelableRequestProvider, Handle ScheduleDBTask(HistoryDBTask* task, CancelableRequestConsumerBase* consumer); + typedef Callback1<Handle>::Type EmptyHistoryCallback; + + // Schedules a task that does nothing on the backend. This can be used to get + // notification when then history backend is done processing requests. + Handle ScheduleEmptyCallback(CancelableRequestConsumerBase* consumer, + EmptyHistoryCallback* callback); + // Testing ------------------------------------------------------------------- // Designed for unit tests, this passes the given task on to the history @@ -597,51 +581,6 @@ class HistoryService : public CancelableRequestProvider, friend class HistoryOperation; friend class HistoryURLProviderTest; - // Starring ------------------------------------------------------------------ - - // These are private as they should only be invoked from the bookmark bar - // model. - - // Fetches all the starred entries (both groups and entries). - Handle GetAllStarredEntries( - CancelableRequestConsumerBase* consumer, - GetStarredEntriesCallback* callback); - - // Updates the title, parent and visual order of the specified entry. The key - // used to identify the entry is NOT entry.id, rather it is the url (if the - // type is URL), or the group_id (if the type is other than URL). - // - // This can NOT be used to change the type of an entry. - // - // After updating the entry, NOTIFY_STAR_ENTRY_CHANGED is sent. - void UpdateStarredEntry(const history::StarredEntry& entry); - - // Creates a starred entry at the specified position. This can be used - // for creating groups and nodes. - // - // If the entry is a URL and the URL is already starred, this behaves the - // same as invoking UpdateStarredEntry. If the entry is a URL and the URL is - // not starred, the URL is starred appropriately. - // - // This honors the title, parent_group_id, visual_order and url (for URL - // nodes) of the specified entry. All other attributes are ignored. - // - // NOTE: consumer and callback may be null, in which case the request - // isn't cancelable and 0 is returned. - Handle CreateStarredEntry(const history::StarredEntry& entry, - CancelableRequestConsumerBase* consumer, - CreateStarredEntryCallback* callback); - - // Deletes the specified starred group. All children groups are deleted and - // starred descendants unstarred. If successful, this sends out the - // notification NOTIFY_URLS_STARRED. To delete a starred URL, do - // DeletedStarredEntry(id). - void DeleteStarredGroup(history::UIStarID group_id); - - // Deletes the specified starred URL. If successful, this sends out the - // notification NOTIFY_URLS_STARRED. - void DeleteStarredURL(const GURL& url); - // Implementation of NotificationObserver. virtual void Observe(NotificationType type, const NotificationSource& source, |