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

Side by Side 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, 6 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/net/prescient_networking_dispatcher.h" 5 #include "chrome/renderer/net/prescient_networking_dispatcher.h"
6 6
7 #include "base/metrics/field_trial.h"
7 #include "chrome/common/render_messages.h" 8 #include "chrome/common/render_messages.h"
8 #include "content/public/renderer/render_thread.h" 9 #include "content/public/renderer/render_thread.h"
9 10
10 using WebKit::WebPrescientNetworking; 11 using WebKit::WebPrescientNetworking;
11 12
13 const char kMouseEventPreconnectFieldTrialName[] = "MouseEventPreconnect";
14 const char kMouseEventPreconnectFieldTrialMouseDownGroup[] = "MouseDown";
15 const char kMouseEventPreconnectFieldTrialMouseOverGroup[] = "MouseOver";
16 const char kMouseEventPreconnectFieldTrialTapUnconfirmedGroup[] =
17 "TapUnconfirmed";
18 const char kMouseEventPreconnectFieldTrialTapDownGroup[] = "TapDown";
19
20 namespace {
21
22 // Returns true if preconnect is enabled for given motivation.
23 // The preconnect via {mouse,gesture} event is enabled for limited userbase
24 // for Finch field trial.
25 bool isPreconnectEnabledForMotivation(
26 WebKit::WebPreconnectMotivation motivation) {
27 std::string group =
28 base::FieldTrialList::FindFullName(kMouseEventPreconnectFieldTrialName);
29
30 switch (motivation) {
31 case WebKit::WebPreconnectMotivationLinkMouseDown:
32 return group == kMouseEventPreconnectFieldTrialMouseDownGroup;
33 case WebKit::WebPreconnectMotivationLinkMouseOver:
34 return group == kMouseEventPreconnectFieldTrialMouseOverGroup;
35 case WebKit::WebPreconnectMotivationLinkTapUnconfirmed:
36 return group == kMouseEventPreconnectFieldTrialTapUnconfirmedGroup;
37 case WebKit::WebPreconnectMotivationLinkTapDown:
38 return group == kMouseEventPreconnectFieldTrialTapDownGroup;
39 default:
40 return false;
41 }
42 }
43
44 } // namespace
45
12 PrescientNetworkingDispatcher::~PrescientNetworkingDispatcher() { 46 PrescientNetworkingDispatcher::~PrescientNetworkingDispatcher() {
13 } 47 }
14 48
15 void PrescientNetworkingDispatcher::preconnect( 49 void PrescientNetworkingDispatcher::preconnect(
16 const WebKit::WebURL& url, 50 const WebKit::WebURL& url,
17 WebKit::WebPreconnectMotivation motivation) { 51 WebKit::WebPreconnectMotivation motivation) {
18 // FIXME(kouhei) actual pre-connecting is currently disabled. 52 if (!isPreconnectEnabledForMotivation(motivation)) {
19 // This should shortly be enabled via Finch field trials in upcoming patch. 53 return;
20 // content::RenderThread::Get()->Send(new ChromeViewHostMsg_Preconnect(url)); 54 }
55
56 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.
21 } 57 }
22 58
OLDNEW
« 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