[HiC] Fix issues with shadow dom canvas children [chromium/src : main]

0 views
Skip to first unread message

Stephen Chenney (Gerrit)

unread,
Jun 8, 2026, 10:05:23 AMJun 8
to Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Rune Lillesveen

Stephen Chenney added 5 comments

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

There are a couple of cases where we removed code that changes things when the tree status changes (video state and autofill suggestions). I'll need to add tests for those cases or otherwise make sure it's right. But I have a question about how to detect the situation. See other comments.

Commit Message
Line 9, Patchset 4:Recursively mark shadow dom contetn as a canvas child
Rune Lillesveen . resolved

content

Stephen Chenney

Done

Line 10, Patchset 4:when it it's slotting status changes (flat tree parent
Rune Lillesveen . resolved

its

Stephen Chenney

Done

File third_party/blink/renderer/core/dom/element.cc
Line 4398, Patchset 4:void Element::SetIsCanvasOrInCanvasSubtreeRecursively(bool value) {
Rune Lillesveen . unresolved

Remind me again why we cannot rely on an inherited ComputedStyle flag. Do we need to know this information for non-rendered elements, or before we do a style recalc?

Stephen Chenney

We can and the latest CL does that. Sorry for wasting your time on this version, though the tests remain. One question arises from the need to respond to changes in canvas subtree status: Does StyleDidChange get called if a flag gets set on the style even though no property changes?

Line 10405, Patchset 4: if (IsPseudoElement()) {
Rune Lillesveen . resolved

This block is probably doing the same thing as Node::FlatTreeParentForChildDirty(). Might want to consolidate into some Node::FlatTreeParentWithoutRecalc() if they are actually the same.

Stephen Chenney

Acknowledged

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • Rune Lillesveen
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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
Gerrit-Change-Number: 7899615
Gerrit-PatchSet: 6
Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Philip Rogers <p...@chromium.org>
Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
Gerrit-Comment-Date: Mon, 08 Jun 2026 14:05:10 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Rune Lillesveen <fut...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Stephen Chenney (Gerrit)

unread,
Jun 8, 2026, 10:11:31 AMJun 8
to Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Rune Lillesveen

Stephen Chenney added 4 comments

File third_party/blink/renderer/core/html/forms/html_input_element.cc
Line 1335, Patchset 6 (Parent):void HTMLInputElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . unresolved

I'm worried about still needing this code path, though the test still passes. I'll verify more carefully.

File third_party/blink/renderer/core/html/forms/html_select_element.cc
Line 865, Patchset 6 (Parent):void HTMLSelectElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . unresolved

Ditto.

File third_party/blink/renderer/core/html/forms/html_text_area_element.cc
Line 694, Patchset 6 (Parent):void HTMLTextAreaElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . unresolved

ditto

File third_party/blink/renderer/core/html/media/html_video_element.cc
Line 745, Patchset 6 (Parent):void HTMLVideoElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . unresolved

I need to verify whether we have testing that covers this code path because it has disappeared.

Gerrit-Comment-Date: Mon, 08 Jun 2026 14:11:16 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Rune Lillesveen (Gerrit)

unread,
Jun 8, 2026, 2:56:11 PMJun 8
to Stephen Chenney, Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Stephen Chenney

Rune Lillesveen added 3 comments

File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
Line 1126, Patchset 7 (Latest): builder.SetIsInCanvasSubtree(true);
Rune Lillesveen . unresolved

This does a FlatTreeTraversal::ParentElement() for all elements resolving style.

Wondering if it would make sense to instead have two bits, one non-inherited for canvas elements which are true for layoutSubtree(), and one inherited which the element is in a canvas+layoutSubtree() subtree. Then, setting the bits only happen for the StyleAdjuster for the canvas+layoutSubtree() elements. Checking for stacking context could check the parent_style's flag for layoutSubtree() if its own flag for in-canvas-subtree is true.

Not sure if layoutSubtree() inside layoutSubtree() is possible, but something like this:

```
[subtree-root] [canvas-subtree]
div 0 0
canvas[layoutSubtree] 1 1
div 0 1
canvas 0 1
div 0 1
canvas[layoutSubtree] 1? 1
```
File third_party/blink/renderer/core/dom/element.cc
Line 4398, Patchset 4:void Element::SetIsCanvasOrInCanvasSubtreeRecursively(bool value) {
Rune Lillesveen . unresolved

Remind me again why we cannot rely on an inherited ComputedStyle flag. Do we need to know this information for non-rendered elements, or before we do a style recalc?

Stephen Chenney

We can and the latest CL does that. Sorry for wasting your time on this version, though the tests remain. One question arises from the need to respond to changes in canvas subtree status: Does StyleDidChange get called if a flag gets set on the style even though no property changes?

Rune Lillesveen

Should be, as long as custom_compare is not set to true.

File third_party/blink/renderer/core/html/forms/html_input_element.cc
Line 1335, Patchset 6 (Parent):void HTMLInputElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . unresolved

I'm worried about still needing this code path, though the test still passes. I'll verify more carefully.

Rune Lillesveen

I would think so. Slotting an autofilled input into a canvas subtree needs to change the rendering, I'd assume. I'm unsure that works well with this code as-is. Doing DOM changes from style recalc can typically be problematic. It could be that the rendering should behave as if the suggested value was the empty string, rather than actually setting it. But I'd need to look deeper to understand what's necessary.

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • 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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
Gerrit-Change-Number: 7899615
Gerrit-PatchSet: 7
Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Philip Rogers <p...@chromium.org>
Gerrit-Comment-Date: Mon, 08 Jun 2026 18:55:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Stephen Chenney <sche...@chromium.org>
Comment-In-Reply-To: Rune Lillesveen <fut...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Stephen Chenney (Gerrit)

unread,
Jun 10, 2026, 1:47:19 PMJun 10
to Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Rune Lillesveen

Stephen Chenney added 4 comments

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

Still working to make sure the autofill suggestions get cleared. And I'll get rid of the flat tree traversal for all elements.

File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
Line 1126, Patchset 7 (Latest): builder.SetIsInCanvasSubtree(true);
Rune Lillesveen . unresolved

This does a FlatTreeTraversal::ParentElement() for all elements resolving style.

Wondering if it would make sense to instead have two bits, one non-inherited for canvas elements which are true for layoutSubtree(), and one inherited which the element is in a canvas+layoutSubtree() subtree. Then, setting the bits only happen for the StyleAdjuster for the canvas+layoutSubtree() elements. Checking for stacking context could check the parent_style's flag for layoutSubtree() if its own flag for in-canvas-subtree is true.

Not sure if layoutSubtree() inside layoutSubtree() is possible, but something like this:

```
[subtree-root] [canvas-subtree]
div 0 0
canvas[layoutSubtree] 1 1
div 0 1
canvas 0 1
div 0 1
canvas[layoutSubtree] 1? 1
```
Stephen Chenney

I think we can just check here for `IsA<HTMLCanvasElement>(element)` and `SetIsInCanvasSubtree(true)` and rely on inheritance to mark the subtree. And then in Element::IsInCanvasSubtree we explicitly check for the element being a canvas and return false. It sort of inverts the current IsInCanvasOrCanvasSubtree/IsInCanvasSubtree code. I'll verify that works.

File third_party/blink/renderer/core/dom/element.cc
Line 4398, Patchset 4:void Element::SetIsCanvasOrInCanvasSubtreeRecursively(bool value) {
Rune Lillesveen . resolved

Remind me again why we cannot rely on an inherited ComputedStyle flag. Do we need to know this information for non-rendered elements, or before we do a style recalc?

Stephen Chenney

We can and the latest CL does that. Sorry for wasting your time on this version, though the tests remain. One question arises from the need to respond to changes in canvas subtree status: Does StyleDidChange get called if a flag gets set on the style even though no property changes?

Rune Lillesveen

Should be, as long as custom_compare is not set to true.

Stephen Chenney

Thanks. It turns out I can use the InsertedInto logic to fix the issue with video.

File third_party/blink/renderer/core/html/media/html_video_element.cc
Line 745, Patchset 6 (Parent):void HTMLVideoElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . resolved

I need to verify whether we have testing that covers this code path because it has disappeared.

Stephen Chenney

This was a bug. I have managed to create a test and fixed the issue.

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • Rune Lillesveen
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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
Gerrit-Change-Number: 7899615
Gerrit-PatchSet: 7
Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Philip Rogers <p...@chromium.org>
Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Jun 2026 17:47:09 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Rune Lillesveen (Gerrit)

unread,
Jun 10, 2026, 4:43:59 PMJun 10
to Stephen Chenney, Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Stephen Chenney

Rune Lillesveen added 1 comment

File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
Line 1126, Patchset 7 (Latest): builder.SetIsInCanvasSubtree(true);
Rune Lillesveen . unresolved

This does a FlatTreeTraversal::ParentElement() for all elements resolving style.

Wondering if it would make sense to instead have two bits, one non-inherited for canvas elements which are true for layoutSubtree(), and one inherited which the element is in a canvas+layoutSubtree() subtree. Then, setting the bits only happen for the StyleAdjuster for the canvas+layoutSubtree() elements. Checking for stacking context could check the parent_style's flag for layoutSubtree() if its own flag for in-canvas-subtree is true.

Not sure if layoutSubtree() inside layoutSubtree() is possible, but something like this:

```
[subtree-root] [canvas-subtree]
div 0 0
canvas[layoutSubtree] 1 1
div 0 1
canvas 0 1
div 0 1
canvas[layoutSubtree] 1? 1
```
Stephen Chenney

I think we can just check here for `IsA<HTMLCanvasElement>(element)` and `SetIsInCanvasSubtree(true)` and rely on inheritance to mark the subtree. And then in Element::IsInCanvasSubtree we explicitly check for the element being a canvas and return false. It sort of inverts the current IsInCanvasOrCanvasSubtree/IsInCanvasSubtree code. I'll verify that works.

Rune Lillesveen

Don't you need to treat a <canvas> element in the <canvas> subtree differently from the root <canvas>?

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • 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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
Gerrit-Change-Number: 7899615
Gerrit-PatchSet: 7
Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
Gerrit-Attention: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Philip Rogers <p...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Jun 2026 20:43:41 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Stephen Chenney (Gerrit)

unread,
Jun 12, 2026, 10:09:05 AMJun 12
to Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Philip Rogers and Rune Lillesveen

Stephen Chenney added 5 comments

Patchset-level comments
Stephen Chenney . resolved

I meant to send this last night, but didn't. Anyways ...

Trying to use the style system has been an exercise in frustration. It seems we still need the equivalent of "DidChangeCanvasSubtree" for autofill suppression (currently recreating it in InsertedInto) and it looks like the iframe examples still need the recursive marking thing of some kind. But even then due to the timing of calls seems to cause problems particularly for moveBefore. At this point I think it's better to revert back to using the flags on element, particularly since this is an element concept rather than CSS. Maybe file a bug to revisit it later if we really want to use style.

File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
Line 1126, Patchset 7 (Latest): builder.SetIsInCanvasSubtree(true);
Rune Lillesveen . resolved

This does a FlatTreeTraversal::ParentElement() for all elements resolving style.

Wondering if it would make sense to instead have two bits, one non-inherited for canvas elements which are true for layoutSubtree(), and one inherited which the element is in a canvas+layoutSubtree() subtree. Then, setting the bits only happen for the StyleAdjuster for the canvas+layoutSubtree() elements. Checking for stacking context could check the parent_style's flag for layoutSubtree() if its own flag for in-canvas-subtree is true.

Not sure if layoutSubtree() inside layoutSubtree() is possible, but something like this:

```
[subtree-root] [canvas-subtree]
div 0 0
canvas[layoutSubtree] 1 1
div 0 1
canvas 0 1
div 0 1
canvas[layoutSubtree] 1? 1
```
Stephen Chenney

I think we can just check here for `IsA<HTMLCanvasElement>(element)` and `SetIsInCanvasSubtree(true)` and rely on inheritance to mark the subtree. And then in Element::IsInCanvasSubtree we explicitly check for the element being a canvas and return false. It sort of inverts the current IsInCanvasOrCanvasSubtree/IsInCanvasSubtree code. I'll verify that works.

Rune Lillesveen

Don't you need to treat a <canvas> element in the <canvas> subtree differently from the root <canvas>?

Stephen Chenney

We do not support nested canvas at this time, so no need for distinct treatment, and we have tests.

File third_party/blink/renderer/core/html/forms/html_input_element.cc
Line 1335, Patchset 6 (Parent):void HTMLInputElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . resolved

I'm worried about still needing this code path, though the test still passes. I'll verify more carefully.

Rune Lillesveen

I would think so. Slotting an autofilled input into a canvas subtree needs to change the rendering, I'd assume. I'm unsure that works well with this code as-is. Doing DOM changes from style recalc can typically be problematic. It could be that the rendering should behave as if the suggested value was the empty string, rather than actually setting it. But I'd need to look deeper to understand what's necessary.

Stephen Chenney

I looked at this and I am very uncomfortable about returning an empty value when queried rather than setting the suggested value to null/empty. The problem is that not all code uses the getter method to access the suggested value. It's certainly harder to do it when set, however, so we may have no choice.

I also discovered the problem with using style changes to trigger setting the value. Lesson learned.

File third_party/blink/renderer/core/html/forms/html_select_element.cc
Line 865, Patchset 6 (Parent):void HTMLSelectElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . resolved

Ditto.

Stephen Chenney

Done

File third_party/blink/renderer/core/html/forms/html_text_area_element.cc
Line 694, Patchset 6 (Parent):void HTMLTextAreaElement::DidChangeIsCanvasOrInCanvasSubtree() {
Stephen Chenney . resolved

ditto

Stephen Chenney

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Rogers
  • Rune Lillesveen
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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
    Gerrit-Change-Number: 7899615
    Gerrit-PatchSet: 7
    Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
    Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
    Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
    Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
    Gerrit-Attention: Philip Rogers <p...@chromium.org>
    Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
    Gerrit-Comment-Date: Fri, 12 Jun 2026 14:08:52 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rune Lillesveen (Gerrit)

    unread,
    Jun 12, 2026, 10:26:15 AMJun 12
    to Stephen Chenney, Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
    Attention needed from Philip Rogers and Stephen Chenney

    Rune Lillesveen added 2 comments

    Patchset-level comments
    Rune Lillesveen . resolved

    The style flag approach lgtm from my side, but win-rel reports about a flaky test, and pdr@ should review.

    File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
    Line 1125, Patchset 7 (Latest): if (IsA<HTMLCanvasElement>(FlatTreeTraversal::ParentElement(*element))) {
    Rune Lillesveen . unresolved

    state.ParentElement() should be cheaper

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Philip Rogers
    • 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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
      Gerrit-Change-Number: 7899615
      Gerrit-PatchSet: 7
      Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
      Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
      Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
      Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
      Gerrit-Attention: Stephen Chenney <sche...@chromium.org>
      Gerrit-Attention: Philip Rogers <p...@chromium.org>
      Gerrit-Comment-Date: Fri, 12 Jun 2026 14:25:58 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Stephen Chenney (Gerrit)

      unread,
      Jul 2, 2026, 3:27:45 PM (3 days ago) Jul 2
      to Stefan Zager, Menard, Alexis, srirama chandra sekhar, android-bu...@system.gserviceaccount.com, Rune Lillesveen, Philip Rogers, Chromium LUCI CQ, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, eric.c...@apple.com, feature-me...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Philip Rogers, Rune Lillesveen and Stefan Zager

      Stephen Chenney added 2 comments

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

      Finally have something that works consistently.

      File third_party/blink/renderer/core/css/resolver/style_adjuster.cc
      Line 1125, Patchset 7: if (IsA<HTMLCanvasElement>(FlatTreeTraversal::ParentElement(*element))) {
      Rune Lillesveen . resolved

      state.ParentElement() should be cheaper

      Stephen Chenney

      Acknowledged

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Philip Rogers
      • Rune Lillesveen
      • 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: I261f0c55c3e7204ff919f3e64a9655c6f93e47e4
        Gerrit-Change-Number: 7899615
        Gerrit-PatchSet: 15
        Gerrit-Owner: Stephen Chenney <sche...@chromium.org>
        Gerrit-Reviewer: Philip Rogers <p...@chromium.org>
        Gerrit-Reviewer: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Reviewer: Stefan Zager <sza...@chromium.org>
        Gerrit-Reviewer: Stephen Chenney <sche...@chromium.org>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-CC: srirama chandra sekhar <srir...@samsung.com>
        Gerrit-Attention: Stefan Zager <sza...@chromium.org>
        Gerrit-Attention: Philip Rogers <p...@chromium.org>
        Gerrit-Attention: Rune Lillesveen <fut...@chromium.org>
        Gerrit-Comment-Date: Thu, 02 Jul 2026 19:27:34 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Rune Lillesveen <fut...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages