Commit 5d58f7fb authored by kouhei@chromium.org's avatar kouhei@chromium.org

Enable pre-connect via {mouse,gesture}-event triggers to limited users controlled by Finch.

BUG=240959

Review URL: https://chromiumcodereview.appspot.com/15725006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203120 0039d316-1c4b-4281-b951-d872f2087c98
parent c7385770
......@@ -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 {
// 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))
content::RenderThread::Get()->Send(new ChromeViewHostMsg_Preconnect(url));
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment