Chromium Code Reviews| Index: chrome/browser/extensions/updater/extension_updater.cc |
| diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc |
| index e4843d134026f8c8ba4f02579eb10fdef84232c1..3bc5da20ef290d666c2c5ee37ee8ea492dcffad9 100644 |
| --- a/chrome/browser/extensions/updater/extension_updater.cc |
| +++ b/chrome/browser/extensions/updater/extension_updater.cc |
| @@ -20,7 +20,6 @@ |
| #include "chrome/browser/extensions/crx_installer.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| #include "chrome/browser/extensions/pending_extension_manager.h" |
| -#include "chrome/browser/extensions/updater/extension_downloader.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/common/pref_names.h" |
| #include "content/public/browser/browser_thread.h" |
| @@ -136,10 +135,11 @@ ExtensionUpdater::ExtensionUpdater( |
| Profile* profile, |
| int frequency_seconds, |
| ExtensionCache* cache, |
| - scoped_ptr<IdentityProvider> webstore_identity_provider) |
| + const ExtensionDownloader::Factory& downloader_factory) |
| : alive_(false), |
| weak_ptr_factory_(this), |
| service_(service), |
| + downloader_factory_(downloader_factory), |
| frequency_seconds_(frequency_seconds), |
| will_check_soon_(false), |
| extension_prefs_(extension_prefs), |
| @@ -148,8 +148,7 @@ ExtensionUpdater::ExtensionUpdater( |
| next_request_id_(0), |
| extension_registry_observer_(this), |
| crx_install_is_running_(false), |
| - extension_cache_(cache), |
| - webstore_identity_provider_(webstore_identity_provider.release()) { |
| + extension_cache_(cache) { |
| DCHECK_GE(frequency_seconds_, 5); |
| DCHECK_LE(frequency_seconds_, kMaxUpdateFrequencySeconds); |
| #if defined(NDEBUG) |
| @@ -165,6 +164,11 @@ ExtensionUpdater::~ExtensionUpdater() { |
| Stop(); |
| } |
| +void ExtensionUpdater::EnsureDownloaderCreated() { |
| + if (!downloader_.get()) { |
| + downloader_ = downloader_factory_.Run(this); |
| + } |
| +} |
|
Yoyo Zhou
2014/08/11 23:19:28
nit: newline after
Ken Rockot(use gerrit already)
2014/08/11 23:48:24
Woops. Done.
|
| // The overall goal here is to balance keeping clients up to date while |
| // avoiding a thundering herd against update servers. |
| TimeDelta ExtensionUpdater::DetermineFirstCheckDelay() { |
| @@ -342,12 +346,7 @@ void ExtensionUpdater::CheckNow(const CheckParams& params) { |
| request.callback = params.callback; |
| request.install_immediately = params.install_immediately; |
| - if (!downloader_.get()) { |
| - downloader_.reset( |
| - new ExtensionDownloader(this, |
| - profile_->GetRequestContext(), |
| - webstore_identity_provider_.get())); |
| - } |
| + EnsureDownloaderCreated(); |
| // Add fetch records for extensions that should be fetched by an update URL. |
| // These extensions are not yet installed. They come from group policy |