Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cde6b7653a3727f86ebd093f379c565e28af4fd2
https://github.com/WebKit/WebKit/commit/cde6b7653a3727f86ebd093f379c565e28af4fd2
Author: Kiet Ho <[email protected]>
Date: 2026-06-24 (Wed, 24 Jun 2026)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/fallback-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/fallback.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/system-syntax-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/system-syntax.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/page-rules-001-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/page-rules-001.html
M
LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/serialize-escape-identifiers-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/serialize-escape-identifiers.html
M Source/WebCore/css/CSSCounterStyleDescriptors.cpp
M Source/WebCore/css/CSSCounterStyleRule.cpp
M Source/WebCore/css/CSSFontPaletteValuesRule.cpp
M Source/WebCore/css/CSSKeyframesRule.cpp
M Source/WebCore/css/CSSPositionTryRule.cpp
M Source/WebCore/css/CSSPositionTryRule.h
M Source/WebCore/css/CSSPositionTryRule.idl
Log Message:
-----------
Serializations of various CSS at-rules do not escape identifiers tokens
rdar://178750383
https://bugs.webkit.org/show_bug.cgi?id=317193
Reviewed by Tim Nguyen.
CSS identifiers can contain special characters by escaping them using '\'.
For example, "foo{bar}" can be escaped to "foo\{bar\}" for use as a CSS
identifier. The tokenizer then unescapes "foo\{bar\}" in the CSS source code
into "foo{bar}". If this identifier is then serialized back into CSS
using .cssText, then the identifier should again be escaped.
>From code audit, the cssText implementation of some CSS at-rules don't
properly escape CSS identifiers. This patch fixes this by escaping
identifiers where needed. Additionally, this patch adds cssText tests
for every at-rule that accepts CSS identifiers.
Tests:
imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom.html
imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization.html
imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/fallback.html
imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/system-syntax.html
imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html
imported/w3c/web-platform-tests/css/css-page/parsing/page-rules-001.html
imported/w3c/web-platform-tests/css/css-syntax/serialize-escape-identifiers.html
*
LayoutTests/imported/w3c/web-platform-tests/css/css-anchor-position/at-position-try-cssom-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-conditional/container-queries/at-container-style-serialization.html:
- Import test cases from WPT
*
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/fallback-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/fallback.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/system-syntax-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-counter-styles/counter-style-at-rule/system-syntax.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/parsing/font-palette-values-valid.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/page-rules-001-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-page/parsing/page-rules-001.html:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/serialize-escape-identifiers-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-syntax/serialize-escape-identifiers.html:
- Import a test case (@media) from WPT
- Add test cases for @position-try, @counter-style and @page.
* Source/WebCore/css/CSSCounterStyleDescriptors.cpp:
(WebCore::CSSCounterStyleDescriptors::systemCSSText const):
(WebCore::CSSCounterStyleDescriptors::fallbackCSSText const):
* Source/WebCore/css/CSSCounterStyleRule.cpp:
(WebCore::CSSCounterStyleRule::cssText const):
* Source/WebCore/css/CSSFontPaletteValuesRule.cpp:
(WebCore::CSSFontPaletteValuesRule::cssText const):
* Source/WebCore/css/CSSKeyframesRule.cpp:
(WebCore::CSSKeyframesRule::cssText const):
* Source/WebCore/css/CSSPositionTryRule.cpp:
(WebCore::CSSPositionTryRule::name const):
* Source/WebCore/css/CSSPositionTryRule.h:
* Source/WebCore/css/CSSPositionTryRule.idl:
Canonical link: https://commits.webkit.org/315795@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications