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 12namespace base { 13class CommandLine; 14} 15 16namespace notifier { 17 18class ChromeNotifierService; 19 20class 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