Chromium Code Reviews| Index: chrome/browser/extensions/api/push_messaging/push_messaging_api.h |
| diff --git a/chrome/browser/extensions/api/push_messaging/push_messaging_api.h b/chrome/browser/extensions/api/push_messaging/push_messaging_api.h |
| index dc9c7cb9426d879da4154e82b9f099dcbdead4e4..953b29a424e08afbae667487ce27c45aa300178a 100644 |
| --- a/chrome/browser/extensions/api/push_messaging/push_messaging_api.h |
| +++ b/chrome/browser/extensions/api/push_messaging/push_messaging_api.h |
| @@ -13,7 +13,9 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "chrome/browser/extensions/api/push_messaging/obfuscated_gaia_id_fetcher.h" |
| #include "chrome/browser/extensions/api/push_messaging/push_messaging_invalidation_handler_delegate.h" |
| +#include "chrome/browser/extensions/event_router.h" |
| #include "chrome/browser/extensions/extension_function.h" |
| +#include "chrome/browser/profiles/profile_keyed_service.h" |
| #include "chrome/browser/ui/webui/signin/login_ui_service.h" |
| #include "content/public/browser/notification_observer.h" |
| #include "content/public/browser/notification_registrar.h" |
| @@ -104,6 +106,38 @@ class PushMessagingGetChannelIdFunction |
| DISALLOW_COPY_AND_ASSIGN(PushMessagingGetChannelIdFunction); |
| }; |
| +class PushMessagingAPI : public ProfileKeyedService, |
| + public extensions::EventRouter::Observer { |
|
akalin
2012/12/10 20:37:12
indent with 'public' on the previous line
Joe Thomas
2012/12/10 22:43:58
Done.
|
| + public: |
| + explicit PushMessagingAPI(Profile* profile); |
| + virtual ~PushMessagingAPI(); |
| + |
| + // Convenience method to get the ProcessesAPI for a profile. |
| + static PushMessagingAPI* Get(Profile* profile); |
| + |
| + PushMessagingEventRouter* push_messaging_event_router(); |
| + |
| + // Called when the ProfileSyncService for the associated Profile is |
| + // going to be destroyed. This is guaranteed to be called exactly |
| + // once before Shutdown() is called. |
| + // |
| + // TODO(akalin): Remove this once http://crbug.com/153827 is fixed. |
| + void OnProfileSyncServiceShutdown(); |
| + |
| + // ProfileKeyedService implementation. |
| + virtual void Shutdown() OVERRIDE; |
| + |
| + // EventRouter::Observer implementation. |
| + virtual void OnListenerAdded(const extensions::EventListenerInfo& details) |
| + OVERRIDE; |
| + |
| + private: |
| + Profile* profile_; |
| + |
| + // Created lazily upon OnListenerAdded. |
| + scoped_ptr<PushMessagingEventRouter> push_messaging_event_router_; |
| +}; |
| + |
| } // namespace extension |
| #endif // CHROME_BROWSER_EXTENSIONS_API_PUSH_MESSAGING_PUSH_MESSAGING_API_H__ |