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

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

Issue 296483004: Introduce a MetricsDataProvider interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 6 years, 7 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/metrics_log.cc
===================================================================
--- chrome/browser/metrics/metrics_log.cc (revision 271296)
+++ chrome/browser/metrics/metrics_log.cc (working copy)
@@ -39,6 +39,7 @@
#include "chrome/common/metrics/variations/variations_util.h"
#include "chrome/common/pref_names.h"
#include "chrome/installer/util/google_update_settings.h"
+#include "components/metrics/metrics_data_provider.h"
#include "components/metrics/proto/omnibox_event.pb.h"
#include "components/metrics/proto/profiler_event.pb.h"
#include "components/metrics/proto/system_profile.pb.h"
@@ -448,8 +449,10 @@
return g_version_extension.Get();
}
-void MetricsLog::RecordStabilityMetrics(base::TimeDelta incremental_uptime,
- base::TimeDelta uptime) {
+void MetricsLog::RecordStabilityMetrics(
+ const ScopedVector<metrics::MetricsDataProvider>& data_providers,
+ base::TimeDelta incremental_uptime,
+ base::TimeDelta uptime) {
DCHECK(!locked());
DCHECK(HasEnvironment());
DCHECK(!HasStabilityMetrics());
@@ -470,6 +473,11 @@
// uma log upload, just as we send histogram data.
WriteRealtimeStabilityAttributes(pref, incremental_uptime, uptime);
+ SystemProfileProto::Stability* stability =
+ uma_proto()->mutable_system_profile()->mutable_stability();
+ for (size_t i = 0; i < data_providers.size(); ++i)
+ data_providers[i]->ProvideStabilityMetrics(stability);
+
// Omit some stats unless this is the initial stability log.
if (log_type() != INITIAL_STABILITY_LOG)
return;
@@ -492,8 +500,6 @@
// TODO(jar): The following are all optional, so we *could* optimize them for
// values of zero (and not include them).
- SystemProfileProto::Stability* stability =
- uma_proto()->mutable_system_profile()->mutable_stability();
stability->set_incomplete_shutdown_count(incomplete_shutdown_count);
stability->set_breakpad_registration_success_count(
breakpad_registration_success_count);
@@ -503,6 +509,13 @@
stability->set_debugger_not_present_count(debugger_not_present_count);
}
+
Ilya Sherman 2014/05/19 14:45:00 nit: Spurious newline.
Alexei Svitkine (slow) 2014/05/19 15:23:02 Done.
+void MetricsLog::RecordGeneralMetrics(
+ const ScopedVector<metrics::MetricsDataProvider>& data_providers) {
+ for (size_t i = 0; i < data_providers.size(); ++i)
+ data_providers[i]->ProvideGeneralMetrics(uma_proto());
+}
+
PrefService* MetricsLog::GetPrefService() {
return g_browser_process->local_state();
}
@@ -689,6 +702,7 @@
}
void MetricsLog::RecordEnvironment(
+ const ScopedVector<metrics::MetricsDataProvider>& data_providers,
const std::vector<content::WebPluginInfo>& plugin_list,
const GoogleUpdateMetrics& google_update_metrics,
const std::vector<chrome_variations::ActiveGroupId>& synthetic_trials) {
@@ -795,6 +809,9 @@
metrics_log_chromeos_->LogChromeOSMetrics();
#endif // OS_CHROMEOS
+ for (size_t i = 0; i < data_providers.size(); ++i)
+ data_providers[i]->ProvideSystemProfileMetrics(system_profile);
+
std::string serialied_system_profile;
std::string base64_system_profile;
if (system_profile->SerializeToString(&serialied_system_profile)) {

Powered by Google App Engine
This is Rietveld 408576698