Home | History | Annotate | Download | only in signin
      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_SIGNIN_ABOUT_SIGNIN_INTERNALS_FACTORY_H_
      6 #define CHROME_BROWSER_SIGNIN_ABOUT_SIGNIN_INTERNALS_FACTORY_H_
      7 
      8 #include "base/memory/singleton.h"
      9 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
     10 
     11 class AboutSigninInternals;
     12 class Profile;
     13 
     14 // Singleton that owns all AboutSigninInternals and associates them with
     15 // Profiles.
     16 class AboutSigninInternalsFactory : public BrowserContextKeyedServiceFactory {
     17  public:
     18   // Returns the instance of AboutSigninInternals associated with this profile,
     19   // creating one if none exists.
     20   static AboutSigninInternals* GetForProfile(Profile* profile);
     21 
     22   // Returns an instance of the AboutSigninInternalsFactory singleton.
     23   static AboutSigninInternalsFactory* GetInstance();
     24 
     25   // Implementation of BrowserContextKeyedServiceFactory.
     26   virtual void RegisterProfilePrefs(
     27       user_prefs::PrefRegistrySyncable* registry) OVERRIDE;
     28 
     29  private:
     30   friend struct DefaultSingletonTraits<AboutSigninInternalsFactory>;
     31 
     32   AboutSigninInternalsFactory();
     33   virtual ~AboutSigninInternalsFactory();
     34 
     35   // BrowserContextKeyedServiceFactory
     36   virtual KeyedService* BuildServiceInstanceFor(
     37       content::BrowserContext* context) const OVERRIDE;
     38 };
     39 
     40 #endif  // CHROME_BROWSER_SIGNIN_ABOUT_SIGNIN_INTERNALS_FACTORY_H_
     41