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

Unified Diff: chromecast/browser/metrics/cast_metrics_service_client.cc

Issue 1298473004: [Chromecast] Moves persistent UMA client ID handling to common code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: moves android dep to correct target Created 5 years, 4 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: chromecast/browser/metrics/cast_metrics_service_client.cc
diff --git a/chromecast/browser/metrics/cast_metrics_service_client.cc b/chromecast/browser/metrics/cast_metrics_service_client.cc
index d3f2f595ca8374ae490e09eec28bd821f7e5fed9..3beff732b4e98bd11b917bb9cd949f21b1992cc1 100644
--- a/chromecast/browser/metrics/cast_metrics_service_client.cc
+++ b/chromecast/browser/metrics/cast_metrics_service_client.cc
@@ -16,8 +16,9 @@
#include "chromecast/base/chromecast_switches.h"
#include "chromecast/base/path_utils.h"
#include "chromecast/base/version.h"
+#include "chromecast/browser/cast_browser_process.h"
+#include "chromecast/browser/cast_content_browser_client.h"
#include "chromecast/browser/metrics/cast_stability_metrics_provider.h"
-#include "chromecast/browser/metrics/platform_metrics_providers.h"
#include "chromecast/common/pref_names.h"
#include "chromecast/public/cast_sys_info.h"
#include "components/metrics/client_info.h"
@@ -94,7 +95,8 @@ void CastMetricsServiceClient::SetMetricsClientId(
const std::string& client_id) {
client_id_ = client_id;
LOG(INFO) << "Metrics client ID set: " << client_id;
- PlatformSetClientID(cast_service_, client_id);
+ shell::CastBrowserProcess::GetInstance()->browser_client()->
+ SetMetricsClientId(client_id);
}
void CastMetricsServiceClient::OnRecordingDisabled() {
@@ -110,6 +112,7 @@ void CastMetricsServiceClient::StoreClientInfo(
scoped_ptr< ::metrics::ClientInfo> CastMetricsServiceClient::LoadClientInfo() {
scoped_ptr< ::metrics::ClientInfo> client_info(new ::metrics::ClientInfo);
+ client_info_loaded_ = true;
// kMetricsIsNewClientID would be missing if either the device was just
// FDR'ed, or it is on pre-v1.2 build.
@@ -125,16 +128,17 @@ scoped_ptr< ::metrics::ClientInfo> CastMetricsServiceClient::LoadClientInfo() {
// else the device was just FDR'ed, pass through.
}
- const std::string client_id(GetPlatformClientID(cast_service_));
- if (!client_id.empty() && base::IsValidGUID(client_id)) {
- client_info->client_id = client_id;
+ if (!persisted_client_id_.empty() &&
+ base::IsValidGUID(persisted_client_id_)) {
+ client_info->client_id = persisted_client_id_;
return client_info.Pass();
} else {
byungchul 2015/08/19 21:11:20 no else after return.
gunsch 2015/08/19 21:23:12 Done.
- if (client_id.empty()) {
+ if (persisted_client_id_.empty()) {
LOG(WARNING) << "Empty client id from platform,"
<< " assuming this is the first boot up of a new device.";
} else {
- LOG(ERROR) << "Invalid client id " << client_id << " from platform.";
+ LOG(ERROR) << "Invalid client id from platform: " << persisted_client_id_
+ << " from platform.";
}
return scoped_ptr< ::metrics::ClientInfo>();
}
@@ -258,6 +262,7 @@ CastMetricsServiceClient::CastMetricsServiceClient(
: io_task_runner_(io_task_runner),
pref_service_(pref_service),
cast_service_(nullptr),
+ client_info_loaded_(false),
#if defined(OS_LINUX)
external_metrics_(nullptr),
platform_metrics_(nullptr),
@@ -273,6 +278,13 @@ CastMetricsServiceClient::~CastMetricsServiceClient() {
#endif // defined(OS_LINUX)
}
+void CastMetricsServiceClient::SetPersistedClientId(
+ const std::string& client_id) {
+ DCHECK(!client_info_loaded_)
+ << "Persisted client ID must be set before client info is loaded.";
+ persisted_client_id_ = client_id;
+}
+
void CastMetricsServiceClient::Initialize(CastService* cast_service) {
DCHECK(cast_service);
DCHECK(!cast_service_);
@@ -315,7 +327,8 @@ void CastMetricsServiceClient::Initialize(CastService* cast_service) {
metrics_service_->RegisterMetricsProvider(
scoped_ptr< ::metrics::MetricsProvider>(
new ::metrics::ProfilerMetricsProvider));
- RegisterPlatformMetricsProviders(metrics_service_.get(), cast_service_);
+ shell::CastBrowserProcess::GetInstance()->browser_client()->
+ RegisterMetricsProviders(metrics_service_.get());
metrics_service_->InitializeMetricsRecordingState();
#if !defined(OS_ANDROID)

Powered by Google App Engine
This is Rietveld 408576698