chromium/ash/constants/notifier_catalogs.h

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

#ifndef ASH_CONSTANTS_NOTIFIER_CATALOGS_H_
#define ASH_CONSTANTS_NOTIFIER_CATALOGS_H_

namespace ash {

// This file contains catalogs with entries for every notifier in CrOS,
// including notifications, toasts, and nudges. By having your notifier here
// you'll automatically get metrics for it ---> go/notifier-framework-metrics.

// A living catalog that registers notifications.
// Current values should not be renumbered or removed. Please keep in sync with
// "NotificationCatalogName" in tools/metrics/histograms/enums.xml.
// To deprecate comment out the entry.
enum class NotificationCatalogName {};

// A living catalog that registers system nudges.
// Current values should not be renumbered or removed. Please keep in sync with
// "NudgeCatalogName" in tools/metrics/histograms/metadata/ash/enums.xml.
// To deprecate comment out the entry.
// Use `AnchoredNudgeManager::Get()->MaybeRecordNudgeAction()` with the proper
// catalog name when the nudge's suggested action is performed by the user, if
// applicable, to record a `TimeToAction` metric.
enum class NudgeCatalogName {};

// A living catalog that registers toasts.
// Current values should not be renumbered or removed. Please keep in sync with
// "ToastCatalogName" in tools/metrics/histograms/metadata/ash/enums.xml
// To deprecate comment out the entry.
enum class ToastCatalogName {};

}  // namespace ash

#endif  // ASH_CONSTANTS_NOTIFIER_CATALOGS_H_