Upstream version 10.38.208.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / updater / extension_updater.h
index 29faf71..88401da 100644 (file)
@@ -157,6 +157,11 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate,
 
   struct ThrottleInfo;
 
+  // Callback used to continue CheckNow after determining which extensions
+  // should be force-updated.
+  void OnForcedUpdatesDetermined(const CheckParams& params,
+                                 const std::set<std::string>& forced_updates);
+
   // Ensure that we have a valid ExtensionDownloader instance referenced by
   // |downloader|.
   void EnsureDownloaderCreated();
@@ -188,7 +193,6 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate,
       Error error,
       const PingResult& ping,
       const std::set<int>& request_ids) OVERRIDE;
-
   virtual void OnExtensionDownloadFinished(
       const std::string& id,
       const base::FilePath& path,
@@ -197,25 +201,15 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate,
       const std::string& version,
       const PingResult& ping,
       const std::set<int>& request_id) OVERRIDE;
-
-  // Implementation of ExtensionRegistryObserver.
-  virtual void OnExtensionWillBeInstalled(
-      content::BrowserContext* browser_context,
-      const Extension* extension,
-      bool is_update,
-      bool from_ephemeral,
-      const std::string& old_name) OVERRIDE;
-
   virtual bool GetPingDataForExtension(
       const std::string& id,
       ManifestFetchData::PingData* ping_data) OVERRIDE;
-
   virtual std::string GetUpdateUrlData(const std::string& id) OVERRIDE;
-
   virtual bool IsExtensionPending(const std::string& id) OVERRIDE;
-
   virtual bool GetExtensionExistingVersion(const std::string& id,
                                            std::string* version) OVERRIDE;
+  virtual bool ShouldForceUpdate(const std::string& extension_id,
+                                 std::string* source) OVERRIDE;
 
   void UpdatePingData(const std::string& id, const PingResult& ping_result);
 
@@ -227,6 +221,14 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate,
                        const content::NotificationSource& source,
                        const content::NotificationDetails& details) OVERRIDE;
 
+  // Implementation of ExtensionRegistryObserver.
+  virtual void OnExtensionWillBeInstalled(
+      content::BrowserContext* browser_context,
+      const Extension* extension,
+      bool is_update,
+      bool from_ephemeral,
+      const std::string& old_name) OVERRIDE;
+
   // Send a notification that update checks are starting.
   void NotifyStarted();
 
@@ -284,6 +286,10 @@ class ExtensionUpdater : public ExtensionDownloaderDelegate,
   // checks to prevent too many requests from being made.
   std::map<std::string, ThrottleInfo> throttle_info_;
 
+  // Keeps track of extensions (by ID) whose update should be forced during the
+  // next update check.
+  std::set<std::string> forced_updates_;
+
   DISALLOW_COPY_AND_ASSIGN(ExtensionUpdater);
 };