| // 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. |
| |
| #ifndef COMPONENTS_METRICS_METRICS_PREF_NAMES_H_ |
| #define COMPONENTS_METRICS_METRICS_PREF_NAMES_H_ |
| |
| #include "build/build_config.h" |
| |
| namespace metrics { |
| namespace prefs { |
| |
| // Alphabetical list of preference names specific to the metrics |
| // component. |
| |
| // 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. |
| inline constexpr char kInstallDate[] = "uninstall_metrics.installation_date2"; |
| |
| // 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. |
| inline constexpr char kMetricsProvisionalClientID[] = |
| "user_experience_metrics.provisional_client_id"; |
| |
| // 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. |
| inline constexpr char kMetricsClientID[] = "user_experience_metrics.client_id2"; |
| |
| // 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. |
| inline constexpr char kMetricsDefaultOptIn[] = |
| "user_experience_metrics.default_opt_in"; |
| |
| // 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. |
| inline constexpr char kMetricsInitialLogs[] = |
| "user_experience_metrics.initial_logs2"; |
| |
| // 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. |
| inline constexpr char kMetricsInitialLogsMetadata[] = |
| "user_experience_metrics.unsent_log_metadata.initial_logs"; |
| |
| // A serialized representation of a base::UnguessableToken, used for randomizing |
| // limited entropy field trials. |
| inline constexpr char kMetricsLimitedEntropyRandomizationSource[] = |
| "user_experience_metrics.limited_entropy_randomization_source"; |
| |
| // A counter tracking the most recently used finalized log record id. Increment |
| // this value by one (1) for each finalized log. |
| inline constexpr char kMetricsLogFinalizedRecordId[] = |
| "user_experience_metrics.log_finalized_record_id"; |
| |
| // A counter tracking the most recently used log record id. Increment this value |
| // by one (1) for each newly created log. |
| inline constexpr char kMetricsLogRecordId[] = |
| "user_experience_metrics.log_record_id"; |
| |
| // 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"). |
| inline constexpr char kMetricsLowEntropySource[] = |
| "user_experience_metrics.low_entropy_source3"; |
| inline constexpr char kMetricsOldLowEntropySource[] = |
| "user_experience_metrics.low_entropy_source2"; |
| inline constexpr char kMetricsPseudoLowEntropySource[] = |
| "user_experience_metrics.pseudo_low_entropy_source"; |
| |
| // A machine ID used to detect when underlying hardware changes. It is only |
| // stored locally and never transmitted in metrics reports. |
| inline constexpr char kMetricsMachineId[] = |
| "user_experience_metrics.machine_id"; |
| |
| // 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. |
| inline constexpr char kMetricsOngoingLogs[] = |
| "user_experience_metrics.ongoing_logs2"; |
| |
| // An dictionary that is same as kUnsentLogMetkMetricsInitialLogsMetadata, |
| // but for the ongoing logs. |
| inline constexpr char kMetricsOngoingLogsMetadata[] = |
| "user_experience_metrics.unsent_log_metadata.ongoing_logs"; |
| |
| // Boolean that indicates a cloned install has been detected and the metrics |
| // client id and low entropy source should be reset. |
| inline constexpr char kMetricsResetIds[] = |
| "user_experience_metrics.reset_metrics_ids"; |
| |
| #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. |
| inline constexpr char kUsePostFREFixSamplingTrial[] = |
| "user_experience_metrics.use_post_fre_fix_sampling_trial"; |
| #endif // BUILDFLAG(IS_ANDROID) |
| |
| |
| // For finding out whether metrics and crash reporting is enabled use the |
| // relevant embedder-specific subclass of MetricsServiceAccessor instead of |
| // reading this pref directly; see the comments on metrics_service_accessor.h. |
| // (NOTE: If within //chrome, use |
| // ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled()). |
| |
| // Boolean that specifies whether or not crash reporting and metrics reporting |
| // are sent over the network for analysis. |
| inline constexpr char kMetricsReportingEnabled[] = |
| "user_experience_metrics.reporting_enabled"; |
| // 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). |
| inline constexpr char kMetricsReportingEnabledTimestamp[] = |
| "user_experience_metrics.client_id_timestamp"; |
| // The metrics client session ID. |
| inline constexpr char kMetricsSessionID[] = |
| "user_experience_metrics.session_id"; |
| // The prefix of the last-seen timestamp for persistent histogram files. |
| // Values are named for the files themselves. |
| inline constexpr char kMetricsLastSeenPrefix[] = |
| "user_experience_metrics.last_seen."; |
| // Array of the number of samples in the memory mapped file. |
| inline constexpr char kMetricsFileMetricsMetadata[] = |
| "user_experience_metrics.file_metrics_metadata"; |
| |
| // Preferences for cloned installs. |
| |
| // The number of times the client has been reset due to cloned install. |
| inline constexpr char kClonedResetCount[] = "cloned_install.count"; |
| // The first timestamp when we reset a cloned client’s client id. This is only |
| // set once. Attached to metrics reports forever thereafter. |
| inline constexpr char kFirstClonedResetTimestamp[] = |
| "cloned_install.first_timestamp"; |
| // 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. |
| inline constexpr char kLastClonedResetTimestamp[] = |
| "cloned_install.last_timestamp"; |
| // The start of the latest session during which the install was detected as |
| // cloned. Not to be mixed up with the metrics ID reset moment recorded in |
| // `kLastClonedResetTimestamp`, which requires a restart after the clone |
| // detection. This one is intended as a reference point to check whether some |
| // other event happened on the original machine or on the clone. This will be |
| // updated every time a cloned install is detected, and cleared alongside the |
| // other `cloned_install` prefs on UMA opt-out. |
| inline constexpr char kSessionStartTimestampForLastClonedDetection[] = |
| "cloned_install.session_start_last_detection_timestamp"; |
| |
| // Preferences for recording stability logs. |
| |
| // 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. |
| inline constexpr char kStabilityBrowserLastLiveTimeStamp[] = |
| "user_experience_metrics.stability.browser_last_live_timestamp"; |
| // Number of times the application exited uncleanly since the last report |
| // due to a gms core update. |
| inline constexpr char kStabilityCrashCountDueToGmsCoreUpdate[] = |
| "user_experience_metrics.stability.crash_count_due_to_gms_core_update"; |
| |
| // TODO(crbug.com/40194783): Remove this Local State pref once the new behavior |
| // launches on Android Chrome. |
| // True if the previous run of the program exited cleanly. |
| inline constexpr char kStabilityExitedCleanly[] = |
| "user_experience_metrics.stability.exited_cleanly"; |
| |
| // 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. |
| inline constexpr char kStabilityFileMetricsUnsentSamplesCount[] = |
| "user_experience_metrics.stability.file_metrics_unsent_samples_count"; |
| |
| // The number of the unsent files at the time the stability recorded. |
| inline constexpr char kStabilityFileMetricsUnsentFilesCount[] = |
| "user_experience_metrics.stability.file_metrics_unsent_files_count"; |
| |
| // The GMS core version used in Chrome. |
| inline constexpr char kStabilityGmsCoreVersion[] = |
| "user_experience_metrics.stability.gms_core_version"; |
| |
| #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. |
| inline constexpr char kStabilityLaunchCount[] = |
| "user_experience_metrics.stability.launch_count"; |
| |
| // Number of times a page load event occurred since the last report. |
| inline constexpr 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. |
| inline constexpr char kStabilityRendererLaunchCount[] = |
| "user_experience_metrics.stability.renderer_launch_count"; |
| #endif |
| |
| // Base64 encoded serialized UMA system profile proto from the previous session. |
| inline constexpr char kStabilitySavedSystemProfile[] = |
| "user_experience_metrics.stability.saved_system_profile"; |
| |
| // SHA-1 hash of the serialized UMA system profile proto (hex encoded). |
| inline constexpr char kStabilitySavedSystemProfileHash[] = |
| "user_experience_metrics.stability.saved_system_profile_hash"; |
| |
| // Build time, in seconds since an epoch, which is used to assure that stability |
| // metrics reported reflect stability of the same build. |
| inline constexpr char kStabilityStatsBuildTime[] = |
| "user_experience_metrics.stability.stats_buildtime"; |
| |
| // Version string of previous run, which is used to assure that stability |
| // metrics reported under current version reflect stability of the same version. |
| inline constexpr char kStabilityStatsVersion[] = |
| "user_experience_metrics.stability.stats_version"; |
| |
| // Number of times the application exited uncleanly and the system session |
| // embedding the browser session ended abnormally since the last report. |
| // Windows only. |
| inline constexpr char kStabilitySystemCrashCount[] = |
| "user_experience_metrics.stability.system_crash_count"; |
| |
| // For measuring data use for throttling UMA log uploads on cellular. |
| |
| // Dictionary for measuring cellular data used by UKM service during last 7 |
| // days. |
| inline constexpr char kUkmCellDataUse[] = |
| "user_experience_metrics.ukm_cell_datause"; |
| // Dictionary for measuring cellular data used by UMA service during last 7 |
| // days. |
| inline constexpr char kUmaCellDataUse[] = |
| "user_experience_metrics.uma_cell_datause"; |
| // Dictionary for measuring cellular data used by user including chrome services |
| // per day. |
| inline constexpr char kUserCellDataUse[] = |
| "user_experience_metrics.user_call_datause"; |
| |
| // For supporting per-user collection on Chrome OS. |
| |
| // 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. |
| inline constexpr char kMetricsCurrentUserId[] = "metrics.current_user_id"; |
| |
| } // namespace prefs |
| } // namespace metrics |
| |
| #endif // COMPONENTS_METRICS_METRICS_PREF_NAMES_H_ |