[webkit-changes] [WebKit/WebKit] 092449: Non-RGB colors should retain calc() until style bu...

Commit Queue noreply at github.com
Mon Sep 9 19:01:53 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 09244934ad1538a0c8c80d11c14448b4bcbfa22e
      https://github.com/WebKit/WebKit/commit/09244934ad1538a0c8c80d11c14448b4bcbfa22e
  Author: Sam Weinig <sam at webkit.org>
  Date:   2024-09-09 (Mon, 09 Sep 2024)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-function-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-function.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-hsl-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-hsl.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-hwb.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-lab-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-lab.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-rgb-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-rgb.html
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/css/calc/CSSCalcValue.cpp
    M Source/WebCore/css/calc/CSSCalcValue.h
    M Source/WebCore/css/color/CSSAbsoluteColorResolver.h
    A Source/WebCore/css/color/CSSColorConversion+Normalize.h
    M Source/WebCore/css/color/CSSColorConversion+ToTypedColor.h
    M Source/WebCore/css/color/CSSColorDescriptors.h
    M Source/WebCore/css/color/CSSRelativeColorResolver.h
    M Source/WebCore/css/color/CSSUnresolvedAbsoluteColor.h
    M Source/WebCore/css/color/CSSUnresolvedRelativeColor.h
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+Color.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.cpp
    M Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.h

  Log Message:
  -----------
  Non-RGB colors should retain calc() until style building
https://bugs.webkit.org/show_bug.cgi?id=279374

Reviewed by Darin Adler.

CSS Color 4 was changed to require that non-RGB colors retain all
calc() values for the specified value representation.

Along with that change, all non-calc components should be normalized
to their number / canonical form as described in https://github.com/w3c/csswg-drafts/issues/10328.

* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-function-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-color-function.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-hsl.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-hwb.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-lab-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-lab.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-color/parsing/color-valid-rgb.html:
    - Updates tests with new calc() and normalization behavior.

* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    - Adds new file.

* Source/WebCore/css/color/CSSColorDescriptors.h:
    - Adds overloads of requiresConversionData() and containsUnevaluatedCalc() for the
      component bundles.
    - Adds allowEagerEvaluationOfResolvableCalc and Canonical type to each descriptor.
      Generally, Canonical will just be a self reference, except for RGBFunctionLegacy
      and HSLFunctionLegacy, which have their modern counterparts set as their canonical
      representation.

* Source/WebCore/css/color/CSSColorConversion+Normalize.h: Added.
* Source/WebCore/css/color/CSSColorConversion+ToTypedColor.h:
    - Refactors normalization to be two step. First normalize to Number, and then
      normalize that typed color. In practice, this is the same, since we can premultiply
      the normalization steps at compile time, but allows us to have normalizing to
      Number separated out for use in partial simplification

* Source/WebCore/css/calc/CSSCalcValue.cpp:
* Source/WebCore/css/calc/CSSCalcValue.h:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.cpp:
* Source/WebCore/css/parser/CSSPropertyParserConsumer+UnevaluatedCalc.h:
    - Rename Deprecated RawType accessors to use the NoConversionDataRequired suffix,
      as that what they are now being used for.

* Source/WebCore/css/color/CSSAbsoluteColorResolver.h:
* Source/WebCore/css/color/CSSRelativeColorResolver.h:
* Source/WebCore/css/color/CSSUnresolvedAbsoluteColor.h:
* Source/WebCore/css/color/CSSUnresolvedRelativeColor.h:
    - Call shared requiresConversionData() in CSSColorDescriptors.

* Source/WebCore/css/parser/CSSPropertyParserConsumer+Color.cpp:
    - Implement new spec normalization behavior for absolute colors.

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



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list