Chromium Code Reviews| 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..5b1e4d27ee619bcdd0d193db93a0befc5753cd1f 100644 |
| --- a/chrome/renderer/net/prescient_networking_dispatcher.cc |
| +++ b/chrome/renderer/net/prescient_networking_dispatcher.cc |
| @@ -4,19 +4,52 @@ |
| #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 { |
| + |
|
Mathieu
2013/05/27 12:34:53
Document the function?
kouhei (in TOK)
2013/05/28 03:09:00
Done.
|
| +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; |
| + } |
| +} |
| + |
| +} |
|
Mathieu
2013/05/27 12:34:53
nit: // end namespace
Mathieu
2013/05/27 12:50:48
or rather // namespace, sorry
kouhei (in TOK)
2013/05/28 03:09:00
Done.
|
| + |
| 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)); |
| } |