1 // Copyright 2013 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/extensions/extension_sync_service_factory.h" 6 7 #include "base/prefs/pref_service.h" 8 #include "chrome/browser/extensions/extension_sync_service.h" 9 #include "chrome/browser/extensions/extension_system_factory.h" 10 #include "chrome/browser/profiles/profile.h" 11 #include "components/keyed_service/content/browser_context_dependency_manager.h" 12 #include "extensions/browser/extension_prefs_factory.h" 13 #include "extensions/browser/extension_system.h" 14 #include "extensions/browser/extensions_browser_client.h" 15 16 // static GetForProfile(Profile * profile)17ExtensionSyncService* ExtensionSyncServiceFactory::GetForProfile( 18 Profile* profile) { 19 return static_cast<ExtensionSyncService*>( 20 GetInstance()->GetServiceForBrowserContext(profile, true)); 21 } 22 23 // static GetInstance()24ExtensionSyncServiceFactory* ExtensionSyncServiceFactory::GetInstance() { 25 return Singleton<ExtensionSyncServiceFactory>::get(); 26 } 27 ExtensionSyncServiceFactory()28ExtensionSyncServiceFactory::ExtensionSyncServiceFactory() 29 : BrowserContextKeyedServiceFactory( 30 "ExtensionSyncService", 31 BrowserContextDependencyManager::GetInstance()) { 32 DependsOn(extensions::ExtensionPrefsFactory::GetInstance()); 33 DependsOn(extensions::ExtensionSystemFactory::GetInstance()); 34 } 35 ~ExtensionSyncServiceFactory()36ExtensionSyncServiceFactory::~ExtensionSyncServiceFactory() {} 37 BuildServiceInstanceFor(content::BrowserContext * context) const38KeyedService* ExtensionSyncServiceFactory::BuildServiceInstanceFor( 39 content::BrowserContext* context) const { 40 Profile* profile = Profile::FromBrowserContext(context); 41 return new ExtensionSyncService( 42 profile, 43 extensions::ExtensionPrefsFactory::GetForBrowserContext(context), 44 extensions::ExtensionSystem::Get(profile)->extension_service()); 45 } 46 GetBrowserContextToUse(content::BrowserContext * context) const47content::BrowserContext* ExtensionSyncServiceFactory::GetBrowserContextToUse( 48 content::BrowserContext* context) const { 49 return extensions::ExtensionsBrowserClient::Get()-> 50 GetOriginalContext(context); 51 } 52