1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file.
4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "components/metrics/metrics_pref_names.h"
6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace metrics {
8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)namespace prefs {
9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Set once, to the current epoch time, on the first run of chrome on this
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// machine. Attached to metrics reports forever thereafter.
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdochconst char kInstallDate[] = "uninstall_metrics.installation_date2";
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// The metrics client GUID.
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Note: The name client_id2 is a result of creating
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// new prefs to do a one-time reset of the previous values.
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsClientID[] = "user_experience_metrics.client_id2";
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Array of strings that are each UMA logs that were supposed to be sent in the
20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// first minute of a browser session. These logs include things like crash count
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// info, etc.
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const char kMetricsInitialLogs[] =
23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.initial_logs_list";
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// The metrics entropy source.
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Note: The name low_entropy_source2 is a result of creating
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// new prefs to do a one-time reset of the previous values.
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsLowEntropySource[] =
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.low_entropy_source2";
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// A machine ID used to detect when underlying hardware changes. It is only
32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// stored locally and never transmitted in metrics reports.
33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const char kMetricsMachineId[] = "user_experience_metrics.machine_id";
34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Old client id and low entropy source values, cleared the first time this
3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// version is launched.
3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// TODO(asvitkine): Delete these after a few releases have gone by and old
3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// values have been cleaned up. http://crbug.com/357704
3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsOldClientID[] = "user_experience_metrics.client_id";
4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsOldLowEntropySource[] =
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.low_entropy_source";
4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Array of strings that are each UMA logs that were not sent because the
44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// browser terminated before these accumulated metrics could be sent.  These
45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// logs typically include histograms and memory reports, as well as ongoing
46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// user activities.
47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const char kMetricsOngoingLogs[] =
48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.ongoing_logs_list";
49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Boolean that indicates a cloned install has been detected and the metrics
51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// client id and low entropy source should be reset.
52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)const char kMetricsResetIds[] = "user_experience_metrics.reset_metrics_ids";
53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Date/time when the user opted in to UMA and generated the client id for the
5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// very first time (local machine time, stored as a 64-bit time_t value).
5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsReportingEnabledTimestamp[] =
5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.client_id_timestamp";
5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// The metrics client session ID.
6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kMetricsSessionID[] = "user_experience_metrics.session_id";
6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the browser has been able to register crash reporting.
6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityBreakpadRegistrationSuccess[] =
6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.breakpad_registration_ok";
6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the browser has failed to register crash reporting.
6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityBreakpadRegistrationFail[] =
6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.breakpad_registration_fail";
6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the application exited uncleanly since the last report.
7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityCrashCount[] =
7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.crash_count";
7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the browser has been run under a debugger.
7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityDebuggerPresent[] =
7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.debugger_present";
7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the browser has not been run under a debugger.
7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityDebuggerNotPresent[] =
8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.debugger_not_present";
8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
82f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// An enum value to indicate the execution phase the browser was in.
83f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityExecutionPhase[] =
84f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.execution_phase";
85f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
86f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// True if the previous run of the program exited cleanly.
87f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityExitedCleanly[] =
88f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.exited_cleanly";
89f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the session end did not complete.
9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityIncompleteSessionEndCount[] =
9246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.incomplete_session_end_count";
9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
94f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Time when the app was last known to be running, in seconds since
95f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// the epoch.
96f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityLastTimestampSec[] =
97f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.last_timestamp_sec";
98f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Number of times the application was launched since last report.
10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilityLaunchCount[] =
10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.launch_count";
10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
103f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Time when the app was last launched, in seconds since the epoch.
104f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityLaunchTimeSec[] =
105f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.launch_time_sec";
106f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
10746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Base64 encoded serialized UMA system profile proto from the previous session.
10846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilitySavedSystemProfile[] =
10946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.saved_system_profile";
11046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
11146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// SHA-1 hash of the serialized UMA system profile proto (hex encoded).
11246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)const char kStabilitySavedSystemProfileHash[] =
11346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    "user_experience_metrics.stability.saved_system_profile_hash";
11446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
115f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// False if we received a session end and either we crashed during processing
116f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// the session end or ran out of time and windows terminated us.
117f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilitySessionEndCompleted[] =
118f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.session_end_completed";
119f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
120f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Build time, in seconds since an epoch, which is used to assure that stability
121f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// metrics reported reflect stability of the same build.
122f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityStatsBuildTime[] =
123f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.stats_buildtime";
124f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
125f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Version string of previous run, which is used to assure that stability
126f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// metrics reported under current version reflect stability of the same version.
127f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kStabilityStatsVersion[] =
128f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    "user_experience_metrics.stability.stats_version";
129f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
130f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// The keys below are strictly increasing counters over the lifetime of
131f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// a chrome installation. They are (optionally) sent up to the uninstall
132f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// survey in the event of uninstallation.
133f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kUninstallLaunchCount[] = "uninstall_metrics.launch_count";
134f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)const char kUninstallMetricsUptimeSec[] = "uninstall_metrics.uptime_sec";
135f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)
136cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace prefs
137cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}  // namespace metrics
138