[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