1 // Copyright (c) 2012 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_PLUGINS_PLUGIN_PREFS_FACTORY_H_ 6 #define CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_FACTORY_H_ 7 8 #include "base/compiler_specific.h" 9 #include "base/memory/singleton.h" 10 #include "components/keyed_service/content/refcounted_browser_context_keyed_service_factory.h" 11 12 class PluginPrefs; 13 class Profile; 14 15 class PluginPrefsFactory : public RefcountedBrowserContextKeyedServiceFactory { 16 public: 17 static scoped_refptr<PluginPrefs> GetPrefsForProfile(Profile* profile); 18 19 static PluginPrefsFactory* GetInstance(); 20 21 private: 22 friend class PluginPrefs; 23 friend struct DefaultSingletonTraits<PluginPrefsFactory>; 24 25 // Helper method for PluginPrefs::GetForTestingProfile. 26 static scoped_refptr<RefcountedBrowserContextKeyedService> 27 CreateForTestingProfile(content::BrowserContext* profile); 28 29 PluginPrefsFactory(); 30 virtual ~PluginPrefsFactory(); 31 32 // RefcountedBrowserContextKeyedServiceFactory methods: 33 virtual scoped_refptr<RefcountedBrowserContextKeyedService> 34 BuildServiceInstanceFor(content::BrowserContext* context) const OVERRIDE; 35 36 // BrowserContextKeyedServiceFactory methods: 37 virtual void RegisterProfilePrefs( 38 user_prefs::PrefRegistrySyncable* registry) OVERRIDE; 39 virtual content::BrowserContext* GetBrowserContextToUse( 40 content::BrowserContext* context) const OVERRIDE; 41 virtual bool ServiceIsNULLWhileTesting() const OVERRIDE; 42 virtual bool ServiceIsCreatedWithBrowserContext() const OVERRIDE; 43 }; 44 45 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_PREFS_FACTORY_H_ 46