arc: Persist stability metrics into local state
In case of a crash, metrics from previous session is not available when
generating initial stability logs, which is probably why aggregated
crash counts on UMA don't have ARC state associated.
This patch introduces StabilityMetricsManager, which persists stability
metrics into local state and record value from local state to UMA when
needed.
Bug: 929583
Change-Id: I747493f2462454baa7fc187421932ea71d52c9a1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1469810
Commit-Queue: Shao-Chuan Lee <[email protected]>
Reviewed-by: Hidehiko Abe <[email protected]>
Reviewed-by: Yury Khmel <[email protected]>
Reviewed-by: Mark Pearson <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: Gabriel Charette <[email protected]>
Cr-Commit-Position: refs/heads/master@{#637591}
diff --git a/components/arc/arc_prefs.h b/components/arc/arc_prefs.h
index cf17451..1e0dc0a 100644
--- a/components/arc/arc_prefs.h
+++ b/components/arc/arc_prefs.h
@@ -12,38 +12,37 @@
namespace arc {
namespace prefs {
-// Sorted in lexicographical order.
+// Profile prefs in lexicographical order. See below for local state prefs.
ARC_EXPORT extern const char kAlwaysOnVpnLockdown[];
ARC_EXPORT extern const char kAlwaysOnVpnPackage[];
ARC_EXPORT extern const char kArcActiveDirectoryPlayUserId[];
ARC_EXPORT extern const char kArcApps[];
ARC_EXPORT extern const char kArcBackupRestoreEnabled[];
+ARC_EXPORT extern const char kArcCompatibleFilesystemChosen[];
ARC_EXPORT extern const char kArcDataRemoveRequested[];
ARC_EXPORT extern const char kArcEnabled[];
ARC_EXPORT extern const char kArcFastAppReinstallPackages[];
ARC_EXPORT extern const char kArcFastAppReinstallStarted[];
ARC_EXPORT extern const char kArcInitialSettingsPending[];
-ARC_EXPORT extern const char kArcPolicyComplianceReported[];
-ARC_EXPORT extern const char kArcTermsAccepted[];
-ARC_EXPORT extern const char kArcTermsShownInOobe[];
ARC_EXPORT extern const char kArcLocationServiceEnabled[];
ARC_EXPORT extern const char kArcPackages[];
ARC_EXPORT extern const char kArcPaiStarted[];
+ARC_EXPORT extern const char kArcPolicyComplianceReported[];
ARC_EXPORT extern const char kArcProvisioningInitiatedFromOobe[];
-ARC_EXPORT extern const char kArcPushInstallAppsRequested[];
ARC_EXPORT extern const char kArcPushInstallAppsPending[];
+ARC_EXPORT extern const char kArcPushInstallAppsRequested[];
ARC_EXPORT extern const char kArcSetNotificationsEnabledDeferred[];
ARC_EXPORT extern const char kArcSignedIn[];
ARC_EXPORT extern const char kArcSkippedReportingNotice[];
ARC_EXPORT extern const char kArcSupervisionTransition[];
-ARC_EXPORT extern const char kArcCompatibleFilesystemChosen[];
+ARC_EXPORT extern const char kArcTermsAccepted[];
+ARC_EXPORT extern const char kArcTermsShownInOobe[];
ARC_EXPORT extern const char kEcryptfsMigrationStrategy[];
ARC_EXPORT extern const char kEngagementTimeBackground[];
ARC_EXPORT extern const char kEngagementTimeDayId[];
ARC_EXPORT extern const char kEngagementTimeForeground[];
ARC_EXPORT extern const char kEngagementTimeOsVersion[];
ARC_EXPORT extern const char kEngagementTimeTotal[];
-
// TODO(b/110211045): Move Assistant related prefs to ash.
ARC_EXPORT extern const char kVoiceInteractionContextEnabled[];
ARC_EXPORT extern const char kVoiceInteractionEnabled[];
@@ -52,6 +51,10 @@
ARC_EXPORT extern const char kVoiceInteractionLaunchWithMicOpen[];
ARC_EXPORT extern const char kVoiceInteractionNotificationEnabled[];
+// Local state prefs in lexicographical order.
+ARC_EXPORT extern const char kStabilityMetrics[];
+
+void RegisterLocalStatePrefs(PrefRegistrySimple* registry);
void RegisterProfilePrefs(PrefRegistrySimple* registry);
} // namespace prefs