Index: chromecast/metrics/cast_metrics_service_client.cc |
diff --git a/chromecast/metrics/cast_metrics_service_client.cc b/chromecast/metrics/cast_metrics_service_client.cc |
index 637cd400b864e484b3300b51d33eb69ce8076ce2..50bbf4789dc9dae6cb49c7c6824515df816c321c 100644 |
--- a/chromecast/metrics/cast_metrics_service_client.cc |
+++ b/chromecast/metrics/cast_metrics_service_client.cc |
@@ -105,6 +105,15 @@ CastMetricsServiceClient::CreateUploader( |
} |
void CastMetricsServiceClient::EnableMetricsService(bool enabled) { |
+ if (!metrics_service_loop_->BelongsToCurrentThread()) { |
+ metrics_service_loop_->PostTask( |
+ FROM_HERE, |
+ base::Bind(&CastMetricsServiceClient::EnableMetricsService, |
+ base::Unretained(this), |
+ enabled)); |
+ return; |
+ } |
+ |
if (enabled) { |
metrics_service_->Start(); |
} else { |
@@ -126,6 +135,7 @@ CastMetricsServiceClient::CastMetricsServiceClient( |
metrics_state_manager_.get(), |
this, |
pref_service)), |
+ metrics_service_loop_(base::MessageLoopProxy::current()), |
request_context_(request_context) { |
// Always create a client id as it may also be used by crash reporting, |
// (indirectly) included in feedback, and can be queried during setup. |