// Copyright 2019 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_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_ #include <map> #include <optional> #include <string> namespace notifications { // The type of a list of clients using the notification scheduler system. Used // in metrics, need to sync with histogram suffix // NotificationSchedulerClientType in histograms.xml. // These values are persisted to logs. Entries should not be renumbered and // numeric values should never be reused. // GENERATED_JAVA_ENUM_PACKAGE: ( // org.chromium.chrome.browser.notifications.scheduler) enum class SchedulerClientType { … }; // The type of user feedback from a displayed notification. enum class UserFeedback { … }; // The user impression result of a particular notification, which may impact the // notification display frenquency. enum class ImpressionResult { … }; // Defines user actions type. Used in metrics, can only insert enum values, need // to sync with histogram enum NotificationSchedulerUserActionType in // enums.xml. A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: ( // org.chromium.chrome.browser.notifications.scheduler) enum class UserActionType { … }; // Categorizes type of notification buttons. Different type of button clicks // may result in change of notification shown frequency. // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: ( // org.chromium.chrome.browser.notifications.scheduler) enum class ActionButtonType { … }; // Information about button clicks. struct ButtonClickInfo { … }; // Contains data associated with user actions. struct UserActionData { … }; // Categorizes type of notification icons. // A Java counterpart will be generated for this enum. // GENERATED_JAVA_ENUM_PACKAGE: ( // org.chromium.chrome.browser.notifications.scheduler) enum class IconType { … }; } // namespace notifications #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_PUBLIC_NOTIFICATION_SCHEDULER_TYPES_H_