WebUI page for rendering the Extensions Zero State Promo IPH. [chromium/src : main]

5 views
Skip to first unread message

Yiming Zhou (Gerrit)

unread,
Apr 15, 2025, 7:21:57 PMApr 15
to Christopher Grant, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
Attention needed from Christopher Grant and Dana Fried

Yiming Zhou added 1 comment

File tools/gritsettings/resource_ids.spec
Line 408, Patchset 7: "META": {"sizes": {"includes": [124],}},
Yiming Zhou . resolved

Adding 4 new SVG files.

Open in Gerrit

Related details

Attention is currently required from:
  • Christopher Grant
  • Dana Fried
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
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: I43df61089e3c649157a124a464e411e93c201aec
Gerrit-Change-Number: 6396833
Gerrit-PatchSet: 10
Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
Gerrit-Reviewer: Christopher Grant <cjg...@chromium.org>
Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Christopher Grant <cjg...@chromium.org>
Gerrit-Attention: Dana Fried <dfr...@chromium.org>
Gerrit-Comment-Date: Tue, 15 Apr 2025 23:21:49 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Dana Fried (Gerrit)

unread,
Apr 16, 2025, 9:22:42 AMApr 16
to Yiming Zhou, Christopher Grant, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
Attention needed from Christopher Grant and Yiming Zhou

Dana Fried added 3 comments

Patchset-level comments
File-level comment, Patchset 11 (Latest):
Dana Fried . unresolved

Overall this looks pretty good but you're going to need a WebUI expert to sign off on all of the WebUI bits.

You _are_ going to need to write some regression/CUJ tests for this bubble, however. If you want to discuss how to do that we can chat, and it can be done in a follow-up considering how large this CL already is.

File chrome/browser/resources/extensions/web_store/zero_state_promo_app.ts
File-level comment, Patchset 11 (Latest):
Dana Fried . unresolved

I'm wondering if there's a good way to break this CL up into multiple CLs. It is a fairly significant chunk of code.

