Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(962)

Unified Diff: chrome/browser/component_updater/component_updater_service.h

Issue 421393002: Componentize component_updater: Split content::ResourceThrottle from CUS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..30e4d057a66252329df8ae239308d30279dc5178 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"
@@ -167,9 +168,15 @@ class ComponentUpdateService {
// Returns a list of registered components.
virtual std::vector<std::string> GetComponentIDs() const = 0;
- // Returns an interface for on-demand updates. On-demand updates are
- // proactively triggered outside the normal component update service schedule.
- virtual OnDemandUpdater& GetOnDemandUpdater() = 0;
+ // |callback| is called on the main thread once the component with |crx_id|
+ // is downloaded and installed. |callback| may be called synchronously
+ // if component is already installed. 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 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;
@@ -177,36 +184,14 @@ class ComponentUpdateService {
virtual ~ComponentUpdateService() {}
private:
+ friend class OnDemandTester;
+ friend class ::ComponentsUI;
+
// Returns details about registered component in the |item| parameter. The
// function returns true in case of success and false in case of errors.
virtual bool GetComponentDetails(const std::string& component_id,
CrxUpdateItem* item) const = 0;
- friend class ::ComponentsUI;
- FRIEND_TEST_ALL_PREFIXES(ComponentUpdaterTest, ResourceThrottleLiveNoUpdate);
-};
-
-typedef ComponentUpdateService::Observer ServiceObserver;
-
-class OnDemandUpdater {
Sorin Jianu 2014/07/31 00:16:01 The idea here is that we want to have a class, whe
tommycli 2014/07/31 18:00:04 Done. Makes sense. I restored this class. I left
- 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;
-
// Triggers an update check for a component. |component_id| is a value
// returned by GetCrxComponentID(). If an update for this component is already
// in progress, the function returns |kInProgress|. If an update is available,
@@ -217,6 +202,8 @@ class OnDemandUpdater {
const std::string& component_id) = 0;
};
+typedef ComponentUpdateService::Observer ServiceObserver;
+
// Creates the component updater. You must pass a valid |config| allocated on
// the heap which the component updater will own.
ComponentUpdateService* ComponentUpdateServiceFactory(Configurator* config);

Powered by Google App Engine
This is Rietveld 408576698