Pass heap snapshot source locations through blink::WebNode (and subclasses), autofill::FormRef, and autofill::FieldRef. [chromium/src : main]

0 views
Skip to first unread message

David Baron (Gerrit)

unread,
Dec 8, 2025, 3:39:14 PMDec 8
to David Baron, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
Attention needed from Daniel Cheng

David Baron added 1 comment

Patchset-level comments
File-level comment, Patchset 3 (Latest):
David Baron . unresolved

I'm curious whether you think these changes are reasonable. They help with debugging of memory leaks that go through `WebNode` (which creates a `Persistent<>`).

Some of the choices here about dependencies versus maintainability (non-duplication) versus readability weren't completely obvious to me, and I think the current set of choices in the CL is actually somewhat inconsistent but still possibly reasonable. In particular, I chose to avoid duplicating the definition of the `VERBOSE_PERSISTENT` buildflag itself and instead moving the single definition to blink/public, but then chose to duplicate the code that uses that flag as `BLINK_WEB_NODE_LOCATION_FROM_HERE` (which is basically the same as the existing `PERSISTENT_LOCATION_FROM_HERE`).

It's also not clear to me if I'm breaking any dependency rules here.

(I'll add an additional reviewer for the `autocomplete` side if you're ok with them.)

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
Gerrit-Change-Number: 7224596
Gerrit-PatchSet: 3
Gerrit-Owner: David Baron <dba...@chromium.org>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: David Baron <dba...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
Gerrit-Comment-Date: Mon, 08 Dec 2025 20:39:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Daniel Cheng (Gerrit)

unread,
Dec 9, 2025, 1:15:55 AMDec 9
to David Baron, Dominic Farolino, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
Attention needed from David Baron and Dominic Farolino

Daniel Cheng added 1 comment

Patchset-level comments
Daniel Cheng . resolved

+dom@ to help with the public API review

(Sorry for not getting to this earlier; Mondays I'm usually not in until later)

Open in Gerrit

Related details

Attention is currently required from:
  • David Baron
  • Dominic Farolino
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
Gerrit-Change-Number: 7224596
Gerrit-PatchSet: 3
Gerrit-Owner: David Baron <dba...@chromium.org>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: David Baron <dba...@chromium.org>
Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
Gerrit-Attention: Dominic Farolino <d...@chromium.org>
Gerrit-Attention: David Baron <dba...@chromium.org>
Gerrit-Comment-Date: Tue, 09 Dec 2025 06:15:44 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Michael Lippautz (Gerrit)

unread,
Dec 9, 2025, 3:15:25 AMDec 9
to David Baron, Dominic Farolino, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
Attention needed from David Baron and Dominic Farolino

Michael Lippautz added 1 comment

Patchset-level comments
Michael Lippautz . resolved

fwiw, I have created this kind of patch locally a few times (over the course of a years). I've held back of upstreaming because I thought it's only useful for myself but clearly I was wrong there.

Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
Gerrit-Attention: Dominic Farolino <d...@chromium.org>
Gerrit-Attention: David Baron <dba...@chromium.org>
Gerrit-Comment-Date: Tue, 09 Dec 2025 08:15:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Dominic Farolino (Gerrit)

unread,
Dec 9, 2025, 11:32:31 AMDec 9
to David Baron, Michael Lippautz, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
Attention needed from David Baron

Dominic Farolino voted and added 1 comment

Votes added by Dominic Farolino

Code-Review+1

1 comment

Patchset-level comments
Dominic Farolino . resolved

blink public lgtm, but I have to admit if it were broken in some super subtle way, I'm not sure I'd catch it, as the cppgc integration is a little out of my wheelhouse. but it looks right. off to dcheng@

Open in Gerrit

Related details

Attention is currently required from:
  • David Baron
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 3
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Comment-Date: Tue, 09 Dec 2025 16:32:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 9, 2025, 12:35:31 PMDec 9
    to David Baron, Dominic Farolino, Michael Lippautz, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron

    Daniel Cheng added 1 comment

    Patchset-level comments
    Daniel Cheng . unresolved

    1. I don't feel strongly against this, but can we add some comments/documentation somewhere about when it makes sense to use the `FROM_HERE` macro?
    2. Why does autofill need these? It feels a bit weird for this to bubble up outside the Blink public API, since I would have expected this sort of thing to be mostly internal to `WebNode` itself.

    Gerrit-Comment-Date: Tue, 09 Dec 2025 17:35:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Baron (Gerrit)

    unread,
    Dec 9, 2025, 1:21:55 PMDec 9
    to David Baron, Dominic Farolino, Michael Lippautz, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from Daniel Cheng

    David Baron added 1 comment

    Patchset-level comments
    Daniel Cheng . unresolved

    1. I don't feel strongly against this, but can we add some comments/documentation somewhere about when it makes sense to use the `FROM_HERE` macro?
    2. Why does autofill need these? It feels a bit weird for this to bubble up outside the Blink public API, since I would have expected this sort of thing to be mostly internal to `WebNode` itself.

    David Baron

    1. I've extended the comment above the `BLINK_WEB_NODE_FROM_HERE` macro in a way that hopefully answers your questions.

    2. My comment for (1) answers the question of why I did it -- but it's certainly not the only choice.  Other options include (probably in order of my personal preference, best to worst):
    * moving to just one version of this rather than two (getting rid of `PERSISTENT_LOCATION_FROM_HERE` that this duplicates) and making it a little more clearly public
    * not bothering optimizing the code size for autofill
    * having a third version for autofill
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Daniel Cheng
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Comment-Date: Tue, 09 Dec 2025 18:21:37 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 9, 2025, 7:51:13 PMDec 9
    to David Baron, Dominic Farolino, Michael Lippautz, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron

    Daniel Cheng added 1 comment

    File third_party/blink/public/web/web_node.h
    Line 57, Patchset 4 (Latest):// WebNode and of any classes that derive from it or use it that want to
    Daniel Cheng . unresolved

    Presumably this is referring to `WebNode` and `WebNode`-derived classes, but i found this a little hard to parse.

    To better help me understand... why do classes that use `WebNode` also need to use this? Why wouldn't the location supplied by embedding a `blink::WebFormElement` as a field already point to the right thing?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Baron
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Comment-Date: Wed, 10 Dec 2025 00:50:58 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Baron (Gerrit)

    unread,
    Dec 10, 2025, 9:54:14 AMDec 10
    to David Baron, Dominic Farolino, Michael Lippautz, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from Daniel Cheng

    David Baron added 1 comment

    File third_party/blink/public/web/web_node.h
    Line 57, Patchset 4 (Latest):// WebNode and of any classes that derive from it or use it that want to
    Daniel Cheng . unresolved

    Presumably this is referring to `WebNode` and `WebNode`-derived classes, but i found this a little hard to parse.

    To better help me understand... why do classes that use `WebNode` also need to use this? Why wouldn't the location supplied by embedding a `blink::WebFormElement` as a field already point to the right thing?

    David Baron

    So if I make the `web_node.h` changes an no others, then the heap dump for the bug I was investigating will say that there is a "C++ persistent root" associated with the source code location of `WebElement::WebElement`, since it's the `WebElement` constructor that calls the `WebNode` constructor. To fix that, I make the `WebElement` constructor pass through the location of *its* caller. At that point, the heap dump will say that the persistent root comes from the `WebFormElement` constructor, so I need to make *that* code pass through the location of *its* caller. etc.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Daniel Cheng
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Comment-Date: Wed, 10 Dec 2025 14:54:07 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Lippautz (Gerrit)

    unread,
    Dec 10, 2025, 10:08:47 AMDec 10
    to David Baron, Dominic Farolino, Daniel Cheng, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from Daniel Cheng and David Baron

    Michael Lippautz added 1 comment

    File third_party/blink/public/web/web_node.h
    Line 57, Patchset 4 (Latest):// WebNode and of any classes that derive from it or use it that want to
    Daniel Cheng . unresolved

    Presumably this is referring to `WebNode` and `WebNode`-derived classes, but i found this a little hard to parse.

    To better help me understand... why do classes that use `WebNode` also need to use this? Why wouldn't the location supplied by embedding a `blink::WebFormElement` as a field already point to the right thing?

    David Baron

    So if I make the `web_node.h` changes an no others, then the heap dump for the bug I was investigating will say that there is a "C++ persistent root" associated with the source code location of `WebElement::WebElement`, since it's the `WebElement` constructor that calls the `WebNode` constructor. To fix that, I make the `WebElement` constructor pass through the location of *its* caller. At that point, the heap dump will say that the persistent root comes from the `WebFormElement` constructor, so I need to make *that* code pass through the location of *its* caller. etc.

    Michael Lippautz

    Down the line all this depends on `__builtin_source_location` which has the idea that it's used as default argument for methods to capture the _caller_ source location. So you need to wire it from the top or otherwise you just see the WebNode ctor (file and line numbers).

    Bit annoying but the best we have so far.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Daniel Cheng
    • David Baron
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Comment-Date: Wed, 10 Dec 2025 15:08:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: David Baron <dba...@chromium.org>
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 11, 2025, 3:23:04 AMDec 11
    to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron and Michael Lippautz

    Daniel Cheng voted and added 2 comments

    Votes added by Daniel Cheng

    Code-Review+1

    2 comments

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

    LGTM

    File third_party/blink/public/web/web_node.h
    Line 57, Patchset 4 (Latest):// WebNode and of any classes that derive from it or use it that want to
    Daniel Cheng . resolved

    Presumably this is referring to `WebNode` and `WebNode`-derived classes, but i found this a little hard to parse.

    To better help me understand... why do classes that use `WebNode` also need to use this? Why wouldn't the location supplied by embedding a `blink::WebFormElement` as a field already point to the right thing?

    David Baron

    So if I make the `web_node.h` changes an no others, then the heap dump for the bug I was investigating will say that there is a "C++ persistent root" associated with the source code location of `WebElement::WebElement`, since it's the `WebElement` constructor that calls the `WebNode` constructor. To fix that, I make the `WebElement` constructor pass through the location of *its* caller. At that point, the heap dump will say that the persistent root comes from the `WebFormElement` constructor, so I need to make *that* code pass through the location of *its* caller. etc.

    Michael Lippautz

    Down the line all this depends on `__builtin_source_location` which has the idea that it's used as default argument for methods to capture the _caller_ source location. So you need to wire it from the top or otherwise you just see the WebNode ctor (file and line numbers).

    Bit annoying but the best we have so far.

    Daniel Cheng

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Baron
    • Michael Lippautz
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Comment-Date: Thu, 11 Dec 2025 08:22:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Michael Lippautz <mlip...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 11, 2025, 3:23:17 AMDec 11
    to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron and Michael Lippautz

    Daniel Cheng voted and added 1 comment

    Votes added by Daniel Cheng

    Owners-Override+1

    1 comment

    Patchset-level comments
    Daniel Cheng . resolved

    (I think it's OK to use OO here)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Baron
    • Michael Lippautz
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
    Gerrit-Change-Number: 7224596
    Gerrit-PatchSet: 4
    Gerrit-Owner: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Comment-Date: Thu, 11 Dec 2025 08:23:08 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 11, 2025, 3:23:32 AMDec 11
    to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron and Michael Lippautz

    Daniel Cheng added 1 comment

    Patchset-level comments
    File-level comment, Patchset 3:
    Daniel Cheng . resolved

    1. I don't feel strongly against this, but can we add some comments/documentation somewhere about when it makes sense to use the `FROM_HERE` macro?
    2. Why does autofill need these? It feels a bit weird for this to bubble up outside the Blink public API, since I would have expected this sort of thing to be mostly internal to `WebNode` itself.

    David Baron

    1. I've extended the comment above the `BLINK_WEB_NODE_FROM_HERE` macro in a way that hopefully answers your questions.

    2. My comment for (1) answers the question of why I did it -- but it's certainly not the only choice.  Other options include (probably in order of my personal preference, best to worst):
    * moving to just one version of this rather than two (getting rid of `PERSISTENT_LOCATION_FROM_HERE` that this duplicates) and making it a little more clearly public
    * not bothering optimizing the code size for autofill
    * having a third version for autofill
    Daniel Cheng

    Acknowledged

    Gerrit-Comment-Date: Thu, 11 Dec 2025 08:23:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    Dec 11, 2025, 3:38:13 AMDec 11
    to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
    Attention needed from David Baron and Michael Lippautz

    Daniel Cheng added 1 comment

    Patchset-level comments
    File-level comment, Patchset 3:
    David Baron . resolved

    I'm curious whether you think these changes are reasonable. They help with debugging of memory leaks that go through `WebNode` (which creates a `Persistent<>`).

    Some of the choices here about dependencies versus maintainability (non-duplication) versus readability weren't completely obvious to me, and I think the current set of choices in the CL is actually somewhat inconsistent but still possibly reasonable. In particular, I chose to avoid duplicating the definition of the `VERBOSE_PERSISTENT` buildflag itself and instead moving the single definition to blink/public, but then chose to duplicate the code that uses that flag as `BLINK_WEB_NODE_LOCATION_FROM_HERE` (which is basically the same as the existing `PERSISTENT_LOCATION_FROM_HERE`).

    It's also not clear to me if I'm breaking any dependency rules here.

    (I'll add an additional reviewer for the `autocomplete` side if you're ok with them.)

    Daniel Cheng

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Baron
    • Michael Lippautz
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Gerrit-Change-Number: 7224596
      Gerrit-PatchSet: 4
      Gerrit-Owner: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: David Baron <dba...@chromium.org>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 08:38:02 +0000
      satisfied_requirement
      open
      diffy

      David Baron (Gerrit)

      unread,
      Dec 11, 2025, 9:07:57 AMDec 11
      to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
      Attention needed from Christoph Schwering and Michael Lippautz

      David Baron added 1 comment

      Patchset-level comments
      File-level comment, Patchset 4 (Latest):
      David Baron . resolved

      I wanted to make sure an autofill owner (schwering) is ok with the autofill changes as well.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Christoph Schwering
      • Michael Lippautz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Gerrit-Change-Number: 7224596
      Gerrit-PatchSet: 4
      Gerrit-Owner: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Christoph Schwering <schw...@google.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Christoph Schwering <schw...@google.com>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 14:07:48 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      open
      diffy

      Christoph Schwering (Gerrit)

      unread,
      Dec 11, 2025, 12:37:55 PMDec 11
      to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
      Attention needed from David Baron and Michael Lippautz

      Christoph Schwering voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • David Baron
      • Michael Lippautz
      Gerrit-Attention: David Baron <dba...@chromium.org>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 17:37:36 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      David Baron (Gerrit)

      unread,
      Dec 11, 2025, 1:26:39 PMDec 11
      to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
      Attention needed from Michael Lippautz

      David Baron voted Commit-Queue+2

      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Michael Lippautz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Gerrit-Change-Number: 7224596
      Gerrit-PatchSet: 5
      Gerrit-Owner: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Christoph Schwering <schw...@google.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 18:26:30 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      David Baron (Gerrit)

      unread,
      Dec 11, 2025, 2:13:14 PMDec 11
      to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Chromium LUCI CQ, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org
      Attention needed from Michael Lippautz

      David Baron voted Commit-Queue+2

      Commit-Queue+2
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Michael Lippautz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Gerrit-Change-Number: 7224596
      Gerrit-PatchSet: 6
      Gerrit-Owner: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Christoph Schwering <schw...@google.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Attention: Michael Lippautz <mlip...@chromium.org>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 19:13:07 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      Dec 11, 2025, 3:29:10 PMDec 11
      to David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org

      Chromium LUCI CQ submitted the change

      Unreviewed changes

      4 is the latest approved patch-set.
      No files were changed between the latest approved patch-set and the submitted one.

      Change information

      Commit message:
      Pass heap snapshot source locations through blink::WebNode (and subclasses), autofill::FormRef, and autofill::FieldRef.
      Bug: 342247579
      Change-Id: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Reviewed-by: Daniel Cheng <dch...@chromium.org>
      Reviewed-by: Christoph Schwering <schw...@google.com>
      Commit-Queue: David Baron <dba...@chromium.org>
      Reviewed-by: Dominic Farolino <d...@chromium.org>
      Owners-Override: Daniel Cheng <dch...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#1557625}
      Files:
      • M components/autofill/content/renderer/autofill_agent.cc
      • M components/autofill/content/renderer/form_tracker.cc
      • M components/autofill/content/renderer/form_tracker.h
      • M third_party/blink/public/BUILD.gn
      • M third_party/blink/public/web/web_document.h
      • M third_party/blink/public/web/web_element.h
      • M third_party/blink/public/web/web_form_control_element.h
      • M third_party/blink/public/web/web_form_element.h
      • M third_party/blink/public/web/web_input_element.h
      • M third_party/blink/public/web/web_label_element.h
      • M third_party/blink/public/web/web_meta_element.h
      • M third_party/blink/public/web/web_node.h
      • M third_party/blink/public/web/web_option_element.h
      • M third_party/blink/public/web/web_select_element.h
      • M third_party/blink/renderer/core/exported/web_node.cc
      • M third_party/blink/renderer/platform/heap/BUILD.gn
      • M third_party/blink/renderer/platform/heap/cross_thread_handle_internal.h
      • M third_party/blink/renderer/platform/heap/persistent.h
      • M third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
      Change size: M
      Delta: 19 files changed, 69 insertions(+), 21 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Daniel Cheng, +1 by Dominic Farolino, +1 by Christoph Schwering
      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: Ieb2a490455048063184fb0c79a539093b5d26b2b
      Gerrit-Change-Number: 7224596
      Gerrit-PatchSet: 7
      Gerrit-Owner: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Christoph Schwering <schw...@google.com>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      open
      diffy
      satisfied_requirement

      Victor Tan (Gerrit)

      unread,
      Dec 11, 2025, 4:45:42 PMDec 11
      to Chromium LUCI CQ, David Baron, Daniel Cheng, Dominic Farolino, Michael Lippautz, Kentaro Hara, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, kouhe...@chromium.org, oilpan-rev...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, browser-comp...@chromium.org

      Victor Tan has created a revert of this change

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: revert
      satisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages