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/autocomplete/history_contents_provider.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'chrome/browser/autocomplete/history_contents_provider.cc') diff --git a/chrome/browser/autocomplete/history_contents_provider.cc b/chrome/browser/autocomplete/history_contents_provider.cc index c68b17c..564f832 100644 --- a/chrome/browser/autocomplete/history_contents_provider.cc +++ b/chrome/browser/autocomplete/history_contents_provider.cc @@ -30,6 +30,7 @@ #include "chrome/browser/autocomplete/history_contents_provider.h" #include "base/string_util.h" +#include "chrome/browser/bookmark_bar_model.h" #include "chrome/browser/history/query_parser.h" #include "chrome/browser/profile.h" #include "net/base/net_util.h" @@ -108,6 +109,7 @@ void HistoryContentsProvider::Start(const AutocompleteInput& input, return; } + // TODO(sky): this needs to query BookmarkBarModel for starred entries. if (!synchronous_only) { HistoryService* history = history_service_ ? history_service_ : profile_->GetHistoryService(Profile::EXPLICIT_ACCESS); @@ -201,7 +203,8 @@ AutocompleteMatch HistoryContentsProvider::ResultToMatch( match.contents_class.push_back( ACMatchClassification(0, ACMatchClassification::URL)); match.description = result.title(); - match.starred = result.starred(); + match.starred = + (profile_ && profile_->GetBookmarkBarModel()->IsBookmarked(result.url())); ClassifyDescription(result, &match); return match; @@ -235,11 +238,13 @@ void HistoryContentsProvider::ClassifyDescription( int HistoryContentsProvider::CalculateRelevance( const history::URLResult& result) { bool in_title = !!result.title_match_positions().size(); + bool is_starred = + (profile_ && profile_->GetBookmarkBarModel()->IsBookmarked(result.url())); switch (input_type_) { case AutocompleteInput::UNKNOWN: case AutocompleteInput::REQUESTED_URL: - if (result.starred()) { + if (is_starred) { return in_title ? 1000 + star_title_count_++ : 550 + star_contents_count_++; } else { @@ -249,7 +254,7 @@ int HistoryContentsProvider::CalculateRelevance( case AutocompleteInput::QUERY: case AutocompleteInput::FORCED_QUERY: - if (result.starred()) { + if (is_starred) { return in_title ? 1200 + star_title_count_++ : 750 + star_contents_count_++; } else { -- cgit v1.1