// 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_INTERNAL_STATS_H_ #define CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_INTERNAL_STATS_H_ #include "chrome/browser/notifications/scheduler/public/notification_scheduler_types.h" namespace notifications { struct NotificationData; namespace stats { // Used to log events for inline helpful/unhelful button events. Don't reuse or // delete values. Needs to match NotificationSchedulerActionButtonEvent in // enums.xml. enum class ActionButtonEvent { … }; // Event to track the life cycle of a scheduled notification. Don't reuse or // delete values. Needs to match NotificationSchedulerNotificationLifeCycleEvent // in enums.xml. enum class NotificationLifeCycleEvent { … }; // Enum to distinguish different databases used in notification scheduling // system. enum class DatabaseType { … }; // Logs the user action when the user interacts with notification sent from the // scheduling system. void LogUserAction(const UserActionData& user_action_data); // Logs the number of notification shown in the current background task. void LogBackgroundTaskNotificationShown(int shown_count); // Logs metrics before showing the notification. void LogNotificationShow(const NotificationData& notification_data, SchedulerClientType client_type); // Logs scheduled notification life cycle event. void LogNotificationLifeCycleEvent(NotificationLifeCycleEvent event, SchedulerClientType client_type); } // namespace stats } // namespace notifications #endif // CHROME_BROWSER_NOTIFICATIONS_SCHEDULER_INTERNAL_STATS_H_