1 // Copyright 2018 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/api/settings_private/generated_prefs_factory.h" 6 7 #include "chrome/browser/extensions/api/settings_private/generated_prefs.h" 8 #include "chrome/browser/profiles/incognito_helpers.h" 9 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/signin/identity_manager_factory.h" 11 #include "chrome/browser/sync/profile_sync_service_factory.h" 12 #include "components/keyed_service/content/browser_context_dependency_manager.h" 13 14 namespace extensions { 15 namespace settings_private { 16 17 // static GetForBrowserContext(content::BrowserContext * browser_context)18GeneratedPrefs* GeneratedPrefsFactory::GetForBrowserContext( 19 content::BrowserContext* browser_context) { 20 return static_cast<GeneratedPrefs*>( 21 GetInstance()->GetServiceForBrowserContext(browser_context, true)); 22 } 23 24 // static GetInstance()25GeneratedPrefsFactory* GeneratedPrefsFactory::GetInstance() { 26 return base::Singleton<GeneratedPrefsFactory>::get(); 27 } 28 GeneratedPrefsFactory()29GeneratedPrefsFactory::GeneratedPrefsFactory() 30 : BrowserContextKeyedServiceFactory( 31 "GeneratedPrefs", 32 BrowserContextDependencyManager::GetInstance()) {} 33 ~GeneratedPrefsFactory()34GeneratedPrefsFactory::~GeneratedPrefsFactory() {} 35 GetBrowserContextToUse(content::BrowserContext * context) const36content::BrowserContext* GeneratedPrefsFactory::GetBrowserContextToUse( 37 content::BrowserContext* context) const { 38 // Use |context| even if it is off-the-record/incognito. 39 return context; 40 } 41 ServiceIsNULLWhileTesting() const42bool GeneratedPrefsFactory::ServiceIsNULLWhileTesting() const { 43 return true; 44 } 45 BuildServiceInstanceFor(content::BrowserContext * profile) const46KeyedService* GeneratedPrefsFactory::BuildServiceInstanceFor( 47 content::BrowserContext* profile) const { 48 return new GeneratedPrefs(static_cast<Profile*>(profile)); 49 } 50 51 } // namespace settings_private 52 } // namespace extensions 53