chromium/ui/touch_selection/touch_selection_metrics.h

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef UI_TOUCH_SELECTION_TOUCH_SELECTION_METRICS_H_
#define UI_TOUCH_SELECTION_TOUCH_SELECTION_METRICS_H_

#include "base/time/time.h"
#include "ui/touch_selection/ui_touch_selection_export.h"

namespace ui {
class Event;

inline constexpr char kTouchSelectionDragTypeHistogramName[] =;

inline constexpr char kTouchSelectionMenuActionHistogramName[] =;

inline constexpr char kTouchCursorSessionTouchDownCountHistogramName[] =;

inline constexpr char kTouchSelectionSessionTouchDownCountHistogramName[] =;

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class TouchSelectionDragType {};

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class TouchSelectionMenuAction {};

UI_TOUCH_SELECTION_EXPORT void RecordTouchSelectionDrag(
    TouchSelectionDragType drag_type);

UI_TOUCH_SELECTION_EXPORT void RecordTouchSelectionMenuCommandAction(
    int command_id);
UI_TOUCH_SELECTION_EXPORT void RecordTouchSelectionMenuEllipsisAction();
UI_TOUCH_SELECTION_EXPORT void RecordTouchSelectionMenuSmartAction();

// Helper class for tracking the state of touch selection sessions and recording
// session related metrics.
class UI_TOUCH_SELECTION_EXPORT TouchSelectionSessionMetricsRecorder {};

}  // namespace ui

#endif  // UI_TOUCH_SELECTION_TOUCH_SELECTION_METRICS_H_