Chrome · Omnibox
CVE-2026-14130
Logic Error in Omnibox
Overview
Low
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
ifchrome/browser/ui/views/location_bar/location_bar_view.cc |
modified | |
OmniboxPopupUIchrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
OmniboxPopupViewchrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
OmniboxViewViewschrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
OmniboxChipButtonchrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
PageActionIconControllerchrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
PageActionIconContainerViewchrome/browser/ui/views/location_bar/location_bar_view.h |
modified | |
PermissionChipViewchrome/browser/ui/views/location_bar/location_bar_view.h |
modified |
Files Changed
chrome/app/generated_resources.grdchrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_BODY.png.sha1chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_TITLE.png.sha1chrome/browser/ui/browser_element_identifiers.ccchrome/browser/ui/browser_element_identifiers.hchrome/browser/ui/views/location_bar/BUILD.gnchrome/browser/ui/views/location_bar/location_bar_view.ccchrome/browser/ui/views/location_bar/location_bar_view.h
Patch
From fcef632c3e9e66f954f79fe07922a382637ffc5d Mon Sep 17 00:00:00 2001 From: Nicola Tommasi <[email protected]> Date: Fri, 29 May 2026 02:15:32 -0700 Subject: [PATCH] [CodeHealth] Remove MerchantTrust omnibox chip and IPH This CL removes the implementation of the Merchant Trust omnibox chip and the related IPH feature as the feature was implemented but never really enabled due to product changes. NO_IFTTT=Deprecating enum value Bug: 514019522 Change-Id: I2a71317c4a1c572aa74b6eb79f86e49526c326f7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7867931 Reviewed-by: Christian Dullweber <[email protected]> Commit-Queue: Nicola Tommasi <[email protected]> Reviewed-by: Alex Ilin <[email protected]> Cr-Commit-Position: refs/heads/main@{#1638347} --- diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index cc1f5a1..50c1c735 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd @@ -19388,17 +19388,6 @@ Help improve spam protection by sharing notification content and the site's URL with Google. Content may be reviewed by humans. </message> - <!-- Merchant Trust IPH strings --> - <message name="IDS_MERCHANT_TRUST_IPH_TITLE" desc="Title of in product help to introduce merchant trust feature."> - See ratings for this store - </message> - <message name="IDS_MERCHANT_TRUST_IPH_BODY" desc="Content of in product help to introduce merchant trust feature."> - You can get a summary of what people are saying in their reviews - </message> - <message name="IDS_MERCHANT_TRUST_IPH_BODY_SCREEN_READER" desc="Announcement to screen reader users when the merchant trust IPH is shown." is_accessibility_with_no_ui="true"> - You can get a summary of what people are saying in their reviews - </message> - <!-- Chrome Apps Deprecation --> <if expr="is_chromeos"> <message name="IDS_USER_INSTALLED_CHROME_APP_DEPRECATION_NOTIFICATION_MESSAGE" desc="Message of the notification displayed while launching a user-installed app."> diff --git a/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_BODY.png.sha1 b/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_BODY.png.sha1 deleted file mode 100644 index d698215..0000000 --- a/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_BODY.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -d0692f47366796818cbc2a634aae8a93dedbc9e3 \ No newline at end of file diff --git a/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_TITLE.png.sha1 b/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_TITLE.png.sha1 deleted file mode 100644 index d698215..0000000 --- a/chrome/app/generated_resources_grd/IDS_MERCHANT_TRUST_IPH_TITLE.png.sha1 +++ /dev/null @@ -1 +0,0 @@ -d0692f47366796818cbc2a634aae8a93dedbc9e3 \ No newline at end of file diff --git a/chrome/browser/ui/browser_element_identifiers.cc b/chrome/browser/ui/browser_element_identifiers.cc index 6d16de23..f92b1daa 100644 --- a/chrome/browser/ui/browser_element_identifiers.cc +++ b/chrome/browser/ui/browser_element_identifiers.cc @@ -69,7 +69,6 @@ DEFINE_ELEMENT_IDENTIFIER_VALUE(kFileSystemPageActionElementId); DEFINE_ELEMENT_IDENTIFIER_VALUE(kFooterWebViewSeparatorElementId); DEFINE_ELEMENT_IDENTIFIER_VALUE(kMemorySaverChipElementId); -DEFINE_ELEMENT_IDENTIFIER_VALUE(kMerchantTrustChipElementId); DEFINE_ELEMENT_IDENTIFIER_VALUE(kMultiContentsViewElementId); DEFINE_ELEMENT_IDENTIFIER_VALUE(kGlicButtonElementId); DEFINE_ELEMENT_IDENTIFIER_VALUE(kGlicOsWidgetKeyboardShortcutElementId); diff --git a/chrome/browser/ui/browser_element_identifiers.h b/chrome/browser/ui/browser_element_identifiers.h index 65d9ae0..ba910d3 100644 --- a/chrome/browser/ui/browser_element_identifiers.h +++ b/chrome/browser/ui/browser_element_identifiers.h @@ -107,7 +107,6 @@ DECLARE_ELEMENT_IDENTIFIER_VALUE(kFileSystemPageActionElementId); 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); diff --git a/chrome/browser/ui/views/location_bar/BUILD.gn b/chrome/browser/ui/views/location_bar/BUILD.gn index 2a47ec1..05615e72 100644 --- a/chrome/browser/ui/views/location_bar/BUILD.gn +++ b/chrome/browser/ui/views/location_bar/BUILD.gn @@ -24,7 +24,6 @@ "location_bar_view.h", "location_icon_state_helper.h", "location_icon_view.h", - "merchant_trust_chip_button_controller.h", "omnibox_chip_button.h", "omnibox_chip_theme.h", "omnibox_popup_file_selector.h", @@ -92,7 +91,6 @@ "location_bar_view.cc", "location_icon_state_helper.cc", "location_icon_view.cc", - "merchant_trust_chip_button_controller.cc", "omnibox_chip_button.cc", "omnibox_popup_file_selector.cc", "record_replay_page_action_controller.cc", @@ -322,7 +320,6 @@ "lens_overlay_homework_page_action_icon_view_interactive_uitest.cc", "lens_overlay_page_action_icon_view_interactive_uitest.cc", "location_icon_view_interactive_uitest.cc", - "merchant_trust_chip_button_interactive_uitest.cc", "record_replay_page_action_controller_interactive_uitest.cc", "selected_keyword_view_interactive_uitest.cc", "star_view_interactive_uitest.cc", diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc index f4329db2..639eccd 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.cc +++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc @@ -76,8 +76,6 @@ #include "chrome/browser/ui/views/location_bar/intent_chip_button.h" #include "chrome/browser/ui/views/location_bar/location_bar_layout.h" #include "chrome/browser/ui/views/location_bar/location_icon_view.h" -#include "chrome/browser/ui/views/location_bar/merchant_trust_chip_button_controller.h" -#include "chrome/browser/ui/views/location_bar/omnibox_chip_button.h" #include "chrome/browser/ui/views/location_bar/omnibox_popup_file_selector.h" #include "chrome/browser/ui/views/location_bar/selected_keyword_view.h" #include "chrome/browser/ui/views/location_bar/star_view.h" @@ -334,15 +332,6 @@ location_icon_view->set_drag_controller(this); location_icon_view_ = AddChildView(std::move(location_icon_view)); - if (page_info::IsMerchantTrustFeatureEnabled() && - page_info::kMerchantTrustEnableOmniboxChip.Get()) { - merchant_trust_chip_ = AddChildView(std::make_unique<OmniboxChipButton>()); - merchant_trust_chip_controller_ = - std::make_unique<MerchantTrustChipButtonController>( - merchant_trust_chip_, location_icon_view_, - MerchantTrustServiceFactory::GetForProfile(profile_)); - } - // Initialize the Omnibox view. browser_ can be nullptr on ChromeOS in the // case of simple_web_view_dialog. Or it can be nulltpr on ChromeOS and on // other desktop platforms in the case of presentation_receiver_window_view. @@ -992,29 +981,6 @@ location_icon_view_->SetVisible(false); } - if (merchant_trust_chip_controller_) { - // The merchant chip is shown when: - // 1. there is data to be shown - // 2. no permission chips are shown - // 3. the omnibox is not in editing mode - // 4. location bar icon doesn't have extra text - const bool should_show_merchant_chip = - merchant_trust_chip_controller_->ShouldBeVisible() && - !show_overriding_permission_chip && !IsEditingOrEmpty() && - !location_icon_view_->GetShowText(); - - if (should_show_merchant_chip) { - // TODO(crbug.com/378854462): Use constant. - const int padding_before_chip = 2; - merchant_trust_chip_controller_->Show(); - leading_decorations.AddDecoration(vertical_padding, location_height, - false, 0, padding_before_chip, - icon_left, merchant_trust_chip_); - } else { - merchant_trust_chip_controller_->Hide(); - } - } - auto add_trailing_decoration = [&](View* view, int intra_item_padding, int edge_padding) { if (view->GetVisible()) { @@ -1220,10 +1186,6 @@ RefreshPageActionContainerViewAndIconsVisibility( /*should_hide_page_actions=*/ShouldHidePageActionIcons()); - if (merchant_trust_chip_controller_) { - merchant_trust_chip_controller_->UpdateWebContents(contents); - } - OnChanged(); // NOTE: Triggers layout. // A permission prompt may be suspended due to an invalid state (empty or diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.h b/chrome/browser/ui/views/location_bar/location_bar_view.h index 5bee6cd..015b1e1 100644 --- a/chrome/browser/ui/views/location_bar/location_bar_view.h +++ b/chrome/browser/ui/views/location_bar/location_bar_view.h @@ -23,7 +23,6 @@ #include "chrome/browser/ui/page_action/page_action_icon_type.h" #include "chrome/browser/ui/views/location_bar/content_setting_image_view.h" #include "chrome/browser/ui/views/location_bar/location_icon_view.h" -#include "chrome/browser/ui/views/location_bar/merchant_trust_chip_button_controller.h" #include "chrome/browser/ui/views/omnibox/omnibox_popup_presenter_delegate.h" #include "chrome/browser/ui/views/page_action/page_action_icon_view.h" #include "chrome/browser/ui/views/permissions/chip/chip_controller.h" @@ -65,7 +64,6 @@ class OmniboxPopupUI; class OmniboxPopupView; class OmniboxViewViews; -class OmniboxChipButton; class PageActionIconController; class PageActionIconContainerView; class PermissionChipView;
Loading diff…
Regression Test / PoC
shipped with the fix
diff --git a/chrome/browser/ui/views/location_bar/merchant_trust_chip_button_interactive_uitest.cc b/chrome/browser/ui/views/location_bar/merchant_trust_chip_button_interactive_uitest.cc
deleted file mode 100644
index 9b8661aa4..0000000
--- a/chrome/browser/ui/views/location_bar/merchant_trust_chip_button_interactive_uitest.cc
+++ /dev/null
@@ -1,315 +0,0 @@
-// 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.
-
-#include "base/test/metrics/histogram_tester.h"
-#include "base/test/scoped_feature_list.h"
-#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
-#include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
-#include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/browser_element_identifiers.h"
-#include "chrome/browser/ui/views/location_bar/merchant_trust_chip_button_controller.h"
-#include "chrome/browser/ui/views/location_bar/omnibox_chip_button.h"
-#include "chrome/browser/ui/views/page_info/page_info_main_view.h"
-#include "chrome/browser/ui/views/page_info/page_info_merchant_trust_content_view.h"
-#include "chrome/browser/ui/views/permissions/chip/permission_chip_view.h"
-#include "chrome/browser/ui/views/permissions/permission_prompt_bubble_base_view.h"
-#include "chrome/test/base/interactive_test_utils.h"
-#include "chrome/test/interaction/interactive_browser_test.h"
-#include "components/commerce/core/proto/merchant_trust.pb.h"
-#include "components/optimization_guide/core/hints/optimization_metadata.h"
-#include "components/optimization_guide/core/optimization_guide_proto_util.h"
-#include "components/optimization_guide/proto/hints.pb.h"
-#include "components/page_info/core/features.h"
-#include "components/strings/grit/components_strings.h"
-#include "content/public/test/browser_test.h"
-#include "net/dns/mock_host_resolver.h"
-#include "ui/events/keycodes/keyboard_codes.h"
-
-namespace {
-DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kWebContentsElementId);
-DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kSecondWebContentsElementId);
-
-optimization_guide::OptimizationMetadata GetMerchantTrustMetadata() {
- optimization_guide::OptimizationMetadata optimization_metadata;
- commerce::MerchantTrustSignalsV2 metadata;
- metadata.set_merchant_star_rating(3.5);
- metadata.set_merchant_count_rating(23);
- metadata.set_merchant_details_page_url("https://reviews.test");
- metadata.set_shopper_voice_summary("Test summary");
-
- optimization_metadata.set_any_metadata(
- optimization_guide::AnyWrapProto(metadata));
- return optimization_metadata;
-}
-
-} // namespace
-
-class MerchantTrustChipButtonInteractiveUITest
- : public InteractiveBrowserTest,
- public testing::WithParamInterface<bool> {
- public:
- MerchantTrustChipButtonInteractiveUITest() {
- https_server_ = std::make_unique<net::EmbeddedTestServer>(
- net::EmbeddedTestServer::TYPE_HTTPS);
- https_server()->SetSSLConfig(net::EmbeddedTestServer::CERT_TEST_NAMES);
- https_server()->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
-
- CHECK(https_server()->Start());
-
- std::vector<base::test::FeatureRefAndParams> enabled_features = {
- {page_info::kMerchantTrust,
- {{page_info::kMerchantTrustForceShowUIForTestingName, "true"},
- {page_info::kMerchantTrustEnableOmniboxChipName,
- GetParam() ? "true" : "false"}}}};
- feature_list_.InitWithFeaturesAndParameters(enabled_features, {});
- }
-
- ~MerchantTrustChipButtonInteractiveUITest() override = default;
- MerchantTrustChipButtonInteractiveUITest(
- const MerchantTrustChipButtonInteractiveUITest&) = delete;
- void operator=(const MerchantTrustChipButtonInteractiveUITest&) = delete;
-
- void SetUpOnMainThread() override {
- InteractiveBrowserTest::SetUpOnMainThread();
- host_resolver()->AddRule("*", "127.0.0.1");
-
- auto* optimization_guide_decider =
- OptimizationGuideKeyedServiceFactory::GetForProfile(
- browser()->profile());
- optimization_guide_decider->AddHintForTesting(
- GetURL(), optimization_guide::proto::MERCHANT_TRUST_SIGNALS_V2,
- GetMerchantTrustMetadata());
- }
-
- void TearDownOnMainThread() override {
- EXPECT_TRUE(https_server()->ShutdownAndWaitUntilComplete());
- InteractiveBrowserTest::TearDownOnMainThread();
- }
-
- void SetUpCommandLine(base::CommandLine* cmd) override {
- cmd->AppendSwitch(optimization_guide::switches::
- kDisableCheckingUserPermissionsForTesting);
- }
-
- void SetPermission(ContentSettingsType type, ContentSetting setting) {
- HostContentSettingsMap* map =
- HostContentSettingsMapFactory::GetForProfile(browser()->profile());
-
- map->SetContentSettingDefaultScope(GetURL(), GetURL(), type, setting);
- }
-
- auto SendKeyPress(ui::KeyboardCode key, bool control, bool shift) {
- return Check([this, key, control, shift]() {
- return ui_test_utils::SendKeyPressSync(browser(), key, control, shift,
- false, false);
- });
- }
-
- auto WasChipAnimatedForWebContents(ElementSpecifier id, bool value) {
- return CheckElement(
- id, base::BindOnce([](ui::TrackedElement* el) {
- return AsInstrumentedWebContents(el)->web_contents()->GetUserData(
- MerchantTrustChipButtonController::kChipAnimated) !=
- nullptr;
- }),
- value);
- }
-
- auto IsChipFullyCollapsed(bool value) {
- return CheckView(kMerchantTrustChipElementId,
- base::BindOnce([](OmniboxChipButton* view) {
- return view->is_fully_collapsed();
- }),
- value);
- }
-
- auto CheckHistogramCounts(const std::string& name,
- auto sample,
- int expected_count) {
- return Do([=, this]() {
- histogram_tester_.ExpectUniqueSample(name, sample, expected_count);
- });
- }
-
- MultiStep OpenMerchantTrustSubpage() {
- if (GetParam()) {
- Steps(
- // Open the subpage directly.
- WaitForShow(kMerchantTrustChipElementId),
- PressButton(kMerchantTrustChipElementId),
- WaitForShow(PageInfoMerchantTrustContentView::kElementIdForTesting));
- }
-
- return Steps(
- PressButton(kLocationIconElementId),
- // Open the page info.
- WaitForShow(PageInfoMainView::kMerchantTrustElementId),
- // Click on the row.
- PressButton(PageInfoMainView::kMerchantTrustElementId),
- // Wait for the subpage to be open.
- WaitForShow(PageInfoMerchantTrustContentView::kElementIdForTesting));
- }
-
- net::EmbeddedTestServer* https_server() { return https_server_.get(); }
-
- GURL GetURL() {
- return https_server()->GetURL("a.test", "/permissions/requests.html");
- }
-
- GURL GetAnotherURL() {
- return https_server()->GetURL("a.test", "/title1.html");
- }
-
- private:
- std::unique_ptr<net::EmbeddedTestServer> https_server_;
- base::test::ScopedFeatureList feature_list_;
- base::HistogramTester histogram_tester_;
-};
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- MerchantTrustChipClick) {
- if (!GetParam()) {
- return;
- }
-
- RunTestSequence(
- InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- WaitForShow(kMerchantTrustChipElementId),
- PressButton(kMerchantTrustChipElementId),
- WaitForShow(PageInfoMerchantTrustContentView::kElementIdForTesting));
-}
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- MerchantTrustChipOmniboxEdit) {
- if (!GetParam()) {
- return;
- }
- RunTestSequence(InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- // The merchant chip is shown.
- WaitForShow(kMerchantTrustChipElementId),
- // Start typing.
- EnterText(kOmniboxElementId, u"query"),
- // The chip is hidden while typing.
- WaitForHide(kMerchantTrustChipElementId),
- // Note: SendAccelerator doesn't work here.
- // Clear the input.
- SendKeyPress(ui::VKEY_ESCAPE, false, false),
- // Exit the editing mode.
- SendKeyPress(ui::VKEY_ESCAPE, false, false),
- // The merchant chip is shown again.
- WaitForShow(kMerchantTrustChipElementId));
-}
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- LocationBarIconClick) {
- if (!GetParam()) {
- return;
- }
- RunTestSequence(InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- WaitForShow(kMerchantTrustChipElementId),
- PressButton(kLocationIconElementId),
- WaitForShow(PageInfoMainView::kMerchantTrustElementId),
- EnsurePresent(kMerchantTrustChipElementId));
-}
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- PermissionRequestOverridesChip) {
- if (!GetParam()) {
- return;
- }
- RunTestSequence(
- InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- // The merchant chip is shown.
- WaitForShow(kMerchantTrustChipElementId),
- // ...and the permission indicator is not.
- EnsureNotPresent(PermissionChipView::kPermissionRequestChipElementId),
- // Request notifications.
- ExecuteJs(kWebContentsElementId, "requestNotification"),
- // Make sure the request chip is visible.
- WaitForShow(PermissionChipView::kPermissionRequestChipElementId),
- // ...and the merchant chip is not.
- WaitForHide(kMerchantTrustChipElementId),
- // Make sure the permission popup bubble is visible.
- WaitForShow(PermissionPromptBubbleBaseView::kMainViewId),
- PressButton(PermissionChipView::kPermissionRequestChipElementId),
- WaitForHide(PermissionPromptBubbleBaseView::kMainViewId),
- // The permission chip is hidden since the permission request
- // was dismissed...
- WaitForHide(PermissionChipView::kPermissionRequestChipElementId),
- // ...and the merchant chip is visible again.
- WaitForShow(kMerchantTrustChipElementId));
-}
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- PermissionInUseOverridesChip) {
- if (!GetParam()) {
- return;
- }
- SetPermission(ContentSettingsType::MEDIASTREAM_CAMERA, CONTENT_SETTING_ALLOW);
-
- RunTestSequence(InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- // The merchant chip is shown...
- WaitForShow(kMerchantTrustChipElementId),
- // ...and the permission indicator is not.
- EnsureNotPresent(PermissionChipView::kIndicatorChipElementId),
- // Requesting to use the camera (camera is in-use now).
- ExecuteJs(kWebContentsElementId, "requestCamera"),
- // Make sure the in-use indicator is visible...
- WaitForShow(PermissionChipView::kIndicatorChipElementId),
- // ...and the merchant chip is not.
- WaitForHide(kMerchantTrustChipElementId));
-}
-
-IN_PROC_BROWSER_TEST_P(MerchantTrustChipButtonInteractiveUITest,
- AnimateOnlyOncePerTab) {
- if (!GetParam()) {
- return;
- }
- RunTestSequence(
- InstrumentTab(kWebContentsElementId),
- NavigateWebContents(kWebContentsElementId, GetURL()),
- // The merchant chip is shown and expanded.
- WaitForShow(kMerchantTrustChipElementId),
- WaitForEvent(kMerchantTrustChipElementId, kOmniboxChipButtonExpanded),
- // Animation was recorded.
- WasChipAnimatedForWebContents(kWebContentsElementId, true),
- // Switch to the second tab.
- AddInstrumentedTab(kSecondWebContentsElementId, GetAnotherURL()),
- // The merchant chip is hidden - no merchant trust data for the tab and no
- // animation.
- WaitForHide(kMerchantTrustChipElementId),
- WasChipAnimatedForWebContents(kSecondWebContentsElementId, false),
- // Switch to the first one, the chip was already animated.
- SelectTab(kTabStripElementId, 0),
- WasChipAnimatedForWebContents(kWebContentsElementId, true),
- // The merchant chip is shown again for the first tab but not expanded.
- WaitForShow(kMerchantTrustChipElementId), IsChipFullyCollapsed(true));
... (truncated)
Loading diff…
Original Bug Report
The reporter's bug is still restricted on the tracker. Chrome de-restricts security bugs ~30–90 days after the fix ships; a later run will backfill it here.
References
On This Page