Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / net / predictor_tab_helper.cc
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.
4
5 #include "chrome/browser/net/predictor_tab_helper.h"
6
7 #include "base/command_line.h"
8 #include "chrome/browser/net/predictor.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/common/chrome_switches.h"
11 #include "chrome/common/url_constants.h"
12
13 DEFINE_WEB_CONTENTS_USER_DATA_KEY(chrome_browser_net::PredictorTabHelper);
14
15 namespace chrome_browser_net {
16
17 PredictorTabHelper::PredictorTabHelper(content::WebContents* web_contents)
18     : content::WebContentsObserver(web_contents) {
19 }
20
21 PredictorTabHelper::~PredictorTabHelper() {
22 }
23
24 void PredictorTabHelper::DidStartNavigationToPendingEntry(
25     const GURL& url,
26     content::NavigationController::ReloadType reload_type) {
27   Profile* profile =
28       Profile::FromBrowserContext(web_contents()->GetBrowserContext());
29   chrome_browser_net::Predictor* predictor = profile->GetNetworkPredictor();
30   if (!predictor)
31     return;
32   if (url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme))
33     predictor->PreconnectUrlAndSubresources(url, GURL());
34 }
35
36 }  // namespace chrome_browser_net