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

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

Issue 12732005: Most visited thumbnails and favicons need id-based urls (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Adds proper handling of ThumbnailSource 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
Index: chrome/browser/instant/instant_io_context.cc
diff --git a/chrome/browser/instant/instant_io_context.cc b/chrome/browser/instant/instant_io_context.cc
index a4ab4fd6e342bdfa11700553b1c08e5bf4619fc6..e0ea6eb0738923fe8a98c49a3dbbbe66983ee5a2 100644
--- a/chrome/browser/instant/instant_io_context.cc
+++ b/chrome/browser/instant/instant_io_context.cc
@@ -7,6 +7,7 @@
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/resource_context.h"
#include "content/public/browser/resource_request_info.h"
+#include "googleurl/src/gurl.h"
#include "net/url_request/url_request.h"
using content::BrowserThread;
@@ -21,6 +22,15 @@ InstantIOContext* GetDataForResourceContext(
context, InstantIOContext::kInstantIOContextKeyName);
}
+InstantIOContext* GetDataForRequest(const net::URLRequest* request) {
+ const content::ResourceRequestInfo* info =
+ content::ResourceRequestInfo::ForRequest(request);
+ if (!info)
+ return NULL;
+
+ return GetDataForResourceContext(info->GetContext());
+}
+
} // namespace
const char InstantIOContext::kInstantIOContextKeyName[] = "instant_io_context";
@@ -65,14 +75,21 @@ void InstantIOContext::ClearInstantProcessesOnIO(
}
// static
+void InstantIOContext::AddRestrictedIDOnIO(
+ scoped_refptr<InstantIOContext> instant_io_context,
+ uint64 restricted_id, const GURL& url) {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ instant_io_context->id_to_url_map_[restricted_id] = url;
+}
+
+// static
bool InstantIOContext::ShouldServiceRequest(const net::URLRequest* request) {
const content::ResourceRequestInfo* info =
content::ResourceRequestInfo::ForRequest(request);
if (!info)
return false;
- InstantIOContext* instant_io_context =
- GetDataForResourceContext(info->GetContext());
+ InstantIOContext* instant_io_context = GetDataForRequest(request);
if (!instant_io_context)
return false;
@@ -84,7 +101,29 @@ bool InstantIOContext::ShouldServiceRequest(const net::URLRequest* request) {
return false;
}
+// static
+bool InstantIOContext::GetURLForRestrictedId(const net::URLRequest* request,
+ uint64 restricted_id, GURL* url) {
+ InstantIOContext* instant_io_context = GetDataForRequest(request);
+ if (!instant_io_context) {
+ *url = GURL();
+ return false;
+ }
+
+ return instant_io_context->GetURLForRestrictedId(restricted_id, url);
+}
+
bool InstantIOContext::IsInstantProcess(int process_id) const {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
return process_ids_.count(process_id) != 0;
}
+
+bool InstantIOContext::GetURLForRestrictedId(uint64 restricted_id, GURL* url) {
+ std::map<uint64, GURL>::iterator it = id_to_url_map_.find(restricted_id);
+ if (it != id_to_url_map_.end()) {
+ *url = it->second;
+ return true;
+ }
+ *url = GURL();
+ return false;
+}

Powered by Google App Engine
This is Rietveld 408576698