[webkit-changes] [WebKit/WebKit] 856140: Make '-webkit-background-size' a legacy shorthand

Aditya Keerthi noreply at github.com
Tue Sep 27 11:16:40 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 856140e9a06f431fae7c3df24443aa963ea8445a
      https://github.com/WebKit/WebKit/commit/856140e9a06f431fae7c3df24443aa963ea8445a
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2022-09-27 (Tue, 27 Sep 2022)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt
    M LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html
    M LayoutTests/fast/backgrounds/size/parsing-background-size-values-expected.txt
    M LayoutTests/fast/backgrounds/size/parsing-inherit-expected.txt
    M LayoutTests/fast/backgrounds/size/resources/parsing-background-size-values.js
    M LayoutTests/fast/backgrounds/size/resources/parsing-inherit.js
    M LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt
    M LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-332-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-001.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-002-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-002.html
    M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
    A LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt
    M LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt
    M LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
    M LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
    A LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt
    M LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
    M LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
    A LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt
    M LayoutTests/svg/css/getComputedStyle-basic-expected.txt
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/css/StyleProperties.cpp
    M Source/WebCore/css/parser/CSSPropertyParser.cpp

  Log Message:
  -----------
  Make '-webkit-background-size' a legacy shorthand
https://bugs.webkit.org/show_bug.cgi?id=243562
rdar://98151497

Reviewed by Tim Nguyen.

`background-size` and `-webkit-background-size` are a pair of properties that
share a computed style. `-webkit-background-size` differs from `background-size`
in the interpretation of a single value: `-webkit-background-size: l;` is
equivalent to `background-size: l l;`, whereas `background-size: l;` is
equivalent to `background-size: l auto;`.

Property pairs that share a computed style but differ in syntax should be
implemented as legacy shorthands.

Additionally, always serialize `background-size` and `-webkit-background-size`
as two values, so that values can be roundtripped between the prefixed and
unprefixed variant.

Spec: https://www.w3.org/TR/css-cascade-5/#aliasing

* LayoutTests/TestExpectations:

Remove expectations for a forms test that was unexpectedly setting
`-webkit-background-size`, as it was not a shorthand.

* LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
* LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
* LayoutTests/fast/backgrounds/size/parsing-background-size-values-expected.txt:
* LayoutTests/fast/backgrounds/size/parsing-inherit-expected.txt:
* LayoutTests/fast/backgrounds/size/resources/parsing-background-size-values.js:
* LayoutTests/fast/backgrounds/size/resources/parsing-inherit.js:
* LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt:
* LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:

Update test to use two-value syntax.

* LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-332-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-size-001.html:
* LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/background-size-computed.html:
* LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-002-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/quirks/unitless-length/excluded-properties-002.html:

Include an additional check for `1234px auto`, to avoid a false positive, as `background-size` is serialized to two values.

* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
* LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* LayoutTests/platform/ipad/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
* LayoutTests/svg/css/getComputedStyle-basic-expected.txt:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::fillSizeToCSSValue):

Return two values from `getComputedStyle` unless the value is "cover", "contain", or "auto".

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* Source/WebCore/css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::consumeBackgroundSize):

Always serialize `background-size` and `-webkit-background-size` as two values.

(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::CSSPropertyParser::parseShorthand):

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




More information about the webkit-changes mailing list