chromium/chrome/browser/apps/app_service/metrics/shortcut_metrics.h

// 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 CHROME_BROWSER_APPS_APP_SERVICE_METRICS_SHORTCUT_METRICS_H_
#define CHROME_BROWSER_APPS_APP_SERVICE_METRICS_SHORTCUT_METRICS_H_

namespace apps {

extern const char kShortcutLaunchSourceHistogram[];

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class ShortcutActionSource {
  kLauncher = 0,
  kShelf = 1,
  kMaxValue = kShelf
};

// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
enum class ShortcutPinAction { kPin = 0, kUnpin = 1, kMaxValue = kUnpin };

// Records that the user has launched a shortcut, and indicates whether it
// happened via the launcher or shelf.
void RecordShortcutLaunchSource(const ShortcutActionSource action_source);

// Records that the user removed a shortcut, and indicates whether it happened
// via the launcher context menu or shelf context menu.
void RecordShortcutRemovalSource(const ShortcutActionSource action_source);

// Records when the user pins or unpins a shortcut in the shelf. Pinning
// or unpinning can be triggered via the context menu in shortcut item in
// the launcher or shelf.
void RecordShortcutPinAction(const ShortcutPinAction pin_action);

}  // namespace apps

#endif  // CHROME_BROWSER_APPS_APP_SERVICE_METRICS_SHORTCUT_METRICS_H_