1 // Copyright 2014 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/supervised_user/supervised_user_settings_service_factory.h"
6 
7 #include "chrome/browser/profiles/profile_key.h"
8 #include "chrome/browser/supervised_user/supervised_user_settings_service.h"
9 #include "components/keyed_service/core/simple_dependency_manager.h"
10 
11 // static
GetForKey(SimpleFactoryKey * key)12 SupervisedUserSettingsService* SupervisedUserSettingsServiceFactory::GetForKey(
13     SimpleFactoryKey* key) {
14   return static_cast<SupervisedUserSettingsService*>(
15       GetInstance()->GetServiceForKey(key, true));
16 }
17 
18 // static
19 SupervisedUserSettingsServiceFactory*
GetInstance()20 SupervisedUserSettingsServiceFactory::GetInstance() {
21   return base::Singleton<SupervisedUserSettingsServiceFactory>::get();
22 }
23 
SupervisedUserSettingsServiceFactory()24 SupervisedUserSettingsServiceFactory::SupervisedUserSettingsServiceFactory()
25     : SimpleKeyedServiceFactory("SupervisedUserSettingsService",
26                                 SimpleDependencyManager::GetInstance()) {}
27 
28 SupervisedUserSettingsServiceFactory::
~SupervisedUserSettingsServiceFactory()29     ~SupervisedUserSettingsServiceFactory() {}
30 
31 std::unique_ptr<KeyedService>
BuildServiceInstanceFor(SimpleFactoryKey * key) const32 SupervisedUserSettingsServiceFactory::BuildServiceInstanceFor(
33     SimpleFactoryKey* key) const {
34   return std::make_unique<SupervisedUserSettingsService>();
35 }
36 
GetKeyToUse(SimpleFactoryKey * key) const37 SimpleFactoryKey* SupervisedUserSettingsServiceFactory::GetKeyToUse(
38     SimpleFactoryKey* key) const {
39   ProfileKey* profile_key = ProfileKey::FromSimpleFactoryKey(key);
40   return profile_key->GetOriginalKey();
41 }
42