resource_prefetch_predictor_factory.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
1// Copyright (c) 2012 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/predictors/resource_prefetch_predictor_factory.h" 6 7#include "chrome/browser/history/history_service_factory.h" 8#include "chrome/browser/predictors/predictor_database_factory.h" 9#include "chrome/browser/predictors/resource_prefetch_common.h" 10#include "chrome/browser/predictors/resource_prefetch_predictor.h" 11#include "chrome/browser/profiles/profile.h" 12#include "components/browser_context_keyed_service/browser_context_dependency_manager.h" 13 14namespace predictors { 15 16// static 17ResourcePrefetchPredictor* ResourcePrefetchPredictorFactory::GetForProfile( 18 Profile* profile) { 19 return static_cast<ResourcePrefetchPredictor*>( 20 GetInstance()->GetServiceForBrowserContext(profile, true)); 21} 22 23// static 24ResourcePrefetchPredictorFactory* 25ResourcePrefetchPredictorFactory::GetInstance() { 26 return Singleton<ResourcePrefetchPredictorFactory>::get(); 27} 28 29ResourcePrefetchPredictorFactory::ResourcePrefetchPredictorFactory() 30 : BrowserContextKeyedServiceFactory( 31 "ResourcePrefetchPredictor", 32 BrowserContextDependencyManager::GetInstance()) { 33 DependsOn(HistoryServiceFactory::GetInstance()); 34 DependsOn(PredictorDatabaseFactory::GetInstance()); 35} 36 37ResourcePrefetchPredictorFactory::~ResourcePrefetchPredictorFactory() {} 38 39BrowserContextKeyedService* 40 ResourcePrefetchPredictorFactory::BuildServiceInstanceFor( 41 content::BrowserContext* context) const { 42 Profile* profile = static_cast<Profile*>(context); 43 44 ResourcePrefetchPredictorConfig config; 45 if (!IsSpeculativeResourcePrefetchingEnabled(profile, &config)) 46 return NULL; 47 48 return new ResourcePrefetchPredictor(config, profile); 49} 50 51} // namespace predictors 52