1 // Copyright 2020 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 #ifndef CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_KEY_PERMISSIONS_KEY_PERMISSIONS_SERVICE_FACTORY_H_ 6 #define CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_KEY_PERMISSIONS_KEY_PERMISSIONS_SERVICE_FACTORY_H_ 7 8 #include "base/no_destructor.h" 9 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 10 #include "components/keyed_service/core/keyed_service.h" 11 12 namespace content { 13 class BrowserContext; 14 } 15 16 namespace user_prefs { 17 class PrefRegistrySyncable; 18 } 19 20 namespace chromeos { 21 namespace platform_keys { 22 23 class KeyPermissionsService; 24 25 // KeyPermissionsServiceFactory can be used for retrieving KeyPermissionsService 26 // instances for a specific BrowserContext. 27 // 28 // Note: Service instances provided by this factory are only valid during the 29 // lifetime of the given BrowserContext. 30 class KeyPermissionsServiceFactory : public BrowserContextKeyedServiceFactory { 31 public: 32 static KeyPermissionsService* GetForBrowserContext( 33 content::BrowserContext* context); 34 static KeyPermissionsServiceFactory* GetInstance(); 35 36 private: 37 friend class base::NoDestructor<KeyPermissionsServiceFactory>; 38 39 KeyPermissionsServiceFactory(); 40 ~KeyPermissionsServiceFactory() override = default; 41 42 // BrowserStateKeyedServiceFactory. 43 KeyedService* BuildServiceInstanceFor( 44 content::BrowserContext* context) const override; 45 void RegisterProfilePrefs( 46 user_prefs::PrefRegistrySyncable* registry) override; 47 }; 48 49 } // namespace platform_keys 50 } // namespace chromeos 51 52 #endif // CHROME_BROWSER_CHROMEOS_PLATFORM_KEYS_KEY_PERMISSIONS_KEY_PERMISSIONS_SERVICE_FACTORY_H_ 53