File chrome/browser/ui/webui/extensions/web_store/zero_state_promo.mojom
Line 10, Patchset 11 (Latest):enum WebStoreLinkClicked {
Dana Fried . unresolved

This doesn't seem to line up with the UMA histogram values. Is there a separate enum in the code that's going to be emitted instead?

Also, If this *is* intended to be used for UMA reporting, you should clearly mark that the values are used for logging and should not be changed - there's boilerplate for this:

```
// These values are persisted to logs. Entries should not be renumbered and
// numeric values should never be reused.
```
Open in Gerrit

Related details

Attention is currently required from:
  • Christopher Grant
  • Yiming Zhou
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 11
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Christopher Grant <cjg...@chromium.org>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Attention: Christopher Grant <cjg...@chromium.org>
    Gerrit-Comment-Date: Wed, 16 Apr 2025 13:22:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yiming Zhou (Gerrit)

    unread,
    Apr 16, 2025, 2:21:51 PMApr 16
    to Christopher Grant, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Christopher Grant and Dana Fried

    Yiming Zhou added 3 comments

    Patchset-level comments
    Dana Fried . unresolved

    Overall this looks pretty good but you're going to need a WebUI expert to sign off on all of the WebUI bits.

    You _are_ going to need to write some regression/CUJ tests for this bubble, however. If you want to discuss how to do that we can chat, and it can be done in a follow-up considering how large this CL already is.

    Yiming Zhou

    Oh any pointer is welcome!

    I sampled a few webui change lists and concluded that just a unit test is enough.

    But for the actual webui IPH, I am not sure. The test hooks in HelpBubbleView that other IPH interactive tests use do not apply here.

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.ts
    Dana Fried . unresolved

    I'm wondering if there's a good way to break this CL up into multiple CLs. It is a fairly significant chunk of code.

    Yiming Zhou

    Yeah... although it is a pretty hello-world case if not for all the UI flourishes.

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo.mojom
    Line 10, Patchset 11 (Latest):enum WebStoreLinkClicked {
    Dana Fried . unresolved

    This doesn't seem to line up with the UMA histogram values. Is there a separate enum in the code that's going to be emitted instead?

    Also, If this *is* intended to be used for UMA reporting, you should clearly mark that the values are used for logging and should not be changed - there's boilerplate for this:

    ```
    // These values are persisted to logs. Entries should not be renumbered and
    // numeric values should never be reused.
    ```
    Yiming Zhou

    I do intend these to be used for UMA reporting. And I am logging inside javascript instead of doing them in the page handler simply because it is less boilerplate code to write. But what, in your view, is the better practice?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Christopher Grant
    • Dana Fried
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 11
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Christopher Grant <cjg...@chromium.org>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Christopher Grant <cjg...@chromium.org>
    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
    Gerrit-Comment-Date: Wed, 16 Apr 2025 18:21:42 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Dana Fried (Gerrit)

    unread,
    Apr 16, 2025, 3:13:12 PMApr 16
    to Yiming Zhou, Christopher Grant, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Christopher Grant and Yiming Zhou

    Dana Fried added 3 comments

    Patchset-level comments
    Dana Fried . unresolved

    Overall this looks pretty good but you're going to need a WebUI expert to sign off on all of the WebUI bits.

    You _are_ going to need to write some regression/CUJ tests for this bubble, however. If you want to discuss how to do that we can chat, and it can be done in a follow-up considering how large this CL already is.

    Yiming Zhou

    Oh any pointer is welcome!

    I sampled a few webui change lists and concluded that just a unit test is enough.

    But for the actual webui IPH, I am not sure. The test hooks in HelpBubbleView that other IPH interactive tests use do not apply here.

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.ts
    Dana Fried . resolved

    I'm wondering if there's a good way to break this CL up into multiple CLs. It is a fairly significant chunk of code.

    Yiming Zhou

    Yeah... although it is a pretty hello-world case if not for all the UI flourishes.

    Dana Fried

    Yeah I think this isn't a hard requirement; I'm happy with the code.

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo.mojom
    Line 10, Patchset 11 (Latest):enum WebStoreLinkClicked {
    Dana Fried . unresolved

    This doesn't seem to line up with the UMA histogram values. Is there a separate enum in the code that's going to be emitted instead?

    Also, If this *is* intended to be used for UMA reporting, you should clearly mark that the values are used for logging and should not be changed - there's boilerplate for this:

    ```
    // These values are persisted to logs. Entries should not be renumbered and
    // numeric values should never be reused.
    ```
    Yiming Zhou

    I do intend these to be used for UMA reporting. And I am logging inside javascript instead of doing them in the page handler simply because it is less boilerplate code to write. But what, in your view, is the better practice?

    Dana Fried

    It's fine; you *will* need to put the comment boilerplate in. Just make sure the numeric values line up (they didn't appear to before).

    Also if it is possible for .mojom files you should use IfChange...ThenChange in both files (mojom and enums) to ensure they stay in sync.
    https://www.chromium.org/chromium-os/developer-library/guides/development/keep-files-in-sync/

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Christopher Grant
    • Yiming Zhou
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 11
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Christopher Grant <cjg...@chromium.org>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Attention: Christopher Grant <cjg...@chromium.org>
    Gerrit-Comment-Date: Wed, 16 Apr 2025 19:13:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
    Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Christopher Grant (Gerrit)

    unread,
    Apr 24, 2025, 1:48:54 PMApr 24
    to Yiming Zhou, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Yiming Zhou

    Christopher Grant added 1 comment

    Patchset-level comments
    File-level comment, Patchset 15 (Latest):
    Christopher Grant . resolved

    Removing self; Dana's got this covered.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yiming Zhou
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 15
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Comment-Date: Thu, 24 Apr 2025 17:48:47 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yiming Zhou (Gerrit)

    unread,
    Apr 24, 2025, 4:44:14 PMApr 24
    to Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Dana Fried and Rebekah Potter

    Yiming Zhou added 2 comments

    Patchset-level comments

    Overall this looks pretty good but you're going to need a WebUI expert to sign off on all of the WebUI bits.

    You _are_ going to need to write some regression/CUJ tests for this bubble, however. If you want to discuss how to do that we can chat, and it can be done in a follow-up considering how large this CL already is.

    Yiming Zhou

    Oh any pointer is welcome!

    I sampled a few webui change lists and concluded that just a unit test is enough.

    But for the actual webui IPH, I am not sure. The test hooks in HelpBubbleView that other IPH interactive tests use do not apply here.

    Dana Fried

    You can look at the custom help bubble UI test, which is end-to-end:
    https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/views/user_education/custom_webui_help_bubble_interactive_uitest.cc

    Yiming Zhou

    Thanks! I added a big test in the subsequent cl, which actually hooks up the page to a custom UI featurepromo: https://chromium-review.googlesource.com/c/chromium/src/+/6404446

    File-level comment, Patchset 14:
    Yiming Zhou . resolved

    Hi Rebekah, may I trouble you to review the webui files and give feedback? Thank you so much!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dana Fried
    • Rebekah Potter
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 14
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
    Gerrit-Comment-Date: Thu, 24 Apr 2025 20:44:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rebekah Potter (Gerrit)

    unread,
    Apr 24, 2025, 7:45:32 PMApr 24
    to Yiming Zhou, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Dana Fried, John Lee and Yiming Zhou

    Rebekah Potter added 3 comments

    Patchset-level comments
    File-level comment, Patchset 15 (Latest):
    Rebekah Potter . resolved

    Sending some initial comments (did not have time for a full review today due to an all day meeting). Also adding johntlee@ since I will be ooo tomorrow.

    File chrome/browser/resources/extensions/web_store/zero_state_promo.css
    Line 79, Patchset 15 (Latest):
    #couponsButton .cr-icon {
    --cr-icon-image: url(icons/coupons.svg);
    }

    #writingButton .cr-icon {
    --cr-icon-image: url(icons/writing.svg);
    }

    #productivityButton .cr-icon {
    --cr-icon-image: url(icons/productivity.svg);
    }

    #aiButton .cr-icon {
    --cr-icon-image: url(icons/ai.svg);
    }
    Rebekah Potter . unresolved

    Why don't we just use cr-icon, put all these svgs in an iconset, and pass the appropriate icon id in the template? This will also prevent the need for an extra grdp to put all the icons in.

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.cc
    Line 60, Patchset 15 (Latest): webui::SetupWebUIDataSource(source, kExtensionsResources,
    Rebekah Potter . unresolved

    Why do we need a second WebUI that serves all the same resources as chrome://extensions?

    Should this just be a subpage/different route on the extensions page, or is it intended to be a fully separate UI? If the latter, it should have its own resource bundle/build_webui target.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dana Fried
    • John Lee
    • Yiming Zhou
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 15
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-Reviewer: John Lee <john...@chromium.org>
    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: John Lee <john...@chromium.org>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
    Gerrit-Comment-Date: Thu, 24 Apr 2025 23:45:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    John Lee (Gerrit)

    unread,
    Apr 24, 2025, 8:21:12 PMApr 24
    to Yiming Zhou, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Dana Fried and Yiming Zhou

    John Lee added 6 comments

    File chrome/browser/resources/extensions/web_store/icons/chrome_web_store.svg
    Line 1, Patchset 15 (Latest):<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" fill="none" viewBox="0 0 32 32"><path fill="url(#a)" d="M0 0h32v32H0z"/><defs><pattern id="a" width="1" height="1" patternContentUnits="objectBoundingBox"><use xlink:href="#b" transform="scale(.0052)"/></pattern><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAANvUlEQVR4AezBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAABm7z5yGoaiKAw/+oxlMvNmmLGFbCKLIL1IuJte55dc2oSOpaf48Ef6w5B2vlRb6falKArrWnme/zHKskyt8FV+9WV1XVusqqr6Y1SWJX1c+Cq/+jIAACB+ACAAAIAAAAD9AAAAxg8AABAAACAZAADA+Bk/AAAAAAAwfgAAAAAAAADjBQAAZAMAAATGn2eZLZdLm4zHNhwObTAY2OD4eH0bDPxntcV87oeGAyA+AJ3xLxYLm0wmjsAuLi7s5vraC+vc0cHBzvn5uWVZZqPRyCEAAAC/bzqZWFWW9vDw4IUudnd3Z2ma2mw6BcCaAOjMLf/Z2ZkXFEqSZD/GPQEABMaf57nf8ntBqSxN/XcDQHsA2o/705OTt4c9Sq0uG/67AaA9AOmXOpum8YJi/v8AQHsAsuP3rq+uvKDYYZLsAaA9AOU3uCQf/rxmZpsAaA9A/Z3doJqZbQCgPQDpQxpub2+9oFi/398GQHsAPhTZLi8vvaCYv0MMgF8CkBv51zlw2ecBAmMGQIwjK/1eQPDWP8LBcQCQQeCPl1cFkbZjvgsMAIH81tLvCRRu+SXGD4D4+XD8qx8KbWabq0IX6vV6W69PeNuOHwCcbdXVzxyQfMwPAEASAKIGAAAQAABAjB8ABAAAEAAAQIwfAAQAABDjBwABAADE+AFAAAAAAQAAxPgBQAAAADF+ABAAAECMHwDE+AFAAAAAMX4AEAAAwPgJAIyfAAAAAgDjJwAAgADA+AkAjJ8AwPgJAAAgAQD/ffyDR/buGzdiGArC8N7Lm3OWc7i1Y+XsfsMJnD3Olh8XT8KImOID2PMfgZ0mDQDFWvwByNm0+ReEblBPQxmaBqDYHeKHut249kyhawA5BJ+0Xk2bDPFjAJDhGDQARR8eP+Qav/8YNABF7xG//9PHbvRBA9AA7NEzxg/h8fMPQQMgDD+i+PmHoAEQhB9B/DAyGFafRRi+BqD47QMADQAg/vD544cM4wfQAAC/3S+y46RlN22uZtIIcjSphxnX7EZGw+q/7u7uiq6UBoc/LZfLh6K6PpiE2R+vaBRmL9Du0Oxqd2Cz07fZ7rvfy2KxyFMpDQ5pHormcr0dLmmtZtoM1AgzqduNbS5GNaPqZy53M5/P81ZKg8OfCIJW/AQDAN74NQCH8EniB7L4QQOIP37Fb0ASvwbAGz5P/M4DAA0g1vAVv8Gw8izf+DUAxQ8E8YMGkCff8BW/wwAg6/g1AO7waeKHPOMHDSAr9vD5v/qU8TsMAHzj1wAIwo8xfnCMHwZlDcCLPXzFzxA/BuAwAg2AIHzFD/b4NQAP/tHzx+82AIL4QQMIh+jjCR/xx//0cRmBBsARvuJ3iB80ACP+8OOPH7zih5gGoPgVv30A0P9zBBoAT/SO4St+DcAgs/AVP3DEDxrAhzjCB//wPeJnGgBoAOAfvuInjx80gEf2zgFIkqQLwP3btm3bHNu2zmvbtm3bGKztMXp7tqfHbFT1Gu/2xV1fXMdNve7qyOvJvKmJ+Co8/L6szCzMlhdDGUgvoPia/FoAyF+XpYM+0tvS0+Kzl1+Tn6LXBvCtTdmATB4aRUvPp/i9U34tAPYB/GxNBlxN8GMrOiG+Jr/3R3+af/S+AL65McuJ3EnxvVN8TX4tAAcHM4P4FB/R5FeFCvkd9IIACPmRgPkpfElPi69a/jvRfmDMjAfTkNegYcpoaF69DKSb20G6shKkC3NBOjkepGMDQDraTxW2o33Vc0Qtfdhz+DUnekUAKDrFkj7hnojPnfz4VuWGiSOg/egBMFdXgq2lGSRJcgvZ0ghyRznca9gLj2uGAZSEAdwKYIi/Om76qcCXhkYL4Dcr06Ek1k+F9PyIb0yLhqa5U6Hz3GmwdXaizEyQbe1wr6UAHt2eDM9KosWXn4b7ABjITzNsVAwtPWfim4a+Bp0Xz7ESnsZmgbvNRfCk4kXO5NcCYBbAdzZkwdlkf1p6HsR/MRU6TuSjmF7FZrM9xwL3Gg/A09IkMeWnETQABvJ/402iZyainNxOddoO7wObxdIj8jth7YT7pk3wrCRKRPm1AL5BsC0vhLvFbfOKhcT83qvyOyFZW+CRYapQ8tP4vPcC+IZK/rIsDfQc7ep0HD/isbwWqwS1TTJcrZEg/6YMO87LsLxAhlVFMuy6KENhsQzX9TIYmmQX8tPcr98KUBwsuvzvrQBo0WkmDY7oUfERY0YMmItvqJYehd9xQYZBm+0QNtsOQTPdI2KuHYZvk2H/FRlMrSi2Ou62nsEpkfoA+JFfC8DBT1enw9V4X0bSq8c04EWwmkxuS29qlXBUh1fW2CF4JkLLTjLjDfpvtMOmMzK0dLgfgdxZCU/LswQb/X20ALojZ1Kc18VHGiaOdHu+394lwdqTdohbgNKzkt+ZpEV22H4ep1Ok/E7rgidV/cSa+jgjfAAoMBMOZgZS0jPHNPgVYpfHeW6/77Idkhej8AzlJ8habof8m5K7EeCZQAj5tQAI/OcnE9KzBe/XsZrq3Jrjv7SaEp+B/AQDN8nQ2ObedAjXBPzLrwVAsvi1MEJcBoTibk8AmMuKXcp/uVr26qhPnQ3KjO4tjKE4iFv5CQQNgIH8X9+Y6cSvVqRBcYzPuyG+A7eu7B64IkPYbC+O+gSBz4mca4dTpZJ7W6RcyK8FQAtPMHRkNHPxHbSsXeFS/mX5tPjelt9ByCxcILuO4JFhCv/y94IAaNEJvrUhE84k+jJ/OMWYk+Ry0bvvMiejvgIYgaszgWRpgWfFkTzKT/B/YQNAaZkTPTOB+VNZHYXHSPkvVuG0h5NRnyByrss1Ad47JJL8QgZACMyGrXnB6qQnqOubS8qvb5AgcZHXxaflJ8hcZqd3hyyd8LQkkXv5tQAI/rw0FfThhPgq6Lp8UVH+TrMEuSv5lJ8At0jJs8C9xv2E/HyN/g60AJyBiYMj3JOeoGHMYHL033xW5ld8goDpdjh+g1gPWM3wpDyPe/m1AAh+vCoVrsT9n5achtzzb+mQIHaBmPIjOBUyW4hrA82FosiPaAF8bUPGO8ieGOux/HUvZ5Cj/6LjsvfFZyS/g23n6bMA7ghxJr/4AbAXnuZAur9HATSvWqIoP96XHzGXf/Ep+ZHEhXbyLtJHtyfyIr8WACk6ge+8JI8CoO7xn3tYFmrUJ8BbqZUXwy35/MsvfgCMZCdY/Fqoqjeu3UmPJqc/qYtl9eJzKD/Sb6OduFu0HZ8g401+8QOghWXPL1ekQnH0/wnpnWmaN01Rfnw0kV/xCfkJqCfLHlcP5kl+8QNAIXuCISOiCPGd6bxwVikAfKKLEF88+ZF9VyTlaVDDHv7k1wJQzzfXZ8CZBB9SfAe29nbFAHJXCio+wbCtyusAub2MI/kJbvxPC6A7vvo2ImfEu5S/NiaAfKaXK/EZyO//nNDZxDrA3Mh7ACi/FoCT8ARbcwLJAIzZidSDLoT4YsrvwNCkPA2CWwE8y9+7A/iqSv64JAX0ocoBmIa8qhQAPmsrrviE/Mg1vXIAT0uTeZFfC+CrDJgwKEwxgMZpYxVfOrXlrMSF+KzlRwpuKQfwpKoPr/ILFYB3ZSf4Ed4nFPv/bgNoXjpf8W1rS/NlcUd9Qn5k5wXlAB7VjOZVfvED+GoPkTUhptt/JdS6ZZ2iCFP2yWKP+gQrCpUDeFg7m734jOVXG0BHRweio8ADSVdXl5oAUDyuOJzmj9I70bp9o6IIk/bI/ItPyU+wLJ8I4M48DuXnIIBTp059UtQAvrI+HXzmJrwjgOblCxRFwDtA1YvPv/zItnPEFEg/jkP5OQhg3rx5nxUkABS+W5a+HOQUQOOMiUoi4I1jYotPQD0g87iqH/fyqw2gtbUV0VHggWTo0KGfUrsO8L70NL9YngLl4f9xBICvPVQU4eh1iXvxSfkJrlTbiG3QJA7l5yCAPn36fKStrY2bAEjZCQYPj3grgLq8ZEURLldJhPS8j/oE01xcCCsO5l5+NQE0NzWBTqd7v47BB0bwJfYBsBee4ttr0+B0/P8xAKiNC1YUASXhUXzEM/ERjFn58UjJ0sy//CoC6OzshMaGBkTnCjy4ZHxc3IcbGhrYB8BedpLoqbEYAIKvPVeMIG2JLJ74hPxI/43EzXAdlfzLryIAU10dMfp7ehZISfk0nlbUB+B90Sm25ARiANB19ZLyTtAxmQvx2ciP0DtA95oOsZGfgwDq6+vpuT+9BqBJT0//An4BFwGgaNzy50VJUBP6b2heOo9cB4gvvjOGJneuAvtwLT8VAF6vqjMace6P6NwFD6rIDg//VK3BAMTCGEXjmDSYNCAUjFnxikLgf2CJW6hWfH7lf2GVTLwlrgOe3QoVWv7m5mYwGAzEyK/6DEDzwh/+8CGcZ92prYWmxka82IAFchxAmhM/WJkMV2L+C+aqCvKWCGHEJ+RHVhQoj/53W05zKD8dAPqGAzCuS1F8k8mEc/4P6Lz9gVukySEhn8MQ8KxwW68H5GuLE3ucry5KIEkfEgrli+bh990t564bIHC8EfzGdo8vS8Z4jo8LwiYZ4WaZQfHnbLoyGtqK/qOSf3uHwn85oa+pQfD7fmvw/a9O98Hn6DwDD6+3TwckAAAACID+v45mRAJO8BQIUAgAAoAAIAAIAAKAACAACAACwAABQAAQAAQAAUAAEAAEgAB5lREvwKhUDgAAAABJRU5ErkJggg==" id="b" width="192" height="192"/></defs></svg>
    John Lee . unresolved

    Should this just be a png file?

    File chrome/browser/resources/extensions/web_store/zero_state_promo.css
    Line 17, Patchset 15 (Latest): --zero-state-promo-foreground-color: var(--cr-fallback-color-on-primary);
    John Lee . unresolved

    Why is this using a hybrid of the color pipeline and fallback/md colors? Could we stick to one?

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.html.ts
    Line 17, Patchset 15 (Latest): aira-label="close"
    John Lee . unresolved

    aria

    You can also probably remove this attribute if you already have a `title` attribute below.

    Line 17, Patchset 15 (Latest): aira-label="close"
    title="close"
    John Lee . unresolved

    These strings should be translated.

    Line 22, Patchset 15 (Latest): <div id="sectionHeaderContainer">
    John Lee . unresolved

    Please fix indentation in this file.

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.ts
    Line 25, Patchset 15 (Latest): dismissPromoButtonToast: CrToastElement,
    John Lee . unresolved

    Was this copied from somewhere? I don't see a toast.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dana Fried
    • Yiming Zhou
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 15
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-Reviewer: John Lee <john...@chromium.org>
    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
    Gerrit-Comment-Date: Fri, 25 Apr 2025 00:21:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Dana Fried (Gerrit)

    unread,
    Apr 28, 2025, 3:14:26 PMApr 28
    to Yiming Zhou, John Lee, Rebekah Potter, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Yiming Zhou

    Dana Fried added 1 comment

    Patchset-level comments
    Dana Fried . unresolved

    Please resolve merge conflicts and ensure tests pass.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yiming Zhou
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 15
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-Reviewer: John Lee <john...@chromium.org>
    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
    Gerrit-Comment-Date: Mon, 28 Apr 2025 19:14:16 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yiming Zhou (Gerrit)

    unread,
    Apr 28, 2025, 5:23:00 PMApr 28
    to John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Dana Fried, John Lee and Rebekah Potter

    Yiming Zhou added 10 comments

    Patchset-level comments

    Please resolve merge conflicts and ensure tests pass.

    Yiming Zhou

    Done

    File chrome/browser/resources/extensions/web_store/icons/chrome_web_store.svg
    Line 1, Patchset 15:<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" fill="none" viewBox="0 0 32 32"><path fill="url(#a)" d="M0 0h32v32H0z"/><defs><pattern id="a" width="1" height="1" patternContentUnits="objectBoundingBox"><use xlink:href="#b" transform="scale(.0052)"/></pattern><image xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAYAAABS3GwHAAANvUlEQVR4AezBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAABm7z5yGoaiKAw/+oxlMvNmmLGFbCKLIL1IuJte55dc2oSOpaf48Ef6w5B2vlRb6falKArrWnme/zHKskyt8FV+9WV1XVusqqr6Y1SWJX1c+Cq/+jIAACB+ACAAAIAAAAD9AAAAxg8AABAAACAZAADA+Bk/AAAAAAAwfgAAAAAAAADjBQAAZAMAAATGn2eZLZdLm4zHNhwObTAY2OD4eH0bDPxntcV87oeGAyA+AJ3xLxYLm0wmjsAuLi7s5vraC+vc0cHBzvn5uWVZZqPRyCEAAAC/bzqZWFWW9vDw4IUudnd3Z2ma2mw6BcCaAOjMLf/Z2ZkXFEqSZD/GPQEABMaf57nf8ntBqSxN/XcDQHsA2o/705OTt4c9Sq0uG/67AaA9AOmXOpum8YJi/v8AQHsAsuP3rq+uvKDYYZLsAaA9AOU3uCQf/rxmZpsAaA9A/Z3doJqZbQCgPQDpQxpub2+9oFi/398GQHsAPhTZLi8vvaCYv0MMgF8CkBv51zlw2ecBAmMGQIwjK/1eQPDWP8LBcQCQQeCPl1cFkbZjvgsMAIH81tLvCRRu+SXGD4D4+XD8qx8KbWabq0IX6vV6W69PeNuOHwCcbdXVzxyQfMwPAEASAKIGAAAQAABAjB8ABAAAEAAAQIwfAAQAABDjBwABAADE+AFAAAAAAQAAxPgBQAAAADF+ABAAAECMHwDE+AFAAAAAMX4AEAAAwPgJAIyfAAAAAgDjJwAAgADA+AkAjJ8AwPgJAAAgAQD/ffyDR/buGzdiGArC8N7Lm3OWc7i1Y+XsfsMJnD3Olh8XT8KImOID2PMfgZ0mDQDFWvwByNm0+ReEblBPQxmaBqDYHeKHut249kyhawA5BJ+0Xk2bDPFjAJDhGDQARR8eP+Qav/8YNABF7xG//9PHbvRBA9AA7NEzxg/h8fMPQQMgDD+i+PmHoAEQhB9B/DAyGFafRRi+BqD47QMADQAg/vD544cM4wfQAAC/3S+y46RlN22uZtIIcjSphxnX7EZGw+q/7u7uiq6UBoc/LZfLh6K6PpiE2R+vaBRmL9Du0Oxqd2Cz07fZ7rvfy2KxyFMpDQ5pHormcr0dLmmtZtoM1AgzqduNbS5GNaPqZy53M5/P81ZKg8OfCIJW/AQDAN74NQCH8EniB7L4QQOIP37Fb0ASvwbAGz5P/M4DAA0g1vAVv8Gw8izf+DUAxQ8E8YMGkCff8BW/wwAg6/g1AO7waeKHPOMHDSAr9vD5v/qU8TsMAHzj1wAIwo8xfnCMHwZlDcCLPXzFzxA/BuAwAg2AIHzFD/b4NQAP/tHzx+82AIL4QQMIh+jjCR/xx//0cRmBBsARvuJ3iB80ACP+8OOPH7zih5gGoPgVv30A0P9zBBoAT/SO4St+DcAgs/AVP3DEDxrAhzjCB//wPeJnGgBoAOAfvuInjx80gEf2zgFIkqQLwP3btm3bHNu2zmvbtm3bGKztMXp7tqfHbFT1Gu/2xV1fXMdNve7qyOvJvKmJ+Co8/L6szCzMlhdDGUgvoPia/FoAyF+XpYM+0tvS0+Kzl1+Tn6LXBvCtTdmATB4aRUvPp/i9U34tAPYB/GxNBlxN8GMrOiG+Jr/3R3+af/S+AL65McuJ3EnxvVN8TX4tAAcHM4P4FB/R5FeFCvkd9IIACPmRgPkpfElPi69a/jvRfmDMjAfTkNegYcpoaF69DKSb20G6shKkC3NBOjkepGMDQDraTxW2o33Vc0Qtfdhz+DUnekUAKDrFkj7hnojPnfz4VuWGiSOg/egBMFdXgq2lGSRJcgvZ0ghyRznca9gLj2uGAZSEAdwKYIi/Om76qcCXhkYL4Dcr06Ek1k+F9PyIb0yLhqa5U6Hz3GmwdXaizEyQbe1wr6UAHt2eDM9KosWXn4b7ABjITzNsVAwtPWfim4a+Bp0Xz7ESnsZmgbvNRfCk4kXO5NcCYBbAdzZkwdlkf1p6HsR/MRU6TuSjmF7FZrM9xwL3Gg/A09IkMeWnETQABvJ/402iZyainNxOddoO7wObxdIj8jth7YT7pk3wrCRKRPm1AL5BsC0vhLvFbfOKhcT83qvyOyFZW+CRYapQ8tP4vPcC+IZK/rIsDfQc7ep0HD/isbwWqwS1TTJcrZEg/6YMO87LsLxAhlVFMuy6KENhsQzX9TIYmmQX8tPcr98KUBwsuvzvrQBo0WkmDY7oUfERY0YMmItvqJYehd9xQYZBm+0QNtsOQTPdI2KuHYZvk2H/FRlMrSi2Ou62nsEpkfoA+JFfC8DBT1enw9V4X0bSq8c04EWwmkxuS29qlXBUh1fW2CF4JkLLTjLjDfpvtMOmMzK0dLgfgdxZCU/LswQb/X20ALojZ1Kc18VHGiaOdHu+394lwdqTdohbgNKzkt+ZpEV22H4ep1Ok/E7rgidV/cSa+jgjfAAoMBMOZgZS0jPHNPgVYpfHeW6/77Idkhej8AzlJ8habof8m5K7EeCZQAj5tQAI/OcnE9KzBe/XsZrq3Jrjv7SaEp+B/AQDN8nQ2ObedAjXBPzLrwVAsvi1MEJcBoTibk8AmMuKXcp/uVr26qhPnQ3KjO4tjKE4iFv5CQQNgIH8X9+Y6cSvVqRBcYzPuyG+A7eu7B64IkPYbC+O+gSBz4mca4dTpZJ7W6RcyK8FQAtPMHRkNHPxHbSsXeFS/mX5tPjelt9ByCxcILuO4JFhCv/y94IAaNEJvrUhE84k+jJ/OMWYk+Ry0bvvMiejvgIYgaszgWRpgWfFkTzKT/B/YQNAaZkTPTOB+VNZHYXHSPkvVuG0h5NRnyByrss1Ad47JJL8QgZACMyGrXnB6qQnqOubS8qvb5AgcZHXxaflJ8hcZqd3hyyd8LQkkXv5tQAI/rw0FfThhPgq6Lp8UVH+TrMEuSv5lJ8At0jJs8C9xv2E/HyN/g60AJyBiYMj3JOeoGHMYHL033xW5ld8goDpdjh+g1gPWM3wpDyPe/m1AAh+vCoVrsT9n5achtzzb+mQIHaBmPIjOBUyW4hrA82FosiPaAF8bUPGO8ieGOux/HUvZ5Cj/6LjsvfFZyS/g23n6bMA7ghxJr/4AbAXnuZAur9HATSvWqIoP96XHzGXf/Ep+ZHEhXbyLtJHtyfyIr8WACk6ge+8JI8CoO7xn3tYFmrUJ8BbqZUXwy35/MsvfgCMZCdY/Fqoqjeu3UmPJqc/qYtl9eJzKD/Sb6OduFu0HZ8g401+8QOghWXPL1ekQnH0/wnpnWmaN01Rfnw0kV/xCfkJqCfLHlcP5kl+8QNAIXuCISOiCPGd6bxwVikAfKKLEF88+ZF9VyTlaVDDHv7k1wJQzzfXZ8CZBB9SfAe29nbFAHJXCio+wbCtyusAub2MI/kJbvxPC6A7vvo2ImfEu5S/NiaAfKaXK/EZyO//nNDZxDrA3Mh7ACi/FoCT8ARbcwLJAIzZidSDLoT4YsrvwNCkPA2CWwE8y9+7A/iqSv64JAX0ocoBmIa8qhQAPmsrrviE/Mg1vXIAT0uTeZFfC+CrDJgwKEwxgMZpYxVfOrXlrMSF+KzlRwpuKQfwpKoPr/ILFYB3ZSf4Ed4nFPv/bgNoXjpf8W1rS/NlcUd9Qn5k5wXlAB7VjOZVfvED+GoPkTUhptt/JdS6ZZ2iCFP2yWKP+gQrCpUDeFg7m734jOVXG0BHRweio8ADSVdXl5oAUDyuOJzmj9I70bp9o6IIk/bI/ItPyU+wLJ8I4M48DuXnIIBTp059UtQAvrI+HXzmJrwjgOblCxRFwDtA1YvPv/zItnPEFEg/jkP5OQhg3rx5nxUkABS+W5a+HOQUQOOMiUoi4I1jYotPQD0g87iqH/fyqw2gtbUV0VHggWTo0KGfUrsO8L70NL9YngLl4f9xBICvPVQU4eh1iXvxSfkJrlTbiG3QJA7l5yCAPn36fKStrY2bAEjZCQYPj3grgLq8ZEURLldJhPS8j/oE01xcCCsO5l5+NQE0NzWBTqd7v47BB0bwJfYBsBee4ttr0+B0/P8xAKiNC1YUASXhUXzEM/ERjFn58UjJ0sy//CoC6OzshMaGBkTnCjy4ZHxc3IcbGhrYB8BedpLoqbEYAIKvPVeMIG2JLJ74hPxI/43EzXAdlfzLryIAU10dMfp7ehZISfk0nlbUB+B90Sm25ARiANB19ZLyTtAxmQvx2ciP0DtA95oOsZGfgwDq6+vpuT+9BqBJT0//An4BFwGgaNzy50VJUBP6b2heOo9cB4gvvjOGJneuAvtwLT8VAF6vqjMace6P6NwFD6rIDg//VK3BAMTCGEXjmDSYNCAUjFnxikLgf2CJW6hWfH7lf2GVTLwlrgOe3QoVWv7m5mYwGAzEyK/6DEDzwh/+8CGcZ92prYWmxka82IAFchxAmhM/WJkMV2L+C+aqCvKWCGHEJ+RHVhQoj/53W05zKD8dAPqGAzCuS1F8k8mEc/4P6Lz9gVukySEhn8MQ8KxwW68H5GuLE3ucry5KIEkfEgrli+bh990t564bIHC8EfzGdo8vS8Z4jo8LwiYZ4WaZQfHnbLoyGtqK/qOSf3uHwn85oa+pQfD7fmvw/a9O98Hn6DwDD6+3TwckAAAACID+v45mRAJO8BQIUAgAAoAAIAAIAAKAACAACAACwAABQAAQAAQAAUAAEAAEgAB5lREvwKhUDgAAAABJRU5ErkJggg==" id="b" width="192" height="192"/></defs></svg>
    John Lee . resolved

    Should this just be a png file?

    Yiming Zhou

    Got rid of the image, no longer needed.

    File chrome/browser/resources/extensions/web_store/zero_state_promo.css
    Line 17, Patchset 15: --zero-state-promo-foreground-color: var(--cr-fallback-color-on-primary);
    John Lee . resolved

    Why is this using a hybrid of the color pipeline and fallback/md colors? Could we stick to one?

    Yiming Zhou

    Done


    #couponsButton .cr-icon {
    --cr-icon-image: url(icons/coupons.svg);
    }

    #writingButton .cr-icon {
    --cr-icon-image: url(icons/writing.svg);
    }

    #productivityButton .cr-icon {
    --cr-icon-image: url(icons/productivity.svg);
    }

    #aiButton .cr-icon {
    --cr-icon-image: url(icons/ai.svg);
    }
    Rebekah Potter . resolved

    Why don't we just use cr-icon, put all these svgs in an iconset, and pass the appropriate icon id in the template? This will also prevent the need for an extra grdp to put all the icons in.

    Yiming Zhou

    Done

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.html.ts
    Line 17, Patchset 15: aira-label="close"
    John Lee . resolved

    aria

    You can also probably remove this attribute if you already have a `title` attribute below.

    Yiming Zhou

    Done

    Line 17, Patchset 15: aira-label="close"
    title="close"
    John Lee . resolved

    These strings should be translated.

    Yiming Zhou

    Done

    Line 22, Patchset 15: <div id="sectionHeaderContainer">
    John Lee . resolved

    Please fix indentation in this file.

    Yiming Zhou

    Done

    File chrome/browser/resources/extensions/web_store/zero_state_promo_app.ts
    Line 25, Patchset 15: dismissPromoButtonToast: CrToastElement,
    John Lee . resolved

    Was this copied from somewhere? I don't see a toast.

    Yiming Zhou

    Done

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo.mojom
    Line 10, Patchset 11:enum WebStoreLinkClicked {
    Dana Fried . resolved

    This doesn't seem to line up with the UMA histogram values. Is there a separate enum in the code that's going to be emitted instead?

    Also, If this *is* intended to be used for UMA reporting, you should clearly mark that the values are used for logging and should not be changed - there's boilerplate for this:

    ```
    // These values are persisted to logs. Entries should not be renumbered and
    // numeric values should never be reused.
    ```
    Yiming Zhou

    I do intend these to be used for UMA reporting. And I am logging inside javascript instead of doing them in the page handler simply because it is less boilerplate code to write. But what, in your view, is the better practice?

    Dana Fried

    It's fine; you *will* need to put the comment boilerplate in. Just make sure the numeric values line up (they didn't appear to before).

    Also if it is possible for .mojom files you should use IfChange...ThenChange in both files (mojom and enums) to ensure they stay in sync.
    https://www.chromium.org/chromium-os/developer-library/guides/development/keep-files-in-sync/

    Yiming Zhou

    Done

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.cc
    Line 60, Patchset 15: webui::SetupWebUIDataSource(source, kExtensionsResources,
    Rebekah Potter . resolved

    Why do we need a second WebUI that serves all the same resources as chrome://extensions?

    Should this just be a subpage/different route on the extensions page, or is it intended to be a fully separate UI? If the latter, it should have its own resource bundle/build_webui target.

    Yiming Zhou

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dana Fried
    • John Lee
    • Rebekah Potter
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    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: I43df61089e3c649157a124a464e411e93c201aec
    Gerrit-Change-Number: 6396833
    Gerrit-PatchSet: 18
    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
    Gerrit-Reviewer: John Lee <john...@chromium.org>
    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
    Gerrit-Attention: John Lee <john...@chromium.org>
    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
    Gerrit-Comment-Date: Mon, 28 Apr 2025 21:22:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: John Lee <john...@chromium.org>
    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
    Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
    Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rebekah Potter (Gerrit)

    unread,
    Apr 28, 2025, 9:06:56 PMApr 28
    to Yiming Zhou, Kelvin Jiang, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
    Attention needed from Dana Fried, John Lee, Kelvin Jiang and Yiming Zhou

    Rebekah Potter added 15 comments

    Patchset-level comments
    File-level comment, Patchset 18 (Latest):
    Rebekah Potter . resolved

    Also adding extensions WebUI OWNER, since this new UI is going into the same folders, so will be owned by the same team.

    File chrome/browser/resources/extensions/zero_state_promo/BUILD.gn
    Line 39, Patchset 18 (Latest): "//tools/typescript/definitions/chrome_send.d.ts",
    "//tools/typescript/definitions/developer_private.d.ts",
    Rebekah Potter . unresolved

    are we using all these APIs? In particular chrome.send isn't usually needed for a new UI that's relying on Mojo. Same question for all the .d.ts files below, e.g. tabs, runtime, pending etc.

    Line 50, Patchset 18 (Latest): "//ui/webui/resources/cr_components/cr_shortcut_input:build_ts",
    Rebekah Potter . unresolved

    where is this used?

    Line 52, Patchset 18 (Latest): "//ui/webui/resources/cr_components/managed_footnote:build_ts",
    Rebekah Potter . unresolved

    where is this used?

    Line 60, Patchset 18 (Latest): if (optimize) {
    optimize_webui_host = "extensions-zero-state"
    optimize_webui_in_files = [ "zero_state_promo.js" ]
    }
    Rebekah Potter . unresolved

    This UI only has a couple of files. Usually such UIs don't benefit from bundling. Are you seeing a significant performance improvement from this?

    File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.css
    Line 11, Patchset 18 (Latest): * #scheme=relative
    Rebekah Potter . unresolved

    Omit, or actually use scheme-relative imports in this file?

    Line 56, Patchset 18 (Latest):#contentContainer {
    Rebekah Potter . unresolved

    should these styles be explicitly shared with #promoContainer, e.g. with a CSS class, or just by partially combining the rules? It seems like they are using an identical gap for example.


    #couponsButton .cr-icon {
    --cr-icon-image: url(icons/coupons.svg);
    }

    #writingButton .cr-icon {
    --cr-icon-image: url(icons/writing.svg);
    }

    #productivityButton .cr-icon {
    --cr-icon-image: url(icons/productivity.svg);
    }

    #aiButton .cr-icon {
    --cr-icon-image: url(icons/ai.svg);
    }
    Rebekah Potter . unresolved

    out of date?

    File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.html
    Line 14, Patchset 18 (Latest): body {
    margin: 0px;
    }
    Rebekah Potter . unresolved

    indentation is off

    Line 19, Patchset 18 (Latest): <extensions-zero-state-promo>
    </extensions-zero-state-promo>
    Rebekah Potter . unresolved

    fits on one line?

    File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
    Line 36, Patchset 18 (Latest): @click="${this.onProductivityButtonClick_}">
    Rebekah Potter . unresolved

    here and elsewhere in this file: wrapped HTML lines should be indented +4 from the preceding line.

    File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
    Line 9, Patchset 18 (Latest):import 'chrome://resources/cr_elements/cr_menu_selector/cr_menu_selector.js';
    Rebekah Potter . unresolved

    where is this used?

    Line 54, Patchset 18 (Latest): this.apiProxy_ = ZeroStatePromoBrowserProxyImpl.getInstance();
    this.customHelpBubblehandler_ =
    CustomHelpBubbleProxyImpl.getInstance().getHandler();
    Rebekah Potter . unresolved

    Just do this in the member declarations above, and don't override the constructor?

    File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_browser_proxy.ts
    Line 21, Patchset 18 (Latest): handler: PageHandlerRemote;
    Rebekah Potter . unresolved

    Normally browser proxies follow one of the following patterns:
    (1) Public `handler`, such that clients can just call `BrowserProxy.getInstance().handler.someMethod()` or
    (2) Any `handler` is private, and wrapper methods (like on line 38) are used. So clients use `BrowserProxy.getInstance().someMethod()`

    This class uses both, so it's not clear how clients are supposed to use it. Can we either make handler private, if it's not intended for clients to invoke methods on it directly, or remove the wrapper method?

    File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
    Line 23, Patchset 18 (Latest): : public TopChromeWebUIController,
    Rebekah Potter . unresolved

    Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dana Fried
    • John Lee
    • Kelvin Jiang
    • Yiming Zhou
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 18
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
      Gerrit-Comment-Date: Tue, 29 Apr 2025 01:06:48 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dana Fried (Gerrit)

      unread,
      Apr 29, 2025, 9:53:28 AMApr 29
      to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Dana Fried added 1 comment

      Patchset-level comments
      Dana Fried . unresolved

      I am awaiting resolution of Rebekah's feedback, as she's more of an expert in this area. Feel free to tag me in any questions/threads if you want my input or don't know how to resolve an issue (or DM me)

      Open in Gerrit

      Related details

      Attention is currently required from:
      Gerrit-Comment-Date: Tue, 29 Apr 2025 13:53:20 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kelvin Jiang (Gerrit)

      unread,
      Apr 29, 2025, 1:35:33 PMApr 29
      to Yiming Zhou, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee and Yiming Zhou

      Kelvin Jiang voted and added 1 comment

      Votes added by Kelvin Jiang

      Code-Review+1

      1 comment

      Patchset-level comments
      Kelvin Jiang . resolved

      histograms LGTM

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Yiming Zhou
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 18
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Comment-Date: Tue, 29 Apr 2025 17:35:21 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yiming Zhou (Gerrit)

      unread,
      Apr 29, 2025, 6:51:01 PMApr 29
      to Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Rebekah Potter

      Yiming Zhou added 14 comments

      File chrome/browser/resources/extensions/zero_state_promo/BUILD.gn
      Line 39, Patchset 18: "//tools/typescript/definitions/chrome_send.d.ts",
      "//tools/typescript/definitions/developer_private.d.ts",
      Rebekah Potter . resolved

      are we using all these APIs? In particular chrome.send isn't usually needed for a new UI that's relying on Mojo. Same question for all the .d.ts files below, e.g. tabs, runtime, pending etc.

      Yiming Zhou

      Done

      Line 50, Patchset 18: "//ui/webui/resources/cr_components/cr_shortcut_input:build_ts",
      Rebekah Potter . resolved

      where is this used?

      Yiming Zhou

      Removed.

      Line 52, Patchset 18: "//ui/webui/resources/cr_components/managed_footnote:build_ts",
      Rebekah Potter . resolved

      where is this used?

      Yiming Zhou

      Removed.

      Line 60, Patchset 18: if (optimize) {

      optimize_webui_host = "extensions-zero-state"
      optimize_webui_in_files = [ "zero_state_promo.js" ]
      }
      Rebekah Potter . resolved

      This UI only has a couple of files. Usually such UIs don't benefit from bundling. Are you seeing a significant performance improvement from this?

      Yiming Zhou

      Removed.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.css
      Line 11, Patchset 18: * #scheme=relative
      Rebekah Potter . resolved

      Omit, or actually use scheme-relative imports in this file?

      Yiming Zhou

      Omitted.

      Line 56, Patchset 18:#contentContainer {
      Rebekah Potter . resolved

      should these styles be explicitly shared with #promoContainer, e.g. with a CSS class, or just by partially combining the rules? It seems like they are using an identical gap for example.

      Yiming Zhou

      Removed.


      #couponsButton .cr-icon {
      --cr-icon-image: url(icons/coupons.svg);
      }

      #writingButton .cr-icon {
      --cr-icon-image: url(icons/writing.svg);
      }

      #productivityButton .cr-icon {
      --cr-icon-image: url(icons/productivity.svg);
      }

      #aiButton .cr-icon {
      --cr-icon-image: url(icons/ai.svg);
      }
      Rebekah Potter . resolved

      out of date?

      Yiming Zhou

      Replaced with the proper variable.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.html
      Line 14, Patchset 18: body {
      margin: 0px;
      }
      Rebekah Potter . resolved

      indentation is off

      Yiming Zhou

      Done

      Line 19, Patchset 18: <extensions-zero-state-promo>
      </extensions-zero-state-promo>
      Rebekah Potter . resolved

      fits on one line?

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
      Line 36, Patchset 18: @click="${this.onProductivityButtonClick_}">
      Rebekah Potter . resolved

      here and elsewhere in this file: wrapped HTML lines should be indented +4 from the preceding line.

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
      Line 9, Patchset 18:import 'chrome://resources/cr_elements/cr_menu_selector/cr_menu_selector.js';
      Rebekah Potter . resolved

      where is this used?

      Yiming Zhou

      Removed

      Line 54, Patchset 18: this.apiProxy_ = ZeroStatePromoBrowserProxyImpl.getInstance();
      this.customHelpBubblehandler_ =
      CustomHelpBubbleProxyImpl.getInstance().getHandler();
      Rebekah Potter . resolved

      Just do this in the member declarations above, and don't override the constructor?

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_browser_proxy.ts
      Line 21, Patchset 18: handler: PageHandlerRemote;
      Rebekah Potter . resolved

      Normally browser proxies follow one of the following patterns:
      (1) Public `handler`, such that clients can just call `BrowserProxy.getInstance().handler.someMethod()` or
      (2) Any `handler` is private, and wrapper methods (like on line 38) are used. So clients use `BrowserProxy.getInstance().someMethod()`

      This class uses both, so it's not clear how clients are supposed to use it. Can we either make handler private, if it's not intended for clients to invoke methods on it directly, or remove the wrapper method?

      Yiming Zhou

      Done

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . resolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Kelvin Jiang
      • Rebekah Potter
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 19
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Comment-Date: Tue, 29 Apr 2025 22:50:53 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yiming Zhou (Gerrit)

      unread,
      Apr 29, 2025, 7:28:15 PMApr 29
      to Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Rebekah Potter

      Yiming Zhou added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Kelvin Jiang
      • Rebekah Potter
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 20
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Comment-Date: Tue, 29 Apr 2025 23:28:02 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      Apr 30, 2025, 12:14:47 AMApr 30
      to Yiming Zhou, Kelvin Jiang, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Rebekah Potter added 9 comments

      File chrome/browser/resources/extensions/zero_state_promo/icons.html
      Line 1, Patchset 20 (Latest):<cr-iconset name="icons" size="14">
      Rebekah Potter . unresolved

      nit: use a more descriptive name?

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.css

      #couponsButton .cr-icon {
      --cr-icon-image: url(icons/coupons.svg);
      }

      #writingButton .cr-icon {
      --cr-icon-image: url(icons/writing.svg);
      }

      #productivityButton .cr-icon {
      --cr-icon-image: url(icons/productivity.svg);
      }

      #aiButton .cr-icon {
      --cr-icon-image: url(icons/ai.svg);
      }
      Rebekah Potter . unresolved

      These selectors do not apply to any element in the app. Nothing has a CSS class of cr-icon.

      Moreover, cr-icon instances do not require additional CSS variables to set their icons when using the icon property.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
      Line 14, Patchset 20 (Latest): <h3 id="title" class="col">$i18n{extensionsZeroStateIphHeader}</h3>
      Rebekah Potter . unresolved

      where is this CSS class used? I don't see it in the CSS file.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
      Line 9, Patchset 20 (Latest):import 'chrome://resources/cr_elements/icons.html.js';
      Rebekah Potter . unresolved

      Where is this iconset used?

      Line 17, Patchset 20 (Latest):import {getCss} from './zero_state_promo.css.js';
      Rebekah Potter . unresolved

      This file should be named the same as the custom element.

      zero_state_promo.css should refer only to a CSS file used by the top level zero_state_promo.html (which doesn't seem to exist).

      Line 50, Patchset 20 (Latest): private customHelpBubblehandler_: CustomHelpBubbleHandlerInterface =
      Rebekah Potter . unresolved

      use consistent camelCase? i.e. customHelpBubbleHandler?

      Line 52, Patchset 20 (Latest):
      constructor() {
      super();
      }
      Rebekah Potter . unresolved

      remove trivial constructor.

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_page_handler.cc
      Line 42, Patchset 20 (Latest): // Open in active tab the user is on the New Tab Page.
      Rebekah Potter . unresolved

      Can you make this comment a bit more clear? Is this saying that this UI is always shown with the NTP?

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Rebekah Potter

      I had thought there was a way to add help bubbles to other WebUIs also - for example I thought settings used them (see e.g. this code: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/settings/settings_ui.cc;l=772) and Settings is not a top chrome WebUI; it runs in its own renderer.

      Agree this is a better question for dfried@.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Kelvin Jiang
      • Yiming Zhou
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 20
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Comment-Date: Wed, 30 Apr 2025 04:14:38 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yiming Zhou (Gerrit)

      unread,
      Apr 30, 2025, 7:38:27 PMApr 30
      to Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Rebekah Potter

      Yiming Zhou added 8 comments

      File chrome/browser/resources/extensions/zero_state_promo/icons.html
      Line 1, Patchset 20:<cr-iconset name="icons" size="14">
      Rebekah Potter . resolved

      nit: use a more descriptive name?

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo.css

      #couponsButton .cr-icon {
      --cr-icon-image: url(icons/coupons.svg);
      }

      #writingButton .cr-icon {
      --cr-icon-image: url(icons/writing.svg);
      }

      #productivityButton .cr-icon {
      --cr-icon-image: url(icons/productivity.svg);
      }

      #aiButton .cr-icon {
      --cr-icon-image: url(icons/ai.svg);
      }
      Rebekah Potter . resolved

      These selectors do not apply to any element in the app. Nothing has a CSS class of cr-icon.

      Moreover, cr-icon instances do not require additional CSS variables to set their icons when using the icon property.

      Yiming Zhou

      Beg pardon! forgot to remove them after switching over to icon-set.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
      Line 14, Patchset 20: <h3 id="title" class="col">$i18n{extensionsZeroStateIphHeader}</h3>
      Rebekah Potter . resolved

      where is this CSS class used? I don't see it in the CSS file.

      Yiming Zhou

      Removed.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
      Line 9, Patchset 20:import 'chrome://resources/cr_elements/icons.html.js';
      Rebekah Potter . resolved

      Where is this iconset used?

      Yiming Zhou

      Removed.

      Line 17, Patchset 20:import {getCss} from './zero_state_promo.css.js';
      Rebekah Potter . resolved

      This file should be named the same as the custom element.

      zero_state_promo.css should refer only to a CSS file used by the top level zero_state_promo.html (which doesn't seem to exist).

      Yiming Zhou

      Done

      Line 50, Patchset 20: private customHelpBubblehandler_: CustomHelpBubbleHandlerInterface =
      Rebekah Potter . resolved

      use consistent camelCase? i.e. customHelpBubbleHandler?

      Yiming Zhou

      Done

      Line 52, Patchset 20:
      constructor() {
      super();
      }
      Rebekah Potter . resolved

      remove trivial constructor.

      Yiming Zhou

      Done

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_page_handler.cc
      Line 42, Patchset 20: // Open in active tab the user is on the New Tab Page.
      Rebekah Potter . resolved

      Can you make this comment a bit more clear? Is this saying that this UI is always shown with the NTP?

      Yiming Zhou

      Beg pardon, copied and pasted from another cl I was working on.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Kelvin Jiang
      • Rebekah Potter
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 24
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Comment-Date: Wed, 30 Apr 2025 23:38:18 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      May 1, 2025, 12:13:03 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, John Lee, Kelvin Jiang and Yiming Zhou

      Rebekah Potter added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Rebekah Potter

      I had thought there was a way to add help bubbles to other WebUIs also - for example I thought settings used them (see e.g. this code: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/settings/settings_ui.cc;l=772) and Settings is not a top chrome WebUI; it runs in its own renderer.

      Agree this is a better question for dfried@.

      Rebekah Potter

      Actually adding dfried@ to attention set for this question.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dana Fried
      • John Lee
      • Kelvin Jiang
      • Yiming Zhou
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 24
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
      Gerrit-Comment-Date: Thu, 01 May 2025 16:12:54 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dana Fried (Gerrit)

      unread,
      May 1, 2025, 12:14:39 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Dana Fried added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Rebekah Potter

      I had thought there was a way to add help bubbles to other WebUIs also - for example I thought settings used them (see e.g. this code: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/settings/settings_ui.cc;l=772) and Settings is not a top chrome WebUI; it runs in its own renderer.

      Agree this is a better question for dfried@.

      Rebekah Potter

      Actually adding dfried@ to attention set for this question.

      Dana Fried
      Yes, these are two entirely different things:
      - A generic help bubble that can appear in a WebUI in a tab.
      - A custom bubble that appears anchored to Top Chrome whose contents can be WebUI

      The TopChromeWebUI approach is correct.
      Open in Gerrit

      Related details

      Attention is currently required from:
      Gerrit-Comment-Date: Thu, 01 May 2025 16:14:30 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      May 1, 2025, 12:28:46 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Rebekah Potter added 8 comments

      Patchset-level comments
      File-level comment, Patchset 24 (Latest):
      Rebekah Potter . resolved

      Mostly minor comments regarding the CSS. Other WebUI changes largely LGTM.

      File chrome/browser/resources/extensions/zero_state_promo/icons.html
      Line 5, Patchset 24 (Latest): <path fill="#A8C7FA" d="M7 13.4c-.022 0-.033-.011-.033-.033 0-.878-.167-1.7-.5-2.467A6.244 6.244 0 0 0 3.1 7.533a6.119 6.119 0 0 0-2.467-.5C.611 7.033.6 7.023.6 7c0-.022.011-.033.033-.033A6.3 6.3 0 0 0 3.1 6.483a6.474 6.474 0 0 0 2.017-1.366A6.244 6.244 0 0 0 6.467 3.1c.333-.767.5-1.589.5-2.467C6.967.611 6.977.6 7 .6c.022 0 .033.011.033.033 0 .878.161 1.7.484 2.467a6.474 6.474 0 0 0 1.366 2.017A6.473 6.473 0 0 0 10.9 6.483a6.3 6.3 0 0 0 2.467.484c.022 0 .033.01.033.033 0 .022-.011.033-.033.033-.878 0-1.7.167-2.467.5a6.244 6.244 0 0 0-2.017 1.35A6.473 6.473 0 0 0 7.517 10.9a6.3 6.3 0 0 0-.484 2.467c0 .022-.01.033-.033.033Z"/>
      Rebekah Potter . unresolved

      Most icons in iconsets don't use fill, and instead do any icon color adjustments using CSS variables. See example from cr-icon-button here, where it sets the colors for cr-icon with --iron-icon-fill/stroke-color: https://source.chromium.org/chromium/chromium/src/+/main:ui/webui/resources/cr_elements/cr_icon_button/cr_icon_button.css;l=115-116

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
      Line 19, Patchset 24 (Latest):#promoContainer {
      Rebekah Potter . unresolved

      do we need this outer div or could all these styles be set on :host instead?

      Line 37, Patchset 24 (Latest):#headerContainer>* {
      padding: 0px;
      }
      Rebekah Potter . unresolved

      does it work to set the 0 padding on headerContainer itself instead, or does #title or #dismissButton have some default padding you're trying to remove with this?

      Line 46, Patchset 24 (Latest): width: 240px;
      Rebekah Potter . unresolved

      nit: Add a comment or explicitly calculate this from the 300px parent width - 2*20px padding - 20px icon?

      Line 60, Patchset 24 (Latest): width: 272px;
      Rebekah Potter . unresolved

      this is a little weird since the parent of this element has width: 300px and then 20px padding, which implies 20px start/end, leaving 260px for content in the middle. Should we just let this be full width in the parent instead of specifying a width that looks like it will overflow?

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
      Line 42, Patchset 24 (Latest):
      static override get properties() {
      return {};
      }
      Rebekah Potter . unresolved

      do we need to override this to empty? What breaks if we remove this?

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_browser_proxy.ts
      Line 21, Patchset 24 (Latest): private handler: PageHandlerRemote;
      Rebekah Potter . unresolved

      nit (optional): other extensions code, including the other .ts file in this CL, uses a trailing "_" suffix for private properties. Let's be consistent?

      Gerrit-Comment-Date: Thu, 01 May 2025 16:28:37 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      May 1, 2025, 12:40:34 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, John Lee, Kelvin Jiang and Yiming Zhou

      Rebekah Potter added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Rebekah Potter

      I had thought there was a way to add help bubbles to other WebUIs also - for example I thought settings used them (see e.g. this code: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/settings/settings_ui.cc;l=772) and Settings is not a top chrome WebUI; it runs in its own renderer.

      Agree this is a better question for dfried@.

      Rebekah Potter

      Actually adding dfried@ to attention set for this question.

      Dana Fried
      Yes, these are two entirely different things:
      - A generic help bubble that can appear in a WebUI in a tab.
      - A custom bubble that appears anchored to Top Chrome whose contents can be WebUI

      The TopChromeWebUI approach is correct.
      Rebekah Potter

      I think the question is whether the latter approach is correct given that this particular UI is not necessarily Top Chrome. My understanding was that Top Chrome WebUIs are WebUI pages with ".top-chrome" in the URL, which have additional special properties/treatment and are not just any WebUI that doesn't appear in a tab. For example, Print Preview isn't a Top Chrome WebUI, despite appearing in a constrained dialog. This WebUI is appearing in a dialog but isn't using the "top-chrome" URL suffix, which makes it seem more like the Print Preview case on initial review.

      However, this UI extends TopChromeWebUIController/TopChromeWebUIConfig, so it is going to be handled as a Top Chrome UI (for example, top Chrome configs are tracked in a special set: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/top_chrome/top_chrome_webui_config.cc)

      Do you know if it's okay for a WebUI page that isn't using ".top-chrome" to be treated as a Top Chrome UI? Is the current recommendation to promote any WebUI page that needs a help bubble and isn't in a tab to a Top Chrome UI? If so, should such UIs use the ".top-chrome" suffix?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dana Fried
      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
      Gerrit-Comment-Date: Thu, 01 May 2025 16:40:25 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
      Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dana Fried (Gerrit)

      unread,
      May 1, 2025, 12:45:45 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Dana Fried added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . unresolved

      Not the expert on this, but I thought Top Chrome WebUIs where generally UIs with a ".top-chrome" host. Is there a reason this is using TopChromeWebUIController and not just MojoWebUIController?

      Yiming Zhou

      Switched to MojoWebUiController.

      Yiming Zhou

      Actually this class does need to extend TopChromeWebUI, as that is what the CustomWebUIHelpBubble class, which creates the webui-based IPH in https://chromium-review.googlesource.com/c/chromium/src/+/6404446, requires. Perhaps @dfr...@chromium.org can chime in, and on whether the association with a ".top-chrome" host is a hard requirement.

      Rebekah Potter

      I had thought there was a way to add help bubbles to other WebUIs also - for example I thought settings used them (see e.g. this code: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/settings/settings_ui.cc;l=772) and Settings is not a top chrome WebUI; it runs in its own renderer.

      Agree this is a better question for dfried@.

      Rebekah Potter

      Actually adding dfried@ to attention set for this question.

      Dana Fried
      Yes, these are two entirely different things:
      - A generic help bubble that can appear in a WebUI in a tab.
      - A custom bubble that appears anchored to Top Chrome whose contents can be WebUI

      The TopChromeWebUI approach is correct.
      Rebekah Potter

      I think the question is whether the latter approach is correct given that this particular UI is not necessarily Top Chrome. My understanding was that Top Chrome WebUIs are WebUI pages with ".top-chrome" in the URL, which have additional special properties/treatment and are not just any WebUI that doesn't appear in a tab. For example, Print Preview isn't a Top Chrome WebUI, despite appearing in a constrained dialog. This WebUI is appearing in a dialog but isn't using the "top-chrome" URL suffix, which makes it seem more like the Print Preview case on initial review.

      However, this UI extends TopChromeWebUIController/TopChromeWebUIConfig, so it is going to be handled as a Top Chrome UI (for example, top Chrome configs are tracked in a special set: https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/webui/top_chrome/top_chrome_webui_config.cc)

      Do you know if it's okay for a WebUI page that isn't using ".top-chrome" to be treated as a Top Chrome UI? Is the current recommendation to promote any WebUI page that needs a help bubble and isn't in a tab to a Top Chrome UI? If so, should such UIs use the ".top-chrome" suffix?

      Dana Fried

      To be fair, it was basically the only way to easily make it work. The Top Chrome WebUI is designed for relatively lightweight dialogs, which these are. And they do appear in Top Chrome. However, you do have a point. I think the question would be more one of authorial intent. I'll reach out to Keren Zhu about it.

      I've pinged him on DMs and will see what he says.

      Open in Gerrit

      Related details

      Attention is currently required from:
      Gerrit-Comment-Date: Thu, 01 May 2025 16:45:35 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Keren Zhu (Gerrit)

      unread,
      May 1, 2025, 2:41:40 PMMay 1
      to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee, Kelvin Jiang and Yiming Zhou

      Keren Zhu added 2 comments

      Patchset-level comments
      Keren Zhu . resolved

      Adding myself to the reviewer list per Dana's request. Reviwer

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Keren Zhu

      It should be ok to use TopChromeWebUIController in this case.

      A bit of background: TopChromeWebUIController used to be called "MojoBubbleWebUIController". It was wrong name because this controller is also used by side panel WebUIs, so I renamed it in [crbug.com/329677669](https://crbug.com/329677669).

      ".top-chrome" and TopChromeController can be used independently. For example, the lens overlay [uses](https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/lens/lens_overlay_untrusted_ui.cc;l=41;drc=4341cc4e529444bd201ad3aeeed0ec561e04103f) UntrustedTopChromeWebUIController, but its [URL](https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/webui_url_constants.h;l=350;drc=1e17874cde2d4733a808080d203f6271ce8783fd) does not have the ".top-chrome" suffix.

      Using ".top-chrome" has a few side-effects. For example, ".top-chrome" WebUIs share a single process. On mac, a click event on a ".top-chrome" WebUI in an inactive window will reach the content, whereas a non-topchrome one will require an additional click.

      Using TopChromeWebUIController has another set of side-effects, e.g., it can opt in for preloading, it will appear on the `WebUI.TopChrome.RequestToFCP.{WebUIName}` histograms.

      Ideally, I think we should consolidate these 2 concepts. For now, documentation is probably more important. I filed [crbug.com/415076949](https://crbug.com/415076949) for documentation.

      Gerrit-CC: Keren Zhu <kere...@chromium.org>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Comment-Date: Thu, 01 May 2025 18:41:31 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kelvin Jiang (Gerrit)

      unread,
      May 1, 2025, 3:52:12 PMMay 1
      to Yiming Zhou, Keren Zhu, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from John Lee and Yiming Zhou

      Kelvin Jiang voted and added 1 comment

      Votes added by Kelvin Jiang

      Code-Review+1

      1 comment

      Patchset-level comments
      Kelvin Jiang . resolved

      histogram changes s lgtm

      Open in Gerrit

      Related details

      Attention is currently required from:
      • John Lee
      • Yiming Zhou
      Gerrit-Comment-Date: Thu, 01 May 2025 19:51:58 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yiming Zhou (Gerrit)

      unread,
      May 1, 2025, 4:37:56 PMMay 1
      to Kelvin Jiang, Keren Zhu, John Lee, Rebekah Potter, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, John Lee, Kelvin Jiang, Keren Zhu and Rebekah Potter

      Yiming Zhou added 8 comments

      File chrome/browser/resources/extensions/zero_state_promo/icons.html
      Line 5, Patchset 24: <path fill="#A8C7FA" d="M7 13.4c-.022 0-.033-.011-.033-.033 0-.878-.167-1.7-.5-2.467A6.244 6.244 0 0 0 3.1 7.533a6.119 6.119 0 0 0-2.467-.5C.611 7.033.6 7.023.6 7c0-.022.011-.033.033-.033A6.3 6.3 0 0 0 3.1 6.483a6.474 6.474 0 0 0 2.017-1.366A6.244 6.244 0 0 0 6.467 3.1c.333-.767.5-1.589.5-2.467C6.967.611 6.977.6 7 .6c.022 0 .033.011.033.033 0 .878.161 1.7.484 2.467a6.474 6.474 0 0 0 1.366 2.017A6.473 6.473 0 0 0 10.9 6.483a6.3 6.3 0 0 0 2.467.484c.022 0 .033.01.033.033 0 .022-.011.033-.033.033-.878 0-1.7.167-2.467.5a6.244 6.244 0 0 0-2.017 1.35A6.473 6.473 0 0 0 7.517 10.9a6.3 6.3 0 0 0-.484 2.467c0 .022-.01.033-.033.033Z"/>
      Rebekah Potter . resolved

      Most icons in iconsets don't use fill, and instead do any icon color adjustments using CSS variables. See example from cr-icon-button here, where it sets the colors for cr-icon with --iron-icon-fill/stroke-color: https://source.chromium.org/chromium/chromium/src/+/main:ui/webui/resources/cr_elements/cr_icon_button/cr_icon_button.css;l=115-116

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
      Line 19, Patchset 24:#promoContainer {
      Rebekah Potter . resolved

      do we need this outer div or could all these styles be set on :host instead?

      Yiming Zhou

      Setting it on :host works.

      Line 37, Patchset 24:#headerContainer>* {
      padding: 0px;
      }
      Rebekah Potter . resolved

      does it work to set the 0 padding on headerContainer itself instead, or does #title or #dismissButton have some default padding you're trying to remove with this?

      Yiming Zhou

      Done

      Line 46, Patchset 24: width: 240px;
      Rebekah Potter . resolved

      nit: Add a comment or explicitly calculate this from the 300px parent width - 2*20px padding - 20px icon?

      Yiming Zhou

      Done

      Line 60, Patchset 24: width: 272px;
      Rebekah Potter . resolved

      this is a little weird since the parent of this element has width: 300px and then 20px padding, which implies 20px start/end, leaving 260px for content in the middle. Should we just let this be full width in the parent instead of specifying a width that looks like it will overflow?

      Yiming Zhou

      Removed hard-coded width.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts

      static override get properties() {
      return {};
      }
      Rebekah Potter . resolved

      do we need to override this to empty? What breaks if we remove this?

      Yiming Zhou

      Done

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_browser_proxy.ts
      Line 21, Patchset 24: private handler: PageHandlerRemote;
      Rebekah Potter . resolved

      nit (optional): other extensions code, including the other .ts file in this CL, uses a trailing "_" suffix for private properties. Let's be consistent?

      Yiming Zhou

      Done

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Line 23, Patchset 18: : public TopChromeWebUIController,
      Rebekah Potter . resolved
      Yiming Zhou

      Acknowledged

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dana Fried
      • John Lee
      • Kelvin Jiang
      • Keren Zhu
      • Rebekah Potter
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 24
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-CC: Keren Zhu <kere...@chromium.org>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
      Gerrit-Comment-Date: Thu, 01 May 2025 20:37:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
      Comment-In-Reply-To: Keren Zhu <kere...@chromium.org>
      Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      May 1, 2025, 7:01:43 PMMay 1
      to Yiming Zhou, Kelvin Jiang, Keren Zhu, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, John Lee, Kelvin Jiang, Keren Zhu and Yiming Zhou

      Rebekah Potter voted and added 5 comments

      Votes added by Rebekah Potter

      Code-Review+1

      5 comments

      Patchset-level comments
      File-level comment, Patchset 25 (Latest):
      Rebekah Potter . unresolved

      LGTM with comments.

      Also, high level question, can you confirm there is a plan to add some basic WebUI automated tests for this in chrome/test/data/webui in a followup CL?

      File chrome/browser/resources/extensions/zero_state_promo/BUILD.gn
      Line 1, Patchset 25 (Latest):# Copyright 2025 The Chromium Authors
      Rebekah Potter . unresolved

      Does this folder need a dedicated OWNERS file or is it considered to be owned by the folks in chrome/browser/resources/extensions/OWNERS? Same question for the corresponding chrome/browser/ui/webui/ folder.

      New WebUIs normally are required to have an owning team, so if that isn't the chrome://extensions owners, we should add OWNERS files.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
      Line 49, Patchset 25 (Latest): --cr-icon-button-size: 20px;
      Rebekah Potter . unresolved

      use dismiss-button-icon-size here too?

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
      Line 13, Patchset 25 (Latest): <h3 id="title">$i18n{extensionsZeroStateIphHeader}</h3>
      <cr-icon-button id="dismissButton"
      class="icon-clear"
      title="$i18n{extensionsZeroStateIphDismissButtonTitle}"
      @click="${this.onDismissButtonClick_}">
      </cr-icon-button>
      Rebekah Potter . unresolved

      needs -2 indent

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
      Line 32, Patchset 25 (Latest): return 'extensions-zero-state-promo';
      Rebekah Potter . unresolved

      nit: tag name should normally be either class name, converted to dash case with the "Element" bit removed, or the same thing + a prefix (so in this case either extensions-zero-state-promo-app or just zero-state-promo-app)

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dana Fried
      • John Lee
      • Kelvin Jiang
      • Keren Zhu
      • Yiming Zhou
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I43df61089e3c649157a124a464e411e93c201aec
      Gerrit-Change-Number: 6396833
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
      Gerrit-Reviewer: John Lee <john...@chromium.org>
      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-CC: Keren Zhu <kere...@chromium.org>
      Gerrit-Attention: John Lee <john...@chromium.org>
      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
      Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
      Gerrit-Comment-Date: Thu, 01 May 2025 23:01:30 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rebekah Potter (Gerrit)

      unread,
      May 1, 2025, 7:03:31 PMMay 1
      to Yiming Zhou, Kelvin Jiang, Keren Zhu, John Lee, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, John Lee, Kelvin Jiang, Keren Zhu and Yiming Zhou

      Rebekah Potter added 1 comment

      File chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h
      Rebekah Potter

      kerenzhu@ thanks for the detailed explanation. It has indeed not been clear to me at least what the difference was between ".top-chrome" and TopChromeWebUIController, and had assumed that these two concepts were the same, rather than independent things where any given UI can be one, both, or neither. Thanks for the documentation bug.

      Gerrit-Comment-Date: Thu, 01 May 2025 23:03:14 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
      Comment-In-Reply-To: Keren Zhu <kere...@chromium.org>
      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
      Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      John Lee (Gerrit)

      unread,
      May 1, 2025, 7:26:27 PMMay 1
      to Yiming Zhou, John Lee, Rebekah Potter, Kelvin Jiang, Keren Zhu, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
      Attention needed from Dana Fried, Kelvin Jiang, Keren Zhu and Yiming Zhou

      John Lee voted and added 3 comments

      Votes added by John Lee

      Code-Review+1

      3 comments

      File chrome/browser/resources/extensions/zero_state_promo/icons.html
      Line 1, Patchset 25 (Latest):<cr-iconset name="web-store-links" size="14">
      John Lee . unresolved

      `zero-state-promo`? These icons don't all seem specific to the web store.

      File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
      Line 43, Patchset 25 (Latest): width: calc(100% - var(--top-container-padding) * 2 - var(dismiss-button-icon-size));
      John Lee . unresolved

      `var(--dismiss`

      I don't think you actually need this width. All you might need is a `flex-shrink: 0` on the #dismissButton so that the button never shrinks.

      Line 66, Patchset 25 (Latest): --color-chip-icon: #A8C7FA;
      John Lee . unresolved

      Does this hardcoded color work for all themes?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dana Fried
      • Kelvin Jiang
      • Keren Zhu
      • Yiming Zhou
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        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: I43df61089e3c649157a124a464e411e93c201aec
        Gerrit-Change-Number: 6396833
        Gerrit-PatchSet: 25
        Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
        Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
        Gerrit-Reviewer: John Lee <john...@chromium.org>
        Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Keren Zhu <kere...@chromium.org>
        Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
        Gerrit-Attention: Keren Zhu <kere...@chromium.org>
        Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Attention: Dana Fried <dfr...@chromium.org>
        Gerrit-Comment-Date: Thu, 01 May 2025 23:26:16 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Kelvin Jiang (Gerrit)

        unread,
        May 2, 2025, 9:01:59 PMMay 2
        to Yiming Zhou, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Dana Fried, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
        Attention needed from Dana Fried, Keren Zhu and Yiming Zhou

        Kelvin Jiang voted and added 1 comment

        Votes added by Kelvin Jiang

        Code-Review+1

        1 comment

        Patchset-level comments
        Kelvin Jiang . resolved

        histograms s LGTM

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dana Fried
        • Keren Zhu
        • Yiming Zhou
        Gerrit-Attention: Dana Fried <dfr...@chromium.org>
        Gerrit-Comment-Date: Sat, 03 May 2025 01:01:50 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Dana Fried (Gerrit)

        unread,
        May 5, 2025, 9:56:44 AMMay 5
        to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
        Attention needed from Keren Zhu and Yiming Zhou

        Dana Fried voted and added 3 comments

        Votes added by Dana Fried

        Code-Review+1

        3 comments

        Patchset-level comments
        Dana Fried . unresolved

        LGTM modulo comments

        File chrome/browser/resources/extensions/zero_state_promo/BUILD.gn
        Line 1, Patchset 25 (Latest):# Copyright 2025 The Chromium Authors
        Rebekah Potter . unresolved

        Does this folder need a dedicated OWNERS file or is it considered to be owned by the folks in chrome/browser/resources/extensions/OWNERS? Same question for the corresponding chrome/browser/ui/webui/ folder.

        New WebUIs normally are required to have an owning team, so if that isn't the chrome://extensions owners, we should add OWNERS files.

        Dana Fried

        +1

        File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
        Line 66, Patchset 25 (Latest): --color-chip-icon: #A8C7FA;
        John Lee . unresolved

        Does this hardcoded color work for all themes?

        Dana Fried

        +1, I would not hard-code a color in this situation; ideally you would use only theme-generated colors

        Even if this does visually "work" for all themes it may not end up being accessible for all themes.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Keren Zhu
        • Yiming Zhou
        Gerrit-Comment-Date: Mon, 05 May 2025 13:56:35 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: John Lee <john...@chromium.org>
        Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Yiming Zhou (Gerrit)

        unread,
        May 8, 2025, 2:31:14 PMMay 8
        to Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
        Attention needed from Dana Fried, John Lee, Kelvin Jiang, Keren Zhu and Rebekah Potter

        Yiming Zhou added 9 comments

        Patchset-level comments

        I am awaiting resolution of Rebekah's feedback, as she's more of an expert in this area. Feel free to tag me in any questions/threads if you want my input or don't know how to resolve an issue (or DM me)

        Yiming Zhou

        Acknowledged

        File-level comment, Patchset 25:
        Rebekah Potter . resolved

        LGTM with comments.

        Also, high level question, can you confirm there is a plan to add some basic WebUI automated tests for this in chrome/test/data/webui in a followup CL?

        Yiming Zhou

        Added tests within this cl.

        File chrome/browser/resources/extensions/zero_state_promo/BUILD.gn
        Line 1, Patchset 25:# Copyright 2025 The Chromium Authors
        Rebekah Potter . resolved

        Does this folder need a dedicated OWNERS file or is it considered to be owned by the folks in chrome/browser/resources/extensions/OWNERS? Same question for the corresponding chrome/browser/ui/webui/ folder.

        New WebUIs normally are required to have an owning team, so if that isn't the chrome://extensions owners, we should add OWNERS files.

        Dana Fried

        +1

        Yiming Zhou

        Done

        File chrome/browser/resources/extensions/zero_state_promo/icons.html
        Line 1, Patchset 25:<cr-iconset name="web-store-links" size="14">
        John Lee . resolved

        `zero-state-promo`? These icons don't all seem specific to the web store.

        Yiming Zhou

        Done

        File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
        Line 43, Patchset 25: width: calc(100% - var(--top-container-padding) * 2 - var(dismiss-button-icon-size));
        John Lee . resolved

        `var(--dismiss`

        I don't think you actually need this width. All you might need is a `flex-shrink: 0` on the #dismissButton so that the button never shrinks.

        Yiming Zhou

        Done

        Line 49, Patchset 25: --cr-icon-button-size: 20px;
        Rebekah Potter . resolved

        use dismiss-button-icon-size here too?

        Yiming Zhou

        Done

        Line 66, Patchset 25: --color-chip-icon: #A8C7FA;
        John Lee . resolved

        Does this hardcoded color work for all themes?

        Dana Fried

        +1, I would not hard-code a color in this situation; ideally you would use only theme-generated colors

        Even if this does visually "work" for all themes it may not end up being accessible for all themes.

        Yiming Zhou

        Done

        File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.html.ts
        Line 13, Patchset 25: <h3 id="title">$i18n{extensionsZeroStateIphHeader}</h3>

        <cr-icon-button id="dismissButton"
        class="icon-clear"
        title="$i18n{extensionsZeroStateIphDismissButtonTitle}"
        @click="${this.onDismissButtonClick_}">
        </cr-icon-button>
        Rebekah Potter . resolved

        needs -2 indent

        Yiming Zhou

        Done

        File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.ts
        Line 32, Patchset 25: return 'extensions-zero-state-promo';
        Rebekah Potter . resolved

        nit: tag name should normally be either class name, converted to dash case with the "Element" bit removed, or the same thing + a prefix (so in this case either extensions-zero-state-promo-app or just zero-state-promo-app)

        Yiming Zhou

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dana Fried
        • John Lee
        • Kelvin Jiang
        • Keren Zhu
        • Rebekah Potter
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        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: I43df61089e3c649157a124a464e411e93c201aec
        Gerrit-Change-Number: 6396833
        Gerrit-PatchSet: 26
        Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
        Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
        Gerrit-Reviewer: John Lee <john...@chromium.org>
        Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Keren Zhu <kere...@chromium.org>
        Gerrit-Attention: John Lee <john...@chromium.org>
        Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
        Gerrit-Attention: Keren Zhu <kere...@chromium.org>
        Gerrit-Attention: Dana Fried <dfr...@chromium.org>
        Gerrit-Comment-Date: Thu, 08 May 2025 18:31:04 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: John Lee <john...@chromium.org>
        Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
        Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Dana Fried (Gerrit)

        unread,
        May 8, 2025, 4:55:21 PMMay 8
        to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
        Attention needed from John Lee, Kelvin Jiang, Keren Zhu, Rebekah Potter and Yiming Zhou

        Dana Fried voted and added 1 comment

        Votes added by Dana Fried

        Code-Review+1

        1 comment

        Patchset-level comments
        File-level comment, Patchset 25:
        Dana Fried . resolved

        LGTM modulo comments

        Dana Fried

        Acknowledged

        Open in Gerrit

        Related details

        Attention is currently required from:
        • John Lee
        • Kelvin Jiang
        • Keren Zhu
        • Rebekah Potter
        • Yiming Zhou
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Review
        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: I43df61089e3c649157a124a464e411e93c201aec
        Gerrit-Change-Number: 6396833
        Gerrit-PatchSet: 27
        Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
        Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
        Gerrit-Reviewer: John Lee <john...@chromium.org>
        Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: Keren Zhu <kere...@chromium.org>
        Gerrit-Attention: John Lee <john...@chromium.org>
        Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
        Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
        Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
        Gerrit-Attention: Keren Zhu <kere...@chromium.org>
        Gerrit-Comment-Date: Thu, 08 May 2025 20:55:10 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Rebekah Potter (Gerrit)

        unread,
        May 8, 2025, 7:04:47 PMMay 8
        to Yiming Zhou, Dana Fried, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
        Attention needed from John Lee, Kelvin Jiang, Keren Zhu and Yiming Zhou

        Rebekah Potter added 7 comments

        File chrome/browser/resources/extensions/zero_state_promo/OWNERS
        Line 1, Patchset 27 (Latest):uwyi...@chromium.org
        Rebekah Potter . unresolved

        Can you add at least 1 more Chromium committer here?

        Also, if this UI is completely separate from chrome://extensions with separate ownership, should this be in its own chrome/browser/resources/ folder instead of nested under extensions/? In general, a WebUI chrome://foo should have its resources under chrome/browser/resources/foo. The only exception is collections of related WebUIs that are sharing some code, e.g. side_panel.

        File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
        Line 49, Patchset 27 (Latest): --cr-icon-button-size: var(--dismiss-button-icon-size);
        Rebekah Potter . unresolved

        can just remove this var now, since it's only used here.

        File chrome/test/data/webui/extensions_zero_state/BUILD.gn
        Line 19, Patchset 27 (Latest): "//third_party/lit/v3_0:build_ts",
        "//ui/webui/resources/cr_elements:build_ts",
        "//ui/webui/resources/js:build_ts",
        Rebekah Potter . unresolved

        These tests are not importing anything from chrome://resources, so they shouldn't need any of these ts_deps.

        File chrome/test/data/webui/extensions_zero_state/zero_state_promo_app_test.ts
        Line 11, Patchset 27 (Latest):import {TestMock} from 'chrome://webui-test/test_mock.js';
        Rebekah Potter . unresolved

        TestBrowserProxy should be used instead of TestMock for stubbing out browser proxies. It has much stronger typing.

        Line 28, Patchset 27 (Latest): return microtasksFinished();
        Rebekah Potter . unresolved

        Why is this necessary? CrLitElement forces a synchronous render when the element is attached. Is this element doing something that requires multiple render cycles?

        Line 40, Patchset 27 (Latest): await microtasksFinished();
        Rebekah Potter . unresolved

        This should be using the "whenCalled()" mechanism from TestBrowserProxy, since it is trying to validate that a proxy call has happened, not that something has changed in the UI. i.e.:
        ```
        const args = await promoProxy.whenCalled('openUrl');
        ```

        `await microtasksFinished()` should only be used in cases where something happens that updates a Lit reactive property, and we need to validate that something changed in the DOM as a result. Since Lit rendering is async, we need to wait 1 render cycle for the change to the property to propagate to the DOM. The element you are testing here has no Lit reactive properties, so this should probably never be needed.

        Using it for other waiting patterns risks creating flaky tests, because we are not waiting for the right thing, and instead just arbitrarily waiting for a setTimeout of 0.

        File chrome/test/data/webui/extensions_zero_state/zero_state_promo_browsertest.cc
        Line 26, Patchset 27 (Latest):
        IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickCouponsChip) {
        RunTestCase("ClickCouponsChip");
        }

        IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickWritingChip) {
        RunTestCase("ClickWritingChip");
        }

        IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickProductivityChip) {
        RunTestCase("ClickProductivityChip");
        }

        IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickAiChip) {
        RunTestCase("ClickAiChip");
        }
        Rebekah Potter . unresolved

        FYI, unless you expect this suite to become sufficiently large/long that it would be at risk of timing out on slower trybots, it's probably easier to just run the whole suite with 'mocha.run()' instead of introducing the RunTestCase helper and running the cases individually.

        I know a few existing WebUIs do this, but they are generally older UIs. The infrastructure has improved quite since those were added so that you can now see in test results which test case specifically has failed within a mocha suite without needing to actually run all the tests separately.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • John Lee
        • Kelvin Jiang
        • Keren Zhu
        • Yiming Zhou
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          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: I43df61089e3c649157a124a464e411e93c201aec
          Gerrit-Change-Number: 6396833
          Gerrit-PatchSet: 27
          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
          Gerrit-Reviewer: John Lee <john...@chromium.org>
          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
          Gerrit-CC: Keren Zhu <kere...@chromium.org>
          Gerrit-Attention: John Lee <john...@chromium.org>
          Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
          Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
          Gerrit-Comment-Date: Thu, 08 May 2025 23:04:36 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Yiming Zhou (Gerrit)

          unread,
          May 9, 2025, 2:59:06 PMMay 9
          to Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
          Attention needed from Dana Fried, John Lee, Kelvin Jiang, Keren Zhu and Rebekah Potter

          Yiming Zhou added 7 comments

          File chrome/browser/resources/extensions/zero_state_promo/OWNERS

          Can you add at least 1 more Chromium committer here?

          Also, if this UI is completely separate from chrome://extensions with separate ownership, should this be in its own chrome/browser/resources/ folder instead of nested under extensions/? In general, a WebUI chrome://foo should have its resources under chrome/browser/resources/foo. The only exception is collections of related WebUIs that are sharing some code, e.g. side_panel.

          Yiming Zhou

          Refactored code to new location.

          Also fixed my own email to the Google.com one, which is what I am using in this cl chain.

          File chrome/browser/resources/extensions/zero_state_promo/zero_state_promo_app.css
          Line 49, Patchset 27: --cr-icon-button-size: var(--dismiss-button-icon-size);
          Rebekah Potter . resolved

          can just remove this var now, since it's only used here.

          Yiming Zhou

          Done

          File chrome/test/data/webui/extensions_zero_state/BUILD.gn
          Line 19, Patchset 27: "//third_party/lit/v3_0:build_ts",

          "//ui/webui/resources/cr_elements:build_ts",
          "//ui/webui/resources/js:build_ts",
          Rebekah Potter . resolved

          These tests are not importing anything from chrome://resources, so they shouldn't need any of these ts_deps.

          Yiming Zhou

          Done

          File chrome/test/data/webui/extensions_zero_state/zero_state_promo_app_test.ts
          Line 11, Patchset 27:import {TestMock} from 'chrome://webui-test/test_mock.js';
          Rebekah Potter . resolved

          TestBrowserProxy should be used instead of TestMock for stubbing out browser proxies. It has much stronger typing.

          Yiming Zhou

          Thanks, this removes the barrier for me to add a few more test conditions.

          Line 28, Patchset 27: return microtasksFinished();
          Rebekah Potter . resolved

          Why is this necessary? CrLitElement forces a synchronous render when the element is attached. Is this element doing something that requires multiple render cycles?

          Yiming Zhou

          Removed.

          Line 40, Patchset 27: await microtasksFinished();
          Rebekah Potter . resolved

          This should be using the "whenCalled()" mechanism from TestBrowserProxy, since it is trying to validate that a proxy call has happened, not that something has changed in the UI. i.e.:
          ```
          const args = await promoProxy.whenCalled('openUrl');
          ```

          `await microtasksFinished()` should only be used in cases where something happens that updates a Lit reactive property, and we need to validate that something changed in the DOM as a result. Since Lit rendering is async, we need to wait 1 render cycle for the change to the property to propagate to the DOM. The element you are testing here has no Lit reactive properties, so this should probably never be needed.

          Using it for other waiting patterns risks creating flaky tests, because we are not waiting for the right thing, and instead just arbitrarily waiting for a setTimeout of 0.

          Yiming Zhou

          Done

          File chrome/test/data/webui/extensions_zero_state/zero_state_promo_browsertest.cc

          IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickCouponsChip) {
          RunTestCase("ClickCouponsChip");
          }

          IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickWritingChip) {
          RunTestCase("ClickWritingChip");
          }

          IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickProductivityChip) {
          RunTestCase("ClickProductivityChip");
          }

          IN_PROC_BROWSER_TEST_F(ZeroStatePromoChipsUiTest, ClickAiChip) {
          RunTestCase("ClickAiChip");
          }
          Rebekah Potter . resolved

          FYI, unless you expect this suite to become sufficiently large/long that it would be at risk of timing out on slower trybots, it's probably easier to just run the whole suite with 'mocha.run()' instead of introducing the RunTestCase helper and running the cases individually.

          I know a few existing WebUIs do this, but they are generally older UIs. The infrastructure has improved quite since those were added so that you can now see in test results which test case specifically has failed within a mocha suite without needing to actually run all the tests separately.

          Yiming Zhou

          Done

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Dana Fried
          • John Lee
          • Kelvin Jiang
          • Keren Zhu
          • Rebekah Potter
          Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Review
          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: I43df61089e3c649157a124a464e411e93c201aec
          Gerrit-Change-Number: 6396833
          Gerrit-PatchSet: 27
          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
          Gerrit-Reviewer: John Lee <john...@chromium.org>
          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
          Gerrit-CC: Keren Zhu <kere...@chromium.org>
          Gerrit-Attention: John Lee <john...@chromium.org>
          Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
          Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
          Gerrit-Attention: Dana Fried <dfr...@chromium.org>
          Gerrit-Comment-Date: Fri, 09 May 2025 18:58:57 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Dana Fried (Gerrit)

          unread,
          May 9, 2025, 3:00:38 PMMay 9
          to Yiming Zhou, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
          Attention needed from John Lee, Kelvin Jiang, Keren Zhu and Rebekah Potter

          Dana Fried added 1 comment

          File chrome/browser/resources/extensions/zero_state_promo/OWNERS
          Rebekah Potter . unresolved

          Can you add at least 1 more Chromium committer here?

          Also, if this UI is completely separate from chrome://extensions with separate ownership, should this be in its own chrome/browser/resources/ folder instead of nested under extensions/? In general, a WebUI chrome://foo should have its resources under chrome/browser/resources/foo. The only exception is collections of related WebUIs that are sharing some code, e.g. side_panel.

          Dana Fried

          Feels like. I am also happy to be an owner if we're talking about only promotional surfaces.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • John Lee
          • Kelvin Jiang
          • Keren Zhu
          • Rebekah Potter
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            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: I43df61089e3c649157a124a464e411e93c201aec
            Gerrit-Change-Number: 6396833
            Gerrit-PatchSet: 28
            Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
            Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
            Gerrit-Reviewer: John Lee <john...@chromium.org>
            Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
            Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
            Gerrit-CC: Keren Zhu <kere...@chromium.org>
            Gerrit-Attention: John Lee <john...@chromium.org>
            Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-Attention: Kelvin Jiang <kelvi...@chromium.org>
            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
            Gerrit-Comment-Date: Fri, 09 May 2025 19:00:22 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Yiming Zhou (Gerrit)

            unread,
            May 9, 2025, 7:45:10 PMMay 9
            to Chromium IPC Reviews, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
            Attention needed from Chromium IPC Reviews, Dana Fried, John Lee, Keren Zhu, Rebekah Potter and Yiming Zhou

            Yiming Zhou voted and added 1 comment

            Votes added by Yiming Zhou

            Commit-Queue+1

            1 comment

            File chrome/browser/resources/extensions/zero_state_promo/OWNERS
            Rebekah Potter . resolved

            Can you add at least 1 more Chromium committer here?

            Also, if this UI is completely separate from chrome://extensions with separate ownership, should this be in its own chrome/browser/resources/ folder instead of nested under extensions/? In general, a WebUI chrome://foo should have its resources under chrome/browser/resources/foo. The only exception is collections of related WebUIs that are sharing some code, e.g. side_panel.

            Dana Fried

            Feels like. I am also happy to be an owner if we're talking about only promotional surfaces.

            Yiming Zhou

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Chromium IPC Reviews
            • Dana Fried
            • John Lee
            • Keren Zhu
            • Rebekah Potter
            • Yiming Zhou
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Review
            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: I43df61089e3c649157a124a464e411e93c201aec
            Gerrit-Change-Number: 6396833
            Gerrit-PatchSet: 31
            Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
            Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
            Gerrit-Reviewer: John Lee <john...@chromium.org>
            Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
            Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
            Gerrit-CC: Keren Zhu <kere...@chromium.org>
            Gerrit-Attention: John Lee <john...@chromium.org>
            Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
            Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
            Gerrit-Comment-Date: Fri, 09 May 2025 23:45:02 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            gwsq (Gerrit)

            unread,
            May 9, 2025, 7:47:28 PMMay 9
            to Yiming Zhou, Chromium IPC Reviews, Tom Sepez, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
            Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter, Tom Sepez and Yiming Zhou

            Message from gwsq

            From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
            IPC: tse...@chromium.org

            📎 It looks like you’re making a possibly security-sensitive change! 📎 IPC security review isn’t a rubberstamp, so your friendly security reviewer will need a fair amount of context to review your CL effectively. Please review your CL description and code comments to make sure they provide context for someone unfamiliar with your project/area. Pay special attention to where data comes from and which processes it flows between (and their privilege levels). Feel free to point your security reviewer at design docs, bugs, or other links if you can’t reasonably make a self-contained CL description. (Also see https://cbea.ms/git-commit/).

            IPC reviewer(s): tse...@chromium.org


            Reviewer source(s):
            tse...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ipc/config.gwsq)

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Dana Fried
            • John Lee
            • Keren Zhu
            • Rebekah Potter
            • Tom Sepez
            • Yiming Zhou
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Review
            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: I43df61089e3c649157a124a464e411e93c201aec
            Gerrit-Change-Number: 6396833
            Gerrit-PatchSet: 31
            Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
            Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
            Gerrit-Reviewer: John Lee <john...@chromium.org>
            Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
            Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-Reviewer: Tom Sepez <tse...@chromium.org>
            Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
            Gerrit-CC: Keren Zhu <kere...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: John Lee <john...@chromium.org>
            Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
            Gerrit-Attention: Tom Sepez <tse...@chromium.org>
            Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
            Gerrit-Comment-Date: Fri, 09 May 2025 23:47:21 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Rebekah Potter (Gerrit)

            unread,
            May 9, 2025, 8:59:32 PMMay 9
            to Yiming Zhou, Chromium IPC Reviews, Tom Sepez, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
            Attention needed from Dana Fried, John Lee, Keren Zhu, Tom Sepez and Yiming Zhou

            Rebekah Potter added 5 comments

            File chrome/browser/ui/webui/chrome_web_ui_configs.cc
            Line 84, Patchset 31 (Latest):#include "chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h"
            Rebekah Potter . unresolved

            remove? shouldn't need 2 includes of this file.

            File chrome/browser/ui/webui/extensions/web_store/OWNERS
            Line 3, Patchset 31 (Latest):
            Rebekah Potter . unresolved

            Should have additional OWNERS, the same way the chrome/browser/resources folder does.

            Also, should we move this C++ code to its own directory also, if it's not closely related to the chrome://extensions UI and isn't intended to be owned by the same team?

            File chrome/test/data/webui/BUILD.gn
            Line 300, Patchset 31 (Latest): sources += [ "extensions_zero_state/zero_state_promo_browsertest.cc" ]
            Rebekah Potter . unresolved

            This source should still be in the browser_tests target, not interactive_ui_tests. It is extending WebUIMochaBrowserTest and not WebUIMochaFocusTest.

            Also, since the prod code is included whenever enable_extensions_core is true, the tests should also be run on Android, and shouldn't be exclusive to Win/Mac/Linux/CrOS.

            Code behind enable_extensions_core, IIUC, is supposed to work on some Android builds. If that's not what you want, maybe you want enable_extensions instead?

            File chrome/test/data/webui/extensions_zero_state/zero_state_promo_app_test.ts
            Line 30, Patchset 31 (Latest):export class TestBubbleProxy extends TestBrowserProxy implements
            Rebekah Potter . unresolved

            This one probably doesn't need to extend TestBrowserProxy, since it's not making use of methodCalled or passing anything to super(). This can just be a class that implements CustomHelpBubbleProxy.

            File chrome/test/data/webui/extensions_zero_state/zero_state_promo_browsertest.cc
            Line 5, Patchset 31 (Latest):#include "base/strings/stringprintf.h"
            Rebekah Potter . unresolved

            unused?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Dana Fried
            • John Lee
            • Keren Zhu
            • Tom Sepez
            • Yiming Zhou
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Unresolved-Comments
              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
              Gerrit-Attention: Dana Fried <dfr...@chromium.org>
              Gerrit-Comment-Date: Sat, 10 May 2025 00:59:22 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Dana Fried (Gerrit)

              unread,
              May 10, 2025, 11:00:20 AMMay 10
              to Yiming Zhou, Chromium IPC Reviews, Tom Sepez, Chromium LUCI CQ, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from John Lee, Keren Zhu, Tom Sepez and Yiming Zhou

              Dana Fried added 3 comments

              Patchset-level comments
              File-level comment, Patchset 31 (Latest):
              Dana Fried . resolved

              Overall I think we are approaching a submittable CL. I will try to stay on top of this over the next few days.

              File chrome/browser/ui/webui/extensions/web_store/OWNERS
              Rebekah Potter . unresolved

              Should have additional OWNERS, the same way the chrome/browser/resources folder does.

              Also, should we move this C++ code to its own directory also, if it's not closely related to the chrome://extensions UI and isn't intended to be owned by the same team?

              Dana Fried

              +1 to putting this into its own subfolder; also I do volunteer to be an owner if there is a separate promo folder with separate OWNERS (separate OWNERS not required unless Rebekah says).

              File chrome/test/data/webui/BUILD.gn
              Line 300, Patchset 31 (Latest): sources += [ "extensions_zero_state/zero_state_promo_browsertest.cc" ]
              Rebekah Potter . unresolved

              This source should still be in the browser_tests target, not interactive_ui_tests. It is extending WebUIMochaBrowserTest and not WebUIMochaFocusTest.

              Also, since the prod code is included whenever enable_extensions_core is true, the tests should also be run on Android, and shouldn't be exclusive to Win/Mac/Linux/CrOS.

              Code behind enable_extensions_core, IIUC, is supposed to work on some Android builds. If that's not what you want, maybe you want enable_extensions instead?

              Dana Fried

              The naming conventions here are off, unfortunatley.

              All browser_tests should be in files of the form: `XXXX_browsertest.cc` and have tests named `XXXXBrowserTest`.

              All interactive_ui_tests should be in files of the form: `XXX_interactive_uitest.cc` and have tests named `XXXUiTest`.

              That said, aside from naming convention, browser_tests and interactive_ui_tests admit the same types of tests and the primary decider for whether something should be in browser_tests or interactive_ui_tests is that a test should be in the latter if (and only if) it does one of the following:
              - cares about focus or activation
              - tries to control the mouse
              - tries to send accelerators
              - invokes surfaces like menus and dialogs that close on loss of focus

              These require the test process isolation guarantees provided by interactive_ui_tests but not by browser_tests.
              Open in Gerrit

              Related details

              Attention is currently required from:
              Gerrit-Comment-Date: Sat, 10 May 2025 15:00:11 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Rebekah Potter (Gerrit)

              unread,
              May 12, 2025, 11:34:39 AMMay 12
              to Yiming Zhou, Chromium IPC Reviews, Tom Sepez, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from John Lee, Keren Zhu, Tom Sepez and Yiming Zhou

              Rebekah Potter added 1 comment

              File chrome/test/data/webui/BUILD.gn
              Line 300, Patchset 31 (Latest): sources += [ "extensions_zero_state/zero_state_promo_browsertest.cc" ]
              Rebekah Potter . unresolved

              This source should still be in the browser_tests target, not interactive_ui_tests. It is extending WebUIMochaBrowserTest and not WebUIMochaFocusTest.

              Also, since the prod code is included whenever enable_extensions_core is true, the tests should also be run on Android, and shouldn't be exclusive to Win/Mac/Linux/CrOS.

              Code behind enable_extensions_core, IIUC, is supposed to work on some Android builds. If that's not what you want, maybe you want enable_extensions instead?

              Dana Fried

              The naming conventions here are off, unfortunatley.

              All browser_tests should be in files of the form: `XXXX_browsertest.cc` and have tests named `XXXXBrowserTest`.

              All interactive_ui_tests should be in files of the form: `XXX_interactive_uitest.cc` and have tests named `XXXUiTest`.

              That said, aside from naming convention, browser_tests and interactive_ui_tests admit the same types of tests and the primary decider for whether something should be in browser_tests or interactive_ui_tests is that a test should be in the latter if (and only if) it does one of the following:
              - cares about focus or activation
              - tries to control the mouse
              - tries to send accelerators
              - invokes surfaces like menus and dialogs that close on loss of focus

              These require the test process isolation guarantees provided by interactive_ui_tests but not by browser_tests.
              Rebekah Potter

              For WebUI tests, WebUIMochaFocusTest (and as a result, interactive_ui_tests) is used when the WebContents need to have consistent focus, and usually this is the first case you listed (the test cares about focus). For this to work correctly the test needs to *both* be in the interactive_ui_tests target and use WebUIMochaFocusTest instead of WebUIMochaBrowserTest as the base class.

              This test doesn't seem to care about focus, and is also still extending WebUIMochaBrowserTest, which is an indicator that it probably should still be in the browser_tests target.

              If it cares about focus, it needs to also extend WebUIMochaFocusTest, not just move to the interactive_ui_tests target.

              Gerrit-Comment-Date: Mon, 12 May 2025 15:34:30 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
              Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Yiming Zhou (Gerrit)

              unread,
              May 12, 2025, 5:16:52 PMMay 12
              to Chromium IPC Reviews, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from Chromium IPC Reviews, John Lee, Keren Zhu and Rebekah Potter

              Yiming Zhou added 3 comments

              File chrome/browser/ui/webui/chrome_web_ui_configs.cc
              Line 84, Patchset 31:#include "chrome/browser/ui/webui/extensions/web_store/zero_state_promo_ui.h"
              Rebekah Potter . resolved

              remove? shouldn't need 2 includes of this file.

              Yiming Zhou

              Done

              File chrome/test/data/webui/extensions_zero_state/zero_state_promo_app_test.ts
              Line 30, Patchset 31:export class TestBubbleProxy extends TestBrowserProxy implements
              Rebekah Potter . resolved

              This one probably doesn't need to extend TestBrowserProxy, since it's not making use of methodCalled or passing anything to super(). This can just be a class that implements CustomHelpBubbleProxy.

              Yiming Zhou

              Done

              File chrome/test/data/webui/extensions_zero_state/zero_state_promo_browsertest.cc
              Line 5, Patchset 31:#include "base/strings/stringprintf.h"
              Rebekah Potter . resolved

              unused?

              Yiming Zhou

              Done

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Chromium IPC Reviews
              • John Lee
              • Keren Zhu
              • Rebekah Potter
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Unresolved-Comments
              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: I43df61089e3c649157a124a464e411e93c201aec
              Gerrit-Change-Number: 6396833
              Gerrit-PatchSet: 35
              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
              Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
              Gerrit-Reviewer: John Lee <john...@chromium.org>
              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-CC: Keren Zhu <kere...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: John Lee <john...@chromium.org>
              Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
              Gerrit-Comment-Date: Mon, 12 May 2025 21:16:43 +0000
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              gwsq (Gerrit)

              unread,
              May 12, 2025, 5:20:07 PMMay 12
              to Yiming Zhou, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from John Lee, Keren Zhu, Rebekah Potter and Will Harris

              Message from gwsq

              From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
              IPC: w...@chromium.org

              📎 It looks like you’re making a possibly security-sensitive change! 📎 IPC security review isn’t a rubberstamp, so your friendly security reviewer will need a fair amount of context to review your CL effectively. Please review your CL description and code comments to make sure they provide context for someone unfamiliar with your project/area. Pay special attention to where data comes from and which processes it flows between (and their privilege levels). Feel free to point your security reviewer at design docs, bugs, or other links if you can’t reasonably make a self-contained CL description. (Also see https://cbea.ms/git-commit/).

              IPC reviewer(s): w...@chromium.org


              Reviewer source(s):
              w...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ipc/config.gwsq)

              Open in Gerrit

              Related details

              Attention is currently required from:
              • John Lee
              • Keren Zhu
              • Rebekah Potter
              • Will Harris
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Unresolved-Comments
              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: I43df61089e3c649157a124a464e411e93c201aec
              Gerrit-Change-Number: 6396833
              Gerrit-PatchSet: 35
              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
              Gerrit-Reviewer: John Lee <john...@chromium.org>
              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Reviewer: Will Harris <w...@chromium.org>
              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-CC: Keren Zhu <kere...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: John Lee <john...@chromium.org>
              Gerrit-Attention: Will Harris <w...@chromium.org>
              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
              Gerrit-Comment-Date: Mon, 12 May 2025 21:19:43 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Will Harris (Gerrit)

              unread,
              May 12, 2025, 5:42:51 PMMay 12
              to Yiming Zhou, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from John Lee, Keren Zhu, Rebekah Potter and Yiming Zhou

              Will Harris added 2 comments

              Patchset-level comments
              File-level comment, Patchset 36 (Latest):
              Will Harris . resolved

              can you link a design or some kind of description of what this is, to the bug? thanks.

              File chrome/browser/chrome_browser_interface_binders_webui.cc
              Line 55, Patchset 36 (Latest):#include "ui/webui/resources/cr_components/help_bubble/custom_help_bubble.mojom.h"
              Will Harris . unresolved

              is this change intended?

              Open in Gerrit

              Related details

              Attention is currently required from:
              • John Lee
              • Keren Zhu
              • Rebekah Potter
              • Yiming Zhou
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Review
              • requirement is not satisfiedNo-Unresolved-Comments
              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: I43df61089e3c649157a124a464e411e93c201aec
              Gerrit-Change-Number: 6396833
              Gerrit-PatchSet: 36
              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
              Gerrit-Reviewer: John Lee <john...@chromium.org>
              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Reviewer: Will Harris <w...@chromium.org>
              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-CC: Keren Zhu <kere...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: John Lee <john...@chromium.org>
              Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
              Gerrit-Comment-Date: Mon, 12 May 2025 21:42:42 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Yiming Zhou (Gerrit)

              unread,
              May 13, 2025, 12:50:04 PMMay 13
              to Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter, Will Harris and Yiming Zhou

              Yiming Zhou voted and added 3 comments

              Votes added by Yiming Zhou

              Commit-Queue+1

              3 comments

              File chrome/browser/chrome_browser_interface_binders_webui.cc
              Line 55, Patchset 36:#include "ui/webui/resources/cr_components/help_bubble/custom_help_bubble.mojom.h"
              Will Harris . resolved

              is this change intended?

              Yiming Zhou

              Done

              File chrome/browser/ui/webui/extensions/web_store/OWNERS
              Line 3, Patchset 31:
              Rebekah Potter . resolved

              Should have additional OWNERS, the same way the chrome/browser/resources folder does.

              Also, should we move this C++ code to its own directory also, if it's not closely related to the chrome://extensions UI and isn't intended to be owned by the same team?

              Dana Fried

              +1 to putting this into its own subfolder; also I do volunteer to be an owner if there is a separate promo folder with separate OWNERS (separate OWNERS not required unless Rebekah says).

              Yiming Zhou

              Done

              File chrome/test/data/webui/BUILD.gn
              Line 300, Patchset 31: sources += [ "extensions_zero_state/zero_state_promo_browsertest.cc" ]
              Rebekah Potter . resolved

              This source should still be in the browser_tests target, not interactive_ui_tests. It is extending WebUIMochaBrowserTest and not WebUIMochaFocusTest.

              Also, since the prod code is included whenever enable_extensions_core is true, the tests should also be run on Android, and shouldn't be exclusive to Win/Mac/Linux/CrOS.

              Code behind enable_extensions_core, IIUC, is supposed to work on some Android builds. If that's not what you want, maybe you want enable_extensions instead?

              Dana Fried

              The naming conventions here are off, unfortunatley.

              All browser_tests should be in files of the form: `XXXX_browsertest.cc` and have tests named `XXXXBrowserTest`.

              All interactive_ui_tests should be in files of the form: `XXX_interactive_uitest.cc` and have tests named `XXXUiTest`.

              That said, aside from naming convention, browser_tests and interactive_ui_tests admit the same types of tests and the primary decider for whether something should be in browser_tests or interactive_ui_tests is that a test should be in the latter if (and only if) it does one of the following:
              - cares about focus or activation
              - tries to control the mouse
              - tries to send accelerators
              - invokes surfaces like menus and dialogs that close on loss of focus

              These require the test process isolation guarantees provided by interactive_ui_tests but not by browser_tests.
              Rebekah Potter

              For WebUI tests, WebUIMochaFocusTest (and as a result, interactive_ui_tests) is used when the WebContents need to have consistent focus, and usually this is the first case you listed (the test cares about focus). For this to work correctly the test needs to *both* be in the interactive_ui_tests target and use WebUIMochaFocusTest instead of WebUIMochaBrowserTest as the base class.

              This test doesn't seem to care about focus, and is also still extending WebUIMochaBrowserTest, which is an indicator that it probably should still be in the browser_tests target.

              If it cares about focus, it needs to also extend WebUIMochaFocusTest, not just move to the interactive_ui_tests target.

              Yiming Zhou

              Done

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Dana Fried
              • John Lee
              • Keren Zhu
              • Rebekah Potter
              • Will Harris
              • Yiming Zhou
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement is not satisfiedCode-Review
              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: I43df61089e3c649157a124a464e411e93c201aec
              Gerrit-Change-Number: 6396833
              Gerrit-PatchSet: 39
              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
              Gerrit-Reviewer: John Lee <john...@chromium.org>
              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Reviewer: Will Harris <w...@chromium.org>
              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
              Gerrit-CC: Keren Zhu <kere...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: John Lee <john...@chromium.org>
              Gerrit-Attention: Will Harris <w...@chromium.org>
              Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
              Gerrit-Attention: Dana Fried <dfr...@chromium.org>
              Gerrit-Comment-Date: Tue, 13 May 2025 16:49:46 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: Yes
              Comment-In-Reply-To: Will Harris <w...@chromium.org>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Will Harris (Gerrit)

              unread,
              May 13, 2025, 12:55:07 PMMay 13
              to Yiming Zhou, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
              Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter and Yiming Zhou

              Will Harris added 1 comment

              Patchset-level comments
              File-level comment, Patchset 36:
              Will Harris . unresolved

              can you link a design or some kind of description of what this is, to the bug? thanks.

              Will Harris

              marking unresolved to highlight this question. I cannot review without knowing what this CL does or what it's used for.

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Dana Fried
              • John Lee
              • Keren Zhu
              • Rebekah Potter
              • Yiming Zhou
              Submit Requirements:
                • requirement satisfiedCode-Coverage
                • requirement is not satisfiedCode-Review
                • requirement is not satisfiedNo-Unresolved-Comments
                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: I43df61089e3c649157a124a464e411e93c201aec
                Gerrit-Change-Number: 6396833
                Gerrit-PatchSet: 39
                Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                Gerrit-Reviewer: John Lee <john...@chromium.org>
                Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                Gerrit-Reviewer: Will Harris <w...@chromium.org>
                Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                Gerrit-CC: Keren Zhu <kere...@chromium.org>
                Gerrit-CC: gwsq
                Gerrit-Attention: John Lee <john...@chromium.org>
                Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                Gerrit-Comment-Date: Tue, 13 May 2025 16:54:59 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Will Harris <w...@chromium.org>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Yiming Zhou (Gerrit)

                unread,
                May 13, 2025, 2:20:01 PMMay 13
                to Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter and Will Harris

                Yiming Zhou added 1 comment

                Patchset-level comments
                File-level comment, Patchset 36:
                Will Harris . resolved

                can you link a design or some kind of description of what this is, to the bug? thanks.

                Will Harris

                marking unresolved to highlight this question. I cannot review without knowing what this CL does or what it's used for.

                Yiming Zhou

                Thanks for taking a look, Will!

                Essentially, this chain of cls is trying to bring up a custom In-Product-Help message, encouraging users with no previous experience with extensions to try them out by exploring the Chrome Web Store. Here is a screencast of what the final product should look like: https://screencast.googleplex.com/cast/NjY1NjM2MjkzODM2ODAwMHwyOGQ5MTNjZC03OA

                PRD: https://docs.google.com/document/d/1YJfV1tbe9tbOqgyZUyAdV79dJ2nbTdF0buMx2xpX8Ms/edit?tab=t.0
                Partial Design Doc: go/extension-discovery-experiments-on-chrome-desktop-design

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Dana Fried
                • John Lee
                • Keren Zhu
                • Rebekah Potter
                • Will Harris
                Submit Requirements:
                • requirement satisfiedCode-Coverage
                • requirement is not satisfiedCode-Review
                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: I43df61089e3c649157a124a464e411e93c201aec
                Gerrit-Change-Number: 6396833
                Gerrit-PatchSet: 39
                Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                Gerrit-Reviewer: John Lee <john...@chromium.org>
                Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                Gerrit-Reviewer: Will Harris <w...@chromium.org>
                Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                Gerrit-CC: Keren Zhu <kere...@chromium.org>
                Gerrit-CC: gwsq
                Gerrit-Attention: John Lee <john...@chromium.org>
                Gerrit-Attention: Will Harris <w...@chromium.org>
                Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                Gerrit-Comment-Date: Tue, 13 May 2025 18:19:48 +0000
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Will Harris (Gerrit)

                unread,
                May 13, 2025, 3:24:40 PMMay 13
                to Yiming Zhou, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter and Yiming Zhou

                Will Harris added 2 comments

                Patchset-level comments
                File-level comment, Patchset 36:
                Will Harris . unresolved

                can you link a design or some kind of description of what this is, to the bug? thanks.

                Will Harris

                marking unresolved to highlight this question. I cannot review without knowing what this CL does or what it's used for.

                Yiming Zhou

                Thanks for taking a look, Will!

                Essentially, this chain of cls is trying to bring up a custom In-Product-Help message, encouraging users with no previous experience with extensions to try them out by exploring the Chrome Web Store. Here is a screencast of what the final product should look like: https://screencast.googleplex.com/cast/NjY1NjM2MjkzODM2ODAwMHwyOGQ5MTNjZC03OA

                PRD: https://docs.google.com/document/d/1YJfV1tbe9tbOqgyZUyAdV79dJ2nbTdF0buMx2xpX8Ms/edit?tab=t.0
                Partial Design Doc: go/extension-discovery-experiments-on-chrome-desktop-design

                Will Harris

                Thanks. Please add these links into the bug so they are permanently tied to the chain of CLs and anyone can reference them in future.

                File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                Line 39, Patchset 39 (Latest): OpenURL(url.mojom.Url url);
                Will Harris . unresolved

                do you need to have this IPC in the browser?

                Is it not possible for the webui to just call via JS to e.g. `window.open`?

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Dana Fried
                • John Lee
                • Keren Zhu
                • Rebekah Potter
                • Yiming Zhou
                Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Review
                  • requirement is not satisfiedNo-Unresolved-Comments
                  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: I43df61089e3c649157a124a464e411e93c201aec
                  Gerrit-Change-Number: 6396833
                  Gerrit-PatchSet: 39
                  Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                  Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                  Gerrit-Reviewer: John Lee <john...@chromium.org>
                  Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                  Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Reviewer: Will Harris <w...@chromium.org>
                  Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                  Gerrit-CC: Keren Zhu <kere...@chromium.org>
                  Gerrit-CC: gwsq
                  Gerrit-Attention: John Lee <john...@chromium.org>
                  Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                  Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                  Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                  Gerrit-Comment-Date: Tue, 13 May 2025 19:24:30 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                  Comment-In-Reply-To: Will Harris <w...@chromium.org>
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Yiming Zhou (Gerrit)

                  unread,
                  May 13, 2025, 8:11:47 PMMay 13
                  to Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                  Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter and Will Harris

                  Yiming Zhou added 2 comments

                  Patchset-level comments
                  File-level comment, Patchset 36:
                  Will Harris . resolved

                  can you link a design or some kind of description of what this is, to the bug? thanks.

                  Will Harris

                  marking unresolved to highlight this question. I cannot review without knowing what this CL does or what it's used for.

                  Yiming Zhou

                  Thanks for taking a look, Will!

                  Essentially, this chain of cls is trying to bring up a custom In-Product-Help message, encouraging users with no previous experience with extensions to try them out by exploring the Chrome Web Store. Here is a screencast of what the final product should look like: https://screencast.googleplex.com/cast/NjY1NjM2MjkzODM2ODAwMHwyOGQ5MTNjZC03OA

                  PRD: https://docs.google.com/document/d/1YJfV1tbe9tbOqgyZUyAdV79dJ2nbTdF0buMx2xpX8Ms/edit?tab=t.0
                  Partial Design Doc: go/extension-discovery-experiments-on-chrome-desktop-design

                  Will Harris

                  Thanks. Please add these links into the bug so they are permanently tied to the chain of CLs and anyone can reference them in future.

                  Yiming Zhou

                  Done

                  File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                  Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                  Will Harris . resolved

                  do you need to have this IPC in the browser?

                  Is it not possible for the webui to just call via JS to e.g. `window.open`?

                  Yiming Zhou

                  I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Dana Fried
                  • John Lee
                  • Keren Zhu
                  • Rebekah Potter
                  • Will Harris
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Review
                  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: I43df61089e3c649157a124a464e411e93c201aec
                  Gerrit-Change-Number: 6396833
                  Gerrit-PatchSet: 41
                  Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                  Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                  Gerrit-Reviewer: John Lee <john...@chromium.org>
                  Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                  Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Reviewer: Will Harris <w...@chromium.org>
                  Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                  Gerrit-CC: Keren Zhu <kere...@chromium.org>
                  Gerrit-CC: gwsq
                  Gerrit-Attention: John Lee <john...@chromium.org>
                  Gerrit-Attention: Will Harris <w...@chromium.org>
                  Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                  Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                  Gerrit-Comment-Date: Wed, 14 May 2025 00:11:39 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  Comment-In-Reply-To: Will Harris <w...@chromium.org>
                  Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Daniel Cheng (Gerrit)

                  unread,
                  May 13, 2025, 9:11:12 PMMay 13
                  to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                  Attention needed from Dana Fried, John Lee, Keren Zhu, Rebekah Potter, Will Harris and Yiming Zhou

                  Daniel Cheng added 2 comments

                  Patchset-level comments
                  File-level comment, Patchset 41 (Latest):
                  Daniel Cheng . resolved

                  drive-by

                  File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                  Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                  Will Harris . resolved

                  do you need to have this IPC in the browser?

                  Is it not possible for the webui to just call via JS to e.g. `window.open`?

                  Yiming Zhou

                  I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                  Daniel Cheng

                  OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                  [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                  [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Dana Fried
                  • John Lee
                  • Keren Zhu
                  • Rebekah Potter
                  • Will Harris
                  • Yiming Zhou
                  Submit Requirements:
                  • requirement satisfiedCode-Coverage
                  • requirement is not satisfiedCode-Review
                  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: I43df61089e3c649157a124a464e411e93c201aec
                  Gerrit-Change-Number: 6396833
                  Gerrit-PatchSet: 41
                  Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                  Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                  Gerrit-Reviewer: John Lee <john...@chromium.org>
                  Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                  Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Reviewer: Will Harris <w...@chromium.org>
                  Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                  Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                  Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                  Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                  Gerrit-CC: Keren Zhu <kere...@chromium.org>
                  Gerrit-CC: gwsq
                  Gerrit-Attention: John Lee <john...@chromium.org>
                  Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                  Gerrit-Attention: Will Harris <w...@chromium.org>
                  Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                  Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                  Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                  Gerrit-Comment-Date: Wed, 14 May 2025 01:11:02 +0000
                  Gerrit-HasComments: Yes
                  Gerrit-Has-Labels: No
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Dana Fried (Gerrit)

                  unread,
                  May 14, 2025, 9:04:36 AMMay 14
                  to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                  Attention needed from John Lee, Keren Zhu, Rebekah Potter, Will Harris and Yiming Zhou

                  Dana Fried added 1 comment

                  Patchset-level comments
                  Dana Fried . unresolved

                  The test that's coming up flaky here isn't even added in this CL. However, attempting to activate the browser on Linux is a known issue; I think your `BrowserActivationWater` is spurious and should probably be removed, especially considering your promo gets hammered immediately and will take focus. This is almost certainly the cause of the flake.

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • John Lee
                  • Keren Zhu
                  • Rebekah Potter
                  • Will Harris
                  • Yiming Zhou
                  Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement is not satisfiedCode-Review
                    • requirement is not satisfiedNo-Unresolved-Comments
                    Gerrit-Comment-Date: Wed, 14 May 2025 13:04:18 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Rebekah Potter (Gerrit)

                    unread,
                    May 14, 2025, 12:02:12 PMMay 14
                    to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from John Lee, Keren Zhu, Will Harris and Yiming Zhou

                    Rebekah Potter added 14 comments

                    File chrome/app/extensions_strings.grdp
                    Line 719, Patchset 41 (Latest):<message name="IDS_EXTENSIONS_ZERO_STATE_IPH_HEADER" desc="Header of the extensions zero state in-product help promo.">
                    Supercharge your browser with extensions and themes
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_CHIPS_IPH_DESCRIPTION" desc="An one line description for the extensions zero state in-product-help promo.">
                    Extensions are add-ons for Chrome that can help you do more
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_SHOPPING_CATEGORY_LABEL" desc="Label for the button that opens the Chrome Web Store shopping category page.">
                    Find coupons
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_WRITING_HELP_COLLECTION_LABEL" desc="Label for the button that opens the Chrome Web Store writing help collection page.">
                    Help me write
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_PRODUCTIVITY_CATEGORY_LABEL" desc="Label for the button that opens the Chrome Web Store producitivty category page.">
                    Boost productivity
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_AI_PRODUCTIVITY_COLLECTION_LABEL" desc="Label for the button that opens the Chrome Web Store ai productivity collection page.">
                    Enhance with AI
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_DISMISS_BUTTON_TITLE" desc="Title attribute for the button that dismisses the extensions zero state in-product-help promo.">
                    Close
                    </message>
                    Rebekah Potter . unresolved

                    should we put these behind a "enable_extensions" flag, such that they are not unnecessarily included on builds where they are unused?

                    File chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                    Line 9, Patchset 39: "extensions zero state promo should not be enabeld for android")
                    Rebekah Potter . unresolved

                    nit: spelling (here and below)

                    File chrome/browser/ui/BUILD.gn
                    Line 5340, Patchset 41 (Latest): deps += [
                    "//chrome/browser/ui/webui/extensions_zero_state_promo:mojo_bindings",
                    ]
                    Rebekah Potter . unresolved

                    Remove - this dep is now added twice, and seems to belong only on line 5360, under the same condition as the other source code that uses it.

                    File chrome/browser/ui/webui/chrome_web_ui_configs.cc
                    Line 127, Patchset 41 (Latest):
                    #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) && \
                    (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
                    BUILDFLAG(IS_CHROMEOS))
                    #include "chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.h"
                    #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) && (BUILDFLAG(IS_WIN) ||
                    // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
                    Rebekah Potter . unresolved

                    Condition for this #if should match the one on line 351, i.e. let's use ENABLE_EXTENSIONS or
                    ENABLE_EXTENSIONS_CORE && (<long list of OSes>)

                    in both spots.

                    File chrome/browser/ui/webui/extensions/web_store/OWNERS
                    Line 3, Patchset 31:
                    Rebekah Potter . unresolved

                    Should have additional OWNERS, the same way the chrome/browser/resources folder does.

                    Also, should we move this C++ code to its own directory also, if it's not closely related to the chrome://extensions UI and isn't intended to be owned by the same team?

                    Dana Fried

                    +1 to putting this into its own subfolder; also I do volunteer to be an owner if there is a separate promo folder with separate OWNERS (separate OWNERS not required unless Rebekah says).

                    Yiming Zhou

                    Done

                    Rebekah Potter

                    Re-opening as this has been moved to a subfolder, but I don't see any OWNERS specified other than for the mojom file, which means this code is proposed to be de-facto owned by the WebUI team. We request that teams adding new WebUIs commit to maintaining their UIs, which is why we also ask for OWNERS from those teams to be added.

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.h
                    Line 8, Patchset 41 (Latest):#include "base/memory/raw_ptr.h"
                    Rebekah Potter . unresolved

                    is raw_ptr needed? I don't see this used in this file but may be missing something.

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                    Line 15, Patchset 41 (Latest):#include "chrome/browser/ui/chrome_pages.h"
                    #include "chrome/grit/generated_resources.h"
                    #include "components/prefs/pref_service.h"
                    #include "components/profile_metrics/browser_profile_type.h"
                    #include "components/strings/grit/components_strings.h"
                    Rebekah Potter . unresolved

                    unused?

                    Line 21, Patchset 41 (Latest):#include "content/public/browser/web_contents.h"
                    #include "content/public/browser/web_ui.h"
                    Rebekah Potter . unresolved

                    also unused?

                    Line 24, Patchset 41 (Latest):#include "ui/base/l10n/l10n_util.h"
                    Rebekah Potter . unresolved

                    unused?

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.cc
                    Line 14, Patchset 41 (Latest):#include "chrome/browser/ui/ui_features.h"
                    Rebekah Potter . unresolved

                    unused?

                    Line 17, Patchset 41 (Latest):#include "chrome/grit/branded_strings.h"
                    Rebekah Potter . unresolved

                    I don't think we have any branded strings here?

                    Line 21, Patchset 41 (Latest):#include "components/strings/grit/components_strings.h"
                    Rebekah Potter . unresolved

                    The strings for this UI are in the chrome/grit/generated_resources.h header AFAICT, not in components/

                    Line 25, Patchset 41 (Latest):#include "ui/accessibility/accessibility_features.h"
                    #include "ui/base/ui_base_features.h"
                    Rebekah Potter . unresolved

                    Do we need all these feature includes?

                    Line 29, Patchset 41 (Latest):#include "ui/webui/resources/grit/webui_resources.h"
                    #include "ui/webui/resources/grit/webui_resources_map.h"
                    Rebekah Potter . unresolved

                    What resources from the shared resources are being used in this file? Normally WebUIs should get shared resources from chrome://resources, and not need to manually register them with their individual data source.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • John Lee
                    • Keren Zhu
                    • Will Harris
                    • Yiming Zhou
                    Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                    Gerrit-Comment-Date: Wed, 14 May 2025 16:02:03 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Will Harris (Gerrit)

                    unread,
                    May 14, 2025, 11:23:27 PMMay 14
                    to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from John Lee, Keren Zhu and Yiming Zhou

                    Will Harris added 1 comment

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • John Lee
                    • Keren Zhu
                    • Yiming Zhou
                    Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement is not satisfiedCode-Review
                    • requirement is not satisfiedNo-Unresolved-Comments
                    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: I43df61089e3c649157a124a464e411e93c201aec
                    Gerrit-Change-Number: 6396833
                    Gerrit-PatchSet: 46
                    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                    Gerrit-Reviewer: John Lee <john...@chromium.org>
                    Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Reviewer: Will Harris <w...@chromium.org>
                    Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                    Gerrit-CC: Keren Zhu <kere...@chromium.org>
                    Gerrit-CC: gwsq
                    Gerrit-Attention: John Lee <john...@chromium.org>
                    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                    Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 03:23:17 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    Comment-In-Reply-To: Will Harris <w...@chromium.org>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Yiming Zhou (Gerrit)

                    unread,
                    May 15, 2025, 12:17:05 AMMay 15
                    to Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from Dana Fried, Daniel Cheng, John Lee, Keren Zhu, Rebekah Potter and Will Harris

                    Yiming Zhou added 15 comments

                    File chrome/app/extensions_strings.grdp
                    Line 719, Patchset 41:<message name="IDS_EXTENSIONS_ZERO_STATE_IPH_HEADER" desc="Header of the extensions zero state in-product help promo.">

                    Supercharge your browser with extensions and themes
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_CHIPS_IPH_DESCRIPTION" desc="An one line description for the extensions zero state in-product-help promo.">
                    Extensions are add-ons for Chrome that can help you do more
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_SHOPPING_CATEGORY_LABEL" desc="Label for the button that opens the Chrome Web Store shopping category page.">
                    Find coupons
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_WRITING_HELP_COLLECTION_LABEL" desc="Label for the button that opens the Chrome Web Store writing help collection page.">
                    Help me write
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_PRODUCTIVITY_CATEGORY_LABEL" desc="Label for the button that opens the Chrome Web Store producitivty category page.">
                    Boost productivity
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_AI_PRODUCTIVITY_COLLECTION_LABEL" desc="Label for the button that opens the Chrome Web Store ai productivity collection page.">
                    Enhance with AI
                    </message>
                    <message name="IDS_EXTENSIONS_ZERO_STATE_IPH_DISMISS_BUTTON_TITLE" desc="Title attribute for the button that dismisses the extensions zero state in-product-help promo.">
                    Close
                    </message>
                    Rebekah Potter . resolved

                    should we put these behind a "enable_extensions" flag, such that they are not unnecessarily included on builds where they are unused?

                    Yiming Zhou

                    Done

                    File chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                    Line 9, Patchset 39: "extensions zero state promo should not be enabeld for android")
                    Rebekah Potter . resolved

                    nit: spelling (here and below)

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/BUILD.gn
                    Line 5340, Patchset 41: deps += [
                    "//chrome/browser/ui/webui/extensions_zero_state_promo:mojo_bindings",
                    ]
                    Rebekah Potter . resolved

                    Remove - this dep is now added twice, and seems to belong only on line 5360, under the same condition as the other source code that uses it.

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/webui/chrome_web_ui_configs.cc

                    #if BUILDFLAG(ENABLE_EXTENSIONS_CORE) && \
                    (BUILDFLAG(IS_WIN) || BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || \
                    BUILDFLAG(IS_CHROMEOS))
                    #include "chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.h"
                    #endif // BUILDFLAG(ENABLE_EXTENSIONS_CORE) && (BUILDFLAG(IS_WIN) ||
                    // BUILDFLAG(IS_MAC) || BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS))
                    Rebekah Potter . resolved

                    Condition for this #if should match the one on line 351, i.e. let's use ENABLE_EXTENSIONS or
                    ENABLE_EXTENSIONS_CORE && (<long list of OSes>)

                    in both spots.

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/webui/extensions/web_store/OWNERS
                    Line 3, Patchset 31:
                    Rebekah Potter . resolved

                    Should have additional OWNERS, the same way the chrome/browser/resources folder does.

                    Also, should we move this C++ code to its own directory also, if it's not closely related to the chrome://extensions UI and isn't intended to be owned by the same team?

                    Dana Fried

                    +1 to putting this into its own subfolder; also I do volunteer to be an owner if there is a separate promo folder with separate OWNERS (separate OWNERS not required unless Rebekah says).

                    Yiming Zhou

                    Done

                    Rebekah Potter

                    Re-opening as this has been moved to a subfolder, but I don't see any OWNERS specified other than for the mojom file, which means this code is proposed to be de-facto owned by the WebUI team. We request that teams adding new WebUIs commit to maintaining their UIs, which is why we also ask for OWNERS from those teams to be added.

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.h
                    Line 8, Patchset 41:#include "base/memory/raw_ptr.h"
                    Rebekah Potter . resolved

                    is raw_ptr needed? I don't see this used in this file but may be missing something.

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                    Line 15, Patchset 41:#include "chrome/browser/ui/chrome_pages.h"

                    #include "chrome/grit/generated_resources.h"
                    #include "components/prefs/pref_service.h"
                    #include "components/profile_metrics/browser_profile_type.h"
                    #include "components/strings/grit/components_strings.h"
                    Rebekah Potter . resolved

                    unused?

                    Yiming Zhou

                    Done

                    Line 21, Patchset 41:#include "content/public/browser/web_contents.h"
                    #include "content/public/browser/web_ui.h"
                    Rebekah Potter . resolved

                    also unused?

                    Yiming Zhou

                    Done

                    Line 24, Patchset 41:#include "ui/base/l10n/l10n_util.h"
                    Rebekah Potter . resolved

                    unused?

                    Yiming Zhou

                    Done

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.cc
                    Line 14, Patchset 41:#include "chrome/browser/ui/ui_features.h"
                    Rebekah Potter . resolved

                    unused?

                    Yiming Zhou

                    Done

                    Line 17, Patchset 41:#include "chrome/grit/branded_strings.h"
                    Rebekah Potter . resolved

                    I don't think we have any branded strings here?

                    Yiming Zhou

                    Done

                    Line 21, Patchset 41:#include "components/strings/grit/components_strings.h"
                    Rebekah Potter . resolved

                    The strings for this UI are in the chrome/grit/generated_resources.h header AFAICT, not in components/

                    Yiming Zhou

                    Done

                    Line 25, Patchset 41:#include "ui/accessibility/accessibility_features.h"
                    #include "ui/base/ui_base_features.h"
                    Rebekah Potter . resolved

                    Do we need all these feature includes?

                    Yiming Zhou

                    Done

                    Line 29, Patchset 41:#include "ui/webui/resources/grit/webui_resources.h"
                    #include "ui/webui/resources/grit/webui_resources_map.h"
                    Rebekah Potter . resolved

                    What resources from the shared resources are being used in this file? Normally WebUIs should get shared resources from chrome://resources, and not need to manually register them with their individual data source.

                    Yiming Zhou

                    Done

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dana Fried
                    • Daniel Cheng
                    • John Lee
                    • Keren Zhu
                    • Rebekah Potter
                    • Will Harris
                    Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement is not satisfiedCode-Review
                    • requirement is not satisfiedNo-Unresolved-Comments
                    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: I43df61089e3c649157a124a464e411e93c201aec
                    Gerrit-Change-Number: 6396833
                    Gerrit-PatchSet: 47
                    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                    Gerrit-Reviewer: John Lee <john...@chromium.org>
                    Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Reviewer: Will Harris <w...@chromium.org>
                    Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                    Gerrit-CC: Keren Zhu <kere...@chromium.org>
                    Gerrit-CC: gwsq
                    Gerrit-Attention: John Lee <john...@chromium.org>
                    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                    Gerrit-Attention: Will Harris <w...@chromium.org>
                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 04:16:56 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    Comment-In-Reply-To: Will Harris <w...@chromium.org>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Keren Zhu (Gerrit)

                    unread,
                    May 15, 2025, 1:06:06 AMMay 15
                    to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from Dana Fried, Daniel Cheng, John Lee, Rebekah Potter, Will Harris and Yiming Zhou

                    Keren Zhu added 1 comment

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    Keren Zhu

                    Top-chrome WebUI's WebContentsDelegate is WebUIContentsWrapper. It forwards the AddNewWebContents() call to WebUIContentsWrapper::Host. There are a few different types of hosts, the one used here I believe is WebUIBubbleDialogView, which does not implement AddNewWebContents(), so `window.open()` becomes a no-op.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dana Fried
                    • Daniel Cheng
                    • John Lee
                    • Rebekah Potter
                    • Will Harris
                    • Yiming Zhou
                    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                    Gerrit-Attention: Will Harris <w...@chromium.org>
                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 05:05:58 +0000
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Daniel Cheng (Gerrit)

                    unread,
                    May 15, 2025, 4:30:10 AMMay 15
                    to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Dana Fried, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from Dana Fried, John Lee, Rebekah Potter, Will Harris and Yiming Zhou

                    Daniel Cheng added 1 comment

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    Keren Zhu

                    Top-chrome WebUI's WebContentsDelegate is WebUIContentsWrapper. It forwards the AddNewWebContents() call to WebUIContentsWrapper::Host. There are a few different types of hosts, the one used here I believe is WebUIBubbleDialogView, which does not implement AddNewWebContents(), so `window.open()` becomes a no-op.

                    Daniel Cheng

                    Right... I think the question is "should WebUIBubbleDialogView implement it", so we don't have N places implementing window.open() via a custom Mojo call?

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dana Fried
                    Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                    Gerrit-Attention: Will Harris <w...@chromium.org>
                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 08:30:00 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    Comment-In-Reply-To: Will Harris <w...@chromium.org>
                    Comment-In-Reply-To: Keren Zhu <kere...@chromium.org>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Dana Fried (Gerrit)

                    unread,
                    May 15, 2025, 12:16:46 PMMay 15
                    to Yiming Zhou, Daniel Cheng, Chromium IPC Reviews, Will Harris, Chromium LUCI CQ, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from John Lee, Rebekah Potter, Will Harris and Yiming Zhou

                    Dana Fried added 1 comment

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    Keren Zhu

                    Top-chrome WebUI's WebContentsDelegate is WebUIContentsWrapper. It forwards the AddNewWebContents() call to WebUIContentsWrapper::Host. There are a few different types of hosts, the one used here I believe is WebUIBubbleDialogView, which does not implement AddNewWebContents(), so `window.open()` becomes a no-op.

                    Daniel Cheng

                    Right... I think the question is "should WebUIBubbleDialogView implement it", so we don't have N places implementing window.open() via a custom Mojo call?

                    Dana Fried

                    I don't necessarily disagree that TopChrome WebUI bubbles should have access to `window.open()` but that is way out of scope for this CL or even stack of CLs.

                    Yiming is definitely not the person who would be implementing this. Maybe we create a follow-up and see if there's a good person to take care of this.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    Gerrit-Comment-Date: Thu, 15 May 2025 16:16:40 +0000
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Will Harris (Gerrit)

                    unread,
                    May 15, 2025, 12:31:41 PMMay 15
                    to Yiming Zhou, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from John Lee, Rebekah Potter and Yiming Zhou

                    Will Harris voted and added 2 comments

                    Votes added by Will Harris

                    Code-Review+1

                    2 comments

                    Patchset-level comments
                    File-level comment, Patchset 47 (Latest):
                    Will Harris . resolved

                    lgtm the `chrome/browser/chrome_browser_interface_binders_webui.cc` and `chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom` files

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . unresolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    Keren Zhu

                    Top-chrome WebUI's WebContentsDelegate is WebUIContentsWrapper. It forwards the AddNewWebContents() call to WebUIContentsWrapper::Host. There are a few different types of hosts, the one used here I believe is WebUIBubbleDialogView, which does not implement AddNewWebContents(), so `window.open()` becomes a no-op.

                    Daniel Cheng

                    Right... I think the question is "should WebUIBubbleDialogView implement it", so we don't have N places implementing window.open() via a custom Mojo call?

                    Dana Fried

                    I don't necessarily disagree that TopChrome WebUI bubbles should have access to `window.open()` but that is way out of scope for this CL or even stack of CLs.

                    Yiming is definitely not the person who would be implementing this. Maybe we create a follow-up and see if there's a good person to take care of this.

                    Will Harris

                    understood. thank you for restricting the links that can be opened by this API.

                    perhaps we should add a TODO here to try and implement the required plumbing to allow window.open to work?

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • John Lee
                    • Rebekah Potter
                    • Yiming Zhou
                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 16:30:44 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: Yes
                    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    Comment-In-Reply-To: Will Harris <w...@chromium.org>
                    Comment-In-Reply-To: Keren Zhu <kere...@chromium.org>
                    Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Yiming Zhou (Gerrit)

                    unread,
                    May 15, 2025, 3:57:52 PMMay 15
                    to Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Rebekah Potter, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from Dana Fried, Daniel Cheng, John Lee, Keren Zhu, Rebekah Potter and Will Harris

                    Yiming Zhou added 2 comments

                    Patchset-level comments

                    The test that's coming up flaky here isn't even added in this CL. However, attempting to activate the browser on Linux is a known issue; I think your `BrowserActivationWater` is spurious and should probably be removed, especially considering your promo gets hammered immediately and will take focus. This is almost certainly the cause of the flake.

                    Yiming Zhou

                    Acknowledged

                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                    Line 39, Patchset 39: OpenURL(url.mojom.Url url);
                    Will Harris . resolved

                    do you need to have this IPC in the browser?

                    Is it not possible for the webui to just call via JS to e.g. `window.open`?

                    Yiming Zhou

                    I do, because the webui will be hosted inside an CustomUiHelpBubble, which renders outside of a Chrome tab.

                    Daniel Cheng

                    OK, but is there a reason `window.open()` doesn't work? Is it explicitly disabled, or is the functionality in `WebContentsDelegate` [1][2] overridden somehow? If we really need to duplicate web platform functionality in MojoJS, we should try to understand why it's broken first.

                    [1] window.open() is ultimately handled here in the browser side: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=5230;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3
                    [2] which is delegated to the embedder with https://source.chromium.org/chromium/chromium/src/+/main:content/public/browser/web_contents_delegate.cc;l=47;drc=4a1f2646209c5ecc0aae120e3654feb6d3f393f3

                    Will Harris

                    Hi this is not resolved, can you further explain why you need to add this IPC? Thanks.

                    Yiming Zhou

                    window.open does not work - and I have tried it. It is not all too surprising considering that this page is in a Chrome dialog. ui/webui/resources/js/browser_command/browser_command.mojom also has commands for opening URLs in a new tab, used by NTP.

                    Perhaps @dfr...@chromium.org can comment on why window.open does not work even though it is routed to and handled from the browser side.

                    Keren Zhu

                    Top-chrome WebUI's WebContentsDelegate is WebUIContentsWrapper. It forwards the AddNewWebContents() call to WebUIContentsWrapper::Host. There are a few different types of hosts, the one used here I believe is WebUIBubbleDialogView, which does not implement AddNewWebContents(), so `window.open()` becomes a no-op.

                    Daniel Cheng

                    Right... I think the question is "should WebUIBubbleDialogView implement it", so we don't have N places implementing window.open() via a custom Mojo call?

                    Dana Fried

                    I don't necessarily disagree that TopChrome WebUI bubbles should have access to `window.open()` but that is way out of scope for this CL or even stack of CLs.

                    Yiming is definitely not the person who would be implementing this. Maybe we create a follow-up and see if there's a good person to take care of this.

                    Will Harris

                    understood. thank you for restricting the links that can be opened by this API.

                    perhaps we should add a TODO here to try and implement the required plumbing to allow window.open to work?

                    Yiming Zhou

                    Added TODO.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dana Fried
                    • Daniel Cheng
                    • John Lee
                    • Keren Zhu
                    • Rebekah Potter
                    • Will Harris
                    Submit Requirements:
                    • requirement satisfiedCode-Coverage
                    • requirement is not satisfiedCode-Review
                    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                    Gerrit-Attention: Will Harris <w...@chromium.org>
                    Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                    Gerrit-Comment-Date: Thu, 15 May 2025 19:57:42 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
                    Comment-In-Reply-To: Will Harris <w...@chromium.org>
                    Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Rebekah Potter (Gerrit)

                    unread,
                    May 15, 2025, 5:48:07 PMMay 15
                    to Yiming Zhou, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                    Attention needed from Dana Fried, Daniel Cheng, John Lee, Keren Zhu, Will Harris and Yiming Zhou

                    Rebekah Potter voted and added 5 comments

                    Votes added by Rebekah Potter

                    Code-Review+1

                    5 comments

                    Patchset-level comments
                    File-level comment, Patchset 49 (Latest):
                    Rebekah Potter . resolved

                    LGTM with a few nits

                    File chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                    Line 39, Patchset 49 (Latest): ts_definitions = [ "//tools/typescript/definitions/metrics_private.d.ts" ]
                    Rebekah Potter . unresolved

                    no longer needed?

                    Line 45, Patchset 49 (Latest): "//ui/webui/resources/js:build_ts",
                    Rebekah Potter . unresolved

                    I don't think you're using this anywhere either, but maybe missing something.

                    File chrome/test/data/webui/extensions_zero_state/BUILD.gn
                    Line 20, Patchset 49 (Latest): "//ui/webui/resources/mojo:build_ts",
                    Rebekah Potter . unresolved

                    no longer used

                    File third_party/lit/v3_0/BUILD.gn
                    Line 91, Patchset 49 (Latest): "//chrome/test/data/webui/extensions_zero_state:build_ts",
                    Rebekah Potter . unresolved

                    not actually needed, because the test target does not depend on //third_party/lit

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Dana Fried
                    • Daniel Cheng
                    • John Lee
                    • Keren Zhu
                    • Will Harris
                    • Yiming Zhou
                    Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement is not satisfiedCode-Review
                      • requirement is not satisfiedNo-Unresolved-Comments
                      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: I43df61089e3c649157a124a464e411e93c201aec
                      Gerrit-Change-Number: 6396833
                      Gerrit-PatchSet: 49
                      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                      Gerrit-Reviewer: John Lee <john...@chromium.org>
                      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                      Gerrit-Reviewer: Will Harris <w...@chromium.org>
                      Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                      Gerrit-CC: Keren Zhu <kere...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: John Lee <john...@chromium.org>
                      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Attention: Will Harris <w...@chromium.org>
                      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                      Gerrit-Comment-Date: Thu, 15 May 2025 21:47:58 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: Yes
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Yiming Zhou (Gerrit)

                      unread,
                      May 15, 2025, 6:34:37 PMMay 15
                      to Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                      Attention needed from Dana Fried, Daniel Cheng, John Lee, Keren Zhu, Rebekah Potter and Will Harris

                      Yiming Zhou added 4 comments

                      File chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                      Line 39, Patchset 49: ts_definitions = [ "//tools/typescript/definitions/metrics_private.d.ts" ]
                      Rebekah Potter . resolved

                      no longer needed?

                      Yiming Zhou

                      Done

                      Line 45, Patchset 49: "//ui/webui/resources/js:build_ts",
                      Rebekah Potter . resolved

                      I don't think you're using this anywhere either, but maybe missing something.

                      Yiming Zhou

                      Actually the icons.html file needs it, otherwise it hit this build error: https://paste.googleplex.com/6675324332670976

                      File chrome/test/data/webui/extensions_zero_state/BUILD.gn
                      Line 20, Patchset 49: "//ui/webui/resources/mojo:build_ts",
                      Rebekah Potter . resolved

                      no longer used

                      Yiming Zhou

                      Done

                      File third_party/lit/v3_0/BUILD.gn
                      Line 91, Patchset 49: "//chrome/test/data/webui/extensions_zero_state:build_ts",
                      Rebekah Potter . resolved

                      not actually needed, because the test target does not depend on //third_party/lit

                      Yiming Zhou

                      Done

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Dana Fried
                      • Daniel Cheng
                      • John Lee
                      • Keren Zhu
                      • Rebekah Potter
                      • Will Harris
                      Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement is not satisfiedCode-Review
                      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: I43df61089e3c649157a124a464e411e93c201aec
                      Gerrit-Change-Number: 6396833
                      Gerrit-PatchSet: 50
                      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                      Gerrit-Reviewer: John Lee <john...@chromium.org>
                      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                      Gerrit-Reviewer: Will Harris <w...@chromium.org>
                      Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                      Gerrit-CC: Keren Zhu <kere...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: John Lee <john...@chromium.org>
                      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                      Gerrit-Attention: Will Harris <w...@chromium.org>
                      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                      Gerrit-Comment-Date: Thu, 15 May 2025 22:34:28 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: No
                      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Rebekah Potter (Gerrit)

                      unread,
                      May 15, 2025, 6:57:06 PMMay 15
                      to Yiming Zhou, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                      Attention needed from Dana Fried, Daniel Cheng, John Lee, Keren Zhu, Will Harris and Yiming Zhou

                      Rebekah Potter voted and added 1 comment

                      Votes added by Rebekah Potter

                      Code-Review+1

                      1 comment

                      File chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                      Line 45, Patchset 49: "//ui/webui/resources/js:build_ts",
                      Rebekah Potter . resolved

                      I don't think you're using this anywhere either, but maybe missing something.

                      Yiming Zhou

                      Actually the icons.html file needs it, otherwise it hit this build error: https://paste.googleplex.com/6675324332670976

                      Rebekah Potter

                      Ack.

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Dana Fried
                      • Daniel Cheng
                      • John Lee
                      • Keren Zhu
                      • Will Harris
                      • Yiming Zhou
                      Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement is not satisfiedCode-Review
                      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: I43df61089e3c649157a124a464e411e93c201aec
                      Gerrit-Change-Number: 6396833
                      Gerrit-PatchSet: 51
                      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                      Gerrit-Reviewer: John Lee <john...@chromium.org>
                      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                      Gerrit-Reviewer: Will Harris <w...@chromium.org>
                      Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                      Gerrit-CC: Keren Zhu <kere...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: John Lee <john...@chromium.org>
                      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Attention: Will Harris <w...@chromium.org>
                      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                      Gerrit-Comment-Date: Thu, 15 May 2025 22:56:56 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: Yes
                      Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                      Comment-In-Reply-To: Rebekah Potter <rbpo...@chromium.org>
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Yiming Zhou (Gerrit)

                      unread,
                      May 16, 2025, 12:52:30 PMMay 16
                      to Hidehiko Abe, Demetrios Papadopoulos, Robert Kaplow, Tim, Devlin Cronin, Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, John Lee, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                      Attention needed from Dana Fried, Demetrios Papadopoulos, Devlin Cronin, Hidehiko Abe, John Lee, Keren Zhu, Robert Kaplow and Tim

                      Yiming Zhou added 1 comment

                      Patchset-level comments
                      File-level comment, Patchset 51 (Latest):
                      Yiming Zhou . resolved

                      Hi @rdevlin...@chromium.org, may I trouble you to review the change to extensions/common/api/_api_features.json? This addition was required by presubmit.

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Dana Fried
                      • Demetrios Papadopoulos
                      • Devlin Cronin
                      • Hidehiko Abe
                      • John Lee
                      • Keren Zhu
                      • Robert Kaplow
                      • Tim
                      Submit Requirements:
                      • requirement satisfiedCode-Coverage
                      • requirement is not satisfiedCode-Review
                      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: I43df61089e3c649157a124a464e411e93c201aec
                      Gerrit-Change-Number: 6396833
                      Gerrit-PatchSet: 51
                      Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                      Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                      Gerrit-Reviewer: Demetrios Papadopoulos <dpa...@chromium.org>
                      Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                      Gerrit-Reviewer: Hidehiko Abe <hide...@chromium.org>
                      Gerrit-Reviewer: John Lee <john...@chromium.org>
                      Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                      Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                      Gerrit-Reviewer: Robert Kaplow <rka...@chromium.org>
                      Gerrit-Reviewer: Tim <tjud...@chromium.org>
                      Gerrit-Reviewer: Will Harris <w...@chromium.org>
                      Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                      Gerrit-CC: Keren Zhu <kere...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: John Lee <john...@chromium.org>
                      Gerrit-Attention: Hidehiko Abe <hide...@chromium.org>
                      Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                      Gerrit-Attention: Robert Kaplow <rka...@chromium.org>
                      Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                      Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                      Gerrit-Attention: Tim <tjud...@chromium.org>
                      Gerrit-Comment-Date: Fri, 16 May 2025 16:52:20 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: No
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Demetrios Papadopoulos (Gerrit)

                      unread,
                      May 16, 2025, 1:00:50 PMMay 16
                      to Yiming Zhou, Devlin Cronin, Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                      Attention needed from Dana Fried, Devlin Cronin, Keren Zhu and Yiming Zhou

                      Demetrios Papadopoulos added 5 comments

                      Patchset-level comments
                      Yiming Zhou . unresolved

                      Hi @rdevlin...@chromium.org, may I trouble you to review the change to extensions/common/api/_api_features.json? This addition was required by presubmit.

                      Demetrios Papadopoulos

                      Did you mean to add a bunch of new reviewers in this CL? If so please specify what you are asking each reviewer to review.

                      Also, what about breaking down this CL to smallper pieces (like backend vs frontend). I can see that this has already gone through quite a few rounds of reviews, but landing an entire feature in a single massive CL is not great to begin with.

                      File chrome/browser/resources/extensions_zero_state_promo/OWNERS
                      Line 5, Patchset 51 (Latest):
                      Demetrios Papadopoulos . unresolved

                      Please add DIR_METADATA files for all newly added folders.

                      File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo.html
                      Line 15, Patchset 51 (Latest): margin: 0px;
                      Demetrios Papadopoulos . unresolved
                      ```suggestion
                      margin: 0;
                      ```
                      File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_app.html.ts
                      Line 29, Patchset 51 (Latest): <cr-chip id="writingButton" chip-role="link"
                      Demetrios Papadopoulos . unresolved

                      Remove extra space.

                      File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_browser_proxy.ts
                      Line 29, Patchset 51 (Latest): static getInstance(): ZeroStatePromoBrowserProxy {
                      return instance || (instance = new ZeroStatePromoBrowserProxyImpl());
                      }

                      static setInstance(obj: ZeroStatePromoBrowserProxy) {
                      instance = obj;
                      }
                      Demetrios Papadopoulos . unresolved

                      Nit: Move these after all non-static methods.

                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Dana Fried
                      • Devlin Cronin
                      • Keren Zhu
                      • Yiming Zhou
                      Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement is not satisfiedCode-Review
                        • requirement is not satisfiedNo-Unresolved-Comments
                        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: I43df61089e3c649157a124a464e411e93c201aec
                        Gerrit-Change-Number: 6396833
                        Gerrit-PatchSet: 51
                        Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                        Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                        Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                        Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                        Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                        Gerrit-Reviewer: Will Harris <w...@chromium.org>
                        Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                        Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                        Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                        Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                        Gerrit-CC: Keren Zhu <kere...@chromium.org>
                        Gerrit-CC: gwsq
                        Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                        Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                        Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                        Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                        Gerrit-Comment-Date: Fri, 16 May 2025 17:00:33 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Yiming Zhou (Gerrit)

                        unread,
                        May 16, 2025, 1:43:03 PMMay 16
                        to Demetrios Papadopoulos, Devlin Cronin, Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                        Attention needed from Dana Fried, Demetrios Papadopoulos, Devlin Cronin, Keren Zhu and Rebekah Potter

                        Yiming Zhou added 5 comments

                        Patchset-level comments
                        File-level comment, Patchset 51:
                        Yiming Zhou . resolved

                        Hi @rdevlin...@chromium.org, may I trouble you to review the change to extensions/common/api/_api_features.json? This addition was required by presubmit.

                        Demetrios Papadopoulos

                        Did you mean to add a bunch of new reviewers in this CL? If so please specify what you are asking each reviewer to review.

                        Also, what about breaking down this CL to smallper pieces (like backend vs frontend). I can see that this has already gone through quite a few rounds of reviews, but landing an entire feature in a single massive CL is not great to begin with.

                        Yiming Zhou

                        Pardon, I was trying to find the owner for a file and must have clicked the wrong button in 'suggest owners'.

                        File chrome/browser/resources/extensions_zero_state_promo/OWNERS
                        Line 5, Patchset 51:
                        Demetrios Papadopoulos . resolved

                        Please add DIR_METADATA files for all newly added folders.

                        Yiming Zhou

                        Done

                        File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo.html
                        Line 15, Patchset 51: margin: 0px;
                        Demetrios Papadopoulos . resolved
                        ```suggestion
                        margin: 0;
                        ```
                        Yiming Zhou

                        Done

                        File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_app.html.ts
                        Line 29, Patchset 51: <cr-chip id="writingButton" chip-role="link"
                        Demetrios Papadopoulos . resolved

                        Remove extra space.

                        Yiming Zhou

                        Done

                        File chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_browser_proxy.ts
                        Line 29, Patchset 51: static getInstance(): ZeroStatePromoBrowserProxy {

                        return instance || (instance = new ZeroStatePromoBrowserProxyImpl());
                        }

                        static setInstance(obj: ZeroStatePromoBrowserProxy) {
                        instance = obj;
                        }
                        Demetrios Papadopoulos . resolved

                        Nit: Move these after all non-static methods.

                        Yiming Zhou

                        Done

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Dana Fried
                        • Demetrios Papadopoulos
                        • Devlin Cronin
                        • Keren Zhu
                        • Rebekah Potter
                        Submit Requirements:
                        • requirement satisfiedCode-Coverage
                        • requirement is not satisfiedCode-Review
                        Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                        Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                        Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                        Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                        Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                        Gerrit-Comment-Date: Fri, 16 May 2025 17:42:53 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                        Comment-In-Reply-To: Demetrios Papadopoulos <dpa...@chromium.org>
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Devlin Cronin (Gerrit)

                        unread,
                        May 16, 2025, 5:08:55 PMMay 16
                        to Yiming Zhou, Devlin Cronin, Demetrios Papadopoulos, Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                        Attention needed from Dana Fried, Demetrios Papadopoulos, Keren Zhu, Rebekah Potter and Yiming Zhou

                        Devlin Cronin voted and added 1 comment

                        Votes added by Devlin Cronin

                        Code-Review+1

                        1 comment

                        Patchset-level comments
                        File-level comment, Patchset 54 (Latest):
                        Devlin Cronin . unresolved

                        Just confirming: You only need me to take a look at extensions/common/api/_api_features.json ? If so, that file LGTM.

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Dana Fried
                        • Demetrios Papadopoulos
                        • Keren Zhu
                        • Rebekah Potter
                        • Yiming Zhou
                          Submit Requirements:
                            • requirement satisfiedCode-Coverage
                            • requirement is not satisfiedCode-Review
                            • requirement is not satisfiedNo-Unresolved-Comments
                            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: I43df61089e3c649157a124a464e411e93c201aec
                            Gerrit-Change-Number: 6396833
                            Gerrit-PatchSet: 54
                            Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                            Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                            Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                            Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                            Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                            Gerrit-Reviewer: Will Harris <w...@chromium.org>
                            Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                            Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                            Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                            Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                            Gerrit-CC: Keren Zhu <kere...@chromium.org>
                            Gerrit-CC: gwsq
                            Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                            Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                            Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                            Gerrit-Comment-Date: Fri, 16 May 2025 21:08:44 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Yiming Zhou (Gerrit)

                            unread,
                            May 16, 2025, 5:09:35 PMMay 16
                            to Devlin Cronin, Demetrios Papadopoulos, Rebekah Potter, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                            Attention needed from Dana Fried, Demetrios Papadopoulos, Keren Zhu and Rebekah Potter

                            Yiming Zhou added 1 comment

                            Patchset-level comments
                            Devlin Cronin . resolved

                            Just confirming: You only need me to take a look at extensions/common/api/_api_features.json ? If so, that file LGTM.

                            Yiming Zhou

                            Yes, that is the one file missing approval. Thanks!

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Dana Fried
                            • Demetrios Papadopoulos
                            • Keren Zhu
                            • Rebekah Potter
                            Submit Requirements:
                            • requirement satisfiedCode-Coverage
                            • requirement is not satisfiedCode-Review
                            Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                            Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                            Gerrit-Comment-Date: Fri, 16 May 2025 21:09:24 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: No
                            Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Rebekah Potter (Gerrit)

                            unread,
                            May 16, 2025, 5:34:03 PMMay 16
                            to Yiming Zhou, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                            Attention needed from Dana Fried, Demetrios Papadopoulos, Keren Zhu and Yiming Zhou

                            Rebekah Potter voted and added 1 comment

                            Votes added by Rebekah Potter

                            Code-Review+1

                            1 comment

                            Patchset-level comments
                            Rebekah Potter . resolved

                            re-lgtm

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Dana Fried
                            • Demetrios Papadopoulos
                            • Keren Zhu
                            • Yiming Zhou
                            Submit Requirements:
                            • requirement satisfiedCode-Coverage
                            • requirement satisfiedCode-Review
                            Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                            Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                            Gerrit-Comment-Date: Fri, 16 May 2025 21:33:53 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            open
                            diffy

                            Yiming Zhou (Gerrit)

                            unread,
                            May 16, 2025, 5:34:13 PMMay 16
                            to Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                            Attention needed from Dana Fried, Demetrios Papadopoulos and Keren Zhu

                            Yiming Zhou voted Commit-Queue+2

                            Commit-Queue+2
                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Dana Fried
                            • Demetrios Papadopoulos
                            • Keren Zhu
                            Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                            Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                            Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                            Gerrit-Comment-Date: Fri, 16 May 2025 21:34:04 +0000
                            Gerrit-HasComments: No
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            open
                            diffy

                            Dana Fried (Gerrit)

                            unread,
                            May 20, 2025, 9:18:58 AMMay 20
                            to Yiming Zhou, Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                            Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                            Dana Fried added 2 comments

                            File chrome/browser/ui/views/user_education/custom_webui_help_bubble_controller.h
                            Line 61, Patchset 55 (Latest): bool ShouldAutoResizeHost() override; \
                            Dana Fried . unresolved

                            Please do not change this code, it will break things.

                            If you need to move this out of the header file due to e.g. compile warnings or code duplication, we should add a matching `DEFINE_TOP_CHROME_WEBUI_CONFIG` for the .cc files.

                            File chrome/browser/ui/views/user_education/custom_webui_help_bubble_interactive_uitest.cc
                            Line 95, Patchset 55 (Latest):bool TestWebUIHelpBubbleControllerConfig::ShouldAutoResizeHost() {
                            Dana Fried . unresolved

                            See comment in `custom_webui_help_bubble_controller.h`

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Demetrios Papadopoulos
                            • Devlin Cronin
                            • Keren Zhu
                            • Rebekah Potter
                            • Yiming Zhou
                              Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement is not satisfiedCode-Review
                              • requirement is not satisfiedNo-Unresolved-Comments
                              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: I43df61089e3c649157a124a464e411e93c201aec
                              Gerrit-Change-Number: 6396833
                              Gerrit-PatchSet: 55
                              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                              Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                              Gerrit-Reviewer: Will Harris <w...@chromium.org>
                              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                              Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                              Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                              Gerrit-CC: Keren Zhu <kere...@chromium.org>
                              Gerrit-CC: gwsq
                              Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                              Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                              Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                              Gerrit-Comment-Date: Tue, 20 May 2025 13:18:52 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: No
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Dana Fried (Gerrit)

                              unread,
                              May 20, 2025, 9:23:31 AMMay 20
                              to Yiming Zhou, Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                              Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                              Dana Fried added 1 comment

                              File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                              Line 31, Patchset 55 (Latest): Browser* browser = chrome::FindLastActive();
                              Dana Fried . unresolved

                              Presubmit in later CLs is failing because of the use of this function.

                              I think you just want to use `Navigate()`:
                              https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_navigator.h;l=21

                              Gerrit-Comment-Date: Tue, 20 May 2025 13:23:25 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: No
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Devlin Cronin (Gerrit)

                              unread,
                              May 20, 2025, 5:41:23 PMMay 20
                              to Yiming Zhou, Devlin Cronin, Rebekah Potter, Demetrios Papadopoulos, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                              Attention needed from Demetrios Papadopoulos, Keren Zhu, Rebekah Potter and Yiming Zhou

                              Devlin Cronin voted and added 1 comment

                              Votes added by Devlin Cronin

                              Code-Review+1

                              1 comment

                              Patchset-level comments
                              File-level comment, Patchset 56 (Latest):
                              Devlin Cronin . resolved

                              extensions/common/api/_api_features.json s lgtm

                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Demetrios Papadopoulos
                              • Keren Zhu
                              • Rebekah Potter
                              • Yiming Zhou
                              Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement is not satisfiedCode-Review
                              • requirement is not satisfiedNo-Unresolved-Comments
                              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: I43df61089e3c649157a124a464e411e93c201aec
                              Gerrit-Change-Number: 6396833
                              Gerrit-PatchSet: 56
                              Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                              Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                              Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                              Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                              Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                              Gerrit-Reviewer: Will Harris <w...@chromium.org>
                              Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                              Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                              Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                              Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                              Gerrit-CC: Keren Zhu <kere...@chromium.org>
                              Gerrit-CC: gwsq
                              Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                              Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                              Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                              Gerrit-Comment-Date: Tue, 20 May 2025 21:41:12 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Rebekah Potter (Gerrit)

                              unread,
                              May 20, 2025, 7:28:04 PMMay 20
                              to Yiming Zhou, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                              Attention needed from Demetrios Papadopoulos, Keren Zhu and Yiming Zhou

                              Rebekah Potter voted Code-Review+1

                              Code-Review+1
                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Demetrios Papadopoulos
                              • Keren Zhu
                              • Yiming Zhou
                              Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement satisfiedCode-Review
                              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                              Gerrit-Comment-Date: Tue, 20 May 2025 23:27:51 +0000
                              Gerrit-HasComments: No
                              Gerrit-Has-Labels: Yes
                              satisfied_requirement
                              unsatisfied_requirement
                              open
                              diffy

                              Yiming Zhou (Gerrit)

                              unread,
                              May 20, 2025, 8:51:53 PMMay 20
                              to Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Dana Fried, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                              Attention needed from Dana Fried, Demetrios Papadopoulos and Keren Zhu

                              Yiming Zhou added 3 comments

                              File chrome/browser/ui/views/user_education/custom_webui_help_bubble_controller.h
                              Line 61, Patchset 55: bool ShouldAutoResizeHost() override; \
                              Dana Fried . resolved

                              Please do not change this code, it will break things.

                              If you need to move this out of the header file due to e.g. compile warnings or code duplication, we should add a matching `DEFINE_TOP_CHROME_WEBUI_CONFIG` for the .cc files.

                              Yiming Zhou

                              Done

                              File chrome/browser/ui/views/user_education/custom_webui_help_bubble_interactive_uitest.cc
                              Line 95, Patchset 55:bool TestWebUIHelpBubbleControllerConfig::ShouldAutoResizeHost() {
                              Dana Fried . resolved

                              See comment in `custom_webui_help_bubble_controller.h`

                              Yiming Zhou

                              Done

                              File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                              Line 31, Patchset 55: Browser* browser = chrome::FindLastActive();
                              Dana Fried . resolved

                              Presubmit in later CLs is failing because of the use of this function.

                              I think you just want to use `Navigate()`:
                              https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_navigator.h;l=21

                              Yiming Zhou

                              Done

                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Dana Fried
                              • Demetrios Papadopoulos
                              • Keren Zhu
                              Submit Requirements:
                              • requirement satisfiedCode-Coverage
                              • requirement satisfiedCode-Review
                              Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                              Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                              Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                              Gerrit-Comment-Date: Wed, 21 May 2025 00:51:42 +0000
                              Gerrit-HasComments: Yes
                              Gerrit-Has-Labels: No
                              Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
                              satisfied_requirement
                              open
                              diffy

                              Dana Fried (Gerrit)

                              unread,
                              May 21, 2025, 8:54:33 AMMay 21
                              to Yiming Zhou, Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                              Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                              Dana Fried voted and added 1 comment

                              Votes added by Dana Fried

                              Code-Review+1

                              1 comment

                              File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                              Line 31, Patchset 55: Browser* browser = chrome::FindLastActive();
                              Dana Fried . unresolved

                              Presubmit in later CLs is failing because of the use of this function.

                              I think you just want to use `Navigate()`:
                              https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_navigator.h;l=21

                              Yiming Zhou

                              Done

                              Dana Fried

                              You are still calling `FindLastActive`; the `Navigate()` call below should be sufficient. You can create the navigate params using the current profile (which you can get from the browser context of the web contents) which will provide the correct behavior (new tab in the most foreground window, bringing window to the front).

                              Alternatively, you can get the browser from the anchor view/widget of the bubble.

                              In other case, you do not need to generate the disposition from a function; you can just use the default disposition.

                              Open in Gerrit

                              Related details

                              Attention is currently required from:
                              • Demetrios Papadopoulos
                              • Devlin Cronin
                              • Keren Zhu
                              • Rebekah Potter
                              • Yiming Zhou
                                Submit Requirements:
                                • requirement satisfiedCode-Coverage
                                • requirement is not satisfiedCode-Review
                                • requirement is not satisfiedNo-Unresolved-Comments
                                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: I43df61089e3c649157a124a464e411e93c201aec
                                Gerrit-Change-Number: 6396833
                                Gerrit-PatchSet: 57
                                Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                                Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                                Gerrit-CC: Keren Zhu <kere...@chromium.org>
                                Gerrit-CC: gwsq
                                Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                                Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                                Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                                Gerrit-Comment-Date: Wed, 21 May 2025 12:54:12 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: Yes
                                Comment-In-Reply-To: Yiming Zhou <uwyi...@google.com>
                                Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Dana Fried (Gerrit)

                                unread,
                                May 21, 2025, 8:55:23 AMMay 21
                                to Yiming Zhou, Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                                Dana Fried added 1 comment

                                File chrome/browser/ui/views/user_education/custom_webui_help_bubble_controller.h
                                Line 65, Patchset 57 (Latest):#define DEFINE_TOP_CHROME_WEBUI_CONFIG(ControllerClass) \
                                Dana Fried . resolved

                                thank you!

                                Gerrit-Comment-Date: Wed, 21 May 2025 12:55:16 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Devlin Cronin (Gerrit)

                                unread,
                                May 21, 2025, 1:19:30 PMMay 21
                                to Yiming Zhou, Devlin Cronin, Dana Fried, Rebekah Potter, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                Attention needed from Demetrios Papadopoulos, Keren Zhu, Rebekah Potter and Yiming Zhou

                                Devlin Cronin voted and added 1 comment

                                Votes added by Devlin Cronin

                                Code-Review+1

                                1 comment

                                Patchset-level comments
                                Devlin Cronin . resolved

                                extensions/common/api/_api_features.json s lgtm

                                Devlin Cronin

                                and still

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Demetrios Papadopoulos
                                • Keren Zhu
                                • Rebekah Potter
                                • Yiming Zhou
                                  Submit Requirements:
                                  • requirement satisfiedCode-Coverage
                                  • requirement satisfiedCode-Review
                                  Gerrit-Comment-Date: Wed, 21 May 2025 17:19:17 +0000
                                  Gerrit-HasComments: Yes
                                  Gerrit-Has-Labels: Yes
                                  Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Rebekah Potter (Gerrit)

                                  unread,
                                  May 21, 2025, 4:00:04 PMMay 21
                                  to Yiming Zhou, Devlin Cronin, Dana Fried, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                  Attention needed from Demetrios Papadopoulos, Keren Zhu and Yiming Zhou

                                  Rebekah Potter voted Code-Review+1

                                  Code-Review+1
                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Demetrios Papadopoulos
                                  • Keren Zhu
                                  • Yiming Zhou
                                  Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                  Gerrit-Comment-Date: Wed, 21 May 2025 19:59:54 +0000
                                  Gerrit-HasComments: No
                                  Gerrit-Has-Labels: Yes
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Yiming Zhou (Gerrit)

                                  unread,
                                  May 21, 2025, 10:14:39 PMMay 21
                                  to Rebekah Potter, Devlin Cronin, Dana Fried, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                  Attention needed from Dana Fried, Demetrios Papadopoulos, Devlin Cronin, Keren Zhu and Rebekah Potter

                                  Yiming Zhou added 1 comment

                                  File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                                  Line 31, Patchset 55: Browser* browser = chrome::FindLastActive();
                                  Dana Fried . resolved

                                  Presubmit in later CLs is failing because of the use of this function.

                                  I think you just want to use `Navigate()`:
                                  https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/ui/browser_navigator.h;l=21

                                  Yiming Zhou

                                  Done

                                  Dana Fried

                                  You are still calling `FindLastActive`; the `Navigate()` call below should be sufficient. You can create the navigate params using the current profile (which you can get from the browser context of the web contents) which will provide the correct behavior (new tab in the most foreground window, bringing window to the front).

                                  Alternatively, you can get the browser from the anchor view/widget of the bubble.

                                  In other case, you do not need to generate the disposition from a function; you can just use the default disposition.

                                  Yiming Zhou

                                  I take it that means routing the profile or webcontent from the page UI to the page handler. Please let me know if this is done correctly. The IPH works just fine.

                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Dana Fried
                                  • Demetrios Papadopoulos
                                  • Devlin Cronin
                                  • Keren Zhu
                                  • Rebekah Potter
                                    Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement is not satisfiedCode-Review
                                    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: I43df61089e3c649157a124a464e411e93c201aec
                                    Gerrit-Change-Number: 6396833
                                    Gerrit-PatchSet: 59
                                    Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                    Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                    Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                    Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                    Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                    Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                    Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                    Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                                    Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                                    Gerrit-CC: Keren Zhu <kere...@chromium.org>
                                    Gerrit-CC: gwsq
                                    Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                    Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                                    Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                    Gerrit-Attention: Dana Fried <dfr...@chromium.org>
                                    Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                                    Gerrit-Comment-Date: Thu, 22 May 2025 02:14:29 +0000
                                    Gerrit-HasComments: Yes
                                    Gerrit-Has-Labels: No
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Dana Fried (Gerrit)

                                    unread,
                                    May 22, 2025, 10:03:00 AMMay 22
                                    to Yiming Zhou, Rebekah Potter, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                    Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                                    Dana Fried voted and added 2 comments

                                    Votes added by Dana Fried

                                    Code-Review+1

                                    2 comments

                                    File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.h
                                    Line 30, Patchset 59 (Latest): raw_ptr<Profile> profile_;
                                    Dana Fried . unresolved

                                    nit: const

                                    Line 16, Patchset 59 (Latest): Profile* profile,
                                    Dana Fried . resolved

                                    Note that you can get this from the WebContents (WebContents::GetBrowserContext() is a profile) but this is fine.

                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Demetrios Papadopoulos
                                    • Devlin Cronin
                                    • Keren Zhu
                                    • Rebekah Potter
                                    • Yiming Zhou
                                    Submit Requirements:
                                      • requirement satisfiedCode-Coverage
                                      • requirement is not satisfiedCode-Review
                                      • requirement is not satisfiedNo-Unresolved-Comments
                                      Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                                      Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                      Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                                      Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                      Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                                      Gerrit-Comment-Date: Thu, 22 May 2025 14:02:40 +0000
                                      Gerrit-HasComments: Yes
                                      Gerrit-Has-Labels: Yes
                                      satisfied_requirement
                                      unsatisfied_requirement
                                      open
                                      diffy

                                      Devlin Cronin (Gerrit)

                                      unread,
                                      May 22, 2025, 1:00:33 PMMay 22
                                      to Yiming Zhou, Devlin Cronin, Dana Fried, Rebekah Potter, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                      Attention needed from Demetrios Papadopoulos, Keren Zhu, Rebekah Potter and Yiming Zhou

                                      Devlin Cronin voted and added 1 comment

                                      Votes added by Devlin Cronin

                                      Code-Review+1

                                      1 comment

                                      Patchset-level comments
                                      Devlin Cronin . resolved

                                      extensions/common/api/_api_features.json s lgtm

                                      Devlin Cronin

                                      and still

                                      Devlin Cronin

                                      and still

                                      Open in Gerrit

                                      Related details

                                      Attention is currently required from:
                                      • Demetrios Papadopoulos
                                      • Keren Zhu
                                      • Rebekah Potter
                                      • Yiming Zhou
                                        Submit Requirements:
                                        • requirement satisfiedCode-Coverage
                                        • requirement satisfiedCode-Review
                                        Gerrit-Comment-Date: Thu, 22 May 2025 17:00:11 +0000
                                        Gerrit-HasComments: Yes
                                        Gerrit-Has-Labels: Yes
                                        Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
                                        satisfied_requirement
                                        unsatisfied_requirement
                                        open
                                        diffy

                                        Dana Fried (Gerrit)

                                        unread,
                                        May 22, 2025, 2:36:02 PMMay 22
                                        to Yiming Zhou, Devlin Cronin, Rebekah Potter, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                        Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu, Rebekah Potter and Yiming Zhou

                                        Dana Fried voted and added 1 comment

                                        Votes added by Dana Fried

                                        Code-Review+1

                                        1 comment

                                        File chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.h
                                        Line 30, Patchset 59: raw_ptr<Profile> profile_;
                                        Dana Fried . resolved

                                        nit: const

                                        Dana Fried

                                        Done

                                        Open in Gerrit

                                        Related details

                                        Attention is currently required from:
                                        • Demetrios Papadopoulos
                                        • Devlin Cronin
                                        • Keren Zhu
                                        • Rebekah Potter
                                        • Yiming Zhou
                                          Submit Requirements:
                                          • requirement satisfiedCode-Coverage
                                          • requirement is not satisfiedCode-Review
                                          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: I43df61089e3c649157a124a464e411e93c201aec
                                          Gerrit-Change-Number: 6396833
                                          Gerrit-PatchSet: 60
                                          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                          Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                          Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                          Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                          Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                                          Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-CC: Keren Zhu <kere...@chromium.org>
                                          Gerrit-CC: gwsq
                                          Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-Attention: Rebekah Potter <rbpo...@chromium.org>
                                          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                          Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Comment-Date: Thu, 22 May 2025 18:35:44 +0000
                                          Gerrit-HasComments: Yes
                                          Gerrit-Has-Labels: Yes
                                          Comment-In-Reply-To: Dana Fried <dfr...@chromium.org>
                                          satisfied_requirement
                                          unsatisfied_requirement
                                          open
                                          diffy

                                          Rebekah Potter (Gerrit)

                                          unread,
                                          May 22, 2025, 5:05:12 PMMay 22
                                          to Yiming Zhou, Dana Fried, Devlin Cronin, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                          Attention needed from Demetrios Papadopoulos, Devlin Cronin, Keren Zhu and Yiming Zhou

                                          Rebekah Potter voted Code-Review+1

                                          Code-Review+1
                                          Open in Gerrit

                                          Related details

                                          Attention is currently required from:
                                          • Demetrios Papadopoulos
                                          • Devlin Cronin
                                          • Keren Zhu
                                          • Yiming Zhou
                                          Submit Requirements:
                                          • requirement satisfiedCode-Coverage
                                          • requirement satisfiedCode-Review
                                          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: I43df61089e3c649157a124a464e411e93c201aec
                                          Gerrit-Change-Number: 6396833
                                          Gerrit-PatchSet: 61
                                          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                          Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                          Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                          Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                          Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                                          Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-CC: Keren Zhu <kere...@chromium.org>
                                          Gerrit-CC: gwsq
                                          Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                          Gerrit-Attention: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Comment-Date: Thu, 22 May 2025 21:05:00 +0000
                                          Gerrit-HasComments: No
                                          Gerrit-Has-Labels: Yes
                                          satisfied_requirement
                                          open
                                          diffy

                                          Devlin Cronin (Gerrit)

                                          unread,
                                          May 23, 2025, 1:38:38 PMMay 23
                                          to Yiming Zhou, Devlin Cronin, Rebekah Potter, Dana Fried, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                          Attention needed from Demetrios Papadopoulos, Keren Zhu and Yiming Zhou

                                          Devlin Cronin voted and added 1 comment

                                          Votes added by Devlin Cronin

                                          Code-Review+1

                                          1 comment

                                          Patchset-level comments
                                          Devlin Cronin . resolved

                                          extensions/common/api/_api_features.json s lgtm

                                          Devlin Cronin

                                          and still

                                          Devlin Cronin

                                          and still

                                          Devlin Cronin

                                          s lgtm

                                          Open in Gerrit

                                          Related details

                                          Attention is currently required from:
                                          • Demetrios Papadopoulos
                                          • Keren Zhu
                                          • Yiming Zhou
                                          Submit Requirements:
                                          • requirement satisfiedCode-Coverage
                                          • requirement satisfiedCode-Review
                                          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: I43df61089e3c649157a124a464e411e93c201aec
                                          Gerrit-Change-Number: 6396833
                                          Gerrit-PatchSet: 62
                                          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                          Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                          Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                          Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
                                          Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
                                          Gerrit-CC: Daniel Cheng <dch...@chromium.org>
                                          Gerrit-CC: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-CC: Keren Zhu <kere...@chromium.org>
                                          Gerrit-CC: gwsq
                                          Gerrit-Attention: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                          Gerrit-Comment-Date: Fri, 23 May 2025 17:38:26 +0000
                                          Gerrit-HasComments: Yes
                                          Gerrit-Has-Labels: Yes
                                          Comment-In-Reply-To: Devlin Cronin <rdevlin...@chromium.org>
                                          satisfied_requirement
                                          open
                                          diffy

                                          Yiming Zhou (Gerrit)

                                          unread,
                                          May 23, 2025, 1:43:03 PMMay 23
                                          to Devlin Cronin, Rebekah Potter, Dana Fried, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Chromium LUCI CQ, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org
                                          Attention needed from Demetrios Papadopoulos and Keren Zhu

                                          Yiming Zhou voted Commit-Queue+2

                                          Commit-Queue+2
                                          Open in Gerrit

                                          Related details

                                          Attention is currently required from:
                                          • Demetrios Papadopoulos
                                          • Keren Zhu
                                          Gerrit-Attention: Demetrios Papadopoulos <dpa...@chromium.org>
                                          Gerrit-Attention: Keren Zhu <kere...@chromium.org>
                                          Gerrit-Comment-Date: Fri, 23 May 2025 17:42:53 +0000
                                          Gerrit-HasComments: No
                                          Gerrit-Has-Labels: Yes
                                          satisfied_requirement
                                          open
                                          diffy

                                          Chromium LUCI CQ (Gerrit)

                                          unread,
                                          May 23, 2025, 1:46:44 PMMay 23
                                          to Yiming Zhou, Devlin Cronin, Rebekah Potter, Dana Fried, Demetrios Papadopoulos, Will Harris, Daniel Cheng, Chromium IPC Reviews, Kelvin Jiang, Keren Zhu, Code Review Nudger, Chromium Metrics Reviews, AyeAye, chromium...@chromium.org, cblume...@chromium.org, penghuan...@chromium.org, asvitkine...@chromium.org, devtools...@chromium.org, fuzzin...@chromium.org, chromium-a...@chromium.org, dfried...@chromium.org, estali...@chromium.org, extension...@chromium.org, mickeybu...@chromium.org

                                          Chromium LUCI CQ submitted the change

                                          Change information

                                          Commit message:
                                          [Extensions] WebUI page for rendering the Extensions Zero State Promo IPH.

                                          Screenshot: https://screenshot.googleplex.com/BifQ5bV5erYnizs
                                          Bug: 409573170
                                          Change-Id: I43df61089e3c649157a124a464e411e93c201aec
                                          Reviewed-by: Devlin Cronin <rdevlin...@chromium.org>
                                          Commit-Queue: Yiming Zhou <uwyi...@google.com>
                                          Reviewed-by: Rebekah Potter <rbpo...@chromium.org>
                                          Reviewed-by: Dana Fried <dfr...@chromium.org>
                                          Cr-Commit-Position: refs/heads/main@{#1464852}
                                          Files:
                                          • M chrome/app/extensions_strings.grdp
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_CHIPS_IPH_DESCRIPTION.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_AI_PRODUCTIVITY_COLLECTION_LABEL.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_DISMISS_BUTTON_TITLE.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_HEADER.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_PRODUCTIVITY_CATEGORY_LABEL.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_SHOPPING_CATEGORY_LABEL.png.sha1
                                          • A chrome/app/extensions_strings_grdp/IDS_EXTENSIONS_ZERO_STATE_IPH_WRITING_HELP_COLLECTION_LABEL.png.sha1
                                          • M chrome/browser/BUILD.gn
                                          • M chrome/browser/chrome_browser_interface_binders_webui.cc
                                          • M chrome/browser/resources/BUILD.gn
                                          • A chrome/browser/resources/extensions_zero_state_promo/BUILD.gn
                                          • A chrome/browser/resources/extensions_zero_state_promo/DIR_METADATA
                                          • A chrome/browser/resources/extensions_zero_state_promo/OWNERS
                                          • A chrome/browser/resources/extensions_zero_state_promo/icons.html
                                          • A chrome/browser/resources/extensions_zero_state_promo/zero_state_promo.html
                                          • A chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_app.css
                                          • A chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_app.html.ts
                                          • A chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_app.ts
                                          • A chrome/browser/resources/extensions_zero_state_promo/zero_state_promo_browser_proxy.ts
                                          • M chrome/browser/ui/BUILD.gn
                                          • M chrome/browser/ui/views/user_education/custom_webui_help_bubble_controller.h
                                          • M chrome/browser/ui/views/user_education/custom_webui_help_bubble_interactive_uitest.cc
                                          • M chrome/browser/ui/webui/chrome_web_ui_configs.cc
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/BUILD.gn
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/DIR_METADATA
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo.mojom
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.cc
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler.h
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_page_handler_unittest.cc
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.cc
                                          • A chrome/browser/ui/webui/extensions_zero_state_promo/zero_state_promo_ui.h
                                          • M chrome/browser_exposed_mojom_targets.gni
                                          • M chrome/chrome_paks.gni
                                          • M chrome/common/webui_url_constants.h
                                          • M chrome/test/data/webui/BUILD.gn
                                          • A chrome/test/data/webui/extensions_zero_state/BUILD.gn
                                          • A chrome/test/data/webui/extensions_zero_state/DIR_METADATA
                                          • A chrome/test/data/webui/extensions_zero_state/zero_state_promo_app_test.ts
                                          • A chrome/test/data/webui/extensions_zero_state/zero_state_promo_browsertest.cc
                                          • M extensions/common/api/_api_features.json
                                          • M third_party/lit/v3_0/BUILD.gn
                                          • M tools/gritsettings/resource_ids.spec
                                          • M tools/metrics/histograms/enums.xml
                                          • M tools/metrics/histograms/metadata/extensions/histograms.xml
                                          • M tools/metrics/histograms/metadata/ui/enums.xml
                                          Change size: XL
                                          Delta: 46 files changed, 1071 insertions(+), 7 deletions(-)
                                          Branch: refs/heads/main
                                          Submit Requirements:
                                          • requirement satisfiedCode-Review: +1 by Dana Fried, +1 by Devlin Cronin, +1 by Rebekah Potter
                                          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: I43df61089e3c649157a124a464e411e93c201aec
                                          Gerrit-Change-Number: 6396833
                                          Gerrit-PatchSet: 63
                                          Gerrit-Owner: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                                          Gerrit-Reviewer: Dana Fried <dfr...@chromium.org>
                                          Gerrit-Reviewer: Devlin Cronin <rdevlin...@chromium.org>
                                          Gerrit-Reviewer: Kelvin Jiang <kelvi...@chromium.org>
                                          Gerrit-Reviewer: Rebekah Potter <rbpo...@chromium.org>
                                          Gerrit-Reviewer: Will Harris <w...@chromium.org>
                                          Gerrit-Reviewer: Yiming Zhou <uwyi...@google.com>
                                          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                          open
                                          diffy
                                          satisfied_requirement
                                          Reply all
                                          Reply to author
                                          Forward
                                          0 new messages