Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6713)

Unified Diff: chrome/browser/search/instant_io_context.cc

Issue 12498002: InstantExtended: Adding InstantRestrictedIDCache. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing android compile error. Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/search/instant_io_context.h ('k') | chrome/browser/search/instant_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
« no previous file with comments | « chrome/browser/search/instant_io_context.h ('k') | chrome/browser/search/instant_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698