0

scanner: Add metrics for non-debug keyboard shortcut

Bug: b:393140991, b:381766720
Change-Id: I6a6a210062881c62bd6b5bdc9f06da3985adcda4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6367566
Reviewed-by: Min Chen <minch@chromium.org>
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Michelle Chen <michellegc@google.com>
Reviewed-by: Jimmy Gong <jimmyxgong@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1436674}
This commit is contained in:
Michael Cui
2025-03-23 20:21:25 -07:00
committed by Chromium LUCI CQ
parent 154577c8fb
commit 07106f9d24
4 changed files with 37 additions and 2 deletions
ash
tools/metrics/histograms/metadata/ash

@ -40,6 +40,7 @@
#include "ash/quick_insert/quick_insert_controller.h"
#include "ash/root_window_controller.h"
#include "ash/rotator/window_rotation.h"
#include "ash/scanner/scanner_metrics.h"
#include "ash/session/session_controller_impl.h"
#include "ash/shelf/shelf.h"
#include "ash/shelf/shelf_focus_cycler.h"
@ -1267,7 +1268,8 @@ void ShowTaskManager() {
}
void StartSunfishSession() {
// TODO: crbug.com/393140991 - Record a metric here.
RecordScannerFeatureUserState(
ScannerFeatureUserState::kSunfishSessionStartedFromKeyboardShortcut);
CaptureModeController::Get()->StartSunfishSession();
}

@ -301,6 +301,22 @@ TEST_F(SunfishDisabledScannerDisabledTest,
ScannerFeatureUserState::kSunfishSessionStartedFromDebugShortcut, 0);
}
// Tests that the debug accelerator entry point does not emit metrics when
// neither Sunfish nor Scanner is enabled.
TEST_F(SunfishDisabledScannerDisabledTest, AccelEntryPointDoesNotEmitMetrics) {
base::HistogramTester histogram_tester;
histogram_tester.ExpectBucketCount(
"Ash.ScannerFeature.UserState",
ScannerFeatureUserState::kSunfishSessionStartedFromKeyboardShortcut, 0);
PressAndReleaseKey(ui::VKEY_8,
ui::EF_CONTROL_DOWN | ui::EF_ALT_DOWN | ui::EF_SHIFT_DOWN);
histogram_tester.ExpectBucketCount(
"Ash.ScannerFeature.UserState",
ScannerFeatureUserState::kSunfishSessionStartedFromKeyboardShortcut, 0);
}
TEST_F(SunfishDisabledScannerDisabledTest,
SmartActionsButtonNotShownDueToFeatureChecksRecorded) {
base::HistogramTester histogram_tester;
@ -546,6 +562,20 @@ TEST_F(SunfishTest, AccelEntryPoint) {
EXPECT_EQ(active_behavior->behavior_type(), BehaviorType::kSunfish);
}
// Tests that the accelerator entry point emits the correct metrics.
TEST_F(SunfishTest, AccelEntryPointMetrics) {
base::HistogramTester histogram_tester;
histogram_tester.ExpectBucketCount(
"Ash.ScannerFeature.UserState",
ScannerFeatureUserState::kSunfishSessionStartedFromKeyboardShortcut, 0);
PressAndReleaseKey(ui::VKEY_SPACE, ui::EF_COMMAND_DOWN);
histogram_tester.ExpectBucketCount(
"Ash.ScannerFeature.UserState",
ScannerFeatureUserState::kSunfishSessionStartedFromKeyboardShortcut, 1);
}
TEST_F(SunfishEnabledScannerDisabledTest,
AccelEntryPointIsNoopIfEnterpriseDisabled) {
auto* controller = CaptureModeController::Get();

@ -125,8 +125,9 @@ enum class ScannerFeatureUserState {
// These enum values should semantically be placed in a group above:
// Should be placed after `NoControllerOnShell` and before `EnterprisePolicy`.
kCanShowUiReturnedFalseDueToPinnedMode = 57,
kSunfishSessionStartedFromKeyboardShortcut = 58,
kMaxValue = kCanShowUiReturnedFalseDueToPinnedMode,
kMaxValue = kSunfishSessionStartedFromKeyboardShortcut,
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/ash/enums.xml:ScannerFeatureUserState)

@ -2035,6 +2035,8 @@ chromeos/ash/components/peripheral_notification/peripheral_notification_manager.
<int value="55" label="Feedback dialog was opened"/>
<int value="56" label="Feedback sent"/>
<int value="57" label="&quot;Do not show UI&quot; resulted from pinned mode"/>
<int value="58"
label="Sunfish-session started using the non-debug keyboard shortcut"/>
</enum>
<!-- LINT.ThenChange(//ash/scanner/scanner_metrics.h:ScannerFeatureUserState) -->