#ifndef ASH_WM_WINDOW_RESTORE_WINDOW_RESTORE_METRICS_H_
#define ASH_WM_WINDOW_RESTORE_WINDOW_RESTORE_METRICS_H_
#include "base/time/time.h"
class PrefService;
namespace ash {
inline constexpr char kDialogClosedHistogram[] = "Ash.Pine.DialogClosed";
inline constexpr char kScreenshotOnShutdownStatus[] =
"Ash.Pine.ScreenshotOnShutdownStatus";
inline constexpr char kDialogScreenshotVisibility[] =
"Ash.Pine.DialogScreenshotVisibility";
inline constexpr char kInformedRestoreOnboardingHistogram[] =
"Ash.Pine.OnboardingDialog.TurnRestoreOn";
inline constexpr char kFullRestoreDialogHistogram[] =
"Ash.FullRestore.ShowInformedRestoreDialog";
enum class ScreenshotOnShutdownStatus {
kSucceeded,
kFailedInOverview,
kFailedInLockScreen,
kFailedInHomeLauncher,
kFailedInPinnedMode,
kFailedWithIncognito,
kFailedWithNoWindows,
kFailedOnTakingScreenshotTimeout,
kFailedOnDifferentOrientations,
kFailedOnDLP,
kFailedInGuestOrPublicUserSession,
kFailedOtherUserIsActive,
kFailedWithVisibleWindowFromOtherUser,
kFailedSessionIsNotActive,
kMaxValue = kFailedSessionIsNotActive,
};
enum class CloseDialogType {
kListviewRestoreButton,
kListviewCancelButton,
kListviewOther,
kScreenshotRestoreButton,
kScreenshotCancelButton,
kScreenshotOther,
kMaxValue = kScreenshotOther,
};
void RecordDialogClosing(CloseDialogType type);
void RecordScreenshotOnShutdownStatus(ScreenshotOnShutdownStatus status);
void RecordScreenshotDurations(PrefService* local_state);
void RecordDialogScreenshotVisibility(bool visible);
void RecordScreenshotDecodeDuration(base::TimeDelta duration);
void RecordTimeToAction(base::TimeDelta duration, bool showing_listview);
void RecordOnboardingAction(bool restore);
}
#endif