| // Copyright 2019 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_PLUGIN_VM_PLUGIN_VM_METRICS_UTIL_H_ |
| #define CHROME_BROWSER_ASH_PLUGIN_VM_PLUGIN_VM_METRICS_UTIL_H_ |
| |
| #include "base/metrics/histogram_functions.h" |
| |
| namespace plugin_vm { |
| |
| extern const char kPluginVmLaunchResultHistogram[]; |
| extern const char kPluginVmSetupResultHistogram[]; |
| extern const char kPluginVmDlcUseResultHistogram[]; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class PluginVmLaunchResult { |
| kSuccess = 0, |
| kError = 1, |
| kInvalidLicense = 2, |
| kVmMissing = 3, |
| kExpiredLicense = 4, |
| kNetworkError = 5, |
| kInsufficientDiskSpace = 6, |
| kStoppedWaitingForVmTools = 7, |
| kMaxValue = kStoppedWaitingForVmTools, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class PluginVmSetupResult { |
| kSuccess = 0, |
| // kPluginVmIsNotAllowed = 1, |
| // kErrorDownloadingPluginVmImage = 2, |
| // kErrorImportingPluginVmImage = 3, |
| kUserCancelledDownloadingPluginVmImage = 4, |
| kUserCancelledImportingPluginVmImage = 5, |
| // kErrorDownloadingPluginVmDlc = 6, |
| kUserCancelledDownloadingPluginVmDlc = 7, |
| kVmAlreadyExists = 8, |
| kUserCancelledCheckingForExistingVm = 9, |
| // kErrorInsufficientDiskSpace = 10, |
| // kUserCancelledLowDiskSpace = 11, |
| kUserCancelledCheckingDiskSpace = 12, |
| // Failure reasons are broken down in PluginVm.SetupFailureReason. |
| kError = 13, |
| kUserCancelledWithoutStarting = 14, |
| kUserCancelledValidatingLicense = 15, |
| kUserCancelledStartingDispatcher = 16, |
| |
| kMaxValue = kUserCancelledStartingDispatcher, |
| }; |
| |
| // These values are persisted to logs. Entries should not be renumbered and |
| // numeric values should never be reused. |
| enum class PluginVmDlcUseResult { |
| kDlcSuccess = 0, |
| kInvalidDlcError = 1, |
| kInternalDlcError = 2, |
| kBusyDlcError = 3, |
| kNeedRebootDlcError = 4, |
| kNeedSpaceDlcError = 5, |
| kNoImageFoundDlcError = 6, |
| kMaxValue = kNoImageFoundDlcError, |
| }; |
| |
| void RecordPluginVmLaunchResultHistogram(PluginVmLaunchResult launch_result); |
| void RecordPluginVmSetupResultHistogram(PluginVmSetupResult setup_result); |
| void RecordPluginVmDlcUseResultHistogram(PluginVmDlcUseResult dlc_use_result); |
| void RecordPluginVmSetupTimeHistogram(base::TimeDelta setup_time); |
| |
| } // namespace plugin_vm |
| |
| #endif // CHROME_BROWSER_ASH_PLUGIN_VM_PLUGIN_VM_METRICS_UTIL_H_ |