| OLD | NEW | 
|   1 // Copyright 2015 The Chromium Authors. All rights reserved. |   1 // Copyright 2015 The Chromium Authors. All rights reserved. | 
|   2 // Use of this source code is governed by a BSD-style license that can be |   2 // Use of this source code is governed by a BSD-style license that can be | 
|   3 // found in the LICENSE file. |   3 // found in the LICENSE file. | 
|   4  |   4  | 
|   5 #ifndef CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ |   5 #ifndef CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ | 
|   6 #define CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ |   6 #define CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ | 
|   7  |   7  | 
|   8 #include "base/memory/singleton.h" |   8 #include "base/memory/singleton.h" | 
|   9 #include "components/keyed_service/content/browser_context_keyed_service_factory
    .h" |   9 #include "components/keyed_service/content/browser_context_keyed_service_factory
    .h" | 
|  10  |  10  | 
|  11 class CrossDevicePromo; |  11 class CrossDevicePromo; | 
|  12 class Profile; |  12 class Profile; | 
|  13  |  13  | 
|  14 // Singleton that owns all CrossDevicePromos and associates them with |  14 // Singleton that owns all CrossDevicePromos and associates them with | 
|  15 // Profiles. |  15 // Profiles. | 
|  16 class CrossDevicePromoFactory : public BrowserContextKeyedServiceFactory { |  16 class CrossDevicePromoFactory : public BrowserContextKeyedServiceFactory { | 
|  17  public: |  17  public: | 
|  18   // Returns the instance of CrossDevicePromo associated with this profile, |  18   // Returns the instance of CrossDevicePromo associated with this profile, | 
|  19   // creating one if none exists. |  19   // creating one if none exists. | 
|  20   static CrossDevicePromo* GetForProfile(Profile* profile); |  20   static CrossDevicePromo* GetForProfile(Profile* profile); | 
|  21  |  21  | 
|  22   // Returns an instance of the CrossDevicePromoFactory singleton. |  22   // Returns an instance of the CrossDevicePromoFactory singleton. | 
|  23   static CrossDevicePromoFactory* GetInstance(); |  23   static CrossDevicePromoFactory* GetInstance(); | 
|  24  |  24  | 
|  25   // Implementation of BrowserContextKeyedServiceFactory. |  25   // Implementation of BrowserContextKeyedServiceFactory. | 
|  26   void RegisterProfilePrefs( |  26   void RegisterProfilePrefs( | 
|  27       user_prefs::PrefRegistrySyncable* registry) override; |  27       user_prefs::PrefRegistrySyncable* registry) override; | 
|  28  |  28  | 
|  29  private: |  29  private: | 
|  30   friend struct DefaultSingletonTraits<CrossDevicePromoFactory>; |  30   friend struct base::DefaultSingletonTraits<CrossDevicePromoFactory>; | 
|  31  |  31  | 
|  32   CrossDevicePromoFactory(); |  32   CrossDevicePromoFactory(); | 
|  33   ~CrossDevicePromoFactory() override; |  33   ~CrossDevicePromoFactory() override; | 
|  34  |  34  | 
|  35   // BrowserContextKeyedServiceFactory |  35   // BrowserContextKeyedServiceFactory | 
|  36   KeyedService* BuildServiceInstanceFor( |  36   KeyedService* BuildServiceInstanceFor( | 
|  37       content::BrowserContext* context) const override; |  37       content::BrowserContext* context) const override; | 
|  38  |  38  | 
|  39   DISALLOW_COPY_AND_ASSIGN(CrossDevicePromoFactory); |  39   DISALLOW_COPY_AND_ASSIGN(CrossDevicePromoFactory); | 
|  40 }; |  40 }; | 
|  41  |  41  | 
|  42 #endif  // CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ |  42 #endif  // CHROME_BROWSER_SIGNIN_CROSS_DEVICE_PROMO_FACTORY_H_ | 
| OLD | NEW |