// Copyright 2014 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/metrics/metrics_pref_names.h" namespace metrics { namespace prefs { // Set once, to the current epoch time, on the first run of chrome on this // machine. Attached to metrics reports forever thereafter. // Note: the 'uninstall_metrics' name is a legacy name and doesn't mean much. const char kInstallDate[] = …; // A provisional metrics client GUID used for field trial group assignments // before metrics reporting consent is known (i.e., during first run). This GUID // is never reported directly. However, if the user enables UMA, this // provisional client GUID becomes the metrics client GUID (see // |kMetricsClientID|), and this pref is cleared. In that case, the GUID may // be reported. // Note: This GUID is stored in prefs because it is possible that the user // closes Chrome during the FRE. We re-use this GUID in subsequent FRE runs // until metrics reporting consent is truly known. const char kMetricsProvisionalClientID[] = …; // The metrics client GUID. // Note: The name client_id2 is a result of creating // new prefs to do a one-time reset of the previous values. const char kMetricsClientID[] = …; // An enum value indicating the default value of the enable metrics reporting // checkbox shown during first-run. If it's opt-in, then the checkbox defaulted // to unchecked, if it's opt-out, then it defaulted to checked. This value is // only recorded during first-run, so older clients will not set it. The enum // used for the value is metrics::MetricsServiceClient::EnableMetricsDefault. const char kMetricsDefaultOptIn[] = …; // Array of dictionaries that are each UMA logs that were supposed to be sent in // the first minute of a browser session. These logs include things like crash // count info, etc. const char kMetricsInitialLogs[] = …; // An dictionary of information about the unsent initial logs, it was // recorded when the unsent log is persisted and will be written into the // metrics at the next browser starts up. const char kMetricsInitialLogsMetadata[] = …; // A serialized representation of a base::UnguessableToken, used for randomizing // limited entropy field trials. const char kMetricsLimitedEntropyRandomizationSource[] = …; // A counter tracking the most recently used finalized log record id. Increment // this value by one (1) for each finalized log. const char kMetricsLogFinalizedRecordId[] = …; // A counter tracking the most recently used log record id. Increment this value // by one (1) for each newly created log. const char kMetricsLogRecordId[] = …; // Low entropy source values. The new source (with suffix "3") was created // because the old source (with suffix "2") is biased in the wild. Clients which // have an old source still incorporate it into the high entropy source, to // avoid reshuffling experiments using high entropy, but use the new source for // experiments requiring low entropy. Newer clients only have the new source, // and use it both for low entropy experiments to to incorporate into the high // entropy source for high entropy experiments. The pseudo low entropy source // is not used for trial assignment, but only for statistical validation. It // should be assigned in the same way as the new source (with suffix "3"). const char kMetricsLowEntropySource[] = …; const char kMetricsOldLowEntropySource[] = …; const char kMetricsPseudoLowEntropySource[] = …; // A machine ID used to detect when underlying hardware changes. It is only // stored locally and never transmitted in metrics reports. const char kMetricsMachineId[] = …; // Array of dictionaries that are each UMA logs that were not sent because the // browser terminated before these accumulated metrics could be sent. These // logs typically include histograms and memory reports, as well as ongoing // user activities. const char kMetricsOngoingLogs[] = …; // An dictionary that is same as kUnsentLogMetkMetricsInitialLogsMetadata, // but for the ongoing logs. const char kMetricsOngoingLogsMetadata[] = …; // Boolean that indicates a cloned install has been detected and the metrics // client id and low entropy source should be reset. const char kMetricsResetIds[] = …; #if BUILDFLAG(IS_ANDROID) // Boolean that determines whether to use the new sampling trial // "PostFREFixMetricsAndCrashSampling" and feature "PostFREFixMetricsReporting" // to control sampling on Android Chrome. This is set to true when disabling // metrics reporting, or on start up if metrics reporting is not consented to // (including new users going through their first run). As a result, all new UMA // users should have this pref set to true. // Note: This exists due to a bug in which the old sampling rate was not being // applied correctly. In order for the fix to not affect the overall sampling // rate, this pref controls what trial/feature to use to determine whether the // client is sampled. See crbug/1306481. const char kUsePostFREFixSamplingTrial[] = "user_experience_metrics.use_post_fre_fix_sampling_trial"; #endif // BUILDFLAG(IS_ANDROID) // Boolean that specifies whether or not crash reporting and metrics reporting // are sent over the network for analysis. const char kMetricsReportingEnabled[] = …; // Date/time when the user opted in to UMA and generated the client id most // recently (local machine time, stored as a 64-bit time_t value). const char kMetricsReportingEnabledTimestamp[] = …; // The metrics client session ID. const char kMetricsSessionID[] = …; // The prefix of the last-seen timestamp for persistent histogram files. // Values are named for the files themselves. const char kMetricsLastSeenPrefix[] = …; // Array of the number of samples in the memory mapped file. const char kMetricsFileMetricsMetadata[] = …; // The number of times the client has been reset due to cloned install. const char kClonedResetCount[] = …; // The first timestamp when we reset a cloned client’s client id. This is only // set once. Attached to metrics reports forever thereafter. const char kFirstClonedResetTimestamp[] = …; // The last timestamp the client is reset due to cloned install. This will be // updated every time we reset the client due to cloned install. const char kLastClonedResetTimestamp[] = …; // A time stamp at which time the browser was known to be alive. Used to // evaluate whether the browser crash was due to a whole system crash. // At minimum this is updated each time the "exited_cleanly" preference is // modified, but can also be optionally updated on a slow schedule. const char kStabilityBrowserLastLiveTimeStamp[] = …; // Number of times the application exited uncleanly since the last report // due to a gms core update. const char kStabilityCrashCountDueToGmsCoreUpdate[] = …; // True if the previous run of the program exited cleanly. const char kStabilityExitedCleanly[] = …; // The total number of samples that will be lost if ASSOCIATE_INTERNAL_PROFILE // isn't enabled since the previous stability recorded, this is different than // the previous browser run, because one file was just uploaded before the // stability is recorded. const char kStabilityFileMetricsUnsentSamplesCount[] = …; // The number of the unsent files at the time the stability recorded. const char kStabilityFileMetricsUnsentFilesCount[] = …; // The GMS core version used in Chrome. const char kStabilityGmsCoreVersion[] = …; #if BUILDFLAG(IS_ANDROID) // Number of times the application was launched since last report. Used on // Android platforms as WebView may still be interested in this metric. const char kStabilityLaunchCount[] = "user_experience_metrics.stability.launch_count"; // Number of times a page load event occurred since the last report. const char kStabilityPageLoadCount[] = "user_experience_metrics.stability.page_load_count"; // Number of times a renderer process successfully launched since the last // report. Used on Android platforms as WebView may still be interested in this // metric. const char kStabilityRendererLaunchCount[] = "user_experience_metrics.stability.renderer_launch_count"; #endif // Base64 encoded serialized UMA system profile proto from the previous session. const char kStabilitySavedSystemProfile[] = …; // SHA-1 hash of the serialized UMA system profile proto (hex encoded). const char kStabilitySavedSystemProfileHash[] = …; // Build time, in seconds since an epoch, which is used to assure that stability // metrics reported reflect stability of the same build. const char kStabilityStatsBuildTime[] = …; // Version string of previous run, which is used to assure that stability // metrics reported under current version reflect stability of the same version. const char kStabilityStatsVersion[] = …; // Number of times the application exited uncleanly and the system session // embedding the browser session ended abnormally since the last report. // Windows only. const char kStabilitySystemCrashCount[] = …; // Dictionary for measuring cellular data used by UKM service during last 7 // days. const char kUkmCellDataUse[] = …; // Dictionary for measuring cellular data used by UMA service during last 7 // days. const char kUmaCellDataUse[] = …; // Dictionary for measuring cellular data used by user including chrome services // per day. const char kUserCellDataUse[] = …; // String for holding user ID associated with the current ongoing UMA // log. This pref will be used to determine whether to send metrics in case // of a crash. const char kMetricsCurrentUserId[] = …; } // namespace prefs } // namespace metrics