| Index: chrome/browser/extensions/updater/extension_downloader.cc
|
| diff --git a/chrome/browser/extensions/updater/extension_downloader.cc b/chrome/browser/extensions/updater/extension_downloader.cc
|
| index 58463804bf8bb59cd53896c90f08f51b61e769b3..aaf2b53052a67f93aa0546758eb7f6e9f55535fa 100644
|
| --- a/chrome/browser/extensions/updater/extension_downloader.cc
|
| +++ b/chrome/browser/extensions/updater/extension_downloader.cc
|
| @@ -31,6 +31,7 @@
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/browser/notification_details.h"
|
| #include "content/public/browser/notification_service.h"
|
| +#include "extensions/browser/updater/default_manifest_fetch_data_delegate.h"
|
| #include "google_apis/gaia/identity_provider.h"
|
| #include "net/base/backoff_entry.h"
|
| #include "net/base/load_flags.h"
|
| @@ -187,7 +188,8 @@ ExtensionDownloader::ExtensionDownloader(
|
| extensions_queue_(&kDefaultBackoffPolicy,
|
| base::Bind(&ExtensionDownloader::CreateExtensionFetcher,
|
| base::Unretained(this))),
|
| - extension_cache_(NULL) {
|
| + extension_cache_(NULL),
|
| + manifest_fetch_data_delegate_(new DefaultManifestFetchDataDelegate()) {
|
| DCHECK(delegate_);
|
| DCHECK(request_context_);
|
| }
|
| @@ -267,7 +269,8 @@ void ExtensionDownloader::StartBlacklistUpdate(
|
| // by a public key signature like .crx files are.
|
| scoped_ptr<ManifestFetchData> blacklist_fetch(
|
| new ManifestFetchData(extension_urls::GetWebstoreUpdateUrl(),
|
| - request_id));
|
| + request_id,
|
| + manifest_fetch_data_delegate_.get()));
|
| DCHECK(blacklist_fetch->base_url().SchemeIsSecure());
|
| blacklist_fetch->AddExtension(kBlacklistAppID,
|
| version,
|
| @@ -282,6 +285,11 @@ void ExtensionDownloader::SetWebstoreIdentityProvider(
|
| identity_provider_.swap(identity_provider);
|
| }
|
|
|
| +void ExtensionDownloader::SetManifestFetchDataDelegate(
|
| + scoped_ptr<ManifestFetchDataDelegate> delegate) {
|
| + manifest_fetch_data_delegate_.swap(delegate);
|
| +}
|
| +
|
| bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
| const Version& version,
|
| Manifest::Type extension_type,
|
| @@ -343,7 +351,7 @@ bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
| // If UMA is enabled, also add to ManifestFetchData for the
|
| // webstore update URL.
|
| if (!extension_urls::IsWebstoreUpdateUrl(update_url) &&
|
| - ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()) {
|
| + manifest_fetch_data_delegate_->ShouldAlwaysCheckWebstore()) {
|
| update_urls.push_back(extension_urls::GetWebstoreUpdateUrl());
|
| }
|
|
|
| @@ -376,8 +384,8 @@ bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
| if (!added) {
|
| // Otherwise add a new element to the list, if the list doesn't exist or
|
| // if its last element is already full.
|
| - linked_ptr<ManifestFetchData> fetch(
|
| - new ManifestFetchData(update_urls[i], request_id));
|
| + linked_ptr<ManifestFetchData> fetch(new ManifestFetchData(
|
| + update_urls[i], request_id, manifest_fetch_data_delegate_.get()));
|
| fetches_preparing_[std::make_pair(request_id, update_urls[i])].
|
| push_back(fetch);
|
| added = fetch->AddExtension(id, version.GetString(),
|
|
|