blob: 3a2b71df9e4c0bcfa167b958a221de250310fe01 [file] [log] [blame]
// 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 IOS_CHROME_BROWSER_SAFETY_CHECK_NOTIFICATIONS_UTILS_CONSTANTS_H_
#define IOS_CHROME_BROWSER_SAFETY_CHECK_NOTIFICATIONS_UTILS_CONSTANTS_H_
#import <Foundation/Foundation.h>
#import "base/time/time.h"
// Enum for the `IOS.Notifications.SafetyCheck.NotificationsOptInSource`
// histogram.
//
// Must be in sync with `IOSSafetyCheckNotificationsOptInSource` enum in
// `tools/metrics/histograms/metadata/ios/enums.xml`.
//
// LINT.IfChange(SafetyCheckNotificationsOptInSource)
enum class SafetyCheckNotificationsOptInSource {
kSafetyCheckPageOptIn = 0,
kSafetyCheckPageOptOut = 1,
kPasswordCheckupPageOptIn = 2,
kPasswordCheckupPageOptOut = 3,
kMagicStackLongPressMenuOptIn = 4,
kMagicStackLongPressMenuOptOut = 5,
kMagicStackTopRightActionButtonOptIn = 6,
kMagicStackTopRightActionButtonOptOut = 7,
kMaxValue = kMagicStackTopRightActionButtonOptOut,
};
// LINT.ThenChange(/tools/metrics/histograms/metadata/ios/enums.xml:IOSSafetyCheckNotificationsOptInSource)
// Enum for the `IOS.Notifications.SafetyCheck.Interaction` histogram.
//
// Must be in sync with `IOSSafetyCheckNotificationType` enum in
// `tools/metrics/histograms/metadata/ios/enums.xml`.
//
// LINT.IfChange(SafetyCheckNotificationType)
enum class SafetyCheckNotificationType {
kUpdateChrome = 0,
kPasswords = 1,
kSafeBrowsing = 2,
kError = 3,
kMaxValue = kError,
};
// LINT.ThenChange(/tools/metrics/histograms/metadata/ios/enums.xml:IOSSafetyCheckNotificationType)
// The default duration of user inactivity required before displaying a Safety
// Check push notification.
inline constexpr base::TimeDelta kSafetyCheckNotificationDefaultDelay =
base::Hours(24);
// Duration of time to suppress scheduling new Safety Check notifications if one
// is already present in the notification center.
inline constexpr base::TimeDelta
kSafetyCheckNotificationSuppressDelayIfPresent = base::Days(30);
// Unique identifiers and keys for Safety Check push notifications.
// Notification ID for the current Password notification.
extern NSString* const kSafetyCheckPasswordNotificationID;
// Notification ID for the current Update Chrome notification.
extern NSString* const kSafetyCheckUpdateChromeNotificationID;
// Notification ID for the current Safe Browsing notification.
extern NSString* const kSafetyCheckSafeBrowsingNotificationID;
// Key for the Safety Check result (string) stored in the notification's
// `UserInfo`.
extern NSString* const kSafetyCheckNotificationCheckResultKey;
// Key for the count of insecure passwords (integer) stored in the current
// Password notification's `UserInfo`.
extern NSString* const kSafetyCheckNotificationInsecurePasswordCountKey;
#endif // IOS_CHROME_BROWSER_SAFETY_CHECK_NOTIFICATIONS_UTILS_CONSTANTS_H_