autocomplete_action_predictor_factory.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
16d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
26d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
36d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// found in the LICENSE file.
46d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
56d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/browser/predictors/autocomplete_action_predictor_factory.h"
66d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
76d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/browser/history/history_service_factory.h"
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/predictors/autocomplete_action_predictor.h"
96d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/browser/predictors/predictor_database_factory.h"
106d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/browser/profiles/profile.h"
116d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)#include "chrome/browser/profiles/profile_dependency_manager.h"
126d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
136d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)namespace predictors {
146d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
156d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// static
166d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)AutocompleteActionPredictor* AutocompleteActionPredictorFactory::GetForProfile(
176d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    Profile* profile) {
186d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return static_cast<AutocompleteActionPredictor*>(
196d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)      GetInstance()->GetServiceForProfile(profile, true));
206d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
216d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
226d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)// static
236d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)AutocompleteActionPredictorFactory*
246d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    AutocompleteActionPredictorFactory::GetInstance() {
256d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return Singleton<AutocompleteActionPredictorFactory>::get();
266d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
276d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
286d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)AutocompleteActionPredictorFactory::AutocompleteActionPredictorFactory()
296d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    : ProfileKeyedServiceFactory("AutocompleteActionPredictor",
306d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)                                 ProfileDependencyManager::GetInstance()) {
316d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  DependsOn(HistoryServiceFactory::GetInstance());
326d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  DependsOn(PredictorDatabaseFactory::GetInstance());
336d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
346d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
356d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)AutocompleteActionPredictorFactory::~AutocompleteActionPredictorFactory() {}
366d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
376d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)bool
386d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)AutocompleteActionPredictorFactory::ServiceHasOwnInstanceInIncognito() const {
396d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return true;
406d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
416d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
426d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)ProfileKeyedService*
436d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)    AutocompleteActionPredictorFactory::BuildServiceInstanceFor(
446d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)        Profile* profile) const {
456d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)  return new AutocompleteActionPredictor(profile);
466d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}
476d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)
486d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)}  // namespace predictors
496d86b77056ed63eb6871182f42a9fd5f07550f90Torne (Richard Coles)