[HiC] Store IsInCanvasSubtree rather than IsCanvasOrInCanvasSubtree [chromium/src : main]

0 views
Skip to first unread message

Stephen Chenney (Gerrit)

unread,
Jul 21, 2026, 6:54:00 PM (4 days ago) Jul 21
to Philip Rogers, Stefan Zager, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, srirama chandra sekhar, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org
Attention needed from Philip Rogers and Stefan Zager

Stephen Chenney added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Stephen Chenney . resolved

I believe this improves efficiency of the canvas and canvas subtree checks.

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • Stefan Zager
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • 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: I602a37379dbc40315b5812a744ceb12f2f2712ef
Gerrit-Change-Number: 8127024
Gerrit-PatchSet: 1
Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
Gerrit-Reviewer: Stefan Zager <sza...@chromium.org>
Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Philip Rogers <p...@chromium.org>
Gerrit-Attention: Stefan Zager <sza...@chromium.org>
Gerrit-Comment-Date: Tue, 21 Jul 2026 22:53:48 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Philip Rogers (Gerrit)

unread,
Jul 24, 2026, 3:59:59 PM (24 hours ago) Jul 24
to Stephen Chenney, Stefan Zager, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, srirama chandra sekhar, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org
Attention needed from Stefan Zager and Stephen Chenney

Philip Rogers added 6 comments

File third_party/blink/renderer/core/dom/element.h
Line 1142, Patchset 2 (Latest): // Like `IsCanvasOrInCanvasSubtree()`, but includes <canvas> elements.
Philip Rogers . unresolved

Typo: IsCanvasOrInCanvasSubtree -> IsInCanvasSubtree.

Line 1135, Patchset 2 (Latest): bool IsParentOrOwnerCanvasOrInCanvasSubtree() const;
Philip Rogers . unresolved

WDYT of renaming this "ComputeIsInCanvasSubtree"?

