[Feature]Support symbols() in counter() and counters() [chromium/src : main]

0 views
Skip to first unread message

Javier Contreras (Gerrit)

unread,
Jul 13, 2026, 4:56:09 PMJul 13
to Ananya Anand, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
Attention needed from Ananya Anand and Javier Contreras

Javier Contreras voted and added 6 comments

Votes added by Javier Contreras

Commit-Queue+1

6 comments

Commit Message
Line 7, Patchset 8 (Latest):[Feature]Support symbols() in counter() and counters()
Javier Contreras . unresolved

same comment as the other CLs

Line 21, Patchset 8 (Latest):Bug: none
Javier Contreras . unresolved

should be Bug: 40747844

File third_party/blink/renderer/core/css/css_counter_content_value.cc
Line 14, Patchset 8 (Latest):String CSSCounterContentValue::CustomCSSText() const {
Javier Contreras . unresolved

does symbols go through this path? If so, shouldnt the text be different rather than saying "counnters(...)?

If it doesn't go through this path on the other hand, why do we need the condition added below?

File third_party/blink/renderer/core/style/content_data.cc
Line 152, Patchset 8 (Latest): const CounterStyle* counter_style = GetSymbolsCounterStyle();
if (!counter_style) {
counter_style =
&style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
}
Javier Contreras . unresolved

this reads kind of confusingly. Previously we would call FindCounterStyle.. unconditionally, now this reads `if its not a counter style, call FindCounterStyle`. Which seems like the wrong way to read it considering what was there before.

Maybe reorder or rename variables here to make the intent clearer, or at the very least add a comment explaining.

File third_party/blink/renderer/modules/accessibility/ax_node_object_test.cc
Line 132, Patchset 8 (Latest):// Regression test for the symbols() function in the counter() alt-text path
// (https://crbug.com/1176315). The CSS alt text uses the inline symbols()
// counter style, not the 'decimal' fallback.
TEST_F(AccessibilityTest, CSSAltTextCounterWithSymbolsFunction) {
Javier Contreras . unresolved

Thank you for adding accessibility tests. Could you corroborate that this is what we do for counter styles accessibility tests?

File third_party/blink/web_tests/external/wpt/css/css-content/parsing/content-computed-expected.txt
Line 2, Patchset 8 (Latest):Found 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
Javier Contreras . unresolved

why is this needed?

Open in Gerrit

Related details

Attention is currently required from:
  • Ananya Anand
  • Javier Contreras
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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
Gerrit-Change-Number: 8066695
Gerrit-PatchSet: 8
Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
Gerrit-Comment-Date: Mon, 13 Jul 2026 20:55:57 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Ananya Anand (Gerrit)

unread,
Jul 15, 2026, 4:15:40 PM (13 days ago) Jul 15
to Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
Attention needed from Javier Contreras

Ananya Anand added 7 comments

Patchset-level comments
File-level comment, Patchset 15 (Latest):
Ananya Anand . resolved

fixed, thanks!:)

Commit Message
Line 7, Patchset 8:[Feature]Support symbols() in counter() and counters()
Javier Contreras . resolved

same comment as the other CLs

Ananya Anand

Done

Line 21, Patchset 8:Bug: none
Javier Contreras . resolved

should be Bug: 40747844

Ananya Anand

Done

File third_party/blink/renderer/core/css/css_counter_content_value.cc
Line 14, Patchset 8:String CSSCounterContentValue::CustomCSSText() const {
Javier Contreras . resolved

does symbols go through this path? If so, shouldnt the text be different rather than saying "counnters(...)?

If it doesn't go through this path on the other hand, why do we need the condition added below?

Ananya Anand

Done

File third_party/blink/renderer/core/style/content_data.cc
Line 152, Patchset 8: const CounterStyle* counter_style = GetSymbolsCounterStyle();

if (!counter_style) {
counter_style =
&style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
}
Javier Contreras . resolved

this reads kind of confusingly. Previously we would call FindCounterStyle.. unconditionally, now this reads `if its not a counter style, call FindCounterStyle`. Which seems like the wrong way to read it considering what was there before.

Maybe reorder or rename variables here to make the intent clearer, or at the very least add a comment explaining.

Ananya Anand

Done

File third_party/blink/renderer/modules/accessibility/ax_node_object_test.cc
Line 132, Patchset 8:// Regression test for the symbols() function in the counter() alt-text path

// (https://crbug.com/1176315). The CSS alt text uses the inline symbols()
// counter style, not the 'decimal' fallback.
TEST_F(AccessibilityTest, CSSAltTextCounterWithSymbolsFunction) {
Javier Contreras . resolved

Thank you for adding accessibility tests. Could you corroborate that this is what we do for counter styles accessibility tests?

Ananya Anand

Done

File third_party/blink/web_tests/external/wpt/css/css-content/parsing/content-computed-expected.txt
Line 2, Patchset 8:Found 2 FAIL, 0 TIMEOUT, 0 NOTRUN.
Javier Contreras . resolved

why is this needed?

Ananya Anand

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Javier Contreras
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
    Gerrit-Change-Number: 8066695
    Gerrit-PatchSet: 15
    Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
    Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
    Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
    Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
    Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
    Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
    Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
    Gerrit-Comment-Date: Wed, 15 Jul 2026 20:15:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Javier Contreras <javi...@microsoft.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Javier Contreras (Gerrit)

    unread,
    Jul 16, 2026, 2:19:42 PM (12 days ago) Jul 16
    to Ananya Anand, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
    Attention needed from Ananya Anand

    Javier Contreras added 2 comments

    File third_party/blink/renderer/core/style/content_data.cc
    Line 152, Patchset 8: const CounterStyle* counter_style = GetSymbolsCounterStyle();
    if (!counter_style) {
    counter_style =
    &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
    }
    Javier Contreras . unresolved

    this reads kind of confusingly. Previously we would call FindCounterStyle.. unconditionally, now this reads `if its not a counter style, call FindCounterStyle`. Which seems like the wrong way to read it considering what was there before.

    Maybe reorder or rename variables here to make the intent clearer, or at the very least add a comment explaining.

    Ananya Anand

    Done

    Javier Contreras

    Hmm I still think the flow here is confusing, since the null check currently means the value uses a named counter style rather than symbols(), not that resolving a counter style failed.

    I think it would be easier to understand and cleaner if it looked something like:

    ```
    const CounterStyle* counter_style;
    if (const CounterStyle* symbols_counter_style =
    GetSymbolsCounterStyle()) {
    counter_style = symbols_counter_style;
    } else {
    counter_style =
    &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
    }
    ```
    File third_party/blink/renderer/modules/accessibility/ax_node_object_test.cc
    Line 133, Patchset 15 (Latest):// (https://crbug.com/1176315). The CSS alt text uses the inline symbols()
    Javier Contreras . unresolved

    nit: this just links to the tracking item for the whole symbols function, so a little unecessary.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ananya Anand
    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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
      Gerrit-Change-Number: 8066695
      Gerrit-PatchSet: 15
      Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
      Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
      Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
      Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
      Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
      Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
      Gerrit-CC: Menard, Alexis <alexis...@intel.com>
      Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
      Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
      Gerrit-Comment-Date: Thu, 16 Jul 2026 18:19:31 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Ananya Anand <t-ana...@microsoft.com>
      Comment-In-Reply-To: Javier Contreras <javi...@microsoft.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Ananya Anand (Gerrit)

      unread,
      Jul 16, 2026, 7:40:55 PM (12 days ago) Jul 16
      to Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
      Attention needed from Javier Contreras

      Ananya Anand added 3 comments

      Patchset-level comments
      File-level comment, Patchset 16 (Latest):
      Ananya Anand . resolved

      applied changes, thanks!:)

      File third_party/blink/renderer/core/style/content_data.cc
      Line 152, Patchset 8: const CounterStyle* counter_style = GetSymbolsCounterStyle();
      if (!counter_style) {
      counter_style =
      &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
      }
      Javier Contreras . resolved

      this reads kind of confusingly. Previously we would call FindCounterStyle.. unconditionally, now this reads `if its not a counter style, call FindCounterStyle`. Which seems like the wrong way to read it considering what was there before.

      Maybe reorder or rename variables here to make the intent clearer, or at the very least add a comment explaining.

      Ananya Anand

      Done

      Javier Contreras

      Hmm I still think the flow here is confusing, since the null check currently means the value uses a named counter style rather than symbols(), not that resolving a counter style failed.

      I think it would be easier to understand and cleaner if it looked something like:

      ```
      const CounterStyle* counter_style;
      if (const CounterStyle* symbols_counter_style =
      GetSymbolsCounterStyle()) {
      counter_style = symbols_counter_style;
      } else {
      counter_style =
      &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
      }
      ```
      Ananya Anand

      Done

      File third_party/blink/renderer/modules/accessibility/ax_node_object_test.cc
      Line 133, Patchset 15:// (https://crbug.com/1176315). The CSS alt text uses the inline symbols()
      Javier Contreras . resolved

      nit: this just links to the tracking item for the whole symbols function, so a little unecessary.

      Ananya Anand

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Javier Contreras
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not 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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
        Gerrit-Change-Number: 8066695
        Gerrit-PatchSet: 16
        Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
        Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
        Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
        Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
        Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
        Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
        Gerrit-CC: Menard, Alexis <alexis...@intel.com>
        Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
        Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
        Gerrit-Comment-Date: Thu, 16 Jul 2026 23:40:46 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Javier Contreras (Gerrit)

        unread,
        Jul 17, 2026, 11:43:50 AM (11 days ago) Jul 17
        to Ananya Anand, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
        Attention needed from Ananya Anand and Javier Contreras

        Javier Contreras voted and added 1 comment

        Votes added by Javier Contreras

        Commit-Queue+1

        1 comment

        File third_party/blink/renderer/core/style/content_data.cc
        Line 153, Patchset 16 (Latest): const CounterStyle* counter_style;

        if (const CounterStyle* symbols_counter_style = GetSymbolsCounterStyle()) {
        counter_style = symbols_counter_style;
        } else {
        counter_style =
        &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
        }
        String text = LayoutCounter::GenerateCounterText(std::move(counter_values),
        Javier Contreras . unresolved
        This logic is now repeated in two places, here and in `LayoutCounter::NullableCounterStyle`. We should extract it into a helper functino in content_data.h/.cc called something along the lines of `const CounterStyle& ResolveCounterStyle(style_engine)` that does the reusable logic:
        ```
        if (const CounterStyle* symbols_style = GetSymbolsCounterStyle()) {
        return *symbols_style;
        }
        return style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
        ```

        And then we can call this same function on both `AltCounterContentData::UpdateText` and `LayoutCounter::NullableCounterStyle`

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Ananya Anand
        • Javier Contreras
        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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
          Gerrit-Change-Number: 8066695
          Gerrit-PatchSet: 16
          Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
          Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
          Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
          Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
          Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
          Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
          Gerrit-CC: Menard, Alexis <alexis...@intel.com>
          Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
          Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
          Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
          Gerrit-Comment-Date: Fri, 17 Jul 2026 15:43:36 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Ananya Anand (Gerrit)

          unread,
          Jul 17, 2026, 2:25:27 PM (11 days ago) Jul 17
          to Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
          Attention needed from Javier Contreras

          Ananya Anand added 2 comments

          Patchset-level comments
          File-level comment, Patchset 17 (Latest):
          Ananya Anand . resolved

          fixed, thanks!

          File third_party/blink/renderer/core/style/content_data.cc
          Line 153, Patchset 16: const CounterStyle* counter_style;

          if (const CounterStyle* symbols_counter_style = GetSymbolsCounterStyle()) {
          counter_style = symbols_counter_style;
          } else {
          counter_style =
          &style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
          }
          String text = LayoutCounter::GenerateCounterText(std::move(counter_values),
          Javier Contreras . resolved
          This logic is now repeated in two places, here and in `LayoutCounter::NullableCounterStyle`. We should extract it into a helper functino in content_data.h/.cc called something along the lines of `const CounterStyle& ResolveCounterStyle(style_engine)` that does the reusable logic:
          ```
          if (const CounterStyle* symbols_style = GetSymbolsCounterStyle()) {
          return *symbols_style;
          }
          return style_engine.FindCounterStyleAcrossScopes(ListStyle(), GetTreeScope());
          ```

          And then we can call this same function on both `AltCounterContentData::UpdateText` and `LayoutCounter::NullableCounterStyle`

          Ananya Anand

          Done

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Javier Contreras
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not 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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
            Gerrit-Change-Number: 8066695
            Gerrit-PatchSet: 17
            Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
            Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
            Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
            Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
            Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
            Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
            Gerrit-CC: Menard, Alexis <alexis...@intel.com>
            Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
            Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
            Gerrit-Comment-Date: Fri, 17 Jul 2026 18:25:15 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Javier Contreras <javi...@microsoft.com>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Javier Contreras (Gerrit)

            unread,
            Jul 20, 2026, 1:15:41 PM (8 days ago) Jul 20
            to Ananya Anand, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
            Attention needed from Ananya Anand

            Javier Contreras voted Code-Review+1

            Code-Review+1
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Ananya Anand
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not 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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
            Gerrit-Change-Number: 8066695
            Gerrit-PatchSet: 17
            Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
            Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
            Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
            Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
            Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
            Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
            Gerrit-CC: Menard, Alexis <alexis...@intel.com>
            Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
            Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
            Gerrit-Comment-Date: Mon, 20 Jul 2026 17:15:27 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Alison Maher (Gerrit)

            unread,
            Jul 21, 2026, 5:55:47 PM (7 days ago) Jul 21
            to Ananya Anand, Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
            Attention needed from Ananya Anand

            Alison Maher added 15 comments

            Commit Message
            Line 15, Patchset 17 (Latest):
            Alison Maher . unresolved

            nit: It might be helpful to more clearly state the relationship between some of these different classes just for context. i.e. What is ContentData etc and why we store things in these places

            I'm having a hard time following all of the various relationships across the various files across between the various CLs

            File third_party/blink/renderer/core/css/css_counter_content_value.h
            Line 87, Patchset 17 (Latest): Member<const CSSValue> list_style_; // <counter-style-name> or symbols()
            Alison Maher . unresolved

            Would it make things any simpler to store the name separate from the symbols function at this point

            Line 63, Patchset 17 (Latest): const CSSSymbolsValue* ListStyleSymbols() const {
            Alison Maher . unresolved

            ListStyleSymbolsFunciton

            Line 61, Patchset 17 (Latest): return To<CSSCustomIdentValue>(*list_style_).Value();
            Alison Maher . unresolved

            Should this also be dymnamicto (in the case that this is accidentally called from a list style symbols)

            Line 59, Patchset 17 (Latest): bool ListStyleIsSymbols() const { return list_style_->IsSymbolsValue(); }
            Alison Maher . unresolved

            ListStyleIsSymbolsFunction

            Line 24, Patchset 17 (Latest):#include "base/memory/values_equivalent.h"
            Alison Maher . unresolved

            Can this be removed?

            Line 43, Patchset 17 (Parent): // There's no way to define a counter() function value where the identifiers
            // are associated with different tree scopes.
            Alison Maher . unresolved

            Should this comment be added back but to the else statement? Also, out of curiosity, why is this different for the symbols function?

            File third_party/blink/renderer/core/layout/layout_counter.cc
            Line 106, Patchset 17 (Latest): // allow it for backward compatibility. A symbols() value has no name, so it
            // never matches 'none' and resolves to its inline style below.
            Alison Maher . unresolved

            nit: I think this comment is ok to remove

            File third_party/blink/renderer/core/style/content_data.h
            Line 300, Patchset 17 (Latest): // Resolves the counter style this value uses: the inline symbols() style if
            Alison Maher . unresolved

            By this value do you mean this content data uses

            Line 297, Patchset 17 (Latest): // cached; nullptr when the list style is a name. Not part of the value.
            Alison Maher . unresolved

            nit: not sure I follow what this means

            Line 293, Patchset 17 (Latest): const cssvalue::CSSSymbolsValue* ListStyleSymbols() const {
            Alison Maher . unresolved

            nit: I'd maybe add an extra line above this to space things out

            Line 293, Patchset 17 (Latest): const cssvalue::CSSSymbolsValue* ListStyleSymbols() const {
            Alison Maher . unresolved

            ListStyleSymbolsFunction. Same below

            Line 248, Patchset 17 (Latest): const cssvalue::CSSSymbolsValue* list_style_symbols = nullptr)
            Alison Maher . unresolved

            list_style_symbols_function. Same elsewhere

            Line 29, Patchset 17 (Latest):#include "base/memory/values_equivalent.h"
            Alison Maher . unresolved

            Is this needed

            File third_party/blink/renderer/core/style/content_data.cc
            Line 133, Patchset 17 (Latest): if (!symbols_counter_style_) {
            Alison Maher . unresolved

            If we invalidate the symbols function with JS, does this get reset?

            Probably worth testing that scenario

            Also is it possible to add rendering WPT tests for this change and the previous parent CL? Do they already exist somewhere?

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Ananya Anand
            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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
              Gerrit-Change-Number: 8066695
              Gerrit-PatchSet: 17
              Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Alison Maher <alm...@microsoft.com>
              Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
              Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
              Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
              Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
              Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Comment-Date: Tue, 21 Jul 2026 21:55:33 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Ananya Anand (Gerrit)

              unread,
              Jul 22, 2026, 6:51:06 PM (6 days ago) Jul 22
              to Alison Maher, Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
              Attention needed from Alison Maher and Javier Contreras

              Ananya Anand voted and added 17 comments

              Votes added by Ananya Anand

              Commit-Queue+0

              17 comments

              Patchset-level comments
              File-level comment, Patchset 24 (Latest):
              Ananya Anand . resolved

              done, thanks!

              Commit Message
              Line 15, Patchset 17:
              Alison Maher . resolved

              nit: It might be helpful to more clearly state the relationship between some of these different classes just for context. i.e. What is ContentData etc and why we store things in these places

              I'm having a hard time following all of the various relationships across the various files across between the various CLs

              Ananya Anand

              Done

              File third_party/blink/renderer/core/css/css_counter_content_value.h
              Line 87, Patchset 17: Member<const CSSValue> list_style_; // <counter-style-name> or symbols()
              Alison Maher . unresolved

              Would it make things any simpler to store the name separate from the symbols function at this point

              Ananya Anand

              I thought about this. Splitting it into two separate fields would let me drop the casts, but then the code could technically end up in states that should never happen (both fields empty, or both filled at once), so I'd have to add checks to guard against that. I'd also have to remember to update both fields in every place that touches it (ex.Equals, Trace). So it doesn't really make things simpler, it just moves the work around. Whereas the single field gives us "exactly one is always set" for free. That said, happy to split it if you'd prefer.

              Line 87, Patchset 17: Member<const CSSValue> list_style_; // <counter-style-name> or symbols()
              Alison Maher . unresolved

              Would it make things any simpler to store the name separate from the symbols function at this point

              Ananya Anand

              I thought about this. Splitting it into two separate fields would let me drop the casts, but then the code could technically end up in states that should never happen (both fields empty, or both filled at once), so I'd have to add checks to guard against that. I'd also have to remember to update both fields in every place that touches it (ex. Equals, Trace, etc). So it doesn't really make things simpler, it just moves the work around. The single field gives us "exactly one is always set" for free. That said, happy to split it if you'd prefer.

              Line 63, Patchset 17: const CSSSymbolsValue* ListStyleSymbols() const {
              Alison Maher . resolved

              ListStyleSymbolsFunciton

              Ananya Anand

              Done

              Line 61, Patchset 17: return To<CSSCustomIdentValue>(*list_style_).Value();
              Alison Maher . unresolved

              Should this also be dymnamicto (in the case that this is accidentally called from a list style symbols)

              Ananya Anand

              I feel like dynamicto wouldn't help here since the method returns a reference (a null would just crash at .Value()), and all callers already guard with !ListStyleIsSymbolsFunction() first. Maybe I could add an explciit DCHECK instead?

              Line 59, Patchset 17: bool ListStyleIsSymbols() const { return list_style_->IsSymbolsValue(); }
              Alison Maher . resolved

              ListStyleIsSymbolsFunction

              Ananya Anand

              Done

              Line 24, Patchset 17:#include "base/memory/values_equivalent.h"
              Alison Maher . resolved

              Can this be removed?

              Ananya Anand

              Done

              Line 43, Patchset 17 (Parent): // There's no way to define a counter() function value where the identifiers
              // are associated with different tree scopes.
              Alison Maher . resolved

              Should this comment be added back but to the else statement? Also, out of curiosity, why is this different for the symbols function?

              Ananya Anand

              Done! Restored it on the else. It's different for symbols function because that's an inline value with no name/tree scope, so the shared-scope DCHECKs only apply to the named counter-style case

              File third_party/blink/renderer/core/layout/layout_counter.cc
              Line 106, Patchset 17: // allow it for backward compatibility. A symbols() value has no name, so it

              // never matches 'none' and resolves to its inline style below.
              Alison Maher . resolved

              nit: I think this comment is ok to remove

              Ananya Anand

              Done

              File third_party/blink/renderer/core/style/content_data.h
              Line 300, Patchset 17: // Resolves the counter style this value uses: the inline symbols() style if
              Alison Maher . resolved

              By this value do you mean this content data uses

              Ananya Anand

              Done

              Line 297, Patchset 17: // cached; nullptr when the list style is a name. Not part of the value.
              Alison Maher . resolved

              nit: not sure I follow what this means

              Ananya Anand

              Done

              Line 293, Patchset 17: const cssvalue::CSSSymbolsValue* ListStyleSymbols() const {
              Alison Maher . resolved

              nit: I'd maybe add an extra line above this to space things out

              Ananya Anand

              Done

              Line 293, Patchset 17: const cssvalue::CSSSymbolsValue* ListStyleSymbols() const {
              Alison Maher . resolved

              ListStyleSymbolsFunction. Same below

              Ananya Anand

              Done

              Line 248, Patchset 17: const cssvalue::CSSSymbolsValue* list_style_symbols = nullptr)
              Alison Maher . resolved

              list_style_symbols_function. Same elsewhere

              Ananya Anand

              Done

              Line 29, Patchset 17:#include "base/memory/values_equivalent.h"
              Alison Maher . resolved

              Is this needed

              Ananya Anand

              Done

              File third_party/blink/renderer/core/style/content_data.cc
              Line 133, Patchset 17: if (!symbols_counter_style_) {
              Alison Maher . unresolved

              If we invalidate the symbols function with JS, does this get reset?

              Probably worth testing that scenario

              Also is it possible to add rendering WPT tests for this change and the previous parent CL? Do they already exist somewhere?

              Ananya Anand

              Yes, it does reset. The cached counter-style is attached to the computed content value, and that value never gets edited in place, so when you change the symbols function from JS the browser just builds a fresh value with an empty cache and throws the old one away. So there's no way for it to go stale. I added a test that proves this (symbols-function-dynamic.html)

              btw for rendering tests, they already exist too: symbols-function.html is a reftest that draws both list-style-type: symbols(...)  (the CL before this one) and counter()/counters() with symbols()(this CL), and there are invalid-input ones alongside it.

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Alison Maher
              • Javier Contreras
              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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
              Gerrit-Change-Number: 8066695
              Gerrit-PatchSet: 24
              Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Alison Maher <alm...@microsoft.com>
              Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
              Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
              Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
              Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
              Gerrit-Attention: Alison Maher <alm...@microsoft.com>
              Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
              Gerrit-Comment-Date: Wed, 22 Jul 2026 22:50:51 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: Yes
              Comment-In-Reply-To: Alison Maher <alm...@microsoft.com>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Alison Maher (Gerrit)

              unread,
              Jul 23, 2026, 3:03:22 PM (5 days ago) Jul 23
              to Ananya Anand, Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
              Attention needed from Ananya Anand and Javier Contreras

              Alison Maher added 5 comments

              File third_party/blink/renderer/core/css/css_counter_content_value.h
              Line 48, Patchset 25 (Latest): needs_tree_scope_population_ = !identifier->IsScopedValue();
              Alison Maher . unresolved

              Can you add a comment on why we use the identifier in this case? (Also unrelated to your change, but might be worth adding to the comment before CSSCounterContentValue to note what identifier is for extra context)

              Line 87, Patchset 17: Member<const CSSValue> list_style_; // <counter-style-name> or symbols()
              Alison Maher . resolved

              Would it make things any simpler to store the name separate from the symbols function at this point

              Ananya Anand

              I thought about this. Splitting it into two separate fields would let me drop the casts, but then the code could technically end up in states that should never happen (both fields empty, or both filled at once), so I'd have to add checks to guard against that. I'd also have to remember to update both fields in every place that touches it (ex. Equals, Trace, etc). So it doesn't really make things simpler, it just moves the work around. The single field gives us "exactly one is always set" for free. That said, happy to split it if you'd prefer.

              Alison Maher

              Acknowledged

              Line 61, Patchset 17: return To<CSSCustomIdentValue>(*list_style_).Value();
              Alison Maher . unresolved

              Should this also be dymnamicto (in the case that this is accidentally called from a list style symbols)

              Ananya Anand

              I feel like dynamicto wouldn't help here since the method returns a reference (a null would just crash at .Value()), and all callers already guard with !ListStyleIsSymbolsFunction() first. Maybe I could add an explciit DCHECK instead?

              Alison Maher

              I guess I would expect to do the same thing as ListStyleSymbolsFunction - so either both be To if we expect this to only be called on that type, or DynamicTo if not.

              File third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
              Line 3115, Patchset 25 (Latest): context.Count(WebFeature::kCSSSymbolsFunction);
              Alison Maher . unresolved

              Same comment here about maybe adding a test for this

              File third_party/blink/renderer/core/style/content_data.h
              Line 333, Patchset 25 (Latest): // Lazily-built cache of the symbols() anonymous counter style. Mutable and
              // excluded from equality/cloning, mirroring
              // `ListStyleTypeData::counter_style_`.
              Alison Maher . unresolved

              Similar comment to the other change, do we need to do this lazily, or can we create this up front so we don't need to store list_style_symbols_function above?

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Ananya Anand
              • Javier Contreras
              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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
              Gerrit-Change-Number: 8066695
              Gerrit-PatchSet: 25
              Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Alison Maher <alm...@microsoft.com>
              Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
              Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
              Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
              Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
              Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
              Gerrit-Comment-Date: Thu, 23 Jul 2026 19:03:12 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Alison Maher <alm...@microsoft.com>
              Comment-In-Reply-To: Ananya Anand <t-ana...@microsoft.com>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Ananya Anand (Gerrit)

              unread,
              Jul 24, 2026, 2:44:42 AM (5 days ago) Jul 24
              to Alison Maher, Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
              Attention needed from Alison Maher and Javier Contreras

              Ananya Anand added 5 comments

              Ananya Anand . resolved

              done, thanks!

              File third_party/blink/renderer/core/css/css_counter_content_value.h
              Line 48, Patchset 25: needs_tree_scope_population_ = !identifier->IsScopedValue();
              Alison Maher . resolved

              Can you add a comment on why we use the identifier in this case? (Also unrelated to your change, but might be worth adding to the comment before CSSCounterContentValue to note what identifier is for extra context)

              Ananya Anand

              Done

              Line 61, Patchset 17: return To<CSSCustomIdentValue>(*list_style_).Value();
              Alison Maher . resolved

              Should this also be dymnamicto (in the case that this is accidentally called from a list style symbols)

              Ananya Anand

              I feel like dynamicto wouldn't help here since the method returns a reference (a null would just crash at .Value()), and all callers already guard with !ListStyleIsSymbolsFunction() first. Maybe I could add an explciit DCHECK instead?

              Alison Maher

              I guess I would expect to do the same thing as ListStyleSymbolsFunction - so either both be To if we expect this to only be called on that type, or DynamicTo if not.

              Ananya Anand

              Done

              File third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
              Line 3115, Patchset 25: context.Count(WebFeature::kCSSSymbolsFunction);
              Alison Maher . resolved

              Same comment here about maybe adding a test for this

              Ananya Anand

              Done

              File third_party/blink/renderer/core/style/content_data.h
              Line 333, Patchset 25: // Lazily-built cache of the symbols() anonymous counter style. Mutable and

              // excluded from equality/cloning, mirroring
              // `ListStyleTypeData::counter_style_`.
              Alison Maher . unresolved

              Similar comment to the other change, do we need to do this lazily, or can we create this up front so we don't need to store list_style_symbols_function above?

              Ananya Anand

              same reasoning from cl 2

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Alison Maher
              • Javier Contreras
              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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
              Gerrit-Change-Number: 8066695
              Gerrit-PatchSet: 31
              Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Alison Maher <alm...@microsoft.com>
              Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
              Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
              Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
              Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
              Gerrit-Attention: Alison Maher <alm...@microsoft.com>
              Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
              Gerrit-Comment-Date: Fri, 24 Jul 2026 06:44:23 +0000
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Alison Maher (Gerrit)

              unread,
              Jul 24, 2026, 2:01:10 PM (4 days ago) Jul 24
              to Ananya Anand, Javier Contreras, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, (Julie)Jeongeun Kim, Kevin Babbitt, blink-revie...@chromium.org, abigailbk...@google.com, apavlo...@chromium.org, blink-rev...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-...@chromium.org, dtseng...@chromium.org, francisjp...@google.com, josiah...@chromium.org, kyungjunle...@google.com, lucasrada...@google.com, nektar...@chromium.org, yuzo+...@chromium.org, zol...@webkit.org
              Attention needed from Ananya Anand and Javier Contreras

              Alison Maher added 3 comments

              File third_party/blink/renderer/core/css/css_counter_content_value.h
              Line 73, Patchset 32 (Latest): // callers must guard with `ListStyleIsSymbolsFunction()`. The `To<>` cast
              // asserts this precondition.
              Alison Maher . unresolved

              nit: this can be removed

              Line 67, Patchset 32 (Latest): // callers must guard with `!ListStyleIsSymbolsFunction()`. The `To<>` cast
              // asserts this precondition.
              Alison Maher . unresolved

              nit this can be removed

              File third_party/blink/renderer/core/style/content_data.h
              Line 333, Patchset 25: // Lazily-built cache of the symbols() anonymous counter style. Mutable and
              // excluded from equality/cloning, mirroring
              // `ListStyleTypeData::counter_style_`.
              Alison Maher . unresolved

              Similar comment to the other change, do we need to do this lazily, or can we create this up front so we don't need to store list_style_symbols_function above?

              Ananya Anand

              same reasoning from cl 2

              Alison Maher

              Same response here about being able to do the conversion, similar to other value types

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Ananya Anand
              • Javier Contreras
              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: I8fa2cf5c0884a7aada3c9e21ffe32019a50a47f4
              Gerrit-Change-Number: 8066695
              Gerrit-PatchSet: 32
              Gerrit-Owner: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Alison Maher <alm...@microsoft.com>
              Gerrit-Reviewer: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Reviewer: Javier Contreras <javi...@microsoft.com>
              Gerrit-CC: (Julie)Jeongeun Kim <je_jul...@chromium.org>
              Gerrit-CC: Akihiro Ota <akihi...@chromium.org>
              Gerrit-CC: Kevin Babbitt <kbab...@microsoft.com>
              Gerrit-CC: Menard, Alexis <alexis...@intel.com>
              Gerrit-CC: Nektarios Paisios <nek...@chromium.org>
              Gerrit-Attention: Ananya Anand <t-ana...@microsoft.com>
              Gerrit-Attention: Javier Contreras <javi...@microsoft.com>
              Gerrit-Comment-Date: Fri, 24 Jul 2026 18:00:42 +0000
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy
              Reply all
              Reply to author
              Forward
              0 new messages