Home | History | Annotate | Download | only in net
      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
     37