Index: chrome/browser/search/instant_service.cc |
diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc |
index b1e4ebd28bc0b3c1716b71407300c90b2750c4e7..ccf8c885a79f398e1e5b9fddd4c1820be384928f 100644 |
--- a/chrome/browser/search/instant_service.cc |
+++ b/chrome/browser/search/instant_service.cc |
@@ -16,6 +16,7 @@ |
#include "chrome/browser/search/instant_service_factory.h" |
#include "chrome/browser/search/local_ntp_source.h" |
#include "chrome/browser/search/most_visited_iframe_source.h" |
+#include "chrome/browser/search/search.h" |
#include "chrome/browser/search/suggestion_iframe_source.h" |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_instant_controller.h" |
@@ -38,7 +39,6 @@ using content::BrowserThread; |
InstantService::InstantService(Profile* profile) |
: profile_(profile), |
- most_visited_item_cache_(kMaxInstantMostVisitedItemCacheSize), |
weak_ptr_factory_(this) { |
// Stub for unit tests. |
if (!BrowserThread::CurrentlyOn(BrowserThread::UI)) |
@@ -78,52 +78,6 @@ InstantService::InstantService(Profile* profile) |
InstantService::~InstantService() { |
} |
-// static |
-const std::string InstantService::MaybeTranslateInstantPathOnUI( |
- Profile* profile, const std::string& path) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
- InstantService* instant_service = |
- InstantServiceFactory::GetForProfile(profile); |
- if (!instant_service) |
- return path; |
- |
- InstantRestrictedID restricted_id = 0; |
- DCHECK_EQ(sizeof(InstantRestrictedID), sizeof(int)); |
- if (base::StringToInt(path, &restricted_id)) { |
- InstantMostVisitedItem item; |
- if (instant_service->GetMostVisitedItemForID(restricted_id, &item)) |
- return item.url.spec(); |
- } |
- return path; |
-} |
- |
-const std::string InstantService::MaybeTranslateInstantPathOnIO( |
- const net::URLRequest* request, const std::string& path) { |
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- |
- InstantRestrictedID restricted_id = 0; |
- DCHECK_EQ(sizeof(InstantRestrictedID), sizeof(int)); |
- if (base::StringToInt(path, &restricted_id)) { |
- GURL url; |
- if (InstantIOContext::GetURLForMostVisitedItemID(request, |
- restricted_id, |
- &url)) { |
- return url.spec(); |
- } |
- } |
- return path; |
-} |
- |
-// static |
-bool InstantService::IsInstantPath(const GURL& url) { |
- // Strip leading slash. |
- std::string path = url.path().substr(1); |
- |
- // Check that path is of Most Visited item ID form. |
- InstantRestrictedID dummy = 0; |
- return base::StringToInt(path, &dummy); |
-} |
- |
void InstantService::AddInstantProcess(int process_id) { |
process_ids_.insert(process_id); |
@@ -140,22 +94,6 @@ bool InstantService::IsInstantProcess(int process_id) const { |
return process_ids_.find(process_id) != process_ids_.end(); |
} |
-void InstantService::AddMostVisitedItems( |
- const std::vector<InstantMostVisitedItem>& items) { |
- most_visited_item_cache_.AddItems(items); |
- |
- // Post task to the IO thread to copy the data. |
- if (instant_io_context_.get()) { |
- std::vector<InstantMostVisitedItemIDPair> items; |
- most_visited_item_cache_.GetCurrentItems(&items); |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&InstantIOContext::AddMostVisitedItemsOnIO, |
- instant_io_context_, |
- items)); |
- } |
-} |
- |
void InstantService::DeleteMostVisitedItem(const GURL& url) { |
history::TopSites* top_sites = profile_->GetTopSites(); |
if (!top_sites) |
@@ -181,8 +119,8 @@ void InstantService::UndoAllMostVisitedDeletions() { |
} |
void InstantService::GetCurrentMostVisitedItems( |
- std::vector<InstantMostVisitedItemIDPair>* items) const { |
- most_visited_item_cache_.GetCurrentItems(items); |
+ std::vector<InstantMostVisitedItem>* items) const { |
+ *items = most_visited_items_; |
} |
void InstantService::Shutdown() { |
@@ -231,13 +169,6 @@ void InstantService::Observe(int type, |
} |
} |
-bool InstantService::GetMostVisitedItemForID( |
- InstantRestrictedID most_visited_item_id, |
- InstantMostVisitedItem* item) const { |
- return most_visited_item_cache_.GetItemWithRestrictedID( |
- most_visited_item_id, item); |
-} |
- |
void InstantService::OnMostVisitedItemsReceived( |
const history::MostVisitedURLList& data) { |
// Android doesn't use Browser/BrowserList. Do nothing for Android platform. |
@@ -245,15 +176,20 @@ void InstantService::OnMostVisitedItemsReceived( |
history::MostVisitedURLList reordered_data(data); |
history::TopSites::MaybeShuffle(&reordered_data); |
- std::vector<InstantMostVisitedItem> most_visited_items; |
+ std::vector<InstantMostVisitedItem> new_most_visited_items; |
for (size_t i = 0; i < reordered_data.size(); i++) { |
const history::MostVisitedURL& url = reordered_data[i]; |
InstantMostVisitedItem item; |
item.url = url.url; |
item.title = url.title; |
- most_visited_items.push_back(item); |
+ new_most_visited_items.push_back(item); |
} |
- AddMostVisitedItems(most_visited_items); |
+ if (chrome::AreMostVisitedItemsEqual(new_most_visited_items, |
+ most_visited_items_)) { |
+ return; |
+ } |
+ |
+ most_visited_items_ = new_most_visited_items; |
const BrowserList* browser_list = |
BrowserList::GetInstance(chrome::GetActiveDesktop()); |