[Default Browser] Move the string choice logic to the front-end [chromium/src : main]

2 views
Skip to first unread message

Rainhard Findling (Gerrit)

unread,
Nov 26, 2025, 11:54:12 AM (10 days ago) Nov 26
to Aisulu Rakhmetullina, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Aisulu Rakhmetullina

Rainhard Findling added 2 comments

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Rainhard Findling . unresolved

Thx! As discussed, my recommendation is to figure out if you can simply rely on existing metrics between experiment group and control group. If yes then that avoids a more complex setup.

File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
Line 47, Patchset 4 (Latest): /**
Rainhard Findling . unresolved

Nit: fits one line 😊

Open in Gerrit

Related details

Attention is currently required from:
  • Aisulu Rakhmetullina
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
Gerrit-Change-Number: 7200685
Gerrit-PatchSet: 4
Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
Gerrit-CC: Rainhard Findling <rain...@chromium.org>
Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
Gerrit-Comment-Date: Wed, 26 Nov 2025 16:53:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Aisulu Rakhmetullina (Gerrit)

unread,
Dec 5, 2025, 8:32:39 AM (18 hours ago) Dec 5
to Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Rainhard Findling

Aisulu Rakhmetullina voted and added 3 comments

Votes added by Aisulu Rakhmetullina

Commit-Queue+1

3 comments

Patchset-level comments
Rainhard Findling . unresolved

Thx! As discussed, my recommendation is to figure out if you can simply rely on existing metrics between experiment group and control group. If yes then that avoids a more complex setup.

Aisulu Rakhmetullina

The PM feedback was that we really want to scope the metrics only to the users exposed to the feature.

The good news is that after talking to the Finch team it seems the setup is not that complex (just need to use a browser proxy to pull the feature state from the backend only at the creation of the page).

File-level comment, Patchset 15 (Latest):
Aisulu Rakhmetullina . resolved

Hi Raihard, sending this your way as the complexity was resolved, PTAL!

File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
Line 47, Patchset 4: /**
Rainhard Findling . resolved

Nit: fits one line 😊

Aisulu Rakhmetullina

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Rainhard Findling
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
Gerrit-Change-Number: 7200685
Gerrit-PatchSet: 15
Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
Gerrit-Attention: Rainhard Findling <rain...@chromium.org>
Gerrit-Comment-Date: Fri, 05 Dec 2025 13:32:23 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Rainhard Findling <rain...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Rainhard Findling (Gerrit)

unread,
Dec 5, 2025, 8:48:32 AM (18 hours ago) Dec 5
to Aisulu Rakhmetullina, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Aisulu Rakhmetullina

Rainhard Findling voted and added 2 comments

Votes added by Rainhard Findling

Code-Review+1

2 comments

Patchset-level comments
File-level comment, Patchset 4:
Rainhard Findling . resolved

Thx! As discussed, my recommendation is to figure out if you can simply rely on existing metrics between experiment group and control group. If yes then that avoids a more complex setup.

Aisulu Rakhmetullina

The PM feedback was that we really want to scope the metrics only to the users exposed to the feature.

The good news is that after talking to the Finch team it seems the setup is not that complex (just need to use a browser proxy to pull the feature state from the backend only at the creation of the page).

Rainhard Findling

OK, thx!

Rainhard Findling . resolved

settings_localized_strings_provider.cc LGTM

Open in Gerrit

Related details

Attention is currently required from:
  • Aisulu Rakhmetullina
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
    Gerrit-Change-Number: 7200685
    Gerrit-PatchSet: 15
    Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
    Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Comment-Date: Fri, 05 Dec 2025 13:48:16 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Aisulu Rakhmetullina <ais...@google.com>
    Comment-In-Reply-To: Rainhard Findling <rain...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Aisulu Rakhmetullina (Gerrit)

    unread,
    Dec 5, 2025, 9:06:31 AM (18 hours ago) Dec 5
    to Darryl James, Chromium UI WebUI Reviews, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
    Attention needed from Chromium UI WebUI Reviews and Darryl James

    Aisulu Rakhmetullina voted and added 1 comment

    Votes added by Aisulu Rakhmetullina

    Commit-Queue+1

    1 comment

    Patchset-level comments
    Aisulu Rakhmetullina . resolved

    Hi Darryl, PTAL!
    Adding chromium-ui-webui-reviews@ for the WebUI part based on the similar CL https://crrev.com/c/6898373 comments.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chromium UI WebUI Reviews
    • Darryl James
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
    Gerrit-Change-Number: 7200685
    Gerrit-PatchSet: 15
    Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
    Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
    Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
    Gerrit-Attention: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
    Gerrit-Attention: Darryl James <dlj...@chromium.org>
    Gerrit-Comment-Date: Fri, 05 Dec 2025 14:06:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    gwsq (Gerrit)

    unread,
    Dec 5, 2025, 9:07:11 AM (18 hours ago) Dec 5
    to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Demetrios Papadopoulos, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
    Attention needed from Darryl James and Demetrios Papadopoulos

    Message from gwsq

    Reviewer source(s):
    dpa...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ui/webui/config.gwsq)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Darryl James
    • Demetrios Papadopoulos
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
    Gerrit-Change-Number: 7200685
    Gerrit-PatchSet: 15
    Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
    Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
    Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
    Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
    Gerrit-CC: gwsq
    Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
    Gerrit-Attention: Darryl James <dlj...@chromium.org>
    Gerrit-Comment-Date: Fri, 05 Dec 2025 14:06:53 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Darryl James (Gerrit)

    unread,
    Dec 5, 2025, 1:45:21 PM (13 hours ago) Dec 5
    to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Demetrios Papadopoulos, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
    Attention needed from Aisulu Rakhmetullina and Demetrios Papadopoulos

    Darryl James added 3 comments

    Patchset-level comments
    Darryl James . resolved

    Overall this looks good to me - I did recommend a slightly different approach which I thought would be a little bit cleaner but will ultimately defer to @dpapad here 👍; Thanks!

    File chrome/browser/resources/settings/default_browser_page/default_browser_browser_proxy.ts
    Line 14, Patchset 15 (Latest):export interface DefaultBrowserInfo {
    Darryl James . unresolved

    Would it be possible to add the new boolean / paremeter into this object instead? That way we can maintain a single call through mojo? Or at the very least 1 less call through mojo (there may be other calls that I am not aware of).

    File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
    Line 186, Patchset 15 (Latest):
    Darryl James . unresolved

    If the `userValueDefaultBrowserStringsEnabled` is moved into the `DefaultBrowserInfo` object a new line can be added here like this:
    `dict.Set("userValueDefaultBrowserStringsEnabled", base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);`

    I think this is a little bit cleaner but will defer to @dpapad 👍

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Aisulu Rakhmetullina
    • Demetrios Papadopoulos
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 15
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Comment-Date: Fri, 05 Dec 2025 18:45:07 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Demetrios Papadopoulos (Gerrit)

      unread,
      Dec 5, 2025, 1:49:01 PM (13 hours ago) Dec 5
      to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Aisulu Rakhmetullina

      Demetrios Papadopoulos added 7 comments

      Commit Message
      Line 26, Patchset 15 (Latest):Bug: 446119669, 459593729
      Demetrios Papadopoulos . unresolved

      Use proper references for internal bugs.
      ```suggestion
      Bug: b:446119669, 459593729
      ```

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.html
      Line 29, Patchset 15 (Latest): <template is="dom-if" if="[[userValueDefaultBrowserStringsEnabled_]]">
      <span>$i18n{defaultBrowserDefaultThankYou}</span>
      </template>
      <template is="dom-if"
      if="[[!userValueDefaultBrowserStringsEnabled_]]">
      <span>$i18n{defaultBrowserDefault}</span>
      </template>
      Demetrios Papadopoulos . unresolved

      Per our Polymer styleguide, should not be using dom-if to show/hide plain DOM nodes, see [1].

      [1] https://chromium.googlesource.com/chromium/src/+/main/styleguide/web/web.md#Polymer

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
      Line 76, Patchset 15 (Latest): this.set('userValueDefaultBrowserStringsEnabled_', isEnabled);
      Demetrios Papadopoulos . unresolved

      Please don't use `this.set()` for no good reasons. This bypasses all TS type checking.

      Line 101, Patchset 15 (Latest): canPin: boolean, userValueDefaultBrowserStringsEnabled: boolean): string {
      Demetrios Papadopoulos . unresolved

      Per Polymer styleguide should be grabbing these from `this` not from the parameter list.

      [] https://chromium.googlesource.com/chromium/src/+/main/styleguide/web/web.md#Polymer

      Line 110, Patchset 15 (Latest): if (userValueDefaultBrowserStringsEnabled) {
      return loadTimeData.getString('defaultBrowserMakeDefaultUserValue');
      }

      return loadTimeData.getString('defaultBrowserMakeDefault');
      Demetrios Papadopoulos . unresolved
      Nit: Use ternary operator.
      ```suggestion
      return loadTimeData.getString(userValueDefaultBrowserStringsEnabled ?
      'defaultBrowserMakeDefaultUserValue' : 'defaultBrowserMakeDefault';
      ```
      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Line 61, Patchset 15 (Latest): &DefaultBrowserHandler::RequestUserValueStringsFeatureState,
      Demetrios Papadopoulos . unresolved
      FWIW, all C++ callbacks that handle messages coming from the frontend are per convetion named with the `Handle` prefix. The rest of the code here already violates this convention, but see [1] for examples.
      ```suggestion
      &DefaultBrowserHandler::HandleRequestUserValueStringsFeatureState,
      ```

      [1] https://source.chromium.org/search?q=%22Handler::Handle%22&ss=chromium%2Fchromium%2Fsrc:chrome%2Fbrowser%2Fui%2Fwebui%2Fsettings%2F

      Line 104, Patchset 15 (Latest): bool is_enabled =
      base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);
      Demetrios Papadopoulos . unresolved

      Why are we sending this back asynchronously instead of putting it in `loadTimeData` ? This seems unnecessary. Putting it in loadTimeData would simplify the frontend as well.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Aisulu Rakhmetullina
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 15
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Comment-Date: Fri, 05 Dec 2025 18:48:49 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Aisulu Rakhmetullina (Gerrit)

      unread,
      Dec 5, 2025, 2:34:56 PM (12 hours ago) Dec 5
      to Chromium UI WebUI Reviews, Demetrios Papadopoulos, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Demetrios Papadopoulos

      Aisulu Rakhmetullina added 3 comments

      Patchset-level comments
      Aisulu Rakhmetullina . resolved

      Thank you both! Added 2 questions before I move on to address these (as it might influence the other comments).

      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Line 104, Patchset 15 (Latest): bool is_enabled =
      base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);
      Demetrios Papadopoulos . unresolved

      Why are we sending this back asynchronously instead of putting it in `loadTimeData` ? This seems unnecessary. Putting it in loadTimeData would simplify the frontend as well.

      Aisulu Rakhmetullina

      True, initially I did use `loadTimeData` (PS#1), but while discussing `starts_active` in Finch chat I was told [1] that using it will activate every user for the experiment (which we don't want). This is because putting the flag in `loadTimeData` during the start-up is already triggering Finch to mark the user as active. Thus the async call.

      PLMK if you think this is not the case / there is a different way to achieve scoping only to the users exposed to the feature (i.e. page).

      [1] https://chat.google.com/room/AAAAIiFUug0/zTZN5UTgyc0/EQV66I8_X5E?cls=10

      Darryl James . unresolved

      If the `userValueDefaultBrowserStringsEnabled` is moved into the `DefaultBrowserInfo` object a new line can be added here like this:
      `dict.Set("userValueDefaultBrowserStringsEnabled", base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);`

      I think this is a little bit cleaner but will defer to @dpapad 👍

      Aisulu Rakhmetullina

      @dpa...@chromium.org any opinion on this?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Demetrios Papadopoulos
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 15
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Comment-Date: Fri, 05 Dec 2025 19:34:38 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
      Comment-In-Reply-To: Darryl James <dlj...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Demetrios Papadopoulos (Gerrit)

      unread,
      Dec 5, 2025, 2:50:04 PM (12 hours ago) Dec 5
      to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Aisulu Rakhmetullina

      Demetrios Papadopoulos added 1 comment

      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Line 104, Patchset 15 (Latest): bool is_enabled =
      base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);
      Demetrios Papadopoulos . unresolved

      Why are we sending this back asynchronously instead of putting it in `loadTimeData` ? This seems unnecessary. Putting it in loadTimeData would simplify the frontend as well.

      Aisulu Rakhmetullina

      True, initially I did use `loadTimeData` (PS#1), but while discussing `starts_active` in Finch chat I was told [1] that using it will activate every user for the experiment (which we don't want). This is because putting the flag in `loadTimeData` during the start-up is already triggering Finch to mark the user as active. Thus the async call.

      PLMK if you think this is not the case / there is a different way to achieve scoping only to the users exposed to the feature (i.e. page).

      [1] https://chat.google.com/room/AAAAIiFUug0/zTZN5UTgyc0/EQV66I8_X5E?cls=10

      Demetrios Papadopoulos

      If that's the motivation, please add this context into the code as a comment. Otherwise this stands out from the rest of the code, which habitually adds Finch flags into loadTimeData all over the place (it has never been considered a problem AFAIK). This is even recommended as the way to expose feature flags to the frontend at https://chromium.googlesource.com/chromium/src/+/main/docs/webui/webui_explainer.md#WebUIDataSource_AddBoolean.

      Also, just to make sure I understand, the current approach of "lazily instantiating the finch flag value" relies silently on the fact that Settings lazily renders pages as they are visited (in this case at [1])?

      [1] https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/resources/settings/settings_main/settings_main.html;l=149;drc=bb8f8a14b7e1707787c833ac1fdd5f9978aa81c2

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Aisulu Rakhmetullina
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 15
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Comment-Date: Fri, 05 Dec 2025 19:49:51 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
      Comment-In-Reply-To: Aisulu Rakhmetullina <ais...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Demetrios Papadopoulos (Gerrit)

      unread,
      Dec 5, 2025, 2:53:57 PM (12 hours ago) Dec 5
      to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Aisulu Rakhmetullina

      Demetrios Papadopoulos added 1 comment

      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Darryl James . unresolved

      If the `userValueDefaultBrowserStringsEnabled` is moved into the `DefaultBrowserInfo` object a new line can be added here like this:
      `dict.Set("userValueDefaultBrowserStringsEnabled", base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);`

      I think this is a little bit cleaner but will defer to @dpapad 👍

      Aisulu Rakhmetullina

      @dpa...@chromium.org any opinion on this?

      Demetrios Papadopoulos

      I don't have a strong opinion, and ultimately the alternative strings will be deleted once the feature launches IIUC, at which point they can be simply used by the frontend usinsg `i18n{...}` placeholders which does not require any message passing).

      So feel free whichever approach you think is easier to cleanup later.

      Gerrit-Comment-Date: Fri, 05 Dec 2025 19:53:42 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Darryl James <dlj...@chromium.org>
      Comment-In-Reply-To: Aisulu Rakhmetullina <ais...@google.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Aisulu Rakhmetullina (Gerrit)

      unread,
      Dec 5, 2025, 5:52:19 PM (9 hours ago) Dec 5
      to Chromium UI WebUI Reviews, Demetrios Papadopoulos, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Darryl James and Demetrios Papadopoulos

      Aisulu Rakhmetullina added 9 comments

      Commit Message
      Line 26, Patchset 15:Bug: 446119669, 459593729
      Demetrios Papadopoulos . resolved

      Use proper references for internal bugs.
      ```suggestion
      Bug: b:446119669, 459593729
      ```

      Aisulu Rakhmetullina

      Done

      File chrome/browser/resources/settings/default_browser_page/default_browser_browser_proxy.ts
      Line 14, Patchset 15:export interface DefaultBrowserInfo {
      Darryl James . resolved

      Would it be possible to add the new boolean / paremeter into this object instead? That way we can maintain a single call through mojo? Or at the very least 1 less call through mojo (there may be other calls that I am not aware of).

      Aisulu Rakhmetullina

      Replied in another related comment.

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.html
      Line 29, Patchset 15: <template is="dom-if" if="[[userValueDefaultBrowserStringsEnabled_]]">

      <span>$i18n{defaultBrowserDefaultThankYou}</span>
      </template>
      <template is="dom-if"
      if="[[!userValueDefaultBrowserStringsEnabled_]]">
      <span>$i18n{defaultBrowserDefault}</span>
      </template>
      Demetrios Papadopoulos . resolved

      Per our Polymer styleguide, should not be using dom-if to show/hide plain DOM nodes, see [1].

      [1] https://chromium.googlesource.com/chromium/src/+/main/styleguide/web/web.md#Polymer

      Aisulu Rakhmetullina

      Done

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
      Line 76, Patchset 15: this.set('userValueDefaultBrowserStringsEnabled_', isEnabled);
      Demetrios Papadopoulos . resolved

      Please don't use `this.set()` for no good reasons. This bypasses all TS type checking.

      Aisulu Rakhmetullina

      Done

      Line 101, Patchset 15: canPin: boolean, userValueDefaultBrowserStringsEnabled: boolean): string {
      Demetrios Papadopoulos . resolved

      Per Polymer styleguide should be grabbing these from `this` not from the parameter list.

      [] https://chromium.googlesource.com/chromium/src/+/main/styleguide/web/web.md#Polymer

      Aisulu Rakhmetullina

      Done

      Line 110, Patchset 15: if (userValueDefaultBrowserStringsEnabled) {

      return loadTimeData.getString('defaultBrowserMakeDefaultUserValue');
      }

      return loadTimeData.getString('defaultBrowserMakeDefault');
      Demetrios Papadopoulos . resolved
      Nit: Use ternary operator.
      ```suggestion
      return loadTimeData.getString(userValueDefaultBrowserStringsEnabled ?
      'defaultBrowserMakeDefaultUserValue' : 'defaultBrowserMakeDefault';
      ```
      Aisulu Rakhmetullina

      Done

      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Line 61, Patchset 15: &DefaultBrowserHandler::RequestUserValueStringsFeatureState,
      Demetrios Papadopoulos . resolved
      FWIW, all C++ callbacks that handle messages coming from the frontend are per convetion named with the `Handle` prefix. The rest of the code here already violates this convention, but see [1] for examples.
      ```suggestion
      &DefaultBrowserHandler::HandleRequestUserValueStringsFeatureState,
      ```

      [1] https://source.chromium.org/search?q=%22Handler::Handle%22&ss=chromium%2Fchromium%2Fsrc:chrome%2Fbrowser%2Fui%2Fwebui%2Fsettings%2F

      Aisulu Rakhmetullina

      Done. I initially preferred consistency, but glad to change to the conventional naming.

      Line 104, Patchset 15: bool is_enabled =
      base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);
      Demetrios Papadopoulos . unresolved

      Why are we sending this back asynchronously instead of putting it in `loadTimeData` ? This seems unnecessary. Putting it in loadTimeData would simplify the frontend as well.

      Aisulu Rakhmetullina

      True, initially I did use `loadTimeData` (PS#1), but while discussing `starts_active` in Finch chat I was told [1] that using it will activate every user for the experiment (which we don't want). This is because putting the flag in `loadTimeData` during the start-up is already triggering Finch to mark the user as active. Thus the async call.

      PLMK if you think this is not the case / there is a different way to achieve scoping only to the users exposed to the feature (i.e. page).

      [1] https://chat.google.com/room/AAAAIiFUug0/zTZN5UTgyc0/EQV66I8_X5E?cls=10

      Demetrios Papadopoulos

      If that's the motivation, please add this context into the code as a comment. Otherwise this stands out from the rest of the code, which habitually adds Finch flags into loadTimeData all over the place (it has never been considered a problem AFAIK). This is even recommended as the way to expose feature flags to the frontend at https://chromium.googlesource.com/chromium/src/+/main/docs/webui/webui_explainer.md#WebUIDataSource_AddBoolean.

      Also, just to make sure I understand, the current approach of "lazily instantiating the finch flag value" relies silently on the fact that Settings lazily renders pages as they are visited (in this case at [1])?

      [1] https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/resources/settings/settings_main/settings_main.html;l=149;drc=bb8f8a14b7e1707787c833ac1fdd5f9978aa81c2

      Aisulu Rakhmetullina

      That's right, I am basing the design on the fact that the page is rendered only on navigation.

      Added a comment about "why async call" to default_browser_page.ts and updated the CL description.

      Thank you!

      ------

      P.S. My understanding of `starts_active` and how my implementation affects it was also confirmed during a Finch config review [1].

      [1] https://critique.corp.google.com/cl/840858175/depot/google3/googledata/googleclient/chrome/finch/gcl_studies/UserValueDefaultBrowserStrings.gcl?version=s3#16

      Line 186, Patchset 15:
      Darryl James . resolved

      If the `userValueDefaultBrowserStringsEnabled` is moved into the `DefaultBrowserInfo` object a new line can be added here like this:
      `dict.Set("userValueDefaultBrowserStringsEnabled", base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);`

      I think this is a little bit cleaner but will defer to @dpapad 👍

      Aisulu Rakhmetullina

      @dpa...@chromium.org any opinion on this?

      Demetrios Papadopoulos

      I don't have a strong opinion, and ultimately the alternative strings will be deleted once the feature launches IIUC, at which point they can be simply used by the frontend usinsg `i18n{...}` placeholders which does not require any message passing).

      So feel free whichever approach you think is easier to cleanup later.

      Aisulu Rakhmetullina

      Thanks for the suggestion, Darryl! As @dpapad mentioned, I'll stick with the current approach of a separate handler, as I believe it will be more straightforward to clean up after the feature is launched.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Darryl James
      • Demetrios Papadopoulos
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 19
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Attention: Darryl James <dlj...@chromium.org>
      Gerrit-Comment-Date: Fri, 05 Dec 2025 22:51:58 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Demetrios Papadopoulos (Gerrit)

      unread,
      Dec 5, 2025, 8:06:23 PM (7 hours ago) Dec 5
      to Aisulu Rakhmetullina, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org
      Attention needed from Aisulu Rakhmetullina

      Demetrios Papadopoulos voted and added 2 comments

      Votes added by Demetrios Papadopoulos

      Code-Review+1

      2 comments

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
      Line 74, Patchset 21 (Latest): // We fetch the feature flag state asynchronously on page navigation,
      Demetrios Papadopoulos . unresolved

      Nit: Avoid "we" in comments.

      Line 79, Patchset 21 (Latest): // lazily rendered, and this component's connectedCallback() is only called
      // upon navigation to this subpage.
      Demetrios Papadopoulos . resolved

      FWIW, this also happens if any search is issued in the settings searchbox (everything is force-rendered in the background, whether there are search hits or not).

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Aisulu Rakhmetullina
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
      Gerrit-Change-Number: 7200685
      Gerrit-PatchSet: 21
      Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
      Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
      Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Aisulu Rakhmetullina <ais...@google.com>
      Gerrit-Comment-Date: Sat, 06 Dec 2025 01:06:11 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Aisulu Rakhmetullina (Gerrit)

      unread,
      Dec 5, 2025, 8:46:55 PM (6 hours ago) Dec 5
      to Demetrios Papadopoulos, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org

      Aisulu Rakhmetullina added 4 comments

      Patchset-level comments
      File-level comment, Patchset 22 (Latest):
      Aisulu Rakhmetullina . resolved

      Thank you Demetrios for a thorough review and your suggestions!

      File chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
      Line 74, Patchset 21: // We fetch the feature flag state asynchronously on page navigation,
      Demetrios Papadopoulos . resolved

      Nit: Avoid "we" in comments.

      Aisulu Rakhmetullina

      Done

      Line 79, Patchset 21: // lazily rendered, and this component's connectedCallback() is only called

      // upon navigation to this subpage.
      Demetrios Papadopoulos . resolved

      FWIW, this also happens if any search is issued in the settings searchbox (everything is force-rendered in the background, whether there are search hits or not).

      Aisulu Rakhmetullina

      Thanks for the info! Updated the comment for completeness and added a TODO for a future improvement (e.g. using `currentRouteChanged()`).

      File chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
      Line 104, Patchset 15: bool is_enabled =
      base::FeatureList::IsEnabled(features::kUserValueDefaultBrowserStrings);
      Demetrios Papadopoulos . resolved

      Why are we sending this back asynchronously instead of putting it in `loadTimeData` ? This seems unnecessary. Putting it in loadTimeData would simplify the frontend as well.

      Aisulu Rakhmetullina

      True, initially I did use `loadTimeData` (PS#1), but while discussing `starts_active` in Finch chat I was told [1] that using it will activate every user for the experiment (which we don't want). This is because putting the flag in `loadTimeData` during the start-up is already triggering Finch to mark the user as active. Thus the async call.

      PLMK if you think this is not the case / there is a different way to achieve scoping only to the users exposed to the feature (i.e. page).

      [1] https://chat.google.com/room/AAAAIiFUug0/zTZN5UTgyc0/EQV66I8_X5E?cls=10

      Demetrios Papadopoulos

      If that's the motivation, please add this context into the code as a comment. Otherwise this stands out from the rest of the code, which habitually adds Finch flags into loadTimeData all over the place (it has never been considered a problem AFAIK). This is even recommended as the way to expose feature flags to the frontend at https://chromium.googlesource.com/chromium/src/+/main/docs/webui/webui_explainer.md#WebUIDataSource_AddBoolean.

      Also, just to make sure I understand, the current approach of "lazily instantiating the finch flag value" relies silently on the fact that Settings lazily renders pages as they are visited (in this case at [1])?

      [1] https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/resources/settings/settings_main/settings_main.html;l=149;drc=bb8f8a14b7e1707787c833ac1fdd5f9978aa81c2

      Aisulu Rakhmetullina

      That's right, I am basing the design on the fact that the page is rendered only on navigation.

      Added a comment about "why async call" to default_browser_page.ts and updated the CL description.

      Thank you!

      ------

      P.S. My understanding of `starts_active` and how my implementation affects it was also confirmed during a Finch config review [1].

      [1] https://critique.corp.google.com/cl/840858175/depot/google3/googledata/googleclient/chrome/finch/gcl_studies/UserValueDefaultBrowserStrings.gcl?version=s3#16

      Aisulu Rakhmetullina

      Done

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
        Gerrit-Change-Number: 7200685
        Gerrit-PatchSet: 22
        Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
        Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
        Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
        Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
        Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
        Gerrit-CC: Chromium UI WebUI Reviews <chromium-ui-...@google.com>
        Gerrit-CC: gwsq
        Gerrit-Comment-Date: Sat, 06 Dec 2025 01:46:35 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
        Comment-In-Reply-To: Aisulu Rakhmetullina <ais...@google.com>
        satisfied_requirement
        open
        diffy

        Aisulu Rakhmetullina (Gerrit)

        unread,
        Dec 5, 2025, 8:46:58 PM (6 hours ago) Dec 5
        to Demetrios Papadopoulos, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, Chromium LUCI CQ, chromium...@chromium.org

        Aisulu Rakhmetullina voted Commit-Queue+2

        Commit-Queue+2
        Gerrit-Comment-Date: Sat, 06 Dec 2025 01:46:42 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        Dec 5, 2025, 9:31:42 PM (5 hours ago) Dec 5
        to Aisulu Rakhmetullina, Demetrios Papadopoulos, Chromium UI WebUI Reviews, Darryl James, Rainhard Findling, chromium...@chromium.org

        Chromium LUCI CQ submitted the change with unreviewed changes

        Unreviewed changes

        21 is the latest approved patch-set.
        The change was submitted with unreviewed changes in the following files:

        ```
        The name of the file: chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
        Insertions: 5, Deletions: 2.

        @@ -71,13 +71,16 @@
        this.browserProxy_.requestDefaultBrowserState().then(
        this.updateDefaultBrowserState_.bind(this));

        - // We fetch the feature flag state asynchronously on page navigation,
        + // The feature flag state is fetched asynchronously on page navigation,
        // instead of using loadTimeData, to support a Finch experiment with
        // `starts_active = false`. This ensures that the user is activated in the
        // experiment (e.g. the feature flag is checked) only when visiting the
        // page. This approach relies on the fact that the settings subpages are

        // lazily rendered, and this component's connectedCallback() is only called
        -    // upon navigation to this subpage.
        + // upon rendering of this page (happens on navigation to this subpage or
        + // on search issue in settings searchbox.
        + // TODO(crbug.com/459593729): Refactor to be called only at navigation, e.g.
        + // by using currentRouteChanged() from RouteObserverMixin.
        this.browserProxy_.requestUserValueStringsFeatureState().then(
        (isEnabled) => {
        this.userValueDefaultBrowserStringsEnabled_ = isEnabled;
        ```

        Change information

        Commit message:
        [Default Browser] Move the string choice logic to the front-end

        The experiment in https://b.corp.google.com/issues/446119669 swaps 2
        existing strings from chrome://settings/defaultBrowser to more user-
        centric ones. It is already implemented in https://crrev.com/c/7131700.

        However, we need to update the implementation to accommodate the
        correct metrics tracking by a future Finch experiment. Namely, we want
        to track Chrome default rate but only for users who have seen new
        strings (i.e. visited the settings page).

        To scope metrics to only users who visited the page, we want to rely on
        `starts_active` = false. This requires the code that is triggered upon
        navigation to contain the flag-dependent code.

        That is why this CL moves the logic (the choice between an existing
        string and new strings based on the feature flag) from back-end to
        front-end in order to support `starts_active`.

        To ensure that the feature flag-dependent code is triggered only on
        navigation, an asynchronous call to fetch the feature flag's state is
        used. This approach relies on the fact that the Settings UI lazily
        renders its subpages.

        Manually tested: https://crbug.com/459593729#comment5
        Bug: b:446119669, 459593729
        Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
        Reviewed-by: Rainhard Findling <rain...@chromium.org>
        Reviewed-by: Demetrios Papadopoulos <dpa...@chromium.org>
        Commit-Queue: Aisulu Rakhmetullina <ais...@google.com>
        Cr-Commit-Position: refs/heads/main@{#1555035}
        Files:
        • M chrome/browser/resources/settings/default_browser_page/default_browser_browser_proxy.ts
        • M chrome/browser/resources/settings/default_browser_page/default_browser_page.html
        • M chrome/browser/resources/settings/default_browser_page/default_browser_page.ts
        • M chrome/browser/ui/webui/settings/settings_default_browser_handler.cc
        • M chrome/browser/ui/webui/settings/settings_default_browser_handler.h
        • M chrome/browser/ui/webui/settings/settings_default_browser_handler_unittest.cc
        • M chrome/browser/ui/webui/settings/settings_localized_strings_provider.cc
        • M chrome/test/data/webui/settings/default_browser_test.ts
        Change size: M
        Delta: 8 files changed, 229 insertions(+), 20 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Rainhard Findling, +1 by Demetrios Papadopoulos
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I82418fda6015ccb543e24cc741e18a1708d1b742
        Gerrit-Change-Number: 7200685
        Gerrit-PatchSet: 23
        Gerrit-Owner: Aisulu Rakhmetullina <ais...@google.com>
        Gerrit-Reviewer: Aisulu Rakhmetullina <ais...@google.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Darryl James <dlj...@chromium.org>
        Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
        Gerrit-Reviewer: Rainhard Findling <rain...@chromium.org>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages