Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2e779d5aabd5f1b5ca6c02e4c4e18230e65e0f50
      
https://github.com/WebKit/WebKit/commit/2e779d5aabd5f1b5ca6c02e4c4e18230e65e0f50
  Author: Darin Adler <[email protected]>
  Date:   2023-01-22 (Sun, 22 Jan 2023)

  Changed paths:
    M LayoutTests/css3/flexbox/css-properties-expected.txt
    M LayoutTests/css3/flexbox/css-properties.html
    M LayoutTests/fast/css/getPropertyValue-columns-expected.txt
    M LayoutTests/fast/css/getPropertyValue-columns.html
    M LayoutTests/fast/css/parse-border-image-repeat-null-crash-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-002-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-flow-valid.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-valid-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/parsing/column-rule-valid.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-valid-mandatory.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-parsing-valid.html
    M 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-002-expected.txt
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/css/StyleProperties.cpp
    M Source/WebCore/css/StyleProperties.h
    M Source/WebCore/css/parser/CSSPropertyParser.cpp

  Log Message:
  -----------
  Check against initial values instead of the implicit flag when serializing
https://bugs.webkit.org/show_bug.cgi?id=250733
rdar://104353481

Reviewed by Tim Nguyen and Oriol Brufau.

* LayoutTests/css3/flexbox/css-properties-expected.txt: Updated.
* LayoutTests/css3/flexbox/css-properties.html: Updated to expect proper 
serialization of the
flex-flow shorthand, omitting unnecessary longhand values as per CSS 
serializing rules.

* LayoutTests/fast/css/getPropertyValue-columns-expected.txt: Updated.
* LayoutTests/fast/css/getPropertyValue-columns.html: Updated to expect "auto" 
for the columns
shorthand, omitting the second "auto" longhand value as per CSS serializing 
rules.

* LayoutTests/fast/css/parse-border-image-repeat-null-crash-expected.txt: 
Updated to expect
unnecessary "stretch" longhand value to be omitted from border-image shorthand 
serialization.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-002-expected.txt:
Updated failing test lines for changes to the flex-flow shorthand serialization.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/parsing/flex-flow-valid.html:
Updated to expect serialization to omit unnceessary longhand values as per CSS 
serializing rules.
Specifically, expect "column" instead of "column nowrap".

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-lists/parsing/list-style-valid-expected.txt:
Updated since more tests pass.

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/parsing/column-rule-valid.html:
Updated to expect serialization to omit unnceessary longhand values as per CSS 
serializing rules.
Specifically, expect "hidden" instead of "currentcolor hidden medium".

* 
LayoutTests/imported/w3c/web-platform-tests/css/css-ui/parsing/outline-valid-mandatory.html:
Updated to allow outline shorthand serialization to serialize outline-color 
when the value
is entirely default. It would be nice if the specification could be explicit 
about which longhand
should be serialized in cases like this, so we didn't have to have so many 
possible correct
alternatives, since differences can lead to interoperability problems.

* 
LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt:
Updated since more tests pass.

* 
LayoutTests/imported/w3c/web-platform-tests/css/motion/parsing/offset-parsing-valid.html:
Updated to expect serialization to omit unnceessary longhand values as per CSS 
serializing rules.
Specifically, expect "none reverse" instead of "auto none reverse".

* 
LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/negative-overflow-002-expected.txt:
Updated failing test lines for changes to the flex-flow shorthand serialization.

* Source/WebCore/css/ComputedStyleExtractor.cpp:
(WebCore::isAuto): Added for use by valueForOffsetShorthand.
(WebCore::valueForOffsetShorthand): Add logic so we leave out items to follow 
CSS serializing
rules. Soon we should change our strategy for this for computed style so we can 
share the
shorthand logic with specified style -- I have figured out an approach and will 
do it soon -- but
this is needed now to avoid regressions in test results due to improvements in 
specified style
serialization of the offset shorthand.

* Source/WebCore/css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const): Moved flex, 
perspective-origin, and
transform-origin out of the list of shorthands use getShorthandValue, because 
their syntax does
not allow omitting just any longhand from the serialization, which is what that 
function does.
Use get2Values for place-content, place-items, and place-self instead of the old
getAlignmentShorthandValue function, matching our current parsing rules for all 
three. Stop using
getShorthandValue for the container shorthand, since container-type can be 
omitted, but
container-name cannot. Added serializing code for perspective-origin and 
transform-origin that
does not omit longhands.
(WebCore::StyleProperties::fontValue const): Added a check for calculated 
values for font-stretch
since we should not serialize the font shorthand if font-stretch is calculated. 
Spotted this
error by code inspection while thinking about correct handling of calculated 
values elsewhere.
(WebCore::StyleProperties::offsetValue const): Rewrote this to check values 
instead of checking
the implicit flag when deciding what to omit.
(WebCore::StyleProperties::getGridShorthandValue const): Deleted. This was 
unused.
(WebCore::StyleProperties::getShorthandValue const): Removed the separator 
argument, since there
is no caller that wants to omit longhands set to the initial value that also 
wants to use a
separator other than the space character. Use isInitialValueForLonghand instead 
of
isPropertyImplicit to decide which longhands to omit, and also serialize the 
first longhand if
all of them have initial values.
(WebCore::StyleProperties::getAlignmentShorthandValue const): Deleted. This was 
not correct
for any of the cases it was used for.
(WebCore::StyleProperties::borderImagePropertyValue const):  Use 
isInitialValueForLonghand instead
of isPropertyImplicit to decide which longhands to omit,

* Source/WebCore/css/StyleProperties.h: Removed getGridShorthandValue and
getAlignmentShorthandValue. Removed the separator argument to getShorthandValue.

* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeColumns): Removed now-unneeded workaround 
for shorthand
serialization; if both longhands are set to their defaults, we will still 
serialize as "auto".
(WebCore::initialValueForLonghand): Added initial values for lots more longhand 
properties.
Many of these are probably not needed. At one point I thought I needed more, 
and it seems OK to
have this list be more comprehensive than it needs to be.
(WebCore::isInitialValueForLonghand): Added logic for offset-rotate, which has 
an initial value
of "auto", but the parser turns that into a CSSOffsetRotateValue.
(WebCore::initialValueTextForLonghand): Added support for additional initial 
values that can
now be returned by initialValueForLonghand.

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to