Update mojo surfaces bindings and mojo/cc/ glue
[chromium-blink-merge.git] / chrome / browser / notifications / sync_notifier / chrome_notifier_service_factory.h
blobc55d2332b9ed7d2c92325047bfcc37004c1cb1e2
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"
12 namespace base {
13 class CommandLine;
16 namespace notifier {
18 class ChromeNotifierService;
20 class ChromeNotifierServiceFactory : public BrowserContextKeyedServiceFactory {
21 public:
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
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);
33 private:
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_