// Copyright 2017 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_FEATURE_ENGAGEMENT_PUBLIC_EVENT_CONSTANTS_H_
#define COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_EVENT_CONSTANTS_H_

#include "build/build_config.h"
#include "components/feature_engagement/public/feature_constants.h"

namespace feature_engagement {

namespace events {

// Desktop
#if BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) || \
    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)
// The user has explicitly opened a new tab via an entry point from inside of
// Chrome.
extern const char kNewTabOpened[];
// A new tab was opened when 5 (or more) tabs were already open.
extern const char kSixthTabOpened[];
// A tab was added to reading list.
extern const char kReadingListItemAdded[];
// Reading list was opened.
extern const char kReadingListMenuOpened[];
// Bookmark star button was clicked opening the menu.
extern const char kBookmarkStarMenuOpened[];
// Customize chrome was opened.
extern const char kCustomizeChromeOpened[];

// A tab with playing media was sent to the background.
extern const char kMediaBackgrounded[];

// The user opened the Global Media Controls dialog.
extern const char kGlobalMediaControlsOpened[];

// A split tab has been created
extern const char kSplitViewCreated[];

// A side panel has been pinned.
extern const char kSidePanelPinned[];

// The side search panel was automatically triggered.
extern const char kSideSearchAutoTriggered[];
// The side search panel was opened by the user.
extern const char kSideSearchOpened[];
// The side search page action icon label was shown.
extern const char kSideSearchPageActionLabelShown[];

// Tab Search tab strip was opened by the user.
extern const char kTabSearchOpened[];

// The PWA was installed by the user.
extern const char kDesktopPwaInstalled[];

// A module's actions were clicked on the NewTabPage.
extern const char kDesktopNTPModuleUsed[];

// The user entered the special "focus help bubble" accelerator.
extern const char kFocusHelpBubbleAcceleratorPressed[];

// The screen reader promo for the "focus help bubble" accelerator was read to
// the user.
extern const char kFocusHelpBubbleAcceleratorPromoRead[];

// Th user clicked the extensions request access button in the toolbar.
extern const char kExtensionsRequestAccessButtonClicked[];

// The user has accepted the Glic onboarding.
extern const char kGlicOnboardingCompleted[];

#endif  // BUILDFLAG(IS_WIN) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_LINUX) ||
        // BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_FUCHSIA)

#if BUILDFLAG(IS_WIN)
// The search promotion was accepted by the user.
extern const char kSearchPromotionAccepted[];
#endif  // BUILDFLAG(IS_WIN)

#if BUILDFLAG(IS_IOS)
// The user has opened Chrome (cold start or from background).
extern const char kChromeOpened[];

// The user had at least one active session today.
extern const char kChromeActiveSessionDay[];

// The user has opened an incognito tab.
extern const char kIncognitoTabOpened[];

// The user has cleared their browsing data.
extern const char kClearedBrowsingData[];

// The user has viewed their reading list.
extern const char kViewedReadingList[];

// The user has viewed What's New.
extern const char kViewedWhatsNew[];

// The user has triggered the translate infobar manually.
extern const char kTriggeredTranslateInfobar[];

// The user has viewed the BottomToolbar tip.
extern const char kBottomToolbarOpened[];

// The Discover feed has loaded content in the NTP.
extern const char kDiscoverFeedLoaded[];

// The user has requested the desktop version of a page.
extern const char kDesktopVersionRequested[];

// The default site view mode has been used.
extern const char kDefaultSiteViewUsed[];

// The user has exited the overflow menu without scrolling horizontally and
// without taking an action.
extern const char kOverflowMenuNoHorizontalScrollOrAction[];

// The user has opened Price Tracking.
extern const char kPriceNotificationsUsed[];

// The user has been shown a default browser promo.
extern const char kDefaultBrowserPromoShown[];

// The user tapped Remind Me Later on a default browser promo.
extern const char kDefaultBrowserPromoRemindMeLater[];

// The non-modal default browser promo from omnibox paste was triggered.
extern const char kNonModalDefaultBrowserPromoUrlPasteTrigger[];

// The non-modal default browser promo from App switcher was triggered.
extern const char kNonModalDefaultBrowserPromoAppSwitcherTrigger[];

// The non-modal default browser promo from share was triggered.
extern const char kNonModalDefaultBrowserPromoShareTrigger[];

// The non-modal sign-in promo was triggered for save password.
extern const char kNonModalSigninPromoPasswordTrigger[];

// The non-modal sign-in promo was triggered for add bookmark.
extern const char kNonModalSigninPromoBookmarkTrigger[];

// The Password Manager widget promo was triggered.
extern const char kPasswordManagerWidgetPromoTriggered[];

// The Password Manager widget was used.
extern const char kPasswordManagerWidgetPromoUsed[];

// The Password Manager widget promo was closed.
extern const char kPasswordManagerWidgetPromoClosed[];

// The user has been shown the blue dot default browser promo on the overflow
// carousel.
extern const char kBlueDotPromoOverflowMenuShown[];

// The user has been shown the blue dot default browser promo on the settings
// row.
extern const char kBlueDotPromoSettingsShown[];

// The user has opened the overflow menu while the blue dot was showing.
extern const char kBlueDotPromoOverflowMenuOpened[];

// The user has dismissed the blue dot default browser promo on the settings
// row.
extern const char kBlueDotPromoSettingsDismissed[];

// The user has customized the overflow menu while default browser blue dot was
// showing.
extern const char kBlueDotOverflowMenuCustomized[];

// The user has dismissed the blue dot default browser promo on the overflow
// carousel.
extern const char kBlueDotPromoOverflowMenuDismissed[];

// The user snoozed the Credential Provider Extension Promo.
extern const char kCredentialProviderExtensionPromoSnoozed[];

// The user opened an url from omnibox.
extern const char kOpenUrlFromOmnibox[];

// The history item on overflow menu is used.
extern const char kHistoryOnOverflowMenuUsed[];

// The user has opened Settings via the Overflow Menu.
extern const char kSettingsOnOverflowMenuUsed[];

// The user has triggered the Lens button in the Omnibox keyboard.
extern const char kLensButtonKeyboardUsed[];

// The user has triggered the Lens button in the Composebox.
extern const char kIOSLensButtonComposeboxUsed[];

// The user has more than one gesture to refresh a page in iOS. This includes
// but not limited to re-typing the URL in omnibox and refreshing from context
// menu.
extern const char kIOSMultiGestureRefreshUsed[];

// The user has used the pull-to-refresh feature in iOS.
extern const char kIOSPullToRefreshUsed[];

// The user has tapped the dismiss button of the pull-to-refresh IPH.
extern const char kIOSPullToRefreshIPHDismissButtonTapped[];

// The user has tapped "incognito" on the page control in the tab grid.
extern const char kIOSIncognitoPageControlTapped[];

// The sign-in fullscreen promo was triggered.
extern const char kIOSSigninFullscreenPromoTrigger[];

// The user has swiped right from regular tab grid to the incognito tab grid.
extern const char kIOSSwipeRightForIncognitoUsed[];

// The user has tapped the dismiss button of the "swipe right for incognito"
// IPH.
extern const char kIOSSwipeRightForIncognitoIPHDismissButtonTapped[];

// The user has tapped the toolbar backward/forward button to navigate on a tab.
extern const char kIOSBackForwardButtonTapped[];

// The user has swiped from the edge to navigate backward or forward on a tab.
extern const char kIOSSwipeBackForwardUsed[];

// The user has tapped the dismiss button of the "swipe to go back/forward" IPH.
extern const char kIOSSwipeBackForwardIPHDismissButtonTapped[];

// The user has tapped on an adjacent tab in the tab grid.
extern const char kIOSTabGridAdjacentTabTapped[];

// The user has swipped the toolbar to go to an adjacent tab.
extern const char kIOSSwipeToolbarToChangeTabUsed[];

// The user has tapped the dismiss button of the "swipe the toolbar to go to
// adjacent tab" IPH.
extern const char kIOSSwipeToolbarToChangeTabIPHDismissButtonTapped[];

// The user has opened the Overflow Menu customization screen.
extern const char kIOSOverflowMenuCustomizationUsed[];

// The user has used ann Overflow Menu item where customizing the menu could
// have helped.
extern const char kIOSOverflowMenuOffscreenItemUsed[];

// The Default Browser FRE promo was shown to the user.
extern const char kIOSDefaultBrowserFREShown[];

// The user has met all the conditions to be eligible for generic default
// browser promo.
extern const char kGenericDefaultBrowserPromoConditionsMet[];

// The user has met all the conditions to be eligible for All Tabs default
// browser promo.
extern const char kAllTabsPromoConditionsMet[];

// The user has met all the conditions to be eligible for Made for iOS default
// browser promo.
extern const char kMadeForIOSPromoConditionsMet[];

// The user has met all the conditions to be eligible for Stay Safe default
// browser promo.
extern const char kStaySafePromoConditionsMet[];

// The user has met a condition that makes the Enhanced Safe Browsing
// inline promos eligible to be displayed.
extern const char kEnhancedSafeBrowsingPromoCriterionMet[];

// The user taps the 'x' button on the Enhanced Safe Browsing inline promo.
extern const char kInlineEnhancedSafeBrowsingPromoClosed[];

// The generic default browser promo was triggered.
extern const char kGenericDefaultBrowserPromoTrigger[];

// The all tabs default browser promo was triggered.
extern const char kAllTabsPromoTrigger[];

// The made for iOS default browser promo was triggered.
extern const char kMadeForIOSPromoTrigger[];

// The stay safe default browser promo was triggered.
extern const char kStaySafePromoTrigger[];

// The default browser promos group was triggered.
extern const char kDefaultBrowserPromosGroupTrigger[];

// The tailored default browser promo group was triggered.
extern const char kTailoredDefaultBrowserPromosGroupTrigger[];

// The user has met the conditions for default browser trigger criteria
// experiment.
extern const char kDefaultBrowserPromoTriggerCriteriaConditionsMet[];

// The user has tapped the contextual panel entrypoint when it was showing the
// sample model info.
extern const char kIOSContextualPanelSampleModelEntrypointUsed[];

// The user has tapped the contextual panel entrypoint when it was branded with
// price insights infoblock.
extern const char kIOSContextualPanelPriceInsightsEntrypointUsed[];

// The user has explicitly dismissed the Price Insights branded Contextual Panel
// entrypoint in-product help.
extern const char
    kIOSContextualPanelPriceInsightsEntrypointExplicitlyDismissed[];

// The user has tapped the Home customization menu's entrypoint.
extern const char kHomeCustomizationMenuUsed[];

// The user has opened the Home customization menu with background customization
// enabled..
extern const char kHomeBackgroundCustomizationMenuUsed[];

// The user has seen the `kIPHHomeCustomizationMenuFeature` iph.
extern const char kHomeCustomizationPromoTriggered[];

// The user loaded an NTP with a custom background
extern const char kNTPCustomBackgroundLoaded[];

// The user has tapped on the lens overlay entrypoint.
extern const char kLensOverlayEntrypointUsed[];

// The user has tapped the Lens button.
extern const char kIOSLensButtonUsed[];

// The user has scheduled a tab reminder.
extern const char kIOSTabReminderScheduled[];

// The Reminder Notifications Overflow Menu Bubble IPH was triggered.
extern const char kIOSReminderNotificationsOverflowMenuBubbleIPHTrigger[];

// The user tapped the "Set a Reminder" item in the overflow menu.
extern const char kIOSOverflowMenuSetTabReminderTapped[];

// The Reminder Notifications Overflow Menu New Badge IPH was triggered.
extern const char kIOSReminderNotificationsOverflowMenuNewBadgeIPHTrigger[];

// The user has executed an action that is a trigger for the Auto-deletion IPH.
extern const char kIOSDownloadAutoDeletionIPHCriterionMet[];

// The user has scrolled on the NTP while the feed is visible.
extern const char kIOSScrolledOnFeed[];

// The user has taken action on the feed.
extern const char kIOSActionOnFeed[];

// The Welcome Back promo was triggered.
extern const char kIOSWelcomeBackPromoTrigger[];

// The Welcome Back promo was used.
extern const char kIOSWelcomeBackPromoUsed[];

// The BWG promo was triggered.
extern const char kIOSBWGPromoTrigger[];

// The BWG promo was used.
extern const char kIOSBWGPromoUsed[];

// The page action menu IPH(In-Product Help) was triggered.
extern const char kIOSPageActionMenuIPHTrigger[];

// The page action menu IPH(In-Product Help) was used.
extern const char kIOSPageActionMenuIPHUsed[];

// The entry point of the import Safari data workflow has been displayed.
extern const char kIOSSafariImportRemindMeLater[];

// Event fired when the First Run Experience (FRE) is completed on iOS.
extern const char kIOSFirstRunComplete[];

// Event fired after the quiet period following FRE completion has elapsed.
extern const char kIOSFREBadgeHoldbackPeriodElapsed[];

// The user has tapped on the Reader Mode entrypoint.
extern const char kIOSReaderModeUsed[];

// The Reading Mode expanded omnibox entrypoint is presented.
extern const char kIOSReaderModeChipExpanded[];

// Event fired when the Reader Mode "What's new" badge is displayed.
extern const char kIOSIPHBadgedReaderModeTriggered[];

// Event fired when the AI Hub's "New" badge entrypoint is shown.
extern const char kIOSAIHubNewBadgeTriggered[];

// Event fired when the AI Hub's entry point is tapped.
extern const char kIOSAIHubNewBadgeUsed[];

// Event fired when a fullscreen promo is triggered, to manage group frequency.
extern const char kIOSFullscreenPromosGroupTrigger[];

// Event fired when the omnibox Gemini contextual cue chip is shown.
extern const char kIOSGeminiContextualCueChipTriggered[];

// Event fired when the omnibox Gemini contextual cue chip is tapped.
extern const char kIOSGeminiContextualCueChipUsed[];

// Event fired when the Gemini Image Remix IPH is triggered.
extern const char kIOSGeminiImageRemixIPHTrigger[];

// Event fired when the Gemini Promo is completed for the first time on iOS.
extern const char kIOSGeminiPromoFirstCompletion[];

// Event fired when the user first became eligible for Ask Gemini.
extern const char kIOSGeminiEligiblity[];

// The user has tapped on the Reader Mode options in-product help.
extern const char kIOSIPHReaderModeOptionsUsed[];

// The Reader Mode options entrypoint in-product help was triggered.
extern const char kIOSIPHReaderModeOptionsTriggered[];

// Event fired when the Gemini Fullscreen Promo is triggered.
extern const char kIOSGeminiFullscreenPromoTriggered[];

// Event fired when the user starts the Gemini flow without the seeing the
// promo.
extern const char kIOSGeminiFlowStartedNonPromo[];

// Event fired when the Gemini consent is given.
extern const char kIOSGeminiConsentGiven[];

// Event fired when the user successfully switches to Gemini Live mode.
extern const char kIOSGeminiLiveUsed[];

// Event fired when the Gemini Live "New" badge is triggered.
extern const char kIOSGeminiLiveNewBadgeTriggered[];

// Event fired when the Gemini Live 1st-time IPH is triggered.
extern const char kIOSGeminiLiveIPHTriggered[];

// Event fired when the user taps the "What can Gemini do" suggestion chip.
extern const char kIOSGeminiWhatCanGeminiDoTapped[];

// Event fired when the "What can Gemini do" suggestion chip is shown to the
// user. This is different from WhatCanGeminiDoTapped because it can be
// triggered without the user tapping the chip.
extern const char kIOSGeminiWhatCanGeminiDoTriggered[];

// Event fired when the user pins a site to the most visited tile.
extern const char kIOSPinMVTSiteUsed[];

// Event fired on each foreground transition where no scene has a startup
// parameter. This includes switching between two windows in multi-window mode
// when the user opens Chrome from the icon.
extern const char kIOSChromeOpenedFromIcon[];

// Event fired when the Settings default browser card promo is clicked.
extern const char kDefaultBrowserSettingsCardPromoUsed[];

// Event fired when the Settings default browser cell promo is dismissed.
extern const char kDefaultBrowserSettingsCellPromoUsed[];

// Event fired when the Default Browser promo destination in the Overflow Menu
// is used.
extern const char kDefaultBrowserPromoOverflowMenuDestinationUsed[];

// Event fired when the Default Browser promo shortcut in the Overflow Menu is
// used.
extern const char kDefaultBrowserPromoOverflowMenuShortcutsUsed[];

#endif  // BUILDFLAG(IS_IOS)

// Android.
#if BUILDFLAG(IS_ANDROID)
// The user has explicitly used the Install menu item under the App Menu.
extern const char kPwaInstallMenuSelected[];
#endif  // BUILDFLAG(IS_ANDROID)

// The user clicked on the Send Tab to Self entry point in the omnibox
// long-press menu.
extern const char kSendTabToSelfOmniboxUsed[];

extern const char kTabSearchComboButtonUsed[];

}  // namespace events

}  // namespace feature_engagement

#endif  // COMPONENTS_FEATURE_ENGAGEMENT_PUBLIC_EVENT_CONSTANTS_H_
