13240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 23240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 33240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch// found in the LICENSE file. 43240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 53240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#include "chrome/browser/net/predictor_tab_helper.h" 63240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 78bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "base/command_line.h" 83240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#include "chrome/browser/net/predictor.h" 93240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#include "chrome/browser/profiles/profile.h" 108bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "chrome/common/chrome_switches.h" 118bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)#include "chrome/common/url_constants.h" 123240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 133240926e260ce088908e02ac07a6cf7b0c0cbf44Ben MurdochDEFINE_WEB_CONTENTS_USER_DATA_KEY(chrome_browser_net::PredictorTabHelper); 143240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 153240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdochnamespace chrome_browser_net { 163240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 173240926e260ce088908e02ac07a6cf7b0c0cbf44Ben MurdochPredictorTabHelper::PredictorTabHelper(content::WebContents* web_contents) 183240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch : content::WebContentsObserver(web_contents) { 193240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch} 203240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 213240926e260ce088908e02ac07a6cf7b0c0cbf44Ben MurdochPredictorTabHelper::~PredictorTabHelper() { 223240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch} 233240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void PredictorTabHelper::DidStartNavigationToPendingEntry( 258bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) const GURL& url, 268bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) content::NavigationController::ReloadType reload_type) { 278bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) Profile* profile = 288bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) Profile::FromBrowserContext(web_contents()->GetBrowserContext()); 298bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) chrome_browser_net::Predictor* predictor = profile->GetNetworkPredictor(); 308bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) if (!predictor) 318bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) return; 32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles) if (url.SchemeIs(url::kHttpScheme) || url.SchemeIs(url::kHttpsScheme)) 338bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) predictor->PreconnectUrlAndSubresources(url, GURL()); 348bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles)} 358bcbed890bc3ce4d7a057a8f32cab53fa534672eTorne (Richard Coles) 363240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch} // namespace chrome_browser_net 37