blob: 02637162e0f32e38148f24d2c104cc3579e652a7 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_MESSAGES_ANDROID_MESSAGE_ENUMS_H_
#define COMPONENTS_MESSAGES_ANDROID_MESSAGE_ENUMS_H_
namespace messages {
// List of constants describing the reasons why the message was dismissed.
// A Java counterpart will be generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
// TODO(crbug.com/40755174): Revisit enum values. TAB_SWITCHED is not currently
// used. Likely the same for TAB_DESTROYED and ACTIVITY_DESTROYED. We also need
// a dedicated value for message dismissed from feature code.
//
// LINT.IfChange(DismissReason)
enum class DismissReason {
// Dismiss reasons that are fully controlled by clients (i.e. are not used
// inside the Messages implementation are marked "Controlled by client" on
// comments.
UNKNOWN = 0,
// A message was dismissed by clicking on the primary action button.
PRIMARY_ACTION = 1,
// Controlled by client: A message was dismissed by clicking on the secondary
// action button.
SECONDARY_ACTION = 2,
// A message was automatically dismissed based on timer.
TIMER = 3,
// A message was dismissed by user gesture.
GESTURE = 4,
// Controlled by client: A message was dismissed in response to switching
// tabs.
TAB_SWITCHED = 5,
// Controlled by client: A message was dismissed as a result of closing a tab.
TAB_DESTROYED = 6,
// Controlled by client: A message is dismissed because the activity is
// destroyed.
ACTIVITY_DESTROYED = 7,
// A message was dismissed due to the destruction of the corresponding scopes.
SCOPE_DESTROYED = 8,
// A message was dismissed explicitly in feature code.
DISMISSED_BY_FEATURE = 9,
// A message was dismissed by a close button click.
CLOSE_BUTTON = 10,
// Insert new values before this line.
COUNT,
kMaxValue = COUNT,
};
// LINT.ThenChange(//tools/metrics/histograms/enums.xml:MessageDismissReason)
// "Urgent" means the user should take actions ASAP, such as responding to
// permissions or safety warnings.
enum class MessagePriority { kUrgent, kNormal };
// The constants of message scope type.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
enum class MessageScopeType {
WINDOW = 0,
WEB_CONTENTS = 1,
NAVIGATION = 2,
ORIGIN = 3
};
// Enumerates unique identifiers for various messages. Used for recording
// messages related histograms.
//
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
//
// When adding a new message identifier, make corresponding changes in the
// following locations:
// - tools/metrics/histograms/metadata/android/enums.xml:
// <enum name="MessageIdentifier">
// - tools/metrics/histograms/metadata/android/histograms.xml:
// <variants name="MessageIdentifiers">
// - MessagesMetrics.java: #messageIdentifierToHistogramSuffix()
//
// A Java counterpart is generated for this enum.
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
//
// LINT.IfChange(MessageIdentifier)
enum class MessageIdentifier {
INVALID_MESSAGE = 0,
SAVE_PASSWORD = 1,
UPDATE_PASSWORD = 2,
GENERATED_PASSWORD_SAVED = 3,
POPUP_BLOCKED = 4,
SAFETY_TIP = 5,
SAVE_ADDRESS_PROFILE = 6,
MERCHANT_TRUST = 7,
// Removed: ADD_TO_HOMESCREEN_IPH = 8,
// Removed: SEND_TAB_TO_SELF = 9,
READER_MODE = 10,
CHROME_SURVEY = 11,
SAVE_CARD = 12,
NOTIFICATION_BLOCKED = 13,
PERMISSION_UPDATE = 14,
ADS_BLOCKED = 15,
DOWNLOAD_PROGRESS = 16,
SYNC_ERROR = 17,
SHARED_HIGHLIGHTING = 18,
NEAR_OOM_REDUCTION = 19,
INSTALLABLE_AMBIENT_BADGE = 20,
AUTO_DARK_WEB_CONTENTS = 21,
TEST_MESSAGE = 22,
TAILORED_SECURITY_ENABLED = 23,
VR_SERVICES_UPGRADE = 24,
TAILORED_SECURITY_DISABLED = 25,
AR_CORE_UPGRADE = 26,
// Removed: INSTANT_APPS = 27,
ABOUT_THIS_SITE = 28,
TRANSLATE = 29,
OFFER_NOTIFICATION = 30,
EXTERNAL_NAVIGATION = 31,
FRAMEBUST_BLOCKED = 32,
DESKTOP_SITE_GLOBAL_DEFAULT_OPT_OUT = 33,
DESKTOP_SITE_GLOBAL_OPT_IN = 34,
PASSWORD_MANAGER_ERROR = 35,
DOWNLOAD_INCOGNITO_WARNING = 36,
// Removed: RESTORE_CUSTOM_TAB = 37,
// Removed: UNDO_CUSTOM_TAB_RESTORATION = 38,
CVC_SAVE = 39,
// Removed: TRACKING_PROTECTION_NOTICE = 40,
DESKTOP_SITE_WINDOW_SETTING = 41,
PROMPT_HATS_LOCATION_CUSTOM_INVITATION = 42,
PROMPT_HATS_LOCATION_GENERIC_INVITATION = 43,
PROMPT_HATS_CAMERA_CUSTOM_INVITATION = 44,
PROMPT_HATS_CAMERA_GENERIC_INVITATION = 45,
PROMPT_HATS_MICROPHONE_CUSTOM_INVITATION = 46,
PROMPT_HATS_MICROPHONE_GENERIC_INVITATION = 47,
PERMISSION_BLOCKED = 48,
SAVE_CARD_FAILURE = 49,
VIRTUAL_CARD_ENROLL_FAILURE = 50,
PROMPT_HATS_QUICK_DELETE = 51,
PROMPT_HATS_SAFETY_HUB = 52,
DEFAULT_BROWSER_PROMO = 53,
TAB_REMOVED_THROUGH_COLLABORATION = 54,
TAB_NAVIGATED_THROUGH_COLLABORATION = 55,
COLLABORATION_MEMBER_ADDED = 56,
COLLABORATION_REMOVED = 57,
CCT_ACCOUNT_MISMATCH_NOTICE = 58,
PROMPT_HATS_CLEAR_BROWSING_DATA = 59,
OS_ADVANCED_PROTECTION_SETTING_CHANGED_MESSAGE = 60,
MULTI_INSTANCE_RESTORATION_ON_DOWNGRADED_LIMIT = 61,
UPDATE_CHROME_FOR_TAB_GROUP_SHARE = 62,
// Insert new values before this line.
COUNT
};
// LINT.ThenChange(//tools/metrics/histograms/metadata/android/histograms.xml:MessageIdentifier)
// The behavior the message should follow when the primary button is clicked,
// after running the primary action callback.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
enum class PrimaryActionClickBehavior {
DO_NOT_DISMISS = 0,
DISMISS_IMMEDIATELY = 1
};
// The max size of the message secondary menu.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
enum class SecondaryMenuMaxSize {
SMALL = 0, // default: 180dp -> @dimen/message_secondary_menu_max_size_small
MEDIUM = 1, // 250dp -> @dimen/message_secondary_menu_max_size_medium
LARGE = 2, // 300dp -> @dimen/message_secondary_menu_max_size_large
};
// The primary widget that should be shown in the message.
//
// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.messages
enum class PrimaryWidgetAppearance {
// Default value. Show the primary action button if non-empty text has been
// set for the primary action button, otherwise no primary widget is shown.
BUTTON_IF_TEXT_IS_SET = 0,
// Show a spinning progress indicator that isn't clickable.
PROGRESS_SPINNER = 1,
};
} // namespace messages
#endif // COMPONENTS_MESSAGES_ANDROID_MESSAGE_ENUMS_H_