1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved. 2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file. 4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/chromeos/file_system_provider/service_factory.h" 6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/chromeos/file_system_provider/service.h" 8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "components/keyed_service/content/browser_context_dependency_manager.h" 90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/browser/extension_registry.h" 100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/browser/extension_registry_factory.h" 11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace chromeos { 13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace file_system_provider { 14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// static 16effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochService* ServiceFactory::Get(content::BrowserContext* context) { 17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return static_cast<Service*>( 18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch GetInstance()->GetServiceForBrowserContext(context, true)); 19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)Service* ServiceFactory::FindExisting(content::BrowserContext* context) { 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return static_cast<Service*>( 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GetInstance()->GetServiceForBrowserContext(context, false)); 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 27effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory* ServiceFactory::GetInstance() { 28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch return Singleton<ServiceFactory>::get(); 29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 31effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory::ServiceFactory() 32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch : BrowserContextKeyedServiceFactory( 33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch "Service", 340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch BrowserContextDependencyManager::GetInstance()) { 350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch DependsOn(extensions::ExtensionRegistryFactory::GetInstance()); 360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch} 37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 38effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory::~ServiceFactory() {} 39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 40effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochKeyedService* ServiceFactory::BuildServiceInstanceFor( 41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch content::BrowserContext* profile) const { 420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch return new Service( 430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch Profile::FromBrowserContext(profile), 440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch extensions::ExtensionRegistry::Get(Profile::FromBrowserContext(profile))); 45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} 46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool ServiceFactory::ServiceIsCreatedWithBrowserContext() const { return true; } 48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch 49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace file_system_provider 50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch} // namespace chromeos 51