Don't stop and restart GCM when extension/app is being updated
BUG=384010
TEST=new tests added
Review URL: https://codereview.chromium.org/335693003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@277865 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_gcm_app_handler.h b/chrome/browser/extensions/extension_gcm_app_handler.h
index 8c7bc33..a61dc25 100644
--- a/chrome/browser/extensions/extension_gcm_app_handler.h
+++ b/chrome/browser/extensions/extension_gcm_app_handler.h
@@ -56,10 +56,15 @@
const gcm::GCMClient::SendErrorDetails& send_error_details) OVERRIDE;
protected:
+ // Could be overridden by testing purpose.
virtual void OnUnregisterCompleted(const std::string& app_id,
gcm::GCMClient::Result result);
+ virtual void AddAppHandler(const std::string& app_id);
+ virtual void RemoveAppHandler(const std::string& app_id);
- private:
+ gcm::GCMDriver* GetGCMDriver() const;
+
+private:
friend class BrowserContextKeyedAPIFactory<ExtensionGCMAppHandler>;
// ExtensionRegistryObserver implementation.
@@ -72,7 +77,8 @@
virtual void OnExtensionUninstalled(content::BrowserContext* browser_context,
const Extension* extension) OVERRIDE;
- gcm::GCMDriver* GetGCMDriver() const;
+ void AddDummyAppHandler();
+ void RemoveDummyAppHandler();
// BrowserContextKeyedAPI implementation.
static const char* service_name() { return "ExtensionGCMAppHandler"; }