// 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.

// A subset of the browser element identifiers are being used in Desktop UI
// benchmark. The name of the identifiers and the string names used by the
// benchmark are expected to be equal.
//
// Please keep the names in this file in sync with
// `tools/perf/page_sets/desktop_ui/browser_element_identifiers.py`

#ifndef CHROME_BROWSER_UI_BROWSER_ELEMENT_IDENTIFIERS_H_
#define CHROME_BROWSER_UI_BROWSER_ELEMENT_IDENTIFIERS_H_

#include "ui/base/interaction/element_identifier.h"
#include "ui/base/interaction/element_tracker.h"

// These should gradually replace values in view_ids.h.
// Please keep this list alphabetized.
DECLARE_ELEMENT_IDENTIFIER_VALUE(kActionItemZoomElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kAddCurrentTabToReadingListElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kAiModePageActionIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kAnonymizedUrlCollectionPersonalizationSettingId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kAppUninstallDialogOkButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kBookmarkBarElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kBookmarkReplaceOldGroupCheckboxId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kBookmarkSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kBookmarkStarViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kBrowserViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kConstrainedDialogWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsCaptureBorder);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsContainerViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsSeparatorLeadingEdgeElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsSeparatorLeadingTopCornerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsSeparatorTopEdgeElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsSeparatorTrailingEdgeElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContentsSeparatorTrailingTopCornerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kContextualTasksSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kCookieControlsIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kCustomizeChromeSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDataSharingBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kDataSharingSigninPromptDialogCancelButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDataSharingErrorDialogOkButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDeletionDialogCancelButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDeletionDialogDontAskCheckboxId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDeletionDialogOkButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDeviceSignalsConsentCancelButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDeviceSignalsConsentOkButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kDiscountsChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kEnhancedProtectionSettingElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExclusiveAccessBubbleViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExtensionsMenuButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExtensionsMenuMainPageElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExtensionsMenuManageExtensionsElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kExtensionsRequestAccessButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kFeatureFirstRunDialogContentViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kFedCmAccountChooserDialogAccountElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kFooterWebViewSeparatorElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kMemorySaverChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kMerchantTrustChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kMultiContentsViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kNotificationContentSettingImageView);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kHatsNextWebDialogId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicOsWidgetKeyboardShortcutElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicOsToggleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicNudgeButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicActorTaskIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kGlicViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kHistorySearchInputElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kInactiveTabSettingElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kInstallPwaElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kIntentChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLeftAlignedSidePanelSeparatorViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensOverlayHomeworkPageActionIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensOverlayPageActionIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensOverlayTranslateButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensOverlayViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensPermissionDialogCancelButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensPermissionDialogOkButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensPreselectionBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensPreselectionBubbleExitButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLensSidePanelSearchBoxElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLocalWebParentApprovalDialogId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLocalWebParentApprovalDialogErrorId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLocationBarElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kLocationIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kNewTabButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kNtpFooterViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kOfferNotificationChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kOmniboxElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kOptimizationGuideChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPasswordsOmniboxKeyIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPerformanceSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPinnedActionToolbarButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kPinnedToolbarActionsContainerDividerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPinnedToolbarActionsContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPlusAddressCreateSuggestionElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPriceInsightsChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPriceTrackingBookmarkViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kPriceTrackingChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kProductSpecificationsChipElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kProductSpecificationsButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kReadLaterSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kReloadButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kRightAlignedSidePanelSeparatorViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSavePasswordComboboxElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSavedTabGroupBarElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSavedTabGroupButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSavedTabGroupOverflowButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSavedTabGroupOverflowMenuId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSharedTabGroupCommentsActionElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSharedTabGroupFeedbackElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kCollaborationMessagingPageActionIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSearchEngineChoiceDialogId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelCloseButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelComboboxElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelCompanionToolbarButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelMoreInfoButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelOpenInNewTabButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelPinButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelReadingListUnreadElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSidePanelRoundedCornerViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSideSearchButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kSideSearchWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabAlertIndicatorButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabIconElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleCloseGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kTabGroupEditorBubbleConvertToBookmarkButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleDeleteGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleLeaveGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kTabGroupEditorBubbleManageSharedGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kTabGroupEditorBubbleMoveGroupToNewWindowButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleNewTabInGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleRecentActivityButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleShareGroupButtonId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupEditorBubbleSaveToggleId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabGroupHeaderElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kAutoTabGroupButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabDeclutterButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabSearchBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabSearchButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabSearchContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabStripActionContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabStripElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabStripRegionElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTabStripFrameGrabHandleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToastElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarActionViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarAppMenuButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarAvatarBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarAvatarButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarBackButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarBackButtonMenuElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarBatterySaverButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarChromeLabsBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarChromeLabsButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarDownloadBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarDownloadButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarExtensionsContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarForwardButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarForwardButtonMenuElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarHomeButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarMediaBubbleElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarMediaButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarNewTabButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarOverflowButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(
    kToolbarPerformanceInterventionButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarSplitTabsToolbarButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarSidePanelButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarSidePanelContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kToolbarTabCounterButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kTopContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kUserNotesSidePanelWebViewElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kVerticalTabStripCollapseButtonElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kVerticalTabStripRegionElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kVerticalTabStripBottomContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kVerticalTabStripTopContainerElementId);
DECLARE_ELEMENT_IDENTIFIER_VALUE(kWebUIIPHDemoElementIdentifier);

DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kBrowserThemeChangedEventId);
DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kLensSidePanelSearchBoxFocusedEventId);
DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kSidePanelComboboxChangedCustomEventId);
DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kSidePanelReadingMarkedAsReadEventId);
DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kTabGroupedCustomEventId);
DECLARE_CUSTOM_ELEMENT_EVENT_TYPE(kTabGroupSavedCustomEventId);

#endif  // CHROME_BROWSER_UI_BROWSER_ELEMENT_IDENTIFIERS_H_
