| 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..390eecdf15d40dbdca5e2d227bf829099237ff7c 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_);
|
| }
|
| @@ -266,8 +267,8 @@ void ExtensionDownloader::StartBlacklistUpdate(
|
| // 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));
|
| + CreateManifestFetchData(extension_urls::GetWebstoreUpdateUrl(),
|
| + request_id));
|
| DCHECK(blacklist_fetch->base_url().SchemeIsSecure());
|
| blacklist_fetch->AddExtension(kBlacklistAppID,
|
| version,
|
| @@ -282,6 +283,22 @@ void ExtensionDownloader::SetWebstoreIdentityProvider(
|
| identity_provider_.swap(identity_provider);
|
| }
|
|
|
| +void ExtensionDownloader::SetBrandCode(const std::string& brand_code) {
|
| + brand_code_ = brand_code;
|
| +}
|
| +
|
| +void ExtensionDownloader::SetManifestQueryParams(const std::string& params) {
|
| + manifest_query_params_ = params;
|
| +}
|
| +
|
| +void ExtensionDownloader::EnablePingDataForDomain(const std::string& domain) {
|
| + ping_enabled_domain_ = domain;
|
| +}
|
| +
|
| +void ExtensionDownloader::EnableExtraUpdateMetrics(bool enable) {
|
| + enable_extra_update_metrics_ = enable;
|
| +}
|
| +
|
| bool ExtensionDownloader::AddExtensionData(const std::string& id,
|
| const Version& version,
|
| Manifest::Type extension_type,
|
| @@ -340,10 +357,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 +394,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 +945,23 @@ 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
|
|
|