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

Unified Diff: chrome/renderer/net/prescient_networking_dispatcher.cc

Issue 15725006: Enable pre-connect via {mouse,gesture}-event triggers to limited users controlled by Finch. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix style / add doc Created 7 years, 7 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/net/prescient_networking_dispatcher.cc
diff --git a/chrome/renderer/net/prescient_networking_dispatcher.cc b/chrome/renderer/net/prescient_networking_dispatcher.cc
index e97c167e39d2301a6e52c016912eda82c3b9a9d2..6e01620c0d4ce2a052e9248522dffa2e90ea8255 100644
--- a/chrome/renderer/net/prescient_networking_dispatcher.cc
+++ b/chrome/renderer/net/prescient_networking_dispatcher.cc
@@ -4,19 +4,55 @@
#include "chrome/renderer/net/prescient_networking_dispatcher.h"
+#include "base/metrics/field_trial.h"
#include "chrome/common/render_messages.h"
#include "content/public/renderer/render_thread.h"
using WebKit::WebPrescientNetworking;
+const char kMouseEventPreconnectFieldTrialName[] = "MouseEventPreconnect";
+const char kMouseEventPreconnectFieldTrialMouseDownGroup[] = "MouseDown";
+const char kMouseEventPreconnectFieldTrialMouseOverGroup[] = "MouseOver";
+const char kMouseEventPreconnectFieldTrialTapUnconfirmedGroup[] =
+ "TapUnconfirmed";
+const char kMouseEventPreconnectFieldTrialTapDownGroup[] = "TapDown";
+
+namespace {
+
+// Returns true if preconnect is enabled for given motivation.
+// The preconnect via {mouse,gesture} event is enabled for limited userbase
+// for Finch field trial.
+bool isPreconnectEnabledForMotivation(
+ WebKit::WebPreconnectMotivation motivation) {
+ std::string group =
+ base::FieldTrialList::FindFullName(kMouseEventPreconnectFieldTrialName);
+
+ switch (motivation) {
+ case WebKit::WebPreconnectMotivationLinkMouseDown:
+ return group == kMouseEventPreconnectFieldTrialMouseDownGroup;
+ case WebKit::WebPreconnectMotivationLinkMouseOver:
+ return group == kMouseEventPreconnectFieldTrialMouseOverGroup;
+ case WebKit::WebPreconnectMotivationLinkTapUnconfirmed:
+ return group == kMouseEventPreconnectFieldTrialTapUnconfirmedGroup;
+ case WebKit::WebPreconnectMotivationLinkTapDown:
+ return group == kMouseEventPreconnectFieldTrialTapDownGroup;
+ default:
+ return false;
+ }
+}
+
+} // namespace
+
PrescientNetworkingDispatcher::~PrescientNetworkingDispatcher() {
}
void PrescientNetworkingDispatcher::preconnect(
const WebKit::WebURL& url,
WebKit::WebPreconnectMotivation motivation) {
- // FIXME(kouhei) actual pre-connecting is currently disabled.
- // This should shortly be enabled via Finch field trials in upcoming patch.
- // content::RenderThread::Get()->Send(new ChromeViewHostMsg_Preconnect(url));
+ if (!isPreconnectEnabledForMotivation(motivation)) {
+ return;
+ }
+
+ content::RenderThread::Get()->Send(new ChromeViewHostMsg_Preconnect(url));
Nico 2013/05/30 00:26:23 If it fits in 80 cols, write if (isPrec…) R
kouhei (in TOK) 2013/05/30 00:30:36 Done.
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698