Chromium Code Reviews| Index: chrome/browser/services/gcm/push_messaging_service_impl.h |
| diff --git a/chrome/browser/services/gcm/push_messaging_service_impl.h b/chrome/browser/services/gcm/push_messaging_service_impl.h |
| index 64aa91ffe0d3401624c2539bff5ff4cf5335fe2c..122dc5b556aa0eee2962a6c27f86cccac7575864 100644 |
| --- a/chrome/browser/services/gcm/push_messaging_service_impl.h |
| +++ b/chrome/browser/services/gcm/push_messaging_service_impl.h |
| @@ -7,18 +7,43 @@ |
| #include "base/compiler_specific.h" |
| #include "base/memory/weak_ptr.h" |
| +#include "components/gcm_driver/gcm_app_handler.h" |
| #include "components/gcm_driver/gcm_client.h" |
| #include "content/public/browser/push_messaging_service.h" |
| +class Profile; |
| + |
| +namespace user_prefs { |
| +class PrefRegistrySyncable; |
| +} |
| + |
| namespace gcm { |
| class GCMProfileService; |
| -class PushMessagingServiceImpl : public content::PushMessagingService { |
| +class PushMessagingServiceImpl : public content::PushMessagingService, |
| + public GCMAppHandler { |
| public: |
| - explicit PushMessagingServiceImpl(GCMProfileService* gcm_profile_service); |
| + // Register profile-specific prefs for GCM. |
| + static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry); |
| + |
| + // If any Service Workers are using push, starts GCM and adds an app handler. |
| + static void InitializeForProfile(Profile* profile); |
| + |
| + PushMessagingServiceImpl(GCMProfileService* gcm_profile_service, |
| + Profile* profile); |
| virtual ~PushMessagingServiceImpl(); |
| + // GCMAppHandler implementation. |
| + virtual void ShutdownHandler() OVERRIDE; |
| + virtual void OnMessage(const std::string& app_id, |
| + const GCMClient::IncomingMessage& message) OVERRIDE; |
| + virtual void OnMessagesDeleted(const std::string& app_id) OVERRIDE; |
| + virtual void OnSendError( |
| + const std::string& app_id, |
| + const GCMClient::SendErrorDetails& send_error_details) OVERRIDE; |
| + virtual bool CanHandle(const std::string& app_id) const OVERRIDE; |
| + |
| // content::PushMessagingService implementation: |
| virtual void Register( |
| const std::string& app_id, |
| @@ -27,12 +52,17 @@ class PushMessagingServiceImpl : public content::PushMessagingService { |
| private: |
| void DidRegister( |
| + const std::string& app_id, |
| const content::PushMessagingService::RegisterCallback& callback, |
| const std::string& registration_id, |
| GCMClient::Result result); |
| + base::WeakPtr<PushMessagingServiceImpl> GetWeakPtr(); |
| + |
| GCMProfileService* gcm_profile_service_; // It owns us. |
| + Profile* profile_; // It owns our owner. |
|
fgorski
2014/06/17 17:24:00
nit: 2 spaces before //
Michael van Ouwerkerk
2014/06/17 19:22:05
Done.
|
| + |
| base::WeakPtrFactory<PushMessagingServiceImpl> weak_factory_; |
| DISALLOW_COPY_AND_ASSIGN(PushMessagingServiceImpl); |