[webkit-changes] [WebKit/WebKit] 8105a8: [css-counter-styles] RenderListMarker, RenderCount...
Vitor Roriz
noreply at github.com
Tue May 28 14:32:30 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8105a859925ce565fd8953e8234578b8c49ac354
https://github.com/WebKit/WebKit/commit/8105a859925ce565fd8953e8234578b8c49ac354
Author: Vitor Roriz <vitor.roriz at apple.com>
Date: 2024-05-28 (Tue, 28 May 2024)
Changed paths:
M LayoutTests/TestExpectations
M Source/WTF/wtf/unicode/CharacterNames.h
M Source/WebCore/css/CSSCounterStyle.cpp
M Source/WebCore/css/CSSCounterStyle.h
M Source/WebCore/css/CSSCounterStyleDescriptors.cpp
M Source/WebCore/css/CSSCounterStyleDescriptors.h
M Source/WebCore/css/CSSCounterStyleRule.cpp
M Source/WebCore/css/CSSValueKeywords.in
M Source/WebCore/css/counterStyles.css
M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
M Source/WebCore/rendering/RenderCounter.cpp
M Source/WebCore/rendering/RenderListMarker.cpp
M Source/WebCore/rendering/style/ListStyleType.cpp
M Source/WebCore/rendering/style/ListStyleType.h
Log Message:
-----------
[css-counter-styles] RenderListMarker, RenderCounter should use CSSCounterStyle::text() to handle TextDirection
https://bugs.webkit.org/show_bug.cgi?id=256153
rdar://109014745
Reviewed by Matthieu Dubet and Tim Nguyen.
Before we can address the bug, we need a small refactoring on how we handle
disclosure-closed counter style:
With this patch, we will handle disclosure-closed as one of the special complex systems,
such that we can consider RTL context when calculating its text value.
We fail css/css-counter-styles/counter-style-at-rule/disclosure-styles.html for 2 different
reasons. Therefore, we need to fix it in 2 different points:
1. RenderListMarker: This class is used for rendering list markers for the general case.
It has custom code for hadling TextDirection for counter styles due to disclosure-closed
style. We can now delegate this to CSSCounterStyle::text by passing TextDirection information.
The custom code currently checks if the counter-style has a "disclosure-closed" identifier but
that won't work for "extends" systems. When an author extends a counter-style, it can give any
identifier name to it, but it should still act as the counter-style it is extending. Since this
is now handled by CSSCounterStyle itself, we no longer need the custom code.
2. RenderCounter: The class is used when rendering counters with the counter() function. These
counters can also be a list-style-type that is mapped to an existent counter-style. Currently we
don't handle TextDirection here, which breaks disclosure-closed style for the RTL case. Also here
we can delegate TextDirection processing by passing the element's direction to CSSCounterStyle::text().
* LayoutTests/TestExpectations:
* Source/WTF/wtf/unicode/CharacterNames.h:
* Source/WebCore/css/CSSCounterStyle.cpp:
(WebCore::CSSCounterStyle::counterForSystemDisclosureClosed):
(WebCore::CSSCounterStyle::initialRepresentation const):
(WebCore::CSSCounterStyle::fallbackText):
(WebCore::CSSCounterStyle::text):
(WebCore::CSSCounterStyle::isInRange const):
* Source/WebCore/css/CSSCounterStyle.h:
* Source/WebCore/css/CSSCounterStyleDescriptors.cpp:
(WebCore::CSSCounterStyleDescriptors::areSymbolsValidForSystem):
(WebCore::CSSCounterStyleDescriptors::systemCSSText const):
* Source/WebCore/css/CSSCounterStyleDescriptors.h:
* Source/WebCore/css/CSSCounterStyleRule.cpp:
(WebCore::toCounterStyleSystemEnum):
* Source/WebCore/css/CSSValueKeywords.in:
* Source/WebCore/css/counterStyles.css:
(@counter-style disclosure-closed):
* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeCounterStyleSystem):
* Source/WebCore/rendering/RenderCounter.cpp:
(WebCore::RenderCounter::originalText const):
* Source/WebCore/rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::textRun const):
(WebCore::RenderListMarker::updateContent):
* Source/WebCore/rendering/style/ListStyleType.cpp:
(WebCore::ListStyleType::isDisclosureClosed const): Deleted.
* Source/WebCore/rendering/style/ListStyleType.h:
Canonical link: https://commits.webkit.org/279404@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list