| Index: chrome/browser/search/instant_io_context.cc
|
| diff --git a/chrome/browser/search/instant_io_context.cc b/chrome/browser/search/instant_io_context.cc
|
| index ad813eaf877619c4862e9b90aa465faa622d6583..ba1dc3f62e3b6e269d3051aa6ed776fac5471e24 100644
|
| --- a/chrome/browser/search/instant_io_context.cc
|
| +++ b/chrome/browser/search/instant_io_context.cc
|
| @@ -35,7 +35,8 @@ InstantIOContext* GetDataForRequest(const net::URLRequest* request) {
|
|
|
| const char InstantIOContext::kInstantIOContextKeyName[] = "instant_io_context";
|
|
|
| -InstantIOContext::InstantIOContext() {
|
| +InstantIOContext::InstantIOContext()
|
| + : most_visited_item_cache_(kMaxInstantMostVisitedItemCacheSize) {
|
| // The InstantIOContext is created on the UI thread but is accessed
|
| // on the IO thread.
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| @@ -75,29 +76,13 @@ void InstantIOContext::ClearInstantProcessesOnIO(
|
| }
|
|
|
| // static
|
| -void InstantIOContext::AddMostVisitedItemIDOnIO(
|
| +void InstantIOContext::AddMostVisitedItemsOnIO(
|
| scoped_refptr<InstantIOContext> instant_io_context,
|
| - uint64 most_visited_item_id, const GURL& url) {
|
| + std::vector<InstantMostVisitedItemIDPair> items) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
|
| - instant_io_context->most_visited_item_id_to_url_map_[most_visited_item_id] =
|
| - url;
|
| + instant_io_context->most_visited_item_cache_.AddItemsWithRestrictedID(items);
|
| }
|
|
|
| -// static
|
| -void InstantIOContext::DeleteMostVisitedURLsOnIO(
|
| - scoped_refptr<InstantIOContext> instant_io_context,
|
| - std::vector<uint64> deleted_ids, bool all_history) {
|
| - if (all_history) {
|
| - instant_io_context->most_visited_item_id_to_url_map_.clear();
|
| - return;
|
| - }
|
| -
|
| - for (size_t i = 0; i < deleted_ids.size(); ++i) {
|
| - instant_io_context->most_visited_item_id_to_url_map_.erase(
|
| - instant_io_context->most_visited_item_id_to_url_map_.find(
|
| - deleted_ids[i]));
|
| - }
|
| -}
|
|
|
| // static
|
| bool InstantIOContext::ShouldServiceRequest(const net::URLRequest* request) {
|
| @@ -119,9 +104,9 @@ bool InstantIOContext::ShouldServiceRequest(const net::URLRequest* request) {
|
| }
|
|
|
| // static
|
| -bool InstantIOContext::GetURLForMostVisitedItemId(
|
| +bool InstantIOContext::GetURLForMostVisitedItemID(
|
| const net::URLRequest* request,
|
| - uint64 most_visited_item_id,
|
| + InstantRestrictedID most_visited_item_id,
|
| GURL* url) {
|
| InstantIOContext* instant_io_context = GetDataForRequest(request);
|
| if (!instant_io_context) {
|
| @@ -129,7 +114,7 @@ bool InstantIOContext::GetURLForMostVisitedItemId(
|
| return false;
|
| }
|
|
|
| - return instant_io_context->GetURLForMostVisitedItemId(most_visited_item_id,
|
| + return instant_io_context->GetURLForMostVisitedItemID(most_visited_item_id,
|
| url);
|
| }
|
|
|
| @@ -138,14 +123,16 @@ bool InstantIOContext::IsInstantProcess(int process_id) const {
|
| return process_ids_.count(process_id) != 0;
|
| }
|
|
|
| -bool InstantIOContext::GetURLForMostVisitedItemId(uint64 most_visited_item_id,
|
| - GURL* url) {
|
| - std::map<uint64, GURL>::iterator it =
|
| - most_visited_item_id_to_url_map_.find(most_visited_item_id);
|
| - if (it != most_visited_item_id_to_url_map_.end()) {
|
| - *url = it->second;
|
| +bool InstantIOContext::GetURLForMostVisitedItemID(
|
| + InstantRestrictedID most_visited_item_id,
|
| + GURL* url) const {
|
| + InstantMostVisitedItem item;
|
| + if (most_visited_item_cache_.GetItemWithRestrictedID(most_visited_item_id,
|
| + &item)) {
|
| + *url = item.url;
|
| return true;
|
| }
|
| +
|
| *url = GURL();
|
| return false;
|
| }
|
|
|