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

Unified Diff: chrome/browser/renderer_host/chrome_render_message_filter.cc

Issue 14749005: Implement WebPrescientNetworking to trigger preconnect from Blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 8 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/renderer_host/chrome_render_message_filter.cc
diff --git a/chrome/browser/renderer_host/chrome_render_message_filter.cc b/chrome/browser/renderer_host/chrome_render_message_filter.cc
index 2d25be6e00e746f60bbd4ae4d9eff5650004fd2e..ba19d67844746e6c5e76a9f5e4833e180c24a965 100644
--- a/chrome/browser/renderer_host/chrome_render_message_filter.cc
+++ b/chrome/browser/renderer_host/chrome_render_message_filter.cc
@@ -52,6 +52,7 @@
using content::BrowserThread;
using extensions::APIPermission;
using WebKit::WebCache;
+using chrome_browser_net::UrlInfo;
namespace {
@@ -121,6 +122,23 @@ void AddDOMActionToExtensionActivityLog(
}
}
+UrlInfo::ResolutionMotivation convertWebToUrlInfoMotivation(
+ WebKit::WebPreconnectMotivation webMotivation) {
+ switch(webMotivation) {
+ case WebKit::WebPreconnectMotivationLinkMouseOver:
+ return UrlInfo::MOUSE_OVER_MOTIVATED;
+ case WebKit::WebPreconnectMotivationLinkMouseDown:
+ return UrlInfo::MOUSE_DOWN_MOTIVATED;
+ case WebKit::WebPreconnectMotivationLinkTapUnconfirmed:
+ return UrlInfo::TAP_UNCONFIRMED_MOTIVATED;
+ case WebKit::WebPreconnectMotivationLinkTapDown:
+ return UrlInfo::TAP_DOWN_MOTIVATED;
+ default:
+ NOTREACHED();
+ return UrlInfo::MOUSE_OVER_MOTIVATED;
+ }
+}
+
} // namespace
ChromeRenderMessageFilter::ChromeRenderMessageFilter(
@@ -155,6 +173,7 @@ bool ChromeRenderMessageFilter::OnMessageReceived(const IPC::Message& message,
OnOpenNaClExecutable)
#endif
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_DnsPrefetch, OnDnsPrefetch)
+ IPC_MESSAGE_HANDLER(ChromeViewHostMsg_Preconnect, OnPreconnect)
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_ResourceTypeStats,
OnResourceTypeStats)
IPC_MESSAGE_HANDLER(ChromeViewHostMsg_UpdatedCacheStats,
@@ -298,6 +317,17 @@ void ChromeRenderMessageFilter::OnDnsPrefetch(
profile_->GetNetworkPredictor()->DnsPrefetchList(hostnames);
}
+void ChromeRenderMessageFilter::OnPreconnect(
+ const GURL& url,
+ WebKit::WebPreconnectMotivation motivation,
+ uint32_t motivationVariationId) {
+ if (profile_->GetNetworkPredictor())
+ profile_->GetNetworkPredictor()->PreconnectUrlAndSubresources(
+ url,
+ convertWebToUrlInfoMotivation(motivation),
+ motivationVariationId);
+}
+
void ChromeRenderMessageFilter::OnResourceTypeStats(
const WebCache::ResourceTypeStats& stats) {
HISTOGRAM_COUNTS("WebCoreCache.ImagesSizeKB",

Powered by Google App Engine
This is Rietveld 408576698