// 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. #include "components/enterprise/idle/metrics.h" #include "base/metrics/histogram_functions.h" #include "base/strings/stringprintf.h" namespace enterprise_idle { namespace metrics { void RecordIdleTimeoutActionTimeTaken(IdleTimeoutActionType type, base::TimeDelta time_duration) { base::UmaHistogramMediumTimes( base::StringPrintf(kUMAIdleTimeoutActionSuccessTime, GetActionNameFromActionType(type).c_str()), time_duration); } void RecordIdleTimeoutCase(IdleTimeoutCase timeout_case) { base::UmaHistogramEnumeration(kUMAIdleTimeoutActionCase, timeout_case); } void RecordActionsSuccess(IdleTimeoutActionType type, bool success) { base::UmaHistogramBoolean( base::StringPrintf(kUMAIdleTimeoutActionSuccesStatus, GetActionNameFromActionType(type).c_str()), success); } void RecordIdleTimeoutDialogEvent(IdleTimeoutDialogEvent event) { base::UmaHistogramEnumeration(kUMAIdleTimeoutDialogEvent, event); } void RecordIdleTimeoutLaunchScreenEvent(IdleTimeoutLaunchScreenEvent event) { base::UmaHistogramEnumeration(kUMAIdleTimeoutLaunchScreenEvent, event); } std::string GetActionNameFromActionType(IdleTimeoutActionType type) { switch (type) { case IdleTimeoutActionType::kClearBrowsingData: return kUMAClearBrowsingDataSuffix; case IdleTimeoutActionType::kSignOut: return kUMASignOutSuffix; case IdleTimeoutActionType::kCloseBrowsers: return kUMACloseBrowsersSuffix; case IdleTimeoutActionType::kCloseTabs: return kUMACloseTabsSuffix; case IdleTimeoutActionType::kReloadPages: return kUMAReloadPagesSuffix; case IdleTimeoutActionType::kShowProfilePicker: return kUMAShowProfilePickerSuffix; case IdleTimeoutActionType::kAllActions: return kUMAAllActionsSuffix; default: return "Unknown"; } } } // namespace metrics } // namespace enterprise_idle