Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dcaee9e83acc97e7770e5f82a99c69352192eb09
      
https://github.com/WebKit/WebKit/commit/dcaee9e83acc97e7770e5f82a99c69352192eb09
  Author: Sam Weinig <[email protected]>
  Date:   2026-01-04 (Sun, 04 Jan 2026)

  Changed paths:
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-computed-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-computed.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-valid-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-valid.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-computed-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-computed.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-valid-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-valid.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-computed-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-computed.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-valid-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-valid.html
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/scripts/process-css-properties.py
    M 
Source/WebCore/css/scripts/test/TestCSSPropertiesResults/StyleComputedStyleProperties+SettersInlines.h
    M Source/WebCore/rendering/RenderCounter.cpp
    M Source/WebCore/rendering/RenderElement.cpp
    M Source/WebCore/rendering/RenderListItem.cpp
    M Source/WebCore/rendering/RenderListItem.h
    M Source/WebCore/rendering/style/CounterDirectives.h
    M Source/WebCore/rendering/style/RenderStyleBase+GettersInlines.h
    M Source/WebCore/rendering/style/RenderStyleBase.h
    M Source/WebCore/style/StyleBuilderCustom.h
    M Source/WebCore/style/StyleDifference.cpp
    M Source/WebCore/style/StyleExtractorCustom.h
    M Source/WebCore/style/StyleInterpolationWrappers.h
    M Source/WebCore/style/computed/StyleComputedStyleBase.cpp
    M Source/WebCore/style/computed/StyleComputedStyleBase.h
    M 
Source/WebCore/style/computed/StyleComputedStyleProperties+SettersCustomInlines.h
    M Source/WebCore/style/computed/data/StyleNonInheritedRareData.cpp
    M Source/WebCore/style/computed/data/StyleNonInheritedRareData.h
    A Source/WebCore/style/values/lists/StyleCounterIncrement.cpp
    A Source/WebCore/style/values/lists/StyleCounterIncrement.h
    A Source/WebCore/style/values/lists/StyleCounterReset.cpp
    A Source/WebCore/style/values/lists/StyleCounterReset.h
    A Source/WebCore/style/values/lists/StyleCounterSet.cpp
    A Source/WebCore/style/values/lists/StyleCounterSet.h
    M Tools/Scripts/webkitpy/style/checkers/jsonchecker.py

  Log Message:
  -----------
  `counter-*` properties computed value serialization depends on HashMap 
iteration order
https://bugs.webkit.org/show_bug.cgi?id=304808

Reviewed by Darin Adler.

Converts the `counter-*` properties off of their HashMap value representation
via new strong style types that use `FixedVector` to maintain the computed
values. For now, the HashMap is also maintained, but is now named to show that
it is the `used` representation.

To ensure the HashMap and computed value representations stay in sync, a
new CSSProperties.json entry was added, `render-style-setter-requires-did-set`
which causes the code generator to include a call to a `didSet{property name}`
function after setting the value on `Style::ComputedStyle`. For the `counter-*`
properties, these are used and call the new `updateUsedCounter*()` functions.

By converting to strong style types, we are able to remove the custom style
builder, style extractor and style interpolation code.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-computed.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-valid-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-increment-valid.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-computed.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-valid-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-reset-valid.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-computed-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-computed.html:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-valid-expected.txt:
* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/counter-set-valid.html:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/scripts/process-css-properties.py:
* 
Source/WebCore/css/scripts/test/TestCSSPropertiesResults/StyleComputedStyleProperties+SettersInlines.h:
* Source/WebCore/rendering/RenderCounter.cpp:
* Source/WebCore/rendering/RenderElement.cpp:
* Source/WebCore/rendering/RenderListItem.cpp:
* Source/WebCore/rendering/RenderListItem.h:
* Source/WebCore/rendering/style/CounterDirectives.h:
* Source/WebCore/rendering/style/RenderStyleBase+GettersInlines.h:
* Source/WebCore/rendering/style/RenderStyleBase.h:
* Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:
* Source/WebCore/rendering/style/StyleRareNonInheritedData.h:
* Source/WebCore/style/StyleBuilderCustom.h:
* Source/WebCore/style/StyleDifference.cpp:
* Source/WebCore/style/StyleExtractorCustom.h:
* Source/WebCore/style/StyleInterpolationWrappers.h:
* Source/WebCore/style/computed/StyleComputedStyleBase.cpp:
* Source/WebCore/style/computed/StyleComputedStyleBase.h:
* 
Source/WebCore/style/computed/StyleComputedStyleProperties+SettersCustomInlines.h:
* Source/WebCore/style/values/lists/StyleCounterIncrement.cpp: Added.
* Source/WebCore/style/values/lists/StyleCounterIncrement.h: Added.
* Source/WebCore/style/values/lists/StyleCounterReset.cpp: Added.
* Source/WebCore/style/values/lists/StyleCounterReset.h: Added.
* Source/WebCore/style/values/lists/StyleCounterSet.cpp: Added.
* Source/WebCore/style/values/lists/StyleCounterSet.h: Added.
* Tools/Scripts/webkitpy/style/checkers/jsonchecker.py:

Canonical link: https://commits.webkit.org/305086@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to