Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 11adcf008ef8a0287a435298802c45749dd17cc1
https://github.com/WebKit/WebKit/commit/11adcf008ef8a0287a435298802c45749dd17cc1
Author: Darin Adler <[email protected]>
Date: 2022-12-17 (Sat, 17 Dec 2022)
Changed paths:
M
LayoutTests/editing/pasteboard/copy-paste-inserts-clearing-div-expected.txt
M
LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt
M
LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt
M LayoutTests/fast/css/background-clip-text-expected.txt
M LayoutTests/fast/css/background-position-serialize-expected.txt
M LayoutTests/fast/css/border-shorthand-initialize-longhands-expected.txt
M LayoutTests/fast/css/longhand-overrides-shorthand-prefixing-expected.txt
M LayoutTests/fast/css/parsing-text-emphasis-expected.txt
M LayoutTests/fast/css/remove-shorthand-expected.txt
M LayoutTests/fast/css/shorthand-mismatched-list-crash-expected.txt
M LayoutTests/fast/css/transform-inline-style-expected.txt
M LayoutTests/fast/css/transform-inline-style-remove-expected.txt
M LayoutTests/fast/dom/background-shorthand-csstext-expected.txt
M LayoutTests/fast/masking/parsing-mask-expected.txt
M LayoutTests/fast/masking/parsing-webkit-mask-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/border-shorthand-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-position-valid-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/parsing/column-rule-shorthand-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-cssText-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/cssom/border-shorthand-serialization-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt
M
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt
M Source/WebCore/css/CSSProperties.json
M Source/WebCore/css/StyleProperties.cpp
M Source/WebCore/css/StyleProperties.h
M Source/WebCore/css/parser/CSSPropertyParser.cpp
M Source/WebCore/css/parser/CSSPropertyParser.h
Log Message:
-----------
Shorthands are still using "initial" for longhands that are set implicitly
https://bugs.webkit.org/show_bug.cgi?id=248913
rdar://problem/103092939
Reviewed by Sam Weinig.
This removes all the remaining cases that use "initial" for longhands, moving
to initial values.
Also, as a result we need to start serializing some properties based on
checking if longhands
have their initial values, not just use the implicit flag. That's because in
the case of layered
shorthands, we can no longer use the implicit flag; there is nothing that
stores those in the
layers. Before the special implicit initial value was used to work around that.
It's a good
direction to have done that for layered shorthands and for border, since we
plan to do that
universally; in another change soon we will finish the job.
I have additional removal and tidying, including removing the now unused
createImplicitInitialValue function entirely. But since this is already a large
change, holding
those for followup.
* LayoutTests/editing/pasteboard/copy-paste-inserts-clearing-div-expected.txt:
Updated for progression where we use the background shorthand, not
background-color.
*
LayoutTests/fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
*
LayoutTests/fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
* LayoutTests/fast/css/background-clip-text-expected.txt:
Expect more tests to pass.
* LayoutTests/fast/css/background-position-serialize-expected.txt: Progression
where we serialize
background shorthand instead of background-image and background-position
longhands.
* LayoutTests/fast/css/border-shorthand-initialize-longhands-expected.txt:
* LayoutTests/fast/css/longhand-overrides-shorthand-prefixing-expected.txt:
* LayoutTests/fast/css/parsing-text-emphasis-expected.txt:
Expect more tests to pass.
* LayoutTests/fast/css/remove-shorthand-expected.txt: Expect various shorthands
to be handled
correctly, such as adding border-image, handling the background shorthand, and
others.
* LayoutTests/fast/css/shorthand-mismatched-list-crash-expected.txt:
Expect test to pass.
* LayoutTests/fast/css/transform-inline-style-expected.txt: Don't expect
initial values "ease" and
"0s" to be serialized.
* LayoutTests/fast/css/transform-inline-style-remove-expected.txt: Ditto, also
initial values
"none" and "running".
* LayoutTests/fast/dom/background-shorthand-csstext-expected.txt:
* LayoutTests/fast/masking/parsing-mask-expected.txt:
* LayoutTests/fast/masking/parsing-webkit-mask-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/style-src/inline-style-allowed-while-cloning-objects.sub-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/parsing/border-shorthand-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-position-valid-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-multicol/parsing/column-rule-shorthand-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/css-variables/variable-cssText-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/cssom/border-shorthand-serialization-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/cssom/serialize-values-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/css/cssom/shorthand-values-expected.txt:
*
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-masking/parsing/mask-valid.sub-expected.txt:
Expect more tests to pass.
* Source/WebCore/css/CSSProperties.json: Added the border-image longhands to
the border shorthand,
because the border shorthand sets all these properties to initial values. Also
sort the offset
shorthand longhands in the order from the specification.
* Source/WebCore/css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const): If border-image shorthand
values don't all
have their initial values, then do not serialize the border shorthand.
(WebCore::StyleProperties::get2Values const): Rewrote more simply, removing the
isInitialValue
checks since commonShorthandChecks takes care of that now. Also use makeString
instead of
StringBuilder since we can and it's more efficient.
(WebCore::StyleProperties::get4Values const): Rewrote more simply, removing the
isInherited
and isInitialValue checks since commonShorthandChecks takes care of that now.
Also use makeString
instead of StringBuilder since we can and it's more efficient.
(WebCore::isValueID): Added.
(WebCore::isPair): Added.
(WebCore::StyleProperties::getLayeredShorthandValue const): Rewrote this to use
initial values
instead of relying on implicit flags to know what to not serialize. Added
various rules that were
not present in the old version that are now needed for round tripping and
omitting any value that
can be without changing the meaning.
(WebCore::StyleProperties::borderImagePropertyValue const): Serialize as "none"
when everything
has the implicit flag set.
(WebCore::StyleProperties::borderPropertyValue const): Rewrote for simplicitly.
Now checks for
initial values instead of depending on the implicit flag, using string
comparisons since that's
the easiest way to build on getCommonValue. Also use makeString instead of
StringBuilder.
(WebCore::StyleProperties::hasAllInitialValues const): Added.
(WebCore::canUseShorthandForLonghand): Allow use of the CSSPropertyBackground
shorthand,
which did not work well before getLayeredShorthandValue omitted initial values.
* Source/WebCore/css/StyleProperties.h: Added hasAllInitialValues.
* Source/WebCore/css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::addExpandedProperty): Renamed from
addExpandedPropertyForValue
and added an implicit flag.
(WebCore::CSSPropertyParser::addExpandedPropertyWithImplicitDefault): Added.
(WebCore::CSSPropertyParser::parseValueStart): Updated for addExpandedProperty
name change.
(WebCore::CSSPropertyParser::consumeCSSWideKeyword): Ditto.
(WebCore::initialValueForLonghand): Added.
(WebCore::initialCSSValueForLonghand): Added.
(WebCore::isNumber): Added.
(WebCore::pairValue): Added.
(WebCore::quadValue): Added.
(WebCore::isValueIDPair): Added.
(WebCore::isNumericQuad): Added.
(WebCore::isInitialValueForLonghand): Added.
(WebCore::initialValueTextForLonghand): Added.
(WebCore::CSSPropertyParser::consumeShorthandGreedily): Use
initialCSSValueForLonghand for
implicit defaults rather than the implicit initial value.
(WebCore::CSSPropertyParser::consumeBorderShorthand): Renamed from
consumeBorder. Do the calls
to addExpandedPropertyWithImplicitDefault here instead of in the caller,
continuing to treat
the defaults as implicit values for now.
(WebCore::CSSPropertyParser::consumeBorderImage): Fixed
CSSPropertyWebkitMaskBoxImageRepeat and
CSSPropertyBorderImageRepeat to use coalesced pairs of "stretch" for their
initial values
rather than a single "stretch".
(WebCore::CSSPropertyParser::consumeAnimationShorthand): Use
initialCSSValueForLonghand instead
of ComputedStyleExtractor::addValueForAnimationPropertyToList.
(WebCore::CSSPropertyParser::consumeBackgroundShorthand): Removed local
variable "implicit"
that was always false. Use initialCSSValueForLonghand for implicit defaults
rather than
implicit initial value.
(WebCore::CSSPropertyParser::parseShorthand): Use consumeBorderShorthand. For
CSSPropertyBorder
itself, also set all the border-image longhands to their initial values.
* Source/WebCore/css/parser/CSSPropertyParser.h: Updated the
addExpandedProperty functions.
Also added isInitialValueForLonghand and initialValueTextForLonghand, exported
by the parser
but used by the serialization code.
Canonical link: https://commits.webkit.org/258061@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes