instant_service_factory.cc revision 90dce4d38c5ff5333bea97d859d4e484e27edf0c
11d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert// Copyright 2013 The Chromium Authors. All rights reserved.
21d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert// Use of this source code is governed by a BSD-style license that can be
31d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert// found in the LICENSE file.
41d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
51d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert#include "chrome/browser/search/instant_service_factory.h"
61d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
71d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert#include "chrome/browser/profiles/incognito_helpers.h"
81d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert#include "chrome/browser/profiles/profile.h"
91d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert#include "chrome/browser/search/instant_service.h"
101d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert#include "components/browser_context_keyed_service/browser_context_dependency_manager.h"
111d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
121d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert// static
131d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn BringertInstantService* InstantServiceFactory::GetForProfile(Profile* profile) {
141d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  return static_cast<InstantService*>(
151d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert      GetInstance()->GetServiceForBrowserContext(profile, true));
161d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
171d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
181d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert// static
191d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn BringertInstantServiceFactory* InstantServiceFactory::GetInstance() {
201d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  return Singleton<InstantServiceFactory>::get();
211d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
221d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
231d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn BringertInstantServiceFactory::InstantServiceFactory()
241d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    : BrowserContextKeyedServiceFactory(
251d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        "InstantService",
261d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert        BrowserContextDependencyManager::GetInstance()) {
271d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  // No dependencies.
281d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
291d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
301d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn BringertInstantServiceFactory::~InstantServiceFactory() {
311d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
321d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
331d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringertcontent::BrowserContext* InstantServiceFactory::GetBrowserContextToUse(
341d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    content::BrowserContext* context) const {
351d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  return chrome::GetBrowserContextOwnInstanceInIncognito(context);
361d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
371d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert
381d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn BringertBrowserContextKeyedService* InstantServiceFactory::BuildServiceInstanceFor(
391d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert    content::BrowserContext* profile) const {
401d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert  return new InstantService(static_cast<Profile*>(profile));
411d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert}
421d580d0f6ee4f21eb309ba7b509d2c6d671c4044Bjorn Bringert