Index: chrome/browser/component_updater/component_updater_service.h |
diff --git a/chrome/browser/component_updater/component_updater_service.h b/chrome/browser/component_updater/component_updater_service.h |
index 6dec6016c6b239a6f139ccab0d623263b7efa6f8..40e48ede7d995ac765f7b22a78c70fbb23848dc1 100644 |
--- a/chrome/browser/component_updater/component_updater_service.h |
+++ b/chrome/browser/component_updater/component_updater_service.h |
@@ -8,6 +8,7 @@ |
#include <string> |
#include <vector> |
+#include "base/callback_forward.h" |
#include "base/gtest_prod_util.h" |
#include "base/memory/ref_counted.h" |
#include "base/version.h" |
@@ -171,6 +172,21 @@ class ComponentUpdateService { |
// proactively triggered outside the normal component update service schedule. |
virtual OnDemandUpdater& GetOnDemandUpdater() = 0; |
+ // This method is used to trigger an on-demand update for component |crx_id|. |
+ // This can be used when loading a resource that depends on this component. |
+ // |
+ // |callback| is called on the main thread once the on-demand update is |
+ // complete, regardless of success. |callback| may be called immediately |
+ // within the method body. |
+ // |
+ // Additionally, this function implements an embedder-defined cooldown |
+ // interval between on demand update attempts. This behavior is intended |
+ // to be defensive against programming bugs, usually triggered by web fetches, |
+ // where the on-demand functionality is invoked too often. If this function |
+ // is called while still on cooldown, |callback| will be called immediately. |
+ virtual void MaybeThrottle(const std::string& crx_id, |
+ const base::Closure& callback) = 0; |
+ |
// Returns a task runner suitable for use by component installers. |
virtual scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner() = 0; |
@@ -183,7 +199,6 @@ class ComponentUpdateService { |
CrxUpdateItem* item) const = 0; |
friend class ::ComponentsUI; |
- FRIEND_TEST_ALL_PREFIXES(ComponentUpdaterTest, ResourceThrottleLiveNoUpdate); |
}; |
typedef ComponentUpdateService::Observer ServiceObserver; |
@@ -192,17 +207,6 @@ class OnDemandUpdater { |
public: |
virtual ~OnDemandUpdater() {} |
- // Returns a network resource throttle. It means that a component will be |
- // downloaded and installed before the resource is unthrottled. This function |
- // can be called from the IO thread. The function implements a cooldown |
- // interval of 30 minutes. That means it will ineffective to call the |
- // function before the cooldown interval has passed. This behavior is intended |
- // to be defensive against programming bugs, usually triggered by web fetches, |
- // where the on-demand functionality is invoked too often. |
- virtual content::ResourceThrottle* GetOnDemandResourceThrottle( |
- net::URLRequest* request, |
- const std::string& crx_id) = 0; |
- |
private: |
friend class OnDemandTester; |
friend class ::ComponentsUI; |