| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_ASH_BOREALIS_BOREALIS_METRICS_H_ |
| #define CHROME_BROWSER_ASH_BOREALIS_BOREALIS_METRICS_H_ |
| |
| #include "base/time/time.h" |
| #include "chrome/browser/ash/borealis/borealis_types.mojom-forward.h" |
| |
| namespace borealis { |
| |
| extern const char kBorealisInstallNumAttemptsHistogram[]; |
| extern const char kBorealisInstallResultHistogram[]; |
| extern const char kBorealisInstallSourceHistogram[]; |
| extern const char kBorealisInstallOverallTimeHistogram[]; |
| extern const char kBorealisShutdownNumAttemptsHistogram[]; |
| extern const char kBorealisShutdownResultHistogram[]; |
| extern const char kBorealisStabilityHistogram[]; |
| extern const char kBorealisStartupNumAttemptsHistogram[]; |
| extern const char kBorealisStartupResultHistogram[]; |
| extern const char kBorealisStartupOverallTimeHistogram[]; |
| extern const char kBorealisUninstallNumAttemptsHistogram[]; |
| extern const char kBorealisUninstallResultHistogram[]; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisLaunchSource { |
| kUnknown = 0, |
| kInstallUrl = 1, |
| kUnifiedAppInstaller = 2, |
| kSteamInstallerApp = 3, |
| kInsertCoin = 4, |
| kAppUninstaller = 5, |
| kAppUrlHandler = 6, |
| kErrorDialogRetryButton = 7, |
| kPostInstallLaunch = 8, |
| kMaxValue = kPostInstallLaunch, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisUninstallResult { |
| kSuccess = 0, |
| kAlreadyInProgress = 1, |
| kShutdownFailed = 2, |
| kRemoveDiskFailed = 3, |
| kRemoveDlcFailed = 4, |
| kMaxValue = kRemoveDlcFailed, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisStartupResult { |
| kSuccess = 0, |
| kCancelled = 1, |
| // kMountFailed = 2, // No longer used, expanded into kDlc*. |
| kDiskImageFailed = 3, |
| kStartVmFailed = 4, |
| kAwaitBorealisStartupFailed = 5, |
| kSyncDiskFailed = 6, |
| kRequestWaylandFailed = 7, |
| kDisallowed = 8, |
| kDlcCancelled = 9, |
| kDlcOffline = 10, |
| kDlcNeedUpdateError = 11, |
| kDlcNeedRebootError = 12, |
| kDlcNeedSpaceError = 13, |
| kDlcBusyError = 14, |
| kDlcInternalError = 15, |
| kDlcUnsupportedError = 16, |
| kDlcUnknownError = 17, |
| kConciergeUnavailable = 18, |
| kEmptyDiskResponse = 19, |
| kStartVmEmptyResponse = 20, |
| // Remember to add new entries to histograms/enums.xml. |
| kMaxValue = kStartVmEmptyResponse, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisGetDiskInfoResult { |
| kSuccess = 0, |
| kAlreadyInProgress = 1, |
| kFailedGettingExpandableSpace = 2, |
| kConciergeFailed = 3, |
| kInvalidRequest = 4, |
| kMaxValue = kInvalidRequest, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisResizeDiskResult { |
| kSuccess = 0, |
| kAlreadyInProgress = 1, |
| kFailedToGetDiskInfo = 2, |
| kInvalidDiskType = 3, |
| kNotEnoughExpandableSpace = 4, |
| kWouldNotLeaveEnoughSpace = 5, |
| kViolatesMinimumSize = 6, |
| kConciergeFailed = 7, |
| kFailedGettingUpdate = 8, |
| kInvalidRequest = 9, |
| kOverflowError = 10, |
| kFailedToFulfillRequest = 11, |
| kMaxValue = kFailedToFulfillRequest, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisSyncDiskSizeResult { |
| kDiskNotFixed = 0, |
| kNoActionNeeded = 1, |
| kNotEnoughSpaceToExpand = 2, |
| kResizedPartially = 3, |
| kResizedSuccessfully = 4, |
| kAlreadyInProgress = 5, |
| kFailedToGetDiskInfo = 6, |
| kResizeFailed = 7, |
| kDiskSizeSmallerThanMin = 8, |
| kMaxValue = kDiskSizeSmallerThanMin, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class BorealisShutdownResult { |
| kSuccess = 0, |
| kInProgress = 1, |
| kFailed = 2, |
| kMaxValue = kFailed, |
| }; |
| |
| void RecordBorealisInstallNumAttemptsHistogram(); |
| void RecordBorealisInstallResultHistogram( |
| borealis::mojom::InstallResult install_result); |
| void RecordBorealisInstallSourceHistogram(BorealisLaunchSource install_source); |
| void RecordBorealisInstallOverallTimeHistogram(base::TimeDelta install_time); |
| void RecordBorealisLaunchSourceHistogram(BorealisLaunchSource launch_source); |
| void RecordBorealisUninstallNumAttemptsHistogram(); |
| void RecordBorealisUninstallResultHistogram( |
| BorealisUninstallResult uninstall_result); |
| void RecordBorealisStartupNumAttemptsHistogram(); |
| void RecordBorealisStartupResultHistogram(BorealisStartupResult startup_result); |
| void RecordBorealisStartupOverallTimeHistogram(base::TimeDelta startup_time); |
| void RecordBorealisStartupTimeToFirstWindowHistogram( |
| base::TimeDelta startup_time); |
| void RecordBorealisShutdownNumAttemptsHistogram(); |
| void RecordBorealisShutdownResultHistogram( |
| BorealisShutdownResult shutdown_result); |
| |
| } // namespace borealis |
| |
| std::ostream& operator<<(std::ostream& stream, |
| borealis::BorealisStartupResult result); |
| |
| #endif // CHROME_BROWSER_ASH_BOREALIS_BOREALIS_METRICS_H_ |