| OLD | NEW |
| 1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ | 5 #ifndef CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ |
| 6 #define CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ | 6 #define CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 class URLRequestContextGetter; | 22 class URLRequestContextGetter; |
| 23 class URLRequest; | 23 class URLRequest; |
| 24 } | 24 } |
| 25 | 25 |
| 26 namespace content { | 26 namespace content { |
| 27 class ResourceThrottle; | 27 class ResourceThrottle; |
| 28 } | 28 } |
| 29 | 29 |
| 30 namespace component_updater { | 30 namespace component_updater { |
| 31 | 31 |
| 32 class OnDemandTester; | 32 class OnDemandUpdater; |
| 33 | 33 |
| 34 // Component specific installers must derive from this class and implement | 34 // Component specific installers must derive from this class and implement |
| 35 // OnUpdateError() and Install(). A valid instance of this class must be | 35 // OnUpdateError() and Install(). A valid instance of this class must be |
| 36 // given to ComponentUpdateService::RegisterComponent(). | 36 // given to ComponentUpdateService::RegisterComponent(). |
| 37 class ComponentInstaller { | 37 class ComponentInstaller { |
| 38 public: | 38 public: |
| 39 // Called by the component updater on the UI thread when there was a | 39 // Called by the component updater on the UI thread when there was a |
| 40 // problem unpacking or verifying the component. |error| is a non-zero | 40 // problem unpacking or verifying the component. |error| is a non-zero |
| 41 // value which is only meaningful to the component updater. | 41 // value which is only meaningful to the component updater. |
| 42 virtual void OnUpdateError(int error) = 0; | 42 virtual void OnUpdateError(int error) = 0; |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 201 // will not be canceled. | 201 // will not be canceled. |
| 202 virtual Status Stop() = 0; | 202 virtual Status Stop() = 0; |
| 203 | 203 |
| 204 // Add component to be checked for updates. You can call this method | 204 // Add component to be checked for updates. You can call this method |
| 205 // before calling Start(). | 205 // before calling Start(). |
| 206 virtual Status RegisterComponent(const CrxComponent& component) = 0; | 206 virtual Status RegisterComponent(const CrxComponent& component) = 0; |
| 207 | 207 |
| 208 // Returns a list of registered components. | 208 // Returns a list of registered components. |
| 209 virtual void GetComponents(std::vector<CrxComponentInfo>* components) = 0; | 209 virtual void GetComponents(std::vector<CrxComponentInfo>* components) = 0; |
| 210 | 210 |
| 211 // Returns an interface for on-demand updates. On-demand updates are |
| 212 // proactively triggered outside the normal component update service schedule. |
| 213 virtual OnDemandUpdater& GetOnDemandUpdater() = 0; |
| 214 |
| 215 virtual ~ComponentUpdateService() {} |
| 216 |
| 217 private: |
| 218 friend class ::ComponentsUI; |
| 219 }; |
| 220 |
| 221 typedef ComponentUpdateService::Observer ServiceObserver; |
| 222 |
| 223 class OnDemandUpdater { |
| 224 public: |
| 225 virtual ~OnDemandUpdater() {} |
| 226 |
| 211 // Returns a network resource throttle. It means that a component will be | 227 // Returns a network resource throttle. It means that a component will be |
| 212 // downloaded and installed before the resource is unthrottled. This is the | 228 // downloaded and installed before the resource is unthrottled. This function |
| 213 // only function callable from the IO thread. | 229 // can be called from the IO thread. |
| 214 virtual content::ResourceThrottle* GetOnDemandResourceThrottle( | 230 virtual content::ResourceThrottle* GetOnDemandResourceThrottle( |
| 215 net::URLRequest* request, | 231 net::URLRequest* request, |
| 216 const std::string& crx_id) = 0; | 232 const std::string& crx_id) = 0; |
| 217 | 233 |
| 218 virtual ~ComponentUpdateService() {} | 234 private: |
| 235 friend class OnDemandTester; |
| 236 friend class ::ComponentsUI; |
| 219 | 237 |
| 220 friend class ::ComponentsUI; | 238 // Triggers an update check for a component. |component_id| is a value |
| 221 friend class OnDemandTester; | 239 // returned by GetCrxComponentID(). If an update for this component is already |
| 222 | 240 // in progress, the function returns |kInProgress|. If an update is available, |
| 223 private: | 241 // the update will be applied. The caller can subscribe to component update |
| 224 // Ask the component updater to do an update check for a previously | 242 // service notifications to get an indication about the outcome of the |
| 225 // registered component, immediately. If an update or check is already | 243 // on-demand update. |
| 226 // in progress, returns |kInProgress|. | 244 virtual ComponentUpdateService::Status OnDemandUpdate( |
| 227 // There is no guarantee that the item will actually be updated, | 245 const std::string& component_id) = 0; |
| 228 // since an update may not be available. Listeners for the component will | |
| 229 // know the outcome of the check. | |
| 230 virtual Status OnDemandUpdate(const std::string& component_id) = 0; | |
| 231 }; | 246 }; |
| 232 | 247 |
| 233 typedef ComponentUpdateService::Observer ServiceObserver; | |
| 234 | |
| 235 // Creates the component updater. You must pass a valid |config| allocated on | 248 // Creates the component updater. You must pass a valid |config| allocated on |
| 236 // the heap which the component updater will own. | 249 // the heap which the component updater will own. |
| 237 ComponentUpdateService* ComponentUpdateServiceFactory( | 250 ComponentUpdateService* ComponentUpdateServiceFactory( |
| 238 ComponentUpdateService::Configurator* config); | 251 ComponentUpdateService::Configurator* config); |
| 239 | 252 |
| 240 } // namespace component_updater | 253 } // namespace component_updater |
| 241 | 254 |
| 242 #endif // CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ | 255 #endif // CHROME_BROWSER_COMPONENT_UPDATER_COMPONENT_UPDATER_SERVICE_H_ |
| OLD | NEW |