| 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..1296662e225b9766d9fc1082bc65d892751b5655 100644
|
| --- a/chrome/browser/extensions/updater/extension_downloader.cc
|
| +++ b/chrome/browser/extensions/updater/extension_downloader.cc
|
| @@ -187,7 +187,8 @@ ExtensionDownloader::ExtensionDownloader(
|
| extensions_queue_(&kDefaultBackoffPolicy,
|
| base::Bind(&ExtensionDownloader::CreateExtensionFetcher,
|
| base::Unretained(this))),
|
| - extension_cache_(NULL) {
|
| + extension_cache_(NULL),
|
| + enable_extra_update_metrics_(false) {
|
| DCHECK(delegate_);
|
| DCHECK(request_context_);
|
| }
|
| @@ -265,9 +266,8 @@ void ExtensionDownloader::StartBlacklistUpdate(
|
| // Note: it is very important that we use the https version of the update
|
| // url here to avoid DNS hijacking of the blacklist, which is not validated
|
| // by a public key signature like .crx files are.
|
| - scoped_ptr<ManifestFetchData> blacklist_fetch(
|
| - new ManifestFetchData(extension_urls::GetWebstoreUpdateUrl(),
|
| - request_id));
|
| + scoped_ptr<ManifestFetchData> blacklist_fetch(CreateManifestFetchData(
|
| + extension_urls::GetWebstoreUpdateUrl(), request_id));
|
| DCHECK(blacklist_fetch->base_url().SchemeIsSecure());
|
| blacklist_fetch->AddExtension(kBlacklistAppID,
|
| version,
|
| @@ -340,10 +340,10 @@ bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
|
|
| std::vector<GURL> update_urls;
|
| update_urls.push_back(update_url);
|
| - // If UMA is enabled, also add to ManifestFetchData for the
|
| + // If metrics are enabled, also add to ManifestFetchData for the
|
| // webstore update URL.
|
| if (!extension_urls::IsWebstoreUpdateUrl(update_url) &&
|
| - ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()) {
|
| + enable_extra_update_metrics_) {
|
| update_urls.push_back(extension_urls::GetWebstoreUpdateUrl());
|
| }
|
|
|
| @@ -377,7 +377,7 @@ bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
| // 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));
|
| + CreateManifestFetchData(update_urls[i], request_id));
|
| fetches_preparing_[std::make_pair(request_id, update_urls[i])].
|
| push_back(fetch);
|
| added = fetch->AddExtension(id, version.GetString(),
|
| @@ -928,4 +928,19 @@ void ExtensionDownloader::OnGetTokenFailure(
|
| extension_fetcher_->Start();
|
| }
|
|
|
| +ManifestFetchData* ExtensionDownloader::CreateManifestFetchData(
|
| + const GURL& update_url,
|
| + int request_id) {
|
| + ManifestFetchData::PingMode ping_mode = ManifestFetchData::NO_PING;
|
| + if (update_url.DomainIs(ping_enabled_domain_.c_str())) {
|
| + if (enable_extra_update_metrics_) {
|
| + ping_mode = ManifestFetchData::PING_WITH_METRICS;
|
| + } else {
|
| + ping_mode = ManifestFetchData::PING;
|
| + }
|
| + }
|
| + return new ManifestFetchData(
|
| + update_url, request_id, brand_code_, manifest_query_params_, ping_mode);
|
| +}
|
| +
|
| } // namespace extensions
|
|
|