[webkit-changes] [WebKit/WebKit] 8913e9: Update CSS Color parsing and serialization to matc...

Sam Weinig noreply at github.com
Tue Sep 20 12:04:47 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8913e90d9b69466796a2c4c7114f425e95bfa964
      https://github.com/WebKit/WebKit/commit/8913e90d9b69466796a2c4c7114f425e95bfa964
  Author: Sam Weinig <weinig at apple.com>
  Date:   2022-09-20 (Tue, 20 Sep 2022)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/animation/color-interpolation-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-contrast-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-contrast-valid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mixed-num-pct-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-invalid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp
    M Source/WebCore/platform/graphics/ColorConversion.cpp
    M Source/WebCore/platform/graphics/ColorSerialization.cpp

  Log Message:
  -----------
  Update CSS Color parsing and serialization to match the current spec
https://bugs.webkit.org/show_bug.cgi?id=245276

Reviewed by Darin Adler.

* LayoutTests/imported/w3c/web-platform-tests/css/css-color/animation/color-interpolation-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-contrast-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-contrast-valid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-mixed-num-pct-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-invalid-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
Update test results. Some of these now report as failing, but the tests are incorrect and need
updating in WPT.

* Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::normalizeLightnessPercent):
(WebCore::CSSPropertyParserHelpers::normalizeABPercent):
(WebCore::CSSPropertyParserHelpers::normalizeChromaPercent):
(WebCore::CSSPropertyParserHelpers::normalizeXYZPercent):
(WebCore::CSSPropertyParserHelpers::normalizeRGBPercent):
Helpers to implement the percent scaling now required by the spec.

(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
Update parsing to support both numeric and percent for non-hue components.

* Source/WebCore/platform/graphics/ColorConversion.cpp:
(WebCore::OKLab<float>>::convert):
(WebCore::WhitePoint::D65>>::convert):
Remove now unneeded percent transforms since we now store
lightness in its numeric form.

* Source/WebCore/platform/graphics/ColorSerialization.cpp:
(WebCore::serializationOfLabFamilyForCSS):
(WebCore::serializationForCSS):
(WebCore::percentageComponent): Deleted.
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::StringTypeAdapter): Deleted.
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::length const): Deleted.
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::is8Bit const): Deleted.
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::writeTo const): Deleted.
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::buffer const): Deleted.
Update serialization to use the numeric form for lightness in lab/lch/oklab/oklch.
The whole family now has the same serialization scheme so can be hoisted into
a new helper, serializationOfLabFamilyForCSS.

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




More information about the webkit-changes mailing list