1 // Copyright (c) 2013 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_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_ 6 #define CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_ 7 8 #include "base/memory/singleton.h" 9 #include "chrome/browser/profiles/profile.h" 10 #include "components/keyed_service/content/browser_context_keyed_service_factory.h" 11 12 namespace base { 13 class CommandLine; 14 } 15 16 namespace notifier { 17 18 class ChromeNotifierService; 19 20 class ChromeNotifierServiceFactory : public BrowserContextKeyedServiceFactory { 21 public: 22 static ChromeNotifierService* GetForProfile( 23 Profile* profile, Profile::ServiceAccessType service_access_type); 24 25 static ChromeNotifierServiceFactory* GetInstance(); 26 27 // Based on command line switches, make the call to use SyncedNotifications or 28 // not. 29 // TODO(petewil): Remove this when the SyncedNotifications feature is ready 30 // to be turned on by default, and just use a disable switch instead then. 31 static bool UseSyncedNotifications(base::CommandLine* command_line); 32 33 private: 34 friend struct DefaultSingletonTraits<ChromeNotifierServiceFactory>; 35 36 ChromeNotifierServiceFactory(); 37 virtual ~ChromeNotifierServiceFactory(); 38 39 // BrowserContextKeyedServiceFactory: 40 virtual KeyedService* BuildServiceInstanceFor( 41 content::BrowserContext* profile) const OVERRIDE; 42 }; 43 44 } // namespace notifier 45 46 #endif // CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_ 47