blob: 0a1f74dfda13faca70da4d32c1e9e8865b3c1a82 [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ASH_SCANNER_SCANNER_METRICS_H_
#define ASH_SCANNER_SCANNER_METRICS_H_
#include <string_view>
#include "ash/ash_export.h"
#include "base/time/time.h"
namespace ash {
inline constexpr std::string_view
kScannerFeatureTimerExecutePopulatedNewCalendarEventAction =
"Ash.ScannerFeature.Timer.ExecutePopulatedNewCalendarEventAction";
inline constexpr std::string_view
kScannerFeatureTimerExecutePopulatedNewContactAction =
"Ash.ScannerFeature.Timer.ExecutePopulatedNewContactAction";
inline constexpr std::string_view
kScannerFeatureTimerExecutePopulatedNewGoogleSheetAction =
"Ash.ScannerFeature.Timer.ExecutePopulatedNewGoogleSheetAction";
inline constexpr std::string_view
kScannerFeatureTimerExecutePopulatedNewGoogleDocAction =
"Ash.ScannerFeature.Timer.ExecutePopulatedNewGoogleDocAction";
inline constexpr std::string_view
kScannerFeatureTimerExecutePopulatedNewCopyToClipboardAction =
"Ash.ScannerFeature.Timer.ExecutePopulatedNewCopyToClipboardAction";
inline constexpr std::string_view kScannerFeatureTimerFetchActionsForImage =
"Ash.ScannerFeature.Timer.FetchActionsForImage";
inline constexpr std::string_view
kScannerFeatureTimerPopulateNewCalendarEventAction =
"Ash.ScannerFeature.Timer.PopulateNewCalendarEventAction";
inline constexpr std::string_view kScannerFeatureTimerPopulateNewContactAction =
"Ash.ScannerFeature.Timer.PopulateNewContactAction";
inline constexpr std::string_view
kScannerFeatureTimerPopulateNewGoogleSheetAction =
"Ash.ScannerFeature.Timer.PopulateNewGoogleSheetAction";
inline constexpr std::string_view
kScannerFeatureTimerPopulateNewGoogleDocAction =
"Ash.ScannerFeature.Timer.PopulateNewGoogleDocAction";
inline constexpr std::string_view
kScannerFeatureTimerPopulateNewCopyToClipboardAction =
"Ash.ScannerFeature.Timer.PopulateNewCopyToClipboardAction";
// Enum for histogram. Stores what state the user is in.
// LINT.IfChange(ScannerFeatureUserState)
enum class ScannerFeatureUserState {
kConsentDisclaimerAccepted,
kConsentDisclaimerRejected,
kSunfishScreenEnteredViaShortcut,
kDeprecatedSunfishScreenInitialScreenCaptureSentToScannerServer,
kScreenCaptureModeScannerButtonShown,
kDeprecatedScreenCaptureModeInitialScreenCaptureSentToScannerServer,
kNoActionsDetected,
kNewCalendarEventActionDetected,
kNewCalendarEventActionFinishedSuccessfully,
kNewCalendarEventActionPopulationFailed,
kNewContactActionDetected,
kNewContactActionFinishedSuccessfully,
kNewContactActionPopulationFailed,
kNewGoogleSheetActionDetected,
kNewGoogleSheetActionFinishedSuccessfully,
kNewGoogleSheetActionPopulationFailed,
kNewGoogleDocActionDetected,
kNewGoogleDocActionFinishedSuccessfully,
kNewGoogleDocActionPopulationFailed,
kCopyToClipboardActionDetected,
kCopyToClipboardActionFinishedSuccessfully,
kCopyToClipboardActionPopulationFailed,
kNewCalendarEventPopulatedActionExecutionFailed,
kNewContactPopulatedActionExecutionFailed,
kNewGoogleSheetPopulatedActionExecutionFailed,
kNewGoogleDocPopulatedActionExecutionFailed,
kCopyToClipboardPopulatedActionExecutionFailed,
kCanShowUiReturnedFalse = 27,
kCanShowUiReturnedTrueWithoutConsent = 28,
kCanShowUiReturnedTrueWithConsent = 29,
kCanShowUiReturnedFalseDueToNoShellInstance = 30,
kCanShowUiReturnedFalseDueToNoControllerOnShell = 31,
kCanShowUiReturnedFalseDueToEnterprisePolicy = 32,
kCanShowUiReturnedFalseDueToNoProfileScopedDelegate = 33,
kCanShowUiReturnedFalseDueToSettingsToggle = 34,
kCanShowUiReturnedFalseDueToFeatureFlag = 35,
kCanShowUiReturnedFalseDueToFeatureManagement = 36,
kCanShowUiReturnedFalseDueToSecretKey = 37,
kCanShowUiReturnedFalseDueToAccountCapabilities = 38,
kCanShowUiReturnedFalseDueToCountry = 39,
kCanShowUiReturnedFalseDueToKioskMode = 40,
kLauncherShownWithoutSunfishSessionButton = 41,
kLauncherShownWithSunfishSessionButton = 42,
kSunfishSessionImageCapturedAndActionsNotFetched = 43,
kSunfishSessionImageCapturedAndActionsFetchStarted = 44,
kSmartActionsButtonImageCapturedAndActionsNotFetched = 45,
kSmartActionsButtonImageCapturedAndActionsFetchStarted = 46,
kSmartActionsButtonNotShownDueToFeatureChecks = 47,
kSmartActionsButtonNotShownDueToTextDetectionCancelled = 48,
kSmartActionsButtonNotShownDueToNoTextDetected = 49,
kSmartActionsButtonNotShownDueToCanShowUiFalse = 50,
kSmartActionsButtonNotShownDueToOffline = 51,
kSunfishSessionStartedFromDebugShortcut = 52,
kSunfishSessionStartedFromLauncherButton = 53,
kSunfishSessionStartedFromHomeButtonLongPress = 54,
kFeedbackFormOpened = 55,
kFeedbackSent = 56,
// These enum values should semantically be placed in a group above:
// Should be placed after `NoControllerOnShell` and before `EnterprisePolicy`.
kCanShowUiReturnedFalseDueToPinnedMode = 57,
kSunfishSessionStartedFromKeyboardShortcut = 58,
kMaxValue = kSunfishSessionStartedFromKeyboardShortcut,
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/ash/enums.xml:ScannerFeatureUserState)
ASH_EXPORT void RecordScannerFeatureUserState(ScannerFeatureUserState state);
ASH_EXPORT void RecordOnDeviceOcrTimerCompleted(
base::TimeTicks ocr_attempt_start_time);
ASH_EXPORT void RecordSunfishSessionButtonVisibilityOnLauncherShown(
bool is_visible);
} // namespace ash
#endif // ASH_SCANNER_SCANNER_METRICS_H_