Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9720)

Unified Diff: chrome/browser/metrics/chrome_metrics_service_client.cc

Issue 979363003: UMA: use a more frequent upload interval for Chromecast. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, cleaned up experiment code Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/metrics/chrome_metrics_service_client.cc
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index 8954197117c9b35a4d1ba0d4a5d44bf6d59bf963..10f0049a98b05dc49163bcd71e061cae5da495d4 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -11,6 +11,7 @@
#include "base/command_line.h"
#include "base/files/file_path.h"
#include "base/logging.h"
+#include "base/metrics/field_trial.h"
#include "base/metrics/histogram.h"
#include "base/prefs/pref_registry_simple.h"
#include "base/prefs/pref_service.h"
@@ -98,6 +99,24 @@ metrics::SystemProfileProto::Channel AsProtobufChannel(
return metrics::SystemProfileProto::CHANNEL_UNKNOWN;
}
+// Standard interval between log uploads, in seconds.
+#if defined(OS_ANDROID) || defined(OS_IOS)
+const int kStandardUploadIntervalSeconds = 5 * 60; // Five minutes.
+const int kStandardUploadIntervalCellularSeconds = 15 * 60; // Fifteen minutes.
+#else
+const int kStandardUploadIntervalSeconds = 30 * 60; // Thirty minutes.
+#endif
+
+#if defined(OS_ANDROID) || defined(OS_IOS)
+// Returns true if the user is assigned to the experiment group for enabled
+// cellular uploads.
+bool IsCellularEnabledByExperiment() {
+ const std::string group_name =
+ base::FieldTrialList::FindFullName("UMA_EnableCellularLogUpload");
+ return group_name == "Enabled";
+}
+#endif
+
} // namespace
ChromeMetricsServiceClient::ChromeMetricsServiceClient(
@@ -246,6 +265,18 @@ ChromeMetricsServiceClient::CreateUploader(
on_upload_complete));
}
+base::TimeDelta ChromeMetricsServiceClient::GetStandardUploadInterval() {
+#if defined(OS_ANDROID) || defined(OS_IOS)
+ bool is_cellular = false;
+ if (!cellular_callback_.is_null())
Alexei Svitkine (slow) 2015/03/13 02:44:53 This if shouldn't be needed anymore.
gunsch 2015/03/13 15:48:02 Done.
+ cellular_callback_.Run(&is_cellular);
+
+ if (is_cellular && IsCellularEnabledByExperiment())
+ return base::TimeDelta::FromSeconds(kStandardUploadIntervalCellularSeconds);
+#endif
+ return base::TimeDelta::FromSeconds(kStandardUploadIntervalSeconds);
+}
+
base::string16 ChromeMetricsServiceClient::GetRegistryBackupKey() {
#if defined(OS_WIN)
return L"Software\\" PRODUCT_STRING_PATH L"\\StabilityMetrics";
@@ -276,9 +307,7 @@ void ChromeMetricsServiceClient::Initialize() {
scoped_ptr<metrics::NetworkMetricsProvider> network_metrics_provider(
new metrics::NetworkMetricsProvider(
content::BrowserThread::GetBlockingPool()));
- base::Callback<void(bool*)> cellular_callback =
- network_metrics_provider->GetConnectionCallback();
- metrics_service_->SetConnectionTypeCallback(cellular_callback);
+ cellular_callback_ = network_metrics_provider->GetConnectionCallback();
metrics_service_->RegisterMetricsProvider(network_metrics_provider.Pass());
metrics_service_->RegisterMetricsProvider(
@@ -289,7 +318,7 @@ void ChromeMetricsServiceClient::Initialize() {
scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider()));
profiler_metrics_provider_ =
- new metrics::ProfilerMetricsProvider(cellular_callback);
+ new metrics::ProfilerMetricsProvider(cellular_callback_);
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_));
« no previous file with comments | « chrome/browser/metrics/chrome_metrics_service_client.h ('k') | chromecast/browser/metrics/cast_metrics_service_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698