Remove unused WebFrameClient overrides
[chromium-blink-merge.git] / chrome / renderer / net / prescient_networking_dispatcher.cc
bloba442bb144bae354414ed1cced34e6ac4b58998d9
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
3 // found in the LICENSE file.
5 #include "chrome/renderer/net/prescient_networking_dispatcher.h"
7 #include "base/metrics/field_trial.h"
8 #include "base/strings/utf_string_conversions.h"
9 #include "chrome/common/render_messages.h"
10 #include "content/public/renderer/render_thread.h"
12 using WebKit::WebPrescientNetworking;
14 const char kMouseEventPreconnectFieldTrialName[] = "MouseEventPreconnect";
15 const char kMouseEventPreconnectFieldTrialMouseDownGroup[] = "MouseDown";
16 const char kMouseEventPreconnectFieldTrialMouseOverGroup[] = "MouseOver";
17 const char kMouseEventPreconnectFieldTrialTapUnconfirmedGroup[] =
18 "TapUnconfirmed";
19 const char kMouseEventPreconnectFieldTrialTapDownGroup[] = "TapDown";
21 namespace {
23 // Returns true if preconnect is enabled for given motivation.
24 // The preconnect via {mouse,gesture} event is enabled for limited userbase
25 // for Finch field trial.
26 bool isPreconnectEnabledForMotivation(
27 WebKit::WebPreconnectMotivation motivation) {
28 std::string group =
29 base::FieldTrialList::FindFullName(kMouseEventPreconnectFieldTrialName);
31 switch (motivation) {
32 case WebKit::WebPreconnectMotivationLinkMouseDown:
33 return group == kMouseEventPreconnectFieldTrialMouseDownGroup;
34 case WebKit::WebPreconnectMotivationLinkMouseOver:
35 return group == kMouseEventPreconnectFieldTrialMouseOverGroup;
36 case WebKit::WebPreconnectMotivationLinkTapUnconfirmed:
37 return group == kMouseEventPreconnectFieldTrialTapUnconfirmedGroup;
38 case WebKit::WebPreconnectMotivationLinkTapDown:
39 return group == kMouseEventPreconnectFieldTrialTapDownGroup;
40 default:
41 return false;
45 } // namespace
47 PrescientNetworkingDispatcher::PrescientNetworkingDispatcher() {
50 PrescientNetworkingDispatcher::~PrescientNetworkingDispatcher() {
53 void PrescientNetworkingDispatcher::prefetchDNS(
54 const WebKit::WebString& hostname) {
55 if (hostname.isEmpty())
56 return;
58 std::string hostname_utf8 = UTF16ToUTF8(hostname);
59 net_predictor_.Resolve(hostname_utf8.data(), hostname_utf8.length());
62 void PrescientNetworkingDispatcher::preconnect(
63 const WebKit::WebURL& url,
64 WebKit::WebPreconnectMotivation motivation) {
65 if (isPreconnectEnabledForMotivation(motivation))
66 content::RenderThread::Get()->Send(new ChromeViewHostMsg_Preconnect(url));