Overscroll: Use html attributes to set up overscroll areas [chromium/src : main]

0 views
Skip to first unread message

Vladimir Levin (Gerrit)

unread,
Dec 10, 2025, 4:08:06 PM (2 days ago) Dec 10
to Robert Flack, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from David Baron and Robert Flack

Vladimir Levin voted and added 1 comment

Votes added by Vladimir Levin

Commit-Queue+1

1 comment

Patchset-level comments
File-level comment, Patchset 5 (Latest):
Vladimir Levin . resolved

Please take a look.

Open in Gerrit

Related details

Attention is currently required from:
  • David Baron
  • Robert Flack
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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
Gerrit-Change-Number: 7234051
Gerrit-PatchSet: 5
Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
Gerrit-Reviewer: David Baron <dba...@chromium.org>
Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Robert Flack <fla...@chromium.org>
Gerrit-Attention: David Baron <dba...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 21:08:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Vladimir Levin (Gerrit)

unread,
Dec 10, 2025, 4:09:06 PM (2 days ago) Dec 10
to Chromium LUCI CQ, Robert Flack, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from David Baron and Robert Flack

Vladimir Levin added 1 comment

File third_party/blink/renderer/core/dom/element.cc
Line 13185, Patchset 5 (Latest):CommandEventType Element::GetCommandEventType(
Vladimir Levin . resolved

This is largely copied from HTMLElement, with an addition for "ToggleOverscroll"

Open in Gerrit

Related details

Attention is currently required from:
  • David Baron
  • Robert Flack
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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
Gerrit-Change-Number: 7234051
Gerrit-PatchSet: 5
Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
Gerrit-Reviewer: David Baron <dba...@chromium.org>
Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Robert Flack <fla...@chromium.org>
Gerrit-Attention: David Baron <dba...@chromium.org>
Gerrit-Comment-Date: Wed, 10 Dec 2025 21:09:01 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Robert Flack (Gerrit)

unread,
Dec 11, 2025, 9:54:07 AM (yesterday) Dec 11
to Vladimir Levin, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from David Baron and Vladimir Levin

Robert Flack added 8 comments

File third_party/blink/renderer/core/css/css_selector.h
Line 417, Patchset 5 (Latest): kPseudoOverscrollTarget,
Robert Flack . unresolved

It doesn't look like there's any ordering requirement on this enum, can we move this next to the OverscrollAreaParent pseudo-element?

File third_party/blink/renderer/core/css/selector_checker.cc
Line 3647, Patchset 5 (Latest): if (!element.FastHasAttribute(html_names::kIdAttr)) {
Robert Flack . unresolved

You can get the attribute and check if it returns g_null_atom to avoid needing to look up the id attribute twice here: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/dom/element.h;l=2596;drc=397107e399d4b0f4a6e801e7a888d7d71778529c;bpv=1;bpt=1

File third_party/blink/renderer/core/dom/element.cc
Line 3694, Patchset 5 (Latest): // TODO(vmpstr): We can optimize this in some cases since a container that
Robert Flack . unresolved

File a bug for this optimization? I suspect it can be done without a style update both ways though this is also probably not going to change often.

Line 3713, Patchset 5 (Latest): GetDocument().AddOverscrollCommandTarget(command_for);
Robert Flack . unresolved

This looks backwards, I think you meant to delete a command target if the old value was an overscroll command, and add one if the new value is.

Line 3736, Patchset 5 (Latest): target->OverscrollTargetStateChanged();
Robert Flack . unresolved

Do we need to notify the old target as well?

I think we should move this notification into the function on document that adds / removes ids from the overscroll command target list.

Line 5295, Patchset 5 (Latest): // TODO(vmpstr): What should we do if there is no overscroll container?
Robert Flack . unresolved

Doing nothing seems fine, though I suppose we could consider making the root an implicit overscroll container.

Line 13185, Patchset 5 (Latest):CommandEventType Element::GetCommandEventType(
Vladimir Levin . unresolved

This is largely copied from HTMLElement, with an addition for "ToggleOverscroll"

Robert Flack

Why do we need this on Element? I think you could move the change detection code to HTMLElement::AttributeChanged.

Commands are only allowed on a few specific HTMLElement types.

File third_party/blink/renderer/core/html/keywords.json5
Line 268, Patchset 5 (Latest): "toggle-overscroll",
Robert Flack . unresolved

This should probably be with the rest of the command types.

Open in Gerrit

Related details

Attention is currently required from:
  • David Baron
  • Vladimir Levin
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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
    Gerrit-Change-Number: 7234051
    Gerrit-PatchSet: 5
    Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
    Gerrit-Reviewer: David Baron <dba...@chromium.org>
    Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
    Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
    Gerrit-Attention: David Baron <dba...@chromium.org>
    Gerrit-Comment-Date: Thu, 11 Dec 2025 14:54:01 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Vladimir Levin <vmp...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Vladimir Levin (Gerrit)

    unread,
    Dec 11, 2025, 3:39:32 PM (yesterday) Dec 11
    to Chromium LUCI CQ, Robert Flack, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
    Attention needed from David Baron and Robert Flack

    Vladimir Levin added 8 comments

    File third_party/blink/renderer/core/css/css_selector.h
    Line 417, Patchset 5: kPseudoOverscrollTarget,
    Robert Flack . resolved

    It doesn't look like there's any ordering requirement on this enum, can we move this next to the OverscrollAreaParent pseudo-element?

    Vladimir Levin

    Done

    File third_party/blink/renderer/core/css/selector_checker.cc
    Line 3647, Patchset 5: if (!element.FastHasAttribute(html_names::kIdAttr)) {
    Robert Flack . resolved

    You can get the attribute and check if it returns g_null_atom to avoid needing to look up the id attribute twice here: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/dom/element.h;l=2596;drc=397107e399d4b0f4a6e801e7a888d7d71778529c;bpv=1;bpt=1

    Vladimir Levin

    Done

    File third_party/blink/renderer/core/dom/element.cc
    Line 3694, Patchset 5: // TODO(vmpstr): We can optimize this in some cases since a container that
    Robert Flack . resolved

    File a bug for this optimization? I suspect it can be done without a style update both ways though this is also probably not going to change often.

    Vladimir Levin

    Done

    Line 3713, Patchset 5: GetDocument().AddOverscrollCommandTarget(command_for);
    Robert Flack . resolved

    This looks backwards, I think you meant to delete a command target if the old value was an overscroll command, and add one if the new value is.

    Vladimir Levin

    Done

    Line 3736, Patchset 5: target->OverscrollTargetStateChanged();
    Robert Flack . resolved

    Do we need to notify the old target as well?

    I think we should move this notification into the function on document that adds / removes ids from the overscroll command target list.

    Vladimir Levin

    Done.

    Line 5295, Patchset 5: // TODO(vmpstr): What should we do if there is no overscroll container?
    Robert Flack . resolved

    Doing nothing seems fine, though I suppose we could consider making the root an implicit overscroll container.

    Vladimir Levin

    Done

    Line 13185, Patchset 5:CommandEventType Element::GetCommandEventType(
    Vladimir Levin . resolved

    This is largely copied from HTMLElement, with an addition for "ToggleOverscroll"

    Robert Flack

    Why do we need this on Element? I think you could move the change detection code to HTMLElement::AttributeChanged.

    Commands are only allowed on a few specific HTMLElement types.

    Vladimir Levin

    Yeah, it was for consistency with the Id changes that are handled on element. Also CommandEventType itself is defined on Element and has various things on it. I made this function static as well since it doesn't actually matter where this is called.

    Let me know if you want me to move it back and move command parsing there I guess and keep id parsing here.

    File third_party/blink/renderer/core/html/keywords.json5
    Line 268, Patchset 5: "toggle-overscroll",
    Robert Flack . resolved

    This should probably be with the rest of the command types.

    Vladimir Levin

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Baron
    • Robert Flack
    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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
      Gerrit-Change-Number: 7234051
      Gerrit-PatchSet: 7
      Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
      Gerrit-Reviewer: David Baron <dba...@chromium.org>
      Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
      Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-Attention: Robert Flack <fla...@chromium.org>
      Gerrit-Attention: David Baron <dba...@chromium.org>
      Gerrit-Comment-Date: Thu, 11 Dec 2025 20:39:26 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Robert Flack <fla...@chromium.org>
      Comment-In-Reply-To: Vladimir Levin <vmp...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Robert Flack (Gerrit)

      unread,
      Dec 11, 2025, 4:26:10 PM (yesterday) Dec 11
      to Vladimir Levin, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
      Attention needed from David Baron

      Robert Flack added 1 comment

      File third_party/blink/renderer/core/dom/element.cc
      Line 13185, Patchset 5:CommandEventType Element::GetCommandEventType(
      Vladimir Levin . unresolved

      This is largely copied from HTMLElement, with an addition for "ToggleOverscroll"

      Robert Flack

      Why do we need this on Element? I think you could move the change detection code to HTMLElement::AttributeChanged.

      Commands are only allowed on a few specific HTMLElement types.

      Vladimir Levin

      Yeah, it was for consistency with the Id changes that are handled on element. Also CommandEventType itself is defined on Element and has various things on it. I made this function static as well since it doesn't actually matter where this is called.

      Let me know if you want me to move it back and move command parsing there I guess and keep id parsing here.

      Robert Flack

      I think it would be cleaner to split up, since HTMLElement is where most of the command related code is and command and commandfor are only valid on HTMLElement.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • David Baron
      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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
        Gerrit-Change-Number: 7234051
        Gerrit-PatchSet: 7
        Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
        Gerrit-Reviewer: David Baron <dba...@chromium.org>
        Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
        Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-Attention: David Baron <dba...@chromium.org>
        Gerrit-Comment-Date: Thu, 11 Dec 2025 21:26:04 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Vladimir Levin (Gerrit)

        unread,
        Dec 11, 2025, 5:15:51 PM (yesterday) Dec 11
        to Chromium LUCI CQ, Robert Flack, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
        Attention needed from David Baron and Robert Flack

        Vladimir Levin added 1 comment

        File third_party/blink/renderer/core/dom/element.cc
        Line 13185, Patchset 5:CommandEventType Element::GetCommandEventType(
        Vladimir Levin . resolved

        This is largely copied from HTMLElement, with an addition for "ToggleOverscroll"

        Robert Flack

        Why do we need this on Element? I think you could move the change detection code to HTMLElement::AttributeChanged.

        Commands are only allowed on a few specific HTMLElement types.

        Vladimir Levin

        Yeah, it was for consistency with the Id changes that are handled on element. Also CommandEventType itself is defined on Element and has various things on it. I made this function static as well since it doesn't actually matter where this is called.

        Let me know if you want me to move it back and move command parsing there I guess and keep id parsing here.

        Robert Flack

        I think it would be cleaner to split up, since HTMLElement is where most of the command related code is and command and commandfor are only valid on HTMLElement.

        Vladimir Levin

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • David Baron
        • Robert Flack
        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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
          Gerrit-Change-Number: 7234051
          Gerrit-PatchSet: 9
          Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
          Gerrit-Reviewer: David Baron <dba...@chromium.org>
          Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
          Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
          Gerrit-CC: Menard, Alexis <alexis...@intel.com>
          Gerrit-Attention: Robert Flack <fla...@chromium.org>
          Gerrit-Attention: David Baron <dba...@chromium.org>
          Gerrit-Comment-Date: Thu, 11 Dec 2025 22:15:45 +0000
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Robert Flack (Gerrit)

          unread,
          Dec 11, 2025, 8:38:16 PM (23 hours ago) Dec 11
          to Vladimir Levin, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
          Attention needed from David Baron and Vladimir Levin

          Robert Flack voted and added 3 comments

          Votes added by Robert Flack

          Code-Review+1

          3 comments

          File third_party/blink/renderer/core/css/style_recalc_context.h
          Line 139, Patchset 9 (Latest): Element* overscroll_container = nullptr;
          Robert Flack . unresolved

          nit: Move this before the bools so that the structure can pack more efficiently.

          File third_party/blink/renderer/core/dom/document.h
          Line 3462, Patchset 9 (Latest): HashSet<AtomicString> overscroll_command_targets_;
          Robert Flack . unresolved

          nit: Document what these are, and the resulting pseudo-class on those identified elements.

          File third_party/blink/renderer/core/html/html_element.cc
          Line 853, Patchset 9 (Latest): if (RuntimeEnabledFeatures::CSSOverscrollGesturesEnabled()) {
          Robert Flack . unresolved

          Since GetCommandEventType will only return kToggleOverscroll if the flag is enabled, maybe we don't need this check?

          Open in Gerrit

          Related details

          Attention is currently required from:
          • David Baron
          • Vladimir Levin
          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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
            Gerrit-Change-Number: 7234051
            Gerrit-PatchSet: 9
            Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
            Gerrit-Reviewer: David Baron <dba...@chromium.org>
            Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
            Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
            Gerrit-CC: Menard, Alexis <alexis...@intel.com>
            Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
            Gerrit-Attention: David Baron <dba...@chromium.org>
            Gerrit-Comment-Date: Fri, 12 Dec 2025 01:38:06 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Vladimir Levin (Gerrit)

            unread,
            1:00 PM (7 hours ago) 1:00 PM
            to Robert Flack, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
            Attention needed from David Baron

            Vladimir Levin added 3 comments

            File third_party/blink/renderer/core/css/style_recalc_context.h
            Line 139, Patchset 9: Element* overscroll_container = nullptr;
            Robert Flack . resolved

            nit: Move this before the bools so that the structure can pack more efficiently.

            Vladimir Levin

            Done

            File third_party/blink/renderer/core/dom/document.h
            Line 3462, Patchset 9: HashSet<AtomicString> overscroll_command_targets_;
            Robert Flack . resolved

            nit: Document what these are, and the resulting pseudo-class on those identified elements.

            Vladimir Levin

            Done

            File third_party/blink/renderer/core/html/html_element.cc
            Line 853, Patchset 9: if (RuntimeEnabledFeatures::CSSOverscrollGesturesEnabled()) {
            Robert Flack . resolved

            Since GetCommandEventType will only return kToggleOverscroll if the flag is enabled, maybe we don't need this check?

            Vladimir Levin

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • David Baron
            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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
              Gerrit-Change-Number: 7234051
              Gerrit-PatchSet: 11
              Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
              Gerrit-Reviewer: David Baron <dba...@chromium.org>
              Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
              Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-Attention: David Baron <dba...@chromium.org>
              Gerrit-Comment-Date: Fri, 12 Dec 2025 18:00:03 +0000
              satisfied_requirement
              open
              diffy

              David Baron (Gerrit)

              unread,
              3:06 PM (5 hours ago) 3:06 PM
              to Vladimir Levin, Robert Flack, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
              Attention needed from Vladimir Levin

              David Baron added 7 comments

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

              Sorry for the delay getting to this. A few comments and questions below.

              File third_party/blink/renderer/core/css/css_properties.json5
              Line 4602, Patchset 10: name: "-internal-overscroll-area",
              David Baron . unresolved

              Is it useful to have a comment somewhere explaining how the `-internal-overscroll-area` and `-internal-overscroll-position` properties related to the `overscroll-area` and `overscroll-position` properties?

              File third_party/blink/renderer/core/css/selector_checker.cc
              Line 3647, Patchset 10: const AtomicString& id = element.FastGetAttribute(html_names::kIdAttr);
              David Baron . unresolved

              I'm a little surprised that this is matched *only* by being referenced by a command elsewhere -- meaning I'm a little surprised that you don't need anything on the element itself. Is that the intent?

              File third_party/blink/renderer/core/dom/document.cc
              Line 10321, Patchset 10: if (auto* element = getElementById(target)) {
              David Baron . unresolved

              I wonder if this should support [referencetarget](https://github.com/whatwg/html/issues/10707) and thus use `Element::GetElementAttributeResolvingReferenceTarget`... I'm not sure whether it makes sense or not.

              File third_party/blink/renderer/core/dom/element.cc
              Line 8327, Patchset 10: SetNeedsStyleRecalc(kLocalStyleChange,
              David Baron . unresolved

              I don't think this `SetNeedStyleRecalc` should be needed. The `PseudoStateChanged` should be sufficient if the style side of things is implemented correctly -- and if it's not implemented correctly then the `SetNeedsStyleRecalc` is not sufficient since it won't handle the cases where selector combinators are involved (although you probably don't really have any since it's internal).

              Needing it might be a sign of not having updated `InvalidationSetForSimpleSelector`... which you didn't do!

              (`PatchStateChanged` might have the same issue.)

              File third_party/blink/renderer/core/html/html_element.cc
              Line 860, Patchset 10: if (old_is_overscroll != new_is_overscroll && !command_for.IsNull()) {
              David Baron . unresolved

              Do you really want to allow empty string here? (Maybe there's some standard code for validating something is a single name?)

              (I guess it doesn't seem like other uses validate much, but that seems a little odd...)

              File third_party/blink/renderer/core/overscroll/overscroll_area_tracker.cc
              Line 24, Patchset 10: // TODO(crbug.com/463970475): Implement.
              David Baron . unresolved

              I think there is a class somewhere that implements this sort of lazy sorting of elements...

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Vladimir Levin
              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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
                Gerrit-Change-Number: 7234051
                Gerrit-PatchSet: 10
                Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
                Gerrit-Reviewer: David Baron <dba...@chromium.org>
                Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
                Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                Gerrit-Attention: Vladimir Levin <vmp...@chromium.org>
                Gerrit-Comment-Date: Fri, 12 Dec 2025 20:05:45 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Vladimir Levin (Gerrit)

                unread,
                4:23 PM (4 hours ago) 4:23 PM
                to Robert Flack, Chromium LUCI CQ, David Baron, AyeAye, Menard, Alexis, chromium...@chromium.org, blink-rev...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
                Attention needed from David Baron

                Vladimir Levin added 6 comments

                File third_party/blink/renderer/core/css/css_properties.json5
                Line 4602, Patchset 10: name: "-internal-overscroll-area",
                David Baron . resolved

                Is it useful to have a comment somewhere explaining how the `-internal-overscroll-area` and `-internal-overscroll-position` properties related to the `overscroll-area` and `overscroll-position` properties?

                Vladimir Levin

                That's the neat part, they don't!

                The latter ones are going away in a clean up patch that's going to be written fairly soon

                File third_party/blink/renderer/core/css/selector_checker.cc
                Line 3647, Patchset 10: const AtomicString& id = element.FastGetAttribute(html_names::kIdAttr);
                David Baron . resolved

                I'm a little surprised that this is matched *only* by being referenced by a command elsewhere -- meaning I'm a little surprised that you don't need anything on the element itself. Is that the intent?

                Vladimir Levin

                Yes it is. The idea is that the button defines the connection of the overscrollcontainer and any other element without needing to annotate it (other than it having an id of course)

                File third_party/blink/renderer/core/dom/document.cc
                Line 10321, Patchset 10: if (auto* element = getElementById(target)) {
                David Baron . resolved

                I wonder if this should support [referencetarget](https://github.com/whatwg/html/issues/10707) and thus use `Element::GetElementAttributeResolvingReferenceTarget`... I'm not sure whether it makes sense or not.

                Vladimir Levin

                Yeah I'm not sure either... It seems like if you have a referencetarget (and I'm only learning about this today), the intent is to actually put the custom element into the overscroll instead of some of its shadow descendants.. We can maybe revisit in a discussion

                File third_party/blink/renderer/core/dom/element.cc
                Line 8327, Patchset 10: SetNeedsStyleRecalc(kLocalStyleChange,
                David Baron . resolved

                I don't think this `SetNeedStyleRecalc` should be needed. The `PseudoStateChanged` should be sufficient if the style side of things is implemented correctly -- and if it's not implemented correctly then the `SetNeedsStyleRecalc` is not sufficient since it won't handle the cases where selector combinators are involved (although you probably don't really have any since it's internal).

                Needing it might be a sign of not having updated `InvalidationSetForSimpleSelector`... which you didn't do!

                (`PatchStateChanged` might have the same issue.)

                Vladimir Levin

                It seems like also active view transition, and focus visible and focus state all follow the same pattern. Would you accept an argument from consistency with the rest of the code? 😊

                We can maybe update them all at once in a separate CL

                File third_party/blink/renderer/core/html/html_element.cc
                Line 860, Patchset 10: if (old_is_overscroll != new_is_overscroll && !command_for.IsNull()) {
                David Baron . unresolved

                Do you really want to allow empty string here? (Maybe there's some standard code for validating something is a single name?)

                (I guess it doesn't seem like other uses validate much, but that seems a little odd...)

                Vladimir Levin

                You mean why am I not checking command_for is ""? I'm not sure if that's a valid name, I guess not? like if commandfor="", and there's an id="" I would be very surprised if those match

                File third_party/blink/renderer/core/overscroll/overscroll_area_tracker.cc
                David Baron . resolved

                I think there is a class somewhere that implements this sort of lazy sorting of elements...

                Vladimir Levin
                Open in Gerrit

                Related details

                Attention is currently required from:
                • David Baron
                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: I71d26c5cf29b8c03f228080a27fbe0b7718fbffa
                Gerrit-Change-Number: 7234051
                Gerrit-PatchSet: 11
                Gerrit-Owner: Vladimir Levin <vmp...@chromium.org>
                Gerrit-Reviewer: David Baron <dba...@chromium.org>
                Gerrit-Reviewer: Robert Flack <fla...@chromium.org>
                Gerrit-Reviewer: Vladimir Levin <vmp...@chromium.org>
                Gerrit-CC: Menard, Alexis <alexis...@intel.com>
                Gerrit-Attention: David Baron <dba...@chromium.org>
                Gerrit-Comment-Date: Fri, 12 Dec 2025 21:23:35 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: David Baron <dba...@chromium.org>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy
                Reply all
                Reply to author
                Forward
                0 new messages