File third_party/blink/renderer/core/dom/element.cc
Line 4301, Patchset 2 (Latest): if (IsA<HTMLCanvasElement>(element)) {
Philip Rogers . unresolved

Can you move the `DCHECK(element.IsCanvasOrInCanvasSubtree() == value);` check from line 4307 to line 4301? Now that `IsCanvasOrInCanvasSubtree` returns true for HTMLCanvasElements, setting the value to true on line 4305 means that the DCHECK is always true. Moving the DCHECK up above this lets VerifySubtreeIsInCanvas verify the flag on canvas elements.

Line 4344, Patchset 2 (Latest): if (!value && IsA<HTMLCanvasElement>(*this)) {
Philip Rogers . unresolved
WDYT of:
```
if (value_changed && !value && IsA<HTMLCanvasElement>(*this)) {
// When a canvas element transitions from inside a canvas subtree to
// outside, reset value to true for child propagation.
value = true;
}
```
File third_party/blink/renderer/core/dom/node.cc
Line 3826, Patchset 2 (Latest): // in the FlatTreeTraversal::ParentElement call inside SetIsInCanvasSubtree.
Philip Rogers . unresolved

Should "SetIsInCanvasSubtree" be "IsParentOrOwnerCanvasOrInCanvasSubtree"?

File third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
Line 506, Patchset 2 (Latest): <div id=final></div>
Philip Rogers . unresolved

remove this?

Open in Gerrit

Related details

Attention is currently required from:
  • Stefan Zager
  • Stephen Chenney
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I602a37379dbc40315b5812a744ceb12f2f2712ef
    Gerrit-Change-Number: 8127024
    Gerrit-PatchSet: 2
    Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
    Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
    Gerrit-Reviewer: Stefan Zager <sza...@chromium.org>
    Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Stephen Chenney <sche...@chromium.org>
    Gerrit-Attention: Stefan Zager <sza...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Jul 2026 19:59:52 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Stephen Chenney (Gerrit)

    unread,
    Jul 24, 2026, 10:05:20 PM (18 hours ago) Jul 24
    to Philip Rogers, Stefan Zager, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, srirama chandra sekhar, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org
    Attention needed from Philip Rogers and Stefan Zager

    Stephen Chenney voted and added 6 comments

    Votes added by Stephen Chenney

    Commit-Queue+1

    6 comments

    Patchset-level comments
    File-level comment, Patchset 3 (Latest):
    Stephen Chenney . resolved

    Better now!

    File third_party/blink/renderer/core/dom/element.h
    Line 1142, Patchset 2: // Like `IsCanvasOrInCanvasSubtree()`, but includes <canvas> elements.
    Philip Rogers . resolved

    Typo: IsCanvasOrInCanvasSubtree -> IsInCanvasSubtree.

    Stephen Chenney

    Done

    Line 1135, Patchset 2: bool IsParentOrOwnerCanvasOrInCanvasSubtree() const;
    Philip Rogers . resolved

    WDYT of renaming this "ComputeIsInCanvasSubtree"?

    Stephen Chenney

    Actually what I had first, so I'[ll go back to that.

    File third_party/blink/renderer/core/dom/element.cc
    Line 4301, Patchset 2: if (IsA<HTMLCanvasElement>(element)) {
    Philip Rogers . resolved

    Can you move the `DCHECK(element.IsCanvasOrInCanvasSubtree() == value);` check from line 4307 to line 4301? Now that `IsCanvasOrInCanvasSubtree` returns true for HTMLCanvasElements, setting the value to true on line 4305 means that the DCHECK is always true. Moving the DCHECK up above this lets VerifySubtreeIsInCanvas verify the flag on canvas elements.

    Stephen Chenney

    Yes, good point, but slightly more complex. Done.

    Line 4344, Patchset 2: if (!value && IsA<HTMLCanvasElement>(*this)) {
    Philip Rogers . resolved
    WDYT of:
    ```
    if (value_changed && !value && IsA<HTMLCanvasElement>(*this)) {
    // When a canvas element transitions from inside a canvas subtree to
    // outside, reset value to true for child propagation.
    value = true;
    }
    ```
    Stephen Chenney

    Yes, in a better way with no need for value_changed.

    File third_party/blink/renderer/core/dom/node.cc
    Line 3826, Patchset 2: // in the FlatTreeTraversal::ParentElement call inside SetIsInCanvasSubtree.
    Philip Rogers . resolved

    Should "SetIsInCanvasSubtree" be "IsParentOrOwnerCanvasOrInCanvasSubtree"?

    Stephen Chenney

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Philip Rogers
    • Stefan Zager
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I602a37379dbc40315b5812a744ceb12f2f2712ef
    Gerrit-Change-Number: 8127024
    Gerrit-PatchSet: 3
    Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
    Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
    Gerrit-Reviewer: Stefan Zager <sza...@chromium.org>
    Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Philip Rogers <p...@chromium.org>
    Gerrit-Attention: Stefan Zager <sza...@chromium.org>
    Gerrit-Comment-Date: Sat, 25 Jul 2026 02:05:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Philip Rogers <p...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Stephen Chenney (Gerrit)

    unread,
    9:20 AM (6 hours ago) 9:20 AM
    to Philip Rogers, Stefan Zager, Chromium LUCI CQ, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, srirama chandra sekhar, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org
    Attention needed from Philip Rogers and Stefan Zager

    Stephen Chenney voted and added 1 comment

    Votes added by Stephen Chenney

    Auto-Submit+1
    Commit-Queue+1

    1 comment

    File third_party/blink/renderer/core/html/canvas/html_canvas_element_test.cc
    Line 506, Patchset 2: <div id=final></div>
    Philip Rogers . resolved

    remove this?

    Stephen Chenney

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Philip Rogers
    • Stefan Zager
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • 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: I602a37379dbc40315b5812a744ceb12f2f2712ef
      Gerrit-Change-Number: 8127024
      Gerrit-PatchSet: 3
      Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
      Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
      Gerrit-Reviewer: Stefan Zager <sza...@chromium.org>
      Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
      Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
      Gerrit-Attention: Philip Rogers <p...@chromium.org>
      Gerrit-Attention: Stefan Zager <sza...@chromium.org>
      Gerrit-Comment-Date: Sat, 25 Jul 2026 13:20:17 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy
      Reply all
      Reply to author
      Forward
      0 new messages