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)18 GeneratedPrefs* GeneratedPrefsFactory::GetForBrowserContext(
19     content::BrowserContext* browser_context) {
20   return static_cast<GeneratedPrefs*>(
21       GetInstance()->GetServiceForBrowserContext(browser_context, true));
22 }
23 
24 // static
GetInstance()25 GeneratedPrefsFactory* GeneratedPrefsFactory::GetInstance() {
26   return base::Singleton<GeneratedPrefsFactory>::get();
27 }
28 
GeneratedPrefsFactory()29 GeneratedPrefsFactory::GeneratedPrefsFactory()
30     : BrowserContextKeyedServiceFactory(
31           "GeneratedPrefs",
32           BrowserContextDependencyManager::GetInstance()) {}
33 
~GeneratedPrefsFactory()34 GeneratedPrefsFactory::~GeneratedPrefsFactory() {}
35 
GetBrowserContextToUse(content::BrowserContext * context) const36 content::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() const42 bool GeneratedPrefsFactory::ServiceIsNULLWhileTesting() const {
43   return true;
44 }
45 
BuildServiceInstanceFor(content::BrowserContext * profile) const46 KeyedService* 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