Change radio group id to 0 to match id assigned in constructor.
When the RadioButton is created the constructor sets the default group
id to 0. The id was then being changed to 1 which hits a DCHECK that
expects the id to not change.
This only happened when the DesktopPWAsTabStrip and
DesktopPWAsTabStripSettings flags were enabled.
Bug: 1275827
Change-Id: Icdfe25b94ad7a65468b95a841acaee5dd67e51bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3312508
Reviewed-by: Alan Cutter <alancutter@chromium.org>
Commit-Queue: Louise Brett <loubrett@google.com>
Cr-Commit-Position: refs/heads/main@{#947386}
diff --git a/chrome/browser/ui/views/web_apps/web_app_confirmation_view.cc b/chrome/browser/ui/views/web_apps/web_app_confirmation_view.cc
index c8400fe..ced57e7 100644
--- a/chrome/browser/ui/views/web_apps/web_app_confirmation_view.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_confirmation_view.cc
@@ -108,7 +108,7 @@
const auto display_mode = web_app_info_->user_display_mode;
// Build the content child views.
if (ShowRadioButtons()) {
- constexpr int kRadioGroupId = 1;
+ constexpr int kRadioGroupId = 0;
builder.AddChildren(
views::Builder<views::View>(), // Skip the first column.
views::Builder<views::RadioButton>()
diff --git a/chrome/browser/ui/views/web_apps/web_app_confirmation_view_browsertest.cc b/chrome/browser/ui/views/web_apps/web_app_confirmation_view_browsertest.cc
index 1475704..36800e9 100644
--- a/chrome/browser/ui/views/web_apps/web_app_confirmation_view_browsertest.cc
+++ b/chrome/browser/ui/views/web_apps/web_app_confirmation_view_browsertest.cc
@@ -4,14 +4,19 @@
#include "base/strings/utf_string_conversions.h"
#include "base/test/bind.h"
+#include "base/test/scoped_feature_list.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/test/test_browser_dialog.h"
#include "chrome/browser/web_applications/web_application_info.h"
+#include "chrome/common/chrome_features.h"
#include "chrome/test/base/in_process_browser_test.h"
+#include "content/public/common/content_features.h"
#include "content/public/test/browser_test.h"
-class WebAppConfirmViewBrowserTest : public DialogBrowserTest {
+class WebAppConfirmViewBrowserTest
+ : public DialogBrowserTest,
+ public ::testing::WithParamInterface<bool> {
public:
WebAppConfirmViewBrowserTest() = default;
WebAppConfirmViewBrowserTest(const WebAppConfirmViewBrowserTest&) = delete;
@@ -30,9 +35,25 @@
browser()->tab_strip_model()->GetActiveWebContents(),
std::move(app_info), base::BindLambdaForTesting(callback));
}
+
+ void SetUp() override {
+ if (GetParam()) {
+ feature_list.InitWithFeatures({features::kDesktopPWAsTabStrip,
+ features::kDesktopPWAsTabStripSettings},
+ {});
+ } else {
+ feature_list.InitWithFeatures({},
+ {features::kDesktopPWAsTabStrip,
+ features::kDesktopPWAsTabStripSettings});
+ }
+ DialogBrowserTest::SetUp();
+ }
+
+ private:
+ base::test::ScopedFeatureList feature_list;
};
-IN_PROC_BROWSER_TEST_F(WebAppConfirmViewBrowserTest, ShowWebAppInstallDialog) {
+IN_PROC_BROWSER_TEST_P(WebAppConfirmViewBrowserTest, ShowWebAppInstallDialog) {
auto app_info = std::make_unique<WebApplicationInfo>();
app_info->title = u"Test app";
app_info->start_url = GURL("https://example.com");
@@ -51,6 +72,10 @@
EXPECT_TRUE(is_accepted);
}
-IN_PROC_BROWSER_TEST_F(WebAppConfirmViewBrowserTest, InvokeUi_default) {
+IN_PROC_BROWSER_TEST_P(WebAppConfirmViewBrowserTest, InvokeUi_default) {
ShowAndVerifyUi();
}
+
+INSTANTIATE_TEST_SUITE_P(All,
+ WebAppConfirmViewBrowserTest,
+ ::testing::Values(false, true));