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