Index: chrome/browser/extensions/updater/chrome_manifest_fetch_data_delegate.cc |
diff --git a/chrome/browser/extensions/updater/chrome_manifest_fetch_data_delegate.cc b/chrome/browser/extensions/updater/chrome_manifest_fetch_data_delegate.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..04d46e55168fa7abe78d8165792ae4a68b793558 |
--- /dev/null |
+++ b/chrome/browser/extensions/updater/chrome_manifest_fetch_data_delegate.cc |
@@ -0,0 +1,65 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/strings/string_number_conversions.h" |
+#include "chrome/browser/extensions/updater/chrome_manifest_fetch_data_delegate.h" |
+#include "chrome/browser/google/google_brand.h" |
+#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" |
+#include "components/omaha_query_params/omaha_query_params.h" |
+ |
+using extensions::ManifestFetchData; |
+ |
+ChromeManifestFetchDataDelegate::ChromeManifestFetchDataDelegate() { |
+} |
+ |
+ChromeManifestFetchDataDelegate::~ChromeManifestFetchDataDelegate() { |
+} |
+ |
+std::string ChromeManifestFetchDataDelegate::GetBaseQueryParams() { |
+ return omaha_query_params::OmahaQueryParams::Get( |
+ omaha_query_params::OmahaQueryParams::CRX); |
+} |
+ |
+bool ChromeManifestFetchDataDelegate::ShouldAlwaysCheckWebstore() { |
+ return ChromeMetricsServiceAccessor::IsMetricsReportingEnabled(); |
+} |
+ |
+std::string ChromeManifestFetchDataDelegate::GetBrandCode() { |
+#if defined(GOOGLE_CHROME_BUILD) |
+ std::string brand; |
+ google_brand::GetBrand(&brand); |
+ if (!brand.empty() && !google_brand::IsOrganic(brand)) |
+ return brand; |
+#endif |
+ return ""; |
+} |
+ |
+// Provide ping data with the parameter ping=PING_DATA where PING_DATA |
+// looks like r=DAYS or a=DAYS for extensions in the Chrome extensions gallery. |
+// ('r' refers to 'roll call' ie installation, and 'a' refers to 'active'). |
+// These values will each be present at most once every 24 hours, and indicate |
+// the number of days since the last time it was present in an update check. |
+std::string ChromeManifestFetchDataDelegate::GetPingParamsAndData( |
+ const std::string& extension_id, |
+ const ManifestFetchData::PingData& old_ping_data, |
+ ManifestFetchData::PingData* new_ping_data) { |
+ std::string ping_value; |
+ if (old_ping_data.rollcall_days == ManifestFetchData::kNeverPinged || |
+ old_ping_data.rollcall_days > 0) { |
+ ping_value += "r=" + base::IntToString(old_ping_data.rollcall_days); |
+ if (ChromeMetricsServiceAccessor::IsMetricsReportingEnabled()) { |
+ ping_value += "&e=" + std::string(old_ping_data.is_enabled ? "1" : "0"); |
+ } |
+ new_ping_data->rollcall_days = old_ping_data.rollcall_days; |
+ new_ping_data->is_enabled = old_ping_data.is_enabled; |
+ } |
+ if (old_ping_data.active_days == ManifestFetchData::kNeverPinged || |
+ old_ping_data.active_days > 0) { |
+ if (!ping_value.empty()) |
+ ping_value += "&"; |
+ ping_value += "a=" + base::IntToString(old_ping_data.active_days); |
+ new_ping_data->active_days = old_ping_data.active_days; |
+ } |
+ return ping_value; |
+} |