[webkit-changes] [WebKit/WebKit] c2222b: [css-content] Fix issues with CSS `content` comput...

Tim Nguyen noreply at github.com
Sat Dec 23 11:08:47 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: c2222b448f74ddeb8f97fe41999e243a10235dc1
      https://github.com/WebKit/WebKit/commit/c2222b448f74ddeb8f97fe41999e243a10235dc1
  Author: Tim Nguyen <ntim at apple.com>
  Date:   2023-12-23 (Sat, 23 Dec 2023)

  Changed paths:
    M LayoutTests/fast/css-generated-content/008.html
    A LayoutTests/fast/css-generated-content/013-expected.html
    A LayoutTests/fast/css-generated-content/016-expected.html
    M LayoutTests/fast/css-generated-content/016.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-invalid-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-invalid.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid.html
    R LayoutTests/platform/glib/fast/css-generated-content/013-expected.txt
    R LayoutTests/platform/glib/fast/css-generated-content/016-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed-expected.txt
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid-expected.txt
    R LayoutTests/platform/gtk/fast/css-generated-content/013-expected.png
    R LayoutTests/platform/gtk/fast/css-generated-content/016-expected.png
    R LayoutTests/platform/ios-simulator/fast/css-generated-content/013-expected.png
    R LayoutTests/platform/ios/fast/css-generated-content/013-expected.txt
    R LayoutTests/platform/ios/fast/css-generated-content/016-expected.txt
    R LayoutTests/platform/mac/fast/css-generated-content/013-expected.png
    R LayoutTests/platform/mac/fast/css-generated-content/013-expected.txt
    R LayoutTests/platform/mac/fast/css-generated-content/016-expected.png
    R LayoutTests/platform/mac/fast/css-generated-content/016-expected.txt
    R LayoutTests/platform/wincairo/fast/css-generated-content/013-expected.txt
    R LayoutTests/platform/wincairo/fast/css-generated-content/016-expected.txt
    M Source/WebCore/css/CSSCounterValue.cpp
    M Source/WebCore/css/CSSPrimitiveValue.cpp
    M Source/WebCore/css/CSSPrimitiveValue.h
    M Source/WebCore/css/CSSPrimitiveValueMappings.h
    M Source/WebCore/css/CSSUnits.cpp
    M Source/WebCore/css/CSSUnits.h
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp
    M Source/WebCore/rendering/style/RenderStyle.cpp

  Log Message:
  -----------
  [css-content] Fix issues with CSS `content` computed value serialization
https://bugs.webkit.org/show_bug.cgi?id=266828
rdar://120061551

Reviewed by Darin Adler.

There are 4 issues:
- alt text is not serialized as part of the computed style
- (no-)open-quote/close-quote content is dropped from serialization
- All variants of `counters()`/`counter()` are always serialized to single-argument `counter()`
- Consecutive strings are concatenated ("foo" "bar" becomes "foobar")

Also remove `CSSPrimitiveValue::createCounterName` and related code, since we now always use the more accurate `CSSCounterValue` to serialize counters.

* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-invalid-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-invalid.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid.html: Added.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-content/parsing/content-computed-expected.txt: Added.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-content/parsing/content-valid-expected.txt: Added.
Add WPTs to avoid regressing this bug.

* LayoutTests/fast/css-generated-content/008.html:
* LayoutTests/fast/css-generated-content/013-expected.html: Added.
* LayoutTests/fast/css-generated-content/016-expected.html: Added.
* LayoutTests/fast/css-generated-content/016.html:
* LayoutTests/platform/glib/fast/css-generated-content/013-expected.txt: Removed.
* LayoutTests/platform/glib/fast/css-generated-content/016-expected.txt: Removed.
* LayoutTests/platform/gtk/fast/css-generated-content/013-expected.png: Removed.
* LayoutTests/platform/gtk/fast/css-generated-content/016-expected.png: Removed.
* LayoutTests/platform/ios-simulator/fast/css-generated-content/013-expected.png: Removed.
* LayoutTests/platform/ios/fast/css-generated-content/013-expected.txt: Removed.
* LayoutTests/platform/ios/fast/css-generated-content/016-expected.txt: Removed.
* LayoutTests/platform/mac/fast/css-generated-content/013-expected.png: Removed.
* LayoutTests/platform/mac/fast/css-generated-content/013-expected.txt: Removed.
* LayoutTests/platform/mac/fast/css-generated-content/016-expected.png: Removed.
* LayoutTests/platform/mac/fast/css-generated-content/016-expected.txt: Removed.
* LayoutTests/platform/wincairo/fast/css-generated-content/013-expected.txt: Removed.
* LayoutTests/platform/wincairo/fast/css-generated-content/016-expected.txt: Removed.
Make these LayoutTests more robust, now that we no longer concatenate text nodes.

* Source/WebCore/css/CSSCounterValue.cpp:
(WebCore::CSSCounterValue::customCSSText const): Fix customCSSText to also detect the customIdent version of decimal.
* Source/WebCore/css/CSSPrimitiveValue.cpp: Remove CSS_COUNTER_NAME type
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::~CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::serializeInternal const):
(WebCore::CSSPrimitiveValue::equals const):
(WebCore::CSSPrimitiveValue::addDerivedHash const):
(WebCore::CSSPrimitiveValue::collectComputedStyleDependencies const):
(WebCore::CSSPrimitiveValue::createCounterName): Deleted.
* Source/WebCore/css/CSSPrimitiveValue.h: Remove CSS_COUNTER_NAME type
* Source/WebCore/css/CSSPrimitiveValueMappings.h: Add conversion for QuoteType
* Source/WebCore/css/CSSUnits.cpp: Remove CSS_COUNTER_NAME type
(WebCore::unitCategory):
(WebCore::operator<<):
* Source/WebCore/css/CSSUnits.h: Remove CSS_COUNTER_NAME type
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::contentToCSSValue): Handle quotes and fix handling of counters
* Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::hasDoubleValue): Remove CSS_COUNTER_NAME type
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setContent): Stop concatenating consecutive strings

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




More information about the webkit-changes mailing list