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.
5 #ifndef CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_
6 #define CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_
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"
18 class ChromeNotifierService
;
20 class ChromeNotifierServiceFactory
: public BrowserContextKeyedServiceFactory
{
22 static ChromeNotifierService
* GetForProfile(
23 Profile
* profile
, Profile::ServiceAccessType service_access_type
);
25 static ChromeNotifierServiceFactory
* GetInstance();
27 // Based on command line switches, make the call to use SyncedNotifications or
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
);
34 friend struct DefaultSingletonTraits
<ChromeNotifierServiceFactory
>;
36 ChromeNotifierServiceFactory();
37 virtual ~ChromeNotifierServiceFactory();
39 // BrowserContextKeyedServiceFactory:
40 virtual KeyedService
* BuildServiceInstanceFor(
41 content::BrowserContext
* profile
) const OVERRIDE
;
44 } // namespace notifier
46 #endif // CHROME_BROWSER_NOTIFICATIONS_SYNC_NOTIFIER_CHROME_NOTIFIER_SERVICE_FACTORY_H_