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

Reply via email to