Index: chrome/installer/util/google_update_settings.cc |
diff --git a/chrome/installer/util/google_update_settings.cc b/chrome/installer/util/google_update_settings.cc |
index 4d53ecac94977db4553432fea4117b2a31286843..3c4cba6662885c745cbf166ca1fa6813dc6b0e6d 100644 |
--- a/chrome/installer/util/google_update_settings.cc |
+++ b/chrome/installer/util/google_update_settings.cc |
@@ -296,16 +296,43 @@ bool GoogleUpdateSettings::SetCollectStatsConsentAtLevel(bool system_install, |
return (result == ERROR_SUCCESS); |
} |
-bool GoogleUpdateSettings::LoadMetricsClientId(std::string* metrics_id) { |
- base::string16 metrics_id16; |
- bool rv = ReadGoogleUpdateStrKey(google_update::kRegMetricsId, &metrics_id16); |
- *metrics_id = base::UTF16ToUTF8(metrics_id16); |
- return rv; |
+scoped_ptr<metrics::ClientInfo> GoogleUpdateSettings::LoadMetricsClientInfo() { |
+ base::string16 client_id_16; |
+ if (!ReadGoogleUpdateStrKey(google_update::kRegMetricsId, &client_id_16) || |
+ client_id_16.empty()) { |
+ return scoped_ptr<metrics::ClientInfo>(); |
+ } |
+ |
+ scoped_ptr<metrics::ClientInfo> client_info(new metrics::ClientInfo); |
+ client_info->client_id = base::UTF16ToUTF8(client_id_16); |
+ |
+ base::string16 installation_date_str; |
+ if (ReadGoogleUpdateStrKey(google_update::kRegMetricsIdInstallDate, |
+ &installation_date_str)) { |
+ base::StringToInt64(installation_date_str, &client_info->installation_date); |
+ } |
+ |
+ base::string16 reporting_enbaled_date_date_str; |
+ if (ReadGoogleUpdateStrKey(google_update::kRegMetricsIdEnabledDate, |
+ &reporting_enbaled_date_date_str)) { |
+ base::StringToInt64(reporting_enbaled_date_date_str, |
+ &client_info->reporting_enabled_date); |
+ } |
+ |
+ return client_info.Pass(); |
} |
-bool GoogleUpdateSettings::StoreMetricsClientId(const std::string& metrics_id) { |
- base::string16 metrics_id16 = base::UTF8ToUTF16(metrics_id); |
- return WriteGoogleUpdateStrKey(google_update::kRegMetricsId, metrics_id16); |
+void GoogleUpdateSettings::StoreMetricsClientInfo( |
+ const metrics::ClientInfo& client_info) { |
+ // Attempt a best-effort at backing |client_info| in the registry (but don't |
+ // handle/report failures). |
+ WriteGoogleUpdateStrKey(google_update::kRegMetricsId, |
+ base::UTF8ToUTF16(client_info.client_id)); |
+ WriteGoogleUpdateStrKey(google_update::kRegMetricsIdInstallDate, |
+ base::Int64ToString16(client_info.installation_date)); |
+ WriteGoogleUpdateStrKey( |
+ google_update::kRegMetricsIdEnabledDate, |
+ base::Int64ToString16(client_info.reporting_enabled_date)); |
} |
// EULA consent is only relevant for system-level installs. |