Title: [266660] trunk
Revision
266660
Author
[email protected]
Date
2020-09-05 08:45:27 -0700 (Sat, 05 Sep 2020)

Log Message

CSS revert should serialize as "revert", not "Revert"
https://bugs.webkit.org/show_bug.cgi?id=216187

Reviewed by Anders Carlsson.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt: Expect
one additional test to pass instead of fail.

* web-platform-tests/css/css-values/unset-value-storage-expected.txt: Expect pass instead of fail.
* web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Ditto.

Source/WebCore:

Tests: imported/w3c/web-platform-tests/css/css-values/unset-value-storage.html
       imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html

* css/CSSRevertValue.cpp:
(WebCore::CSSRevertValue::customCSSText const): Use lowercase "revert".

* css/StyleProperties.cpp:
(WebCore::isCSSWideValueKeyword): Added. Replaces isInitialOrInherit.
(WebCore::StyleProperties::fontValue const): Use isCSSWideValueKeyword rather
than isInitialOrInherit.
(WebCore::StyleProperties::getLayeredShorthandValue const): Ditto. Also
rearranged thee function a bit and shortened some excessively wordy code.
(WebCore::StyleProperties::getShorthandValue const): Ditto.
(WebCore::StyleProperties::borderPropertyValue const): Ditto.
(WebCore::StyleProperties::asText const): Added code to properly handle the
case where both background-position/repeat-x and -y are the same CSS-wide
value keyword as well as cases involving "initial". The general case above
handles these properly, but background-position/repeat have their own code,
which needed to repeat some of the same logic.
(WebCore::StyleProperties::PropertyReference::cssText const): Use makeString
instead of StringBuilder.

* dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged): Removed incorrect code that
detached the CSS object model style wrapper from the element when the style
attribute was removed. This was incorrect behavior; it should stay attached.
This fix happens to be tested by the same file as the "revert"/"Revert" fix
and I wanted the whole file to pass, not just one more test.

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::addBlockStyle): Rewrote for simplicity, but
also so this works properly when inlineStyle is non-null but empty. This case
arises in one test now because of the change to StyledElement above.

LayoutTests:

* editing/spelling/spelling-dots-position-expected.html: Remove some unneeded style text.
Caught my eye because it uses "background-position: initial".

* fast/css/background-position-serialize-expected.txt: Updated for a progression.
We now correctly omit "background-position: initial initial; background-repeat: initial initial;".

* platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
* platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
* platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
These were only needed because the failure strings depended on the exact set of attributes.
But the test passes now.

Modified Paths

Removed Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (266659 => 266660)


--- trunk/LayoutTests/ChangeLog	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/ChangeLog	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,3 +1,22 @@
+2020-09-05  Darin Adler  <[email protected]>
+
+        CSS revert should serialize as "revert", not "Revert"
+        https://bugs.webkit.org/show_bug.cgi?id=216187
+
+        Reviewed by Anders Carlsson.
+
+        * editing/spelling/spelling-dots-position-expected.html: Remove some unneeded style text.
+        Caught my eye because it uses "background-position: initial".
+
+        * fast/css/background-position-serialize-expected.txt: Updated for a progression.
+        We now correctly omit "background-position: initial initial; background-repeat: initial initial;".
+
+        * platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
+        * platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
+        * platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Removed.
+        These were only needed because the failure strings depended on the exact set of attributes.
+        But the test passes now.
+
 2020-09-05  Commit Queue  <[email protected]>
 
         Unreviewed, reverting r266614 and r266657.

Modified: trunk/LayoutTests/editing/spelling/spelling-dots-position-expected.html (266659 => 266660)


--- trunk/LayoutTests/editing/spelling/spelling-dots-position-expected.html	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/editing/spelling/spelling-dots-position-expected.html	2020-09-05 15:45:27 UTC (rev 266660)
@@ -10,9 +10,9 @@
 </head>
 <body>
 <div>There should be no misspelling dots visible below (because they're covered up by a div)</div>
-<div contenteditable="" id="root" class="editing">wafewerewdfea&nbsp;<span id="test"></span><div style="background-color: black; width: 1px; height: 150px; display: inline-block; background-position: initial initial; background-repeat: initial initial;"></div></div>
+<div contenteditable="" id="root" class="editing">wafewerewdfea&nbsp;<span id="test"></span><div style="background-color: black; width: 1px; height: 150px; display: inline-block"></div></div>
 <script>
     runEditingTest();
-</script><div style="background-color: black; position: absolute; left: 8px; top: 179.9726px; width: 237px; height: 4.7689200000000005px; background-position: initial initial; background-repeat: initial initial;"></div>
+</script><div style="background-color: black; position: absolute; left: 8px; top: 179.9726px; width: 237px; height: 4.76892px"></div>
 </body>
 </html>

Modified: trunk/LayoutTests/fast/css/background-position-serialize-expected.txt (266659 => 266660)


--- trunk/LayoutTests/fast/css/background-position-serialize-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/fast/css/background-position-serialize-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -72,4 +72,4 @@
 t.setAttribute('style', 'background: url(about:blank) 80% 80%;');
 t.style.backgroundPositionY = '50px'
 style.cssText =
-background-image: url("about:blank"); background-position: 80% 50px; background-repeat: initial initial;
+background-image: url("about:blank"); background-position: 80% 50px;

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (266659 => 266660)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,5 +1,18 @@
 2020-09-05  Darin Adler  <[email protected]>
 
+        CSS revert should serialize as "revert", not "Revert"
+        https://bugs.webkit.org/show_bug.cgi?id=216187
+
+        Reviewed by Anders Carlsson.
+
+        * web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt: Expect
+        one additional test to pass instead of fail.
+
+        * web-platform-tests/css/css-values/unset-value-storage-expected.txt: Expect pass instead of fail.
+        * web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt: Ditto.
+
+2020-09-05  Darin Adler  <[email protected]>
+
         Implement serialization of CSSPropertyGap
         https://bugs.webkit.org/show_bug.cgi?id=216210
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt (266659 => 266660)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-color-adjust/parsing/color-scheme-valid-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -15,7 +15,7 @@
 PASS e.style['color-scheme'] = "inherit" should set the property value 
 PASS e.style['color-scheme'] = "initial" should set the property value 
 PASS e.style['color-scheme'] = "unset" should set the property value 
-FAIL e.style['color-scheme'] = "revert" should set the property value assert_equals: serialization should be canonical expected "revert" but got "Revert"
+PASS e.style['color-scheme'] = "revert" should set the property value 
 PASS e.style['color-scheme'] = "only" should set the property value 
 FAIL e.style['color-scheme'] = "only only" should set the property value assert_not_equals: property should be set got disallowed value ""
 PASS e.style['color-scheme'] = "only light dark" should set the property value 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/unset-value-storage-expected.txt (266659 => 266660)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/unset-value-storage-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/unset-value-storage-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,3 +1,3 @@
 
-FAIL Storage of "unset" value assert_equals: border is expected to be "unset" expected "unset" but got "unset unset unset"
+PASS Storage of "unset" value 
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt (266659 => 266660)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,9 +1,9 @@
 
 PASS Style attribute should create CSS declaration block based on its content 
-FAIL Changes to style attribute should reflect on CSS declaration block assert_equals: CSS declaration block after removing the style attribute expected "" but got "z-index: 21;"
+PASS Changes to style attribute should reflect on CSS declaration block 
 PASS Changes to CSS declaration block should reflect on style attribute 
 PASS Changes to CSS declaration block should queue mutation record for style attribute 
 PASS Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record 
 PASS Changes to CSS declaration block after a base URL change 
-FAIL Expansion of all:unset and all:revert treated identically assert_equals: expected "color: unset; color-scheme: unset; display: unset; font-family: unset; font-feature-settings: unset; font-optical-sizing: unset; font-size: unset; font-stretch: unset; font-style: unset; font-synthesis: unset; font-variant-alternates: unset; font-variant-caps: unset; font-variant-east-asian: unset; font-variant-ligatures: unset; font-variant-numeric: unset; font-variant-position: unset; font-variation-settings: unset; font-weight: unset; text-rendering: unset; writing-mode: unset; zoom: unset; -webkit-font-kerning: unset; -webkit-font-smoothing: unset; -webkit-locale: unset; -webkit-text-orientation: unset; -webkit-text-size-adjust: unset; -webkit-text-zoom: unset; align-content: unset; align-items: unset; align-self: unset; alignment-baseline: unset; alt: unset; animation: unset unset unset unset unset unset unset unset; background-attachment: unset; background-blend-mode: unset
 ; background-clip: unset; background-color: unset; background-image: unset; background-origin: unset; background-size: unset; baseline-shift: unset; block-size: unset; border-block-end-color: unset; border-block-end-style: unset; border-block-end-width: unset; border-block-start-color: unset; border-block-start-style: unset; border-block-start-width: unset; border: unset unset unset; border-bottom-right-radius: unset; border-collapse: unset; border-image-outset: unset; border-image-repeat: unset; border-image-slice: unset; border-image-source: unset; border-image-width: unset; border-inline-end-color: unset; border-inline-end-style: unset; border-inline-end-width: unset; border-inline-start-color: unset; border-inline-start-style: unset; border-inline-start-width: unset; border-top-left-radius: unset; border-top-right-radius: unset; bottom: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; buffered-rendering: unset; caption-si
 de: unset; caret-color: unset; clear: unset; clip: unset; clip-path: unset; clip-rule: unset; color-interpolation: unset; color-interpolation-filters: unset; color-profile: unset; color-rendering: unset; column-count: unset; column-fill: unset; column-gap: unset; column-rule-color: unset; column-rule-style: unset; column-rule-width: unset; column-span: unset; column-width: unset; content: unset; counter-increment: unset; counter-reset: unset; cursor: unset; cx: unset; cy: unset; dominant-baseline: unset; empty-cells: unset; enable-background: unset; fill: unset; fill-opacity: unset; fill-rule: unset; filter: unset; flex: unset unset unset; flex-flow: unset unset; float: unset; flood-color: unset; flood-opacity: unset; font-display: unset; glyph-orientation-horizontal: unset; glyph-orientation-vertical: unset; grid-auto-columns: unset; grid-auto-flow: unset; grid-auto-rows: unset; grid-column-end: unset; grid-column-start: unset; grid-row-end: unset; grid-row-start: unset; grid-templ
 ate-areas: unset; grid-template-columns: unset; grid-template-rows: unset; hanging-punctuation: unset; height: unset; image-orientation: unset; image-rendering: unset; inline-size: unset; isolation: unset; justify-content: unset; justify-items: unset; justify-self: unset; kerning: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; line-height: unset; list-style: unset unset unset; margin-block-end: unset; margin-block-start: unset; margin: unset; margin-inline-end: unset; margin-inline-start: unset; marker-end: unset; marker-mid: unset; marker-start: unset; mask: unset; mask-type: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; opacity: unset; order: unset; orphans: unset; outline: unset unset unset; outline-offset: unset; overflow-wrap: unset; overflow: unset
 ; padding-block-end: unset; padding-block-start: unset; padding: unset; padding-inline-end: unset; padding-inline-start: unset; page: unset; paint-order: unset; perspective: unset; perspective-origin: unset unset; pointer-events: unset; position: unset; quotes: unset; r: unset; resize: unset; right: unset; row-gap: unset; rx: unset; ry: unset; scroll-behavior: unset; scroll-padding: unset; scroll-snap-align: unset; scroll-snap-margin: unset; scroll-snap-type: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; speak-as: unset; src: unset; stop-color: unset; stop-opacity: unset; stroke: unset; stroke-color: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; tab-size: unset; table-layout: unset; text-align: unset; text-anchor: unset; text-decoration: unset; text-decoration-color: unset; text-decorat
 ion-line: unset; text-decoration-skip: unset; text-decoration-style: unset; text-decoration-thickness: unset; text-indent: unset; text-overflow: unset; text-shadow: unset; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: unset; touch-action: unset; transform: unset; transform-box: unset; transform-origin: unset unset unset; transform-style: unset; transition: unset unset unset unset; unicode-range: unset; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: unset; widows: unset; width: unset; will-change: unset; word-break: unset; word-spacing: unset; word-wrap: unset; x: unset; y: unset; z-index: unset; -apple-color-filter: unset; -apple-pay-button-style: unset; -apple-pay-button-type: unset; -apple-trailing-word: unset; -internal-text-autosizing-status: unset; -webkit-appearance: unset; -webkit-aspect-ratio: unset; -webkit-backdrop-filter: unset; -webkit-backface-visibility: unset; -webkit-background-clip: unset; -we
 bkit-background-composite: unset; -webkit-background-origin: unset; -webkit-background-size: unset; -webkit-border-fit: unset; border-spacing: unset; -webkit-border-image: unset; -webkit-box-align: unset; -webkit-box-decoration-break: unset; -webkit-box-direction: unset; -webkit-box-flex: unset; -webkit-box-flex-group: unset; -webkit-box-lines: unset; -webkit-box-ordinal-group: unset; -webkit-box-orient: unset; -webkit-box-pack: unset; -webkit-box-reflect: unset; -webkit-box-shadow: unset; -webkit-column-axis: unset; -webkit-column-progression: unset; -webkit-cursor-visibility: unset; -webkit-font-size-delta: unset; -webkit-hyphenate-character: unset; -webkit-hyphenate-limit-after: unset; -webkit-hyphenate-limit-before: unset; -webkit-hyphenate-limit-lines: unset; -webkit-hyphens: unset; -webkit-initial-letter: unset; -webkit-line-align: unset; -webkit-line-box-contain: unset; -webkit-line-clamp: unset; -webkit-line-grid: unset; -webkit-line-snap: unset; -webkit-margin-after-collaps
 e: unset; -webkit-margin-before-collapse: unset; -webkit-margin-bottom-collapse: unset; -webkit-margin-top-collapse: unset; -webkit-marquee-direction: unset; -webkit-marquee-increment: unset; -webkit-marquee-repetition: unset; -webkit-marquee-speed: unset; -webkit-marquee-style: unset; -webkit-mask-box-image: unset; -webkit-mask-box-image-outset: unset; -webkit-mask-box-image-repeat: unset; -webkit-mask-box-image-slice: unset; -webkit-mask-box-image-source: unset; -webkit-mask-box-image-width: unset; -webkit-mask: unset unset unset unset / unset unset unset unset unset; -webkit-mask-composite: unset; -webkit-mask-size: unset; -webkit-mask-source-type: unset; -webkit-nbsp-mode: unset; -webkit-print-color-adjust: unset; -webkit-rtl-ordering: unset; -webkit-ruby-position: unset; -webkit-text-combine: unset; -webkit-text-decorations-in-effect: unset; -webkit-text-emphasis-color: unset; -webkit-text-emphasis-position: unset; -webkit-text-emphasis-style: unset; -webkit-text-fill-color: un
 set; -webkit-text-security: unset; -webkit-text-stroke-color: unset; -webkit-text-stroke-width: unset; -webkit-transform-style: unset; -webkit-user-drag: unset; -webkit-user-modify: unset; -webkit-user-select: unset; border-bottom-left-radius: 1px; background-position: unset unset; background-repeat: unset unset;" but got "color: Revert; color-scheme: Revert; display: Revert; font-family: Revert; font-feature-settings: Revert; font-optical-sizing: Revert; font-size: Revert; font-stretch: Revert; font-style: Revert; font-synthesis: Revert; font-variant-alternates: Revert; font-variant-caps: Revert; font-variant-east-asian: Revert; font-variant-ligatures: Revert; font-variant-numeric: Revert; font-variant-position: Revert; font-variation-settings: Revert; font-weight: Revert; text-rendering: Revert; writing-mode: Revert; zoom: Revert; -webkit-font-kerning: Revert; -webkit-font-smoothing: Revert; -webkit-locale: Revert; -webkit-text-orientation: Revert; -webkit-text-size-adju
 st: Revert; -webkit-text-zoom: Revert; align-content: Revert; align-items: Revert; align-self: Revert; alignment-baseline: Revert; alt: Revert; animation: Revert Revert Revert Revert Revert Revert Revert Revert; background-attachment: Revert; background-blend-mode: Revert; background-clip: Revert; background-color: Revert; background-image: Revert; background-origin: Revert; background-size: Revert; baseline-shift: Revert; block-size: Revert; border-block-end-color: Revert; border-block-end-style: Revert; border-block-end-width: Revert; border-block-start-color: Revert; border-block-start-style: Revert; border-block-start-width: Revert; border: Revert Revert Revert; border-bottom-right-radius: Revert; border-collapse: Revert; border-image-outset: Revert; border-image-repeat: Revert; border-image-slice: Revert; border-image-source: Revert; border-image-width: Revert; border-inline-end-color: Revert; border-inline-end-style: Revert; border-inline-end-width: Revert; border-inline-start
 -color: Revert; border-inline-start-style: Revert; border-inline-start-width: Revert; border-top-left-radius: Revert; border-top-right-radius: Revert; bottom: Revert; box-shadow: Revert; box-sizing: Revert; break-after: Revert; break-before: Revert; break-inside: Revert; buffered-rendering: Revert; caption-side: Revert; caret-color: Revert; clear: Revert; clip: Revert; clip-path: Revert; clip-rule: Revert; color-interpolation: Revert; color-interpolation-filters: Revert; color-profile: Revert; color-rendering: Revert; column-count: Revert; column-fill: Revert; column-gap: Revert; column-rule-color: Revert; column-rule-style: Revert; column-rule-width: Revert; column-span: Revert; column-width: Revert; content: Revert; counter-increment: Revert; counter-reset: Revert; cursor: Revert; cx: Revert; cy: Revert; dominant-baseline: Revert; empty-cells: Revert; enable-background: Revert; fill: Revert; fill-opacity: Revert; fill-rule: Revert; filter: Revert; flex: Revert Revert Revert; flex-
 flow: Revert Revert; float: Revert; flood-color: Revert; flood-opacity: Revert; font-display: Revert; glyph-orientation-horizontal: Revert; glyph-orientation-vertical: Revert; grid-auto-columns: Revert; grid-auto-flow: Revert; grid-auto-rows: Revert; grid-column-end: Revert; grid-column-start: Revert; grid-row-end: Revert; grid-row-start: Revert; grid-template-areas: Revert; grid-template-columns: Revert; grid-template-rows: Revert; hanging-punctuation: Revert; height: Revert; image-orientation: Revert; image-rendering: Revert; inline-size: Revert; isolation: Revert; justify-content: Revert; justify-items: Revert; justify-self: Revert; kerning: Revert; left: Revert; letter-spacing: Revert; lighting-color: Revert; line-break: Revert; line-height: Revert; list-style: Revert Revert Revert; margin-block-end: Revert; margin-block-start: Revert; margin: Revert; margin-inline-end: Revert; margin-inline-start: Revert; marker-end: Revert; marker-mid: Revert; marker-start: Revert; mask: Rever
 t; mask-type: Revert; max-block-size: Revert; max-height: Revert; max-inline-size: Revert; max-width: Revert; min-block-size: Revert; min-height: Revert; min-inline-size: Revert; min-width: Revert; mix-blend-mode: Revert; object-fit: Revert; object-position: Revert; opacity: Revert; order: Revert; orphans: Revert; outline: Revert Revert Revert; outline-offset: Revert; overflow-wrap: Revert; overflow: Revert; padding-block-end: Revert; padding-block-start: Revert; padding: Revert; padding-inline-end: Revert; padding-inline-start: Revert; page: Revert; paint-order: Revert; perspective: Revert; perspective-origin: Revert Revert; pointer-events: Revert; position: Revert; quotes: Revert; r: Revert; resize: Revert; right: Revert; row-gap: Revert; rx: Revert; ry: Revert; scroll-behavior: Revert; scroll-padding: Revert; scroll-snap-align: Revert; scroll-snap-margin: Revert; scroll-snap-type: Revert; shape-image-threshold: Revert; shape-margin: Revert; shape-outside: Revert; shape-rendering:
  Revert; size: Revert; speak-as: Revert; src: Revert; stop-color: Revert; stop-opacity: Revert; stroke: Revert; stroke-color: Revert; stroke-dasharray: Revert; stroke-dashoffset: Revert; stroke-linecap: Revert; stroke-linejoin: Revert; stroke-miterlimit: Revert; stroke-opacity: Revert; stroke-width: Revert; tab-size: Revert; table-layout: Revert; text-align: Revert; text-anchor: Revert; text-decoration: Revert; text-decoration-color: Revert; text-decoration-line: Revert; text-decoration-skip: Revert; text-decoration-style: Revert; text-decoration-thickness: Revert; text-indent: Revert; text-overflow: Revert; text-shadow: Revert; text-transform: Revert; text-underline-offset: Revert; text-underline-position: Revert; top: Revert; touch-action: Revert; transform: Revert; transform-box: Revert; transform-origin: Revert Revert Revert; transform-style: Revert; transition: Revert Revert Revert Revert; unicode-range: Revert; vector-effect: Revert; vertical-align: Revert; visibility: Revert;
  white-space: Revert; widows: Revert; width: Revert; will-change: Revert; word-break: Revert; word-spacing: Revert; word-wrap: Revert; x: Revert; y: Revert; z-index: Revert; -apple-color-filter: Revert; -apple-pay-button-style: Revert; -apple-pay-button-type: Revert; -apple-trailing-word: Revert; -internal-text-autosizing-status: Revert; -webkit-appearance: Revert; -webkit-aspect-ratio: Revert; -webkit-backdrop-filter: Revert; -webkit-backface-visibility: Revert; -webkit-background-clip: Revert; -webkit-background-composite: Revert; -webkit-background-origin: Revert; -webkit-background-size: Revert; -webkit-border-fit: Revert; border-spacing: Revert; -webkit-border-image: Revert; -webkit-box-align: Revert; -webkit-box-decoration-break: Revert; -webkit-box-direction: Revert; -webkit-box-flex: Revert; -webkit-box-flex-group: Revert; -webkit-box-lines: Revert; -webkit-box-ordinal-group: Revert; -webkit-box-orient: Revert; -webkit-box-pack: Revert; -webkit-box-reflect: Revert; -webkit-b
 ox-shadow: Revert; -webkit-column-axis: Revert; -webkit-column-progression: Revert; -webkit-cursor-visibility: Revert; -webkit-font-size-delta: Revert; -webkit-hyphenate-character: Revert; -webkit-hyphenate-limit-after: Revert; -webkit-hyphenate-limit-before: Revert; -webkit-hyphenate-limit-lines: Revert; -webkit-hyphens: Revert; -webkit-initial-letter: Revert; -webkit-line-align: Revert; -webkit-line-box-contain: Revert; -webkit-line-clamp: Revert; -webkit-line-grid: Revert; -webkit-line-snap: Revert; -webkit-margin-after-collapse: Revert; -webkit-margin-before-collapse: Revert; -webkit-margin-bottom-collapse: Revert; -webkit-margin-top-collapse: Revert; -webkit-marquee-direction: Revert; -webkit-marquee-increment: Revert; -webkit-marquee-repetition: Revert; -webkit-marquee-speed: Revert; -webkit-marquee-style: Revert; -webkit-mask-box-image: Revert; -webkit-mask-box-image-outset: Revert; -webkit-mask-box-image-repeat: Revert; -webkit-mask-box-image-slice: Revert; -webkit-mask-box-
 image-source: Revert; -webkit-mask-box-image-width: Revert; -webkit-mask: Revert Revert Revert Revert / Revert Revert Revert Revert Revert; -webkit-mask-composite: Revert; -webkit-mask-size: Revert; -webkit-mask-source-type: Revert; -webkit-nbsp-mode: Revert; -webkit-print-color-adjust: Revert; -webkit-rtl-ordering: Revert; -webkit-ruby-position: Revert; -webkit-text-combine: Revert; -webkit-text-decorations-in-effect: Revert; -webkit-text-emphasis-color: Revert; -webkit-text-emphasis-position: Revert; -webkit-text-emphasis-style: Revert; -webkit-text-fill-color: Revert; -webkit-text-security: Revert; -webkit-text-stroke-color: Revert; -webkit-text-stroke-width: Revert; -webkit-transform-style: Revert; -webkit-user-drag: Revert; -webkit-user-modify: Revert; -webkit-user-select: Revert; border-bottom-left-radius: 1px; background-position: Revert Revert; background-repeat: Revert Revert;"
+PASS Expansion of all:unset and all:revert treated identically 
 

Deleted: trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt (266659 => 266660)


--- trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,9 +0,0 @@
-
-PASS Style attribute should create CSS declaration block based on its content 
-FAIL Changes to style attribute should reflect on CSS declaration block assert_equals: CSS declaration block after removing the style attribute expected "" but got "z-index: 21;"
-PASS Changes to CSS declaration block should reflect on style attribute 
-PASS Changes to CSS declaration block should queue mutation record for style attribute 
-PASS Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record 
-PASS Changes to CSS declaration block after a base URL change 
-FAIL Expansion of all:unset and all:revert treated identically assert_equals: expected "color: unset; color-scheme: unset; display: unset; font-family: unset; font-feature-settings: unset; font-optical-sizing: unset; font-size: unset; font-stretch: unset; font-style: unset; font-synthesis: unset; font-variant-alternates: unset; font-variant-caps: unset; font-variant-east-asian: unset; font-variant-ligatures: unset; font-variant-numeric: unset; font-variant-position: unset; font-variation-settings: unset; font-weight: unset; text-rendering: unset; writing-mode: unset; zoom: unset; -webkit-font-kerning: unset; -webkit-font-smoothing: unset; -webkit-locale: unset; -webkit-text-orientation: unset; -webkit-text-zoom: unset; align-content: unset; align-items: unset; align-self: unset; alignment-baseline: unset; alt: unset; animation: unset unset unset unset unset unset unset unset; background-attachment: unset; background-blend-mode: unset; background-clip: unset; background-color: u
 nset; background-image: unset; background-origin: unset; background-size: unset; baseline-shift: unset; block-size: unset; border-block-end-color: unset; border-block-end-style: unset; border-block-end-width: unset; border-block-start-color: unset; border-block-start-style: unset; border-block-start-width: unset; border: unset unset unset; border-bottom-right-radius: unset; border-collapse: unset; border-image-outset: unset; border-image-repeat: unset; border-image-slice: unset; border-image-source: unset; border-image-width: unset; border-inline-end-color: unset; border-inline-end-style: unset; border-inline-end-width: unset; border-inline-start-color: unset; border-inline-start-style: unset; border-inline-start-width: unset; border-top-left-radius: unset; border-top-right-radius: unset; bottom: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; buffered-rendering: unset; caption-side: unset; caret-color: unset; clear: unset; 
 clip: unset; clip-path: unset; clip-rule: unset; color-interpolation: unset; color-interpolation-filters: unset; color-profile: unset; color-rendering: unset; column-count: unset; column-fill: unset; column-gap: unset; column-rule-color: unset; column-rule-style: unset; column-rule-width: unset; column-span: unset; column-width: unset; content: unset; counter-increment: unset; counter-reset: unset; cursor: unset; cx: unset; cy: unset; dominant-baseline: unset; empty-cells: unset; enable-background: unset; fill: unset; fill-opacity: unset; fill-rule: unset; filter: unset; flex: unset unset unset; flex-flow: unset unset; float: unset; flood-color: unset; flood-opacity: unset; font-display: unset; glyph-orientation-horizontal: unset; glyph-orientation-vertical: unset; grid-auto-columns: unset; grid-auto-flow: unset; grid-auto-rows: unset; grid-column-end: unset; grid-column-start: unset; grid-row-end: unset; grid-row-start: unset; grid-template-areas: unset; grid-template-columns: unse
 t; grid-template-rows: unset; hanging-punctuation: unset; height: unset; image-orientation: unset; image-rendering: unset; inline-size: unset; isolation: unset; justify-content: unset; justify-items: unset; justify-self: unset; kerning: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; line-height: unset; list-style: unset unset unset; margin-block-end: unset; margin-block-start: unset; margin: unset; margin-inline-end: unset; margin-inline-start: unset; marker-end: unset; marker-mid: unset; marker-start: unset; mask: unset; mask-type: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; opacity: unset; order: unset; orphans: unset; outline: unset unset unset; outline-offset: unset; overflow-wrap: unset; overflow: unset; padding-block-end: unset; padding-block-sta
 rt: unset; padding: unset; padding-inline-end: unset; padding-inline-start: unset; page: unset; paint-order: unset; perspective: unset; perspective-origin: unset unset; pointer-events: unset; position: unset; quotes: unset; r: unset; resize: unset; right: unset; row-gap: unset; rx: unset; ry: unset; scroll-behavior: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; speak-as: unset; src: unset; stop-color: unset; stop-opacity: unset; stroke: unset; stroke-color: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; tab-size: unset; table-layout: unset; text-align: unset; text-anchor: unset; text-decoration: unset; text-decoration-color: unset; text-decoration-line: unset; text-decoration-skip: unset; text-decoration-style: unset; text-decoration-thickness: unset; text-indent: unset; text-overflow: u
 nset; text-shadow: unset; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: unset; touch-action: unset; transform: unset; transform-box: unset; transform-origin: unset unset unset; transform-style: unset; transition: unset unset unset unset; unicode-range: unset; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: unset; widows: unset; width: unset; will-change: unset; word-break: unset; word-spacing: unset; word-wrap: unset; x: unset; y: unset; z-index: unset; -apple-color-filter: unset; -webkit-appearance: unset; -webkit-aspect-ratio: unset; -webkit-backdrop-filter: unset; -webkit-backface-visibility: unset; -webkit-background-clip: unset; -webkit-background-composite: unset; -webkit-background-origin: unset; -webkit-background-size: unset; -webkit-border-fit: unset; border-spacing: unset; -webkit-border-image: unset; -webkit-box-align: unset; -webkit-box-decoration-break: unset; -webkit-box-direction: unset; -webkit
 -box-flex: unset; -webkit-box-flex-group: unset; -webkit-box-lines: unset; -webkit-box-ordinal-group: unset; -webkit-box-orient: unset; -webkit-box-pack: unset; -webkit-box-reflect: unset; -webkit-box-shadow: unset; -webkit-column-axis: unset; -webkit-column-progression: unset; -webkit-cursor-visibility: unset; -webkit-font-size-delta: unset; -webkit-hyphenate-character: unset; -webkit-hyphenate-limit-after: unset; -webkit-hyphenate-limit-before: unset; -webkit-hyphenate-limit-lines: unset; -webkit-hyphens: unset; -webkit-initial-letter: unset; -webkit-line-align: unset; -webkit-line-box-contain: unset; -webkit-line-clamp: unset; -webkit-line-grid: unset; -webkit-line-snap: unset; -webkit-margin-after-collapse: unset; -webkit-margin-before-collapse: unset; -webkit-margin-bottom-collapse: unset; -webkit-margin-top-collapse: unset; -webkit-marquee-direction: unset; -webkit-marquee-increment: unset; -webkit-marquee-repetition: unset; -webkit-marquee-speed: unset; -webkit-marquee-style:
  unset; -webkit-mask-box-image: unset; -webkit-mask-box-image-outset: unset; -webkit-mask-box-image-repeat: unset; -webkit-mask-box-image-slice: unset; -webkit-mask-box-image-source: unset; -webkit-mask-box-image-width: unset; -webkit-mask: unset unset unset unset / unset unset unset unset unset; -webkit-mask-composite: unset; -webkit-mask-size: unset; -webkit-mask-source-type: unset; -webkit-nbsp-mode: unset; -webkit-print-color-adjust: unset; -webkit-rtl-ordering: unset; -webkit-ruby-position: unset; -webkit-tap-highlight-color: unset; -webkit-text-combine: unset; -webkit-text-decorations-in-effect: unset; -webkit-text-emphasis-color: unset; -webkit-text-emphasis-position: unset; -webkit-text-emphasis-style: unset; -webkit-text-fill-color: unset; -webkit-text-security: unset; -webkit-text-stroke-color: unset; -webkit-text-stroke-width: unset; -webkit-transform-style: unset; -webkit-user-drag: unset; -webkit-user-modify: unset; -webkit-user-select: unset; border-bottom-left-radius:
  1px; background-position: unset unset; background-repeat: unset unset;" but got "color: Revert; color-scheme: Revert; display: Revert; font-family: Revert; font-feature-settings: Revert; font-optical-sizing: Revert; font-size: Revert; font-stretch: Revert; font-style: Revert; font-synthesis: Revert; font-variant-alternates: Revert; font-variant-caps: Revert; font-variant-east-asian: Revert; font-variant-ligatures: Revert; font-variant-numeric: Revert; font-variant-position: Revert; font-variation-settings: Revert; font-weight: Revert; text-rendering: Revert; writing-mode: Revert; zoom: Revert; -webkit-font-kerning: Revert; -webkit-font-smoothing: Revert; -webkit-locale: Revert; -webkit-text-orientation: Revert; -webkit-text-zoom: Revert; align-content: Revert; align-items: Revert; align-self: Revert; alignment-baseline: Revert; alt: Revert; animation: Revert Revert Revert Revert Revert Revert Revert Revert; background-attachment: Revert; background-blend-mode: Revert; bac
 kground-clip: Revert; background-color: Revert; background-image: Revert; background-origin: Revert; background-size: Revert; baseline-shift: Revert; block-size: Revert; border-block-end-color: Revert; border-block-end-style: Revert; border-block-end-width: Revert; border-block-start-color: Revert; border-block-start-style: Revert; border-block-start-width: Revert; border: Revert Revert Revert; border-bottom-right-radius: Revert; border-collapse: Revert; border-image-outset: Revert; border-image-repeat: Revert; border-image-slice: Revert; border-image-source: Revert; border-image-width: Revert; border-inline-end-color: Revert; border-inline-end-style: Revert; border-inline-end-width: Revert; border-inline-start-color: Revert; border-inline-start-style: Revert; border-inline-start-width: Revert; border-top-left-radius: Revert; border-top-right-radius: Revert; bottom: Revert; box-shadow: Revert; box-sizing: Revert; break-after: Revert; break-before: Revert; break-inside: Revert; buffe
 red-rendering: Revert; caption-side: Revert; caret-color: Revert; clear: Revert; clip: Revert; clip-path: Revert; clip-rule: Revert; color-interpolation: Revert; color-interpolation-filters: Revert; color-profile: Revert; color-rendering: Revert; column-count: Revert; column-fill: Revert; column-gap: Revert; column-rule-color: Revert; column-rule-style: Revert; column-rule-width: Revert; column-span: Revert; column-width: Revert; content: Revert; counter-increment: Revert; counter-reset: Revert; cursor: Revert; cx: Revert; cy: Revert; dominant-baseline: Revert; empty-cells: Revert; enable-background: Revert; fill: Revert; fill-opacity: Revert; fill-rule: Revert; filter: Revert; flex: Revert Revert Revert; flex-flow: Revert Revert; float: Revert; flood-color: Revert; flood-opacity: Revert; font-display: Revert; glyph-orientation-horizontal: Revert; glyph-orientation-vertical: Revert; grid-auto-columns: Revert; grid-auto-flow: Revert; grid-auto-rows: Revert; grid-column-end: Revert; g
 rid-column-start: Revert; grid-row-end: Revert; grid-row-start: Revert; grid-template-areas: Revert; grid-template-columns: Revert; grid-template-rows: Revert; hanging-punctuation: Revert; height: Revert; image-orientation: Revert; image-rendering: Revert; inline-size: Revert; isolation: Revert; justify-content: Revert; justify-items: Revert; justify-self: Revert; kerning: Revert; left: Revert; letter-spacing: Revert; lighting-color: Revert; line-break: Revert; line-height: Revert; list-style: Revert Revert Revert; margin-block-end: Revert; margin-block-start: Revert; margin: Revert; margin-inline-end: Revert; margin-inline-start: Revert; marker-end: Revert; marker-mid: Revert; marker-start: Revert; mask: Revert; mask-type: Revert; max-block-size: Revert; max-height: Revert; max-inline-size: Revert; max-width: Revert; min-block-size: Revert; min-height: Revert; min-inline-size: Revert; min-width: Revert; mix-blend-mode: Revert; object-fit: Revert; object-position: Revert; opacity: R
 evert; order: Revert; orphans: Revert; outline: Revert Revert Revert; outline-offset: Revert; overflow-wrap: Revert; overflow: Revert; padding-block-end: Revert; padding-block-start: Revert; padding: Revert; padding-inline-end: Revert; padding-inline-start: Revert; page: Revert; paint-order: Revert; perspective: Revert; perspective-origin: Revert Revert; pointer-events: Revert; position: Revert; quotes: Revert; r: Revert; resize: Revert; right: Revert; row-gap: Revert; rx: Revert; ry: Revert; scroll-behavior: Revert; shape-image-threshold: Revert; shape-margin: Revert; shape-outside: Revert; shape-rendering: Revert; size: Revert; speak-as: Revert; src: Revert; stop-color: Revert; stop-opacity: Revert; stroke: Revert; stroke-color: Revert; stroke-dasharray: Revert; stroke-dashoffset: Revert; stroke-linecap: Revert; stroke-linejoin: Revert; stroke-miterlimit: Revert; stroke-opacity: Revert; stroke-width: Revert; tab-size: Revert; table-layout: Revert; text-align: Revert; text-anchor: 
 Revert; text-decoration: Revert; text-decoration-color: Revert; text-decoration-line: Revert; text-decoration-skip: Revert; text-decoration-style: Revert; text-decoration-thickness: Revert; text-indent: Revert; text-overflow: Revert; text-shadow: Revert; text-transform: Revert; text-underline-offset: Revert; text-underline-position: Revert; top: Revert; touch-action: Revert; transform: Revert; transform-box: Revert; transform-origin: Revert Revert Revert; transform-style: Revert; transition: Revert Revert Revert Revert; unicode-range: Revert; vector-effect: Revert; vertical-align: Revert; visibility: Revert; white-space: Revert; widows: Revert; width: Revert; will-change: Revert; word-break: Revert; word-spacing: Revert; word-wrap: Revert; x: Revert; y: Revert; z-index: Revert; -apple-color-filter: Revert; -webkit-appearance: Revert; -webkit-aspect-ratio: Revert; -webkit-backdrop-filter: Revert; -webkit-backface-visibility: Revert; -webkit-background-clip: Revert; -webkit-background
 -composite: Revert; -webkit-background-origin: Revert; -webkit-background-size: Revert; -webkit-border-fit: Revert; border-spacing: Revert; -webkit-border-image: Revert; -webkit-box-align: Revert; -webkit-box-decoration-break: Revert; -webkit-box-direction: Revert; -webkit-box-flex: Revert; -webkit-box-flex-group: Revert; -webkit-box-lines: Revert; -webkit-box-ordinal-group: Revert; -webkit-box-orient: Revert; -webkit-box-pack: Revert; -webkit-box-reflect: Revert; -webkit-box-shadow: Revert; -webkit-column-axis: Revert; -webkit-column-progression: Revert; -webkit-cursor-visibility: Revert; -webkit-font-size-delta: Revert; -webkit-hyphenate-character: Revert; -webkit-hyphenate-limit-after: Revert; -webkit-hyphenate-limit-before: Revert; -webkit-hyphenate-limit-lines: Revert; -webkit-hyphens: Revert; -webkit-initial-letter: Revert; -webkit-line-align: Revert; -webkit-line-box-contain: Revert; -webkit-line-clamp: Revert; -webkit-line-grid: Revert; -webkit-line-snap: Revert; -webkit-mar
 gin-after-collapse: Revert; -webkit-margin-before-collapse: Revert; -webkit-margin-bottom-collapse: Revert; -webkit-margin-top-collapse: Revert; -webkit-marquee-direction: Revert; -webkit-marquee-increment: Revert; -webkit-marquee-repetition: Revert; -webkit-marquee-speed: Revert; -webkit-marquee-style: Revert; -webkit-mask-box-image: Revert; -webkit-mask-box-image-outset: Revert; -webkit-mask-box-image-repeat: Revert; -webkit-mask-box-image-slice: Revert; -webkit-mask-box-image-source: Revert; -webkit-mask-box-image-width: Revert; -webkit-mask: Revert Revert Revert Revert / Revert Revert Revert Revert Revert; -webkit-mask-composite: Revert; -webkit-mask-size: Revert; -webkit-mask-source-type: Revert; -webkit-nbsp-mode: Revert; -webkit-print-color-adjust: Revert; -webkit-rtl-ordering: Revert; -webkit-ruby-position: Revert; -webkit-tap-highlight-color: Revert; -webkit-text-combine: Revert; -webkit-text-decorations-in-effect: Revert; -webkit-text-emphasis-color: Revert; -webkit-text-e
 mphasis-position: Revert; -webkit-text-emphasis-style: Revert; -webkit-text-fill-color: Revert; -webkit-text-security: Revert; -webkit-text-stroke-color: Revert; -webkit-text-stroke-width: Revert; -webkit-transform-style: Revert; -webkit-user-drag: Revert; -webkit-user-modify: Revert; -webkit-user-select: Revert; border-bottom-left-radius: 1px; background-position: Revert Revert; background-repeat: Revert Revert;"
-

Deleted: trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt (266659 => 266660)


--- trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,9 +0,0 @@
-
-PASS Style attribute should create CSS declaration block based on its content 
-FAIL Changes to style attribute should reflect on CSS declaration block assert_equals: CSS declaration block after removing the style attribute expected "" but got "z-index: 21;"
-PASS Changes to CSS declaration block should reflect on style attribute 
-PASS Changes to CSS declaration block should queue mutation record for style attribute 
-PASS Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record 
-PASS Changes to CSS declaration block after a base URL change 
-FAIL Expansion of all:unset and all:revert treated identically assert_equals: expected "color: unset; color-scheme: unset; display: unset; font-family: unset; font-feature-settings: unset; font-optical-sizing: unset; font-size: unset; font-stretch: unset; font-style: unset; font-synthesis: unset; font-variant-alternates: unset; font-variant-caps: unset; font-variant-east-asian: unset; font-variant-ligatures: unset; font-variant-numeric: unset; font-variant-position: unset; font-variation-settings: unset; font-weight: unset; text-rendering: unset; writing-mode: unset; zoom: unset; -webkit-font-kerning: unset; -webkit-font-smoothing: unset; -webkit-locale: unset; -webkit-text-orientation: unset; -webkit-text-size-adjust: unset; -webkit-text-zoom: unset; align-content: unset; align-items: unset; align-self: unset; alignment-baseline: unset; alt: unset; animation: unset unset unset unset unset unset unset unset; background-attachment: unset; background-blend-mode: unset; background
 -clip: unset; background-color: unset; background-image: unset; background-origin: unset; background-size: unset; baseline-shift: unset; block-size: unset; border-block-end-color: unset; border-block-end-style: unset; border-block-end-width: unset; border-block-start-color: unset; border-block-start-style: unset; border-block-start-width: unset; border: unset unset unset; border-bottom-right-radius: unset; border-collapse: unset; border-image-outset: unset; border-image-repeat: unset; border-image-slice: unset; border-image-source: unset; border-image-width: unset; border-inline-end-color: unset; border-inline-end-style: unset; border-inline-end-width: unset; border-inline-start-color: unset; border-inline-start-style: unset; border-inline-start-width: unset; border-top-left-radius: unset; border-top-right-radius: unset; bottom: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; buffered-rendering: unset; caption-side: unset; c
 aret-color: unset; clear: unset; clip: unset; clip-path: unset; clip-rule: unset; color-interpolation: unset; color-interpolation-filters: unset; color-profile: unset; color-rendering: unset; column-count: unset; column-fill: unset; column-gap: unset; column-rule-color: unset; column-rule-style: unset; column-rule-width: unset; column-span: unset; column-width: unset; content: unset; counter-increment: unset; counter-reset: unset; cursor: unset; cx: unset; cy: unset; dominant-baseline: unset; empty-cells: unset; enable-background: unset; fill: unset; fill-opacity: unset; fill-rule: unset; filter: unset; flex: unset unset unset; flex-flow: unset unset; float: unset; flood-color: unset; flood-opacity: unset; font-display: unset; glyph-orientation-horizontal: unset; glyph-orientation-vertical: unset; grid-auto-columns: unset; grid-auto-flow: unset; grid-auto-rows: unset; grid-column-end: unset; grid-column-start: unset; grid-row-end: unset; grid-row-start: unset; grid-template-areas: u
 nset; grid-template-columns: unset; grid-template-rows: unset; hanging-punctuation: unset; height: unset; image-orientation: unset; image-rendering: unset; inline-size: unset; isolation: unset; justify-content: unset; justify-items: unset; justify-self: unset; kerning: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; line-height: unset; list-style: unset unset unset; margin-block-end: unset; margin-block-start: unset; margin: unset; margin-inline-end: unset; margin-inline-start: unset; marker-end: unset; marker-mid: unset; marker-start: unset; mask: unset; mask-type: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; opacity: unset; order: unset; orphans: unset; outline: unset unset unset; outline-offset: unset; overflow-wrap: unset; overflow: unset; padding-bl
 ock-end: unset; padding-block-start: unset; padding: unset; padding-inline-end: unset; padding-inline-start: unset; page: unset; paint-order: unset; perspective: unset; perspective-origin: unset unset; pointer-events: unset; position: unset; quotes: unset; r: unset; resize: unset; right: unset; row-gap: unset; rx: unset; ry: unset; scroll-behavior: unset; scroll-padding: unset; scroll-snap-align: unset; scroll-snap-margin: unset; scroll-snap-type: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; speak-as: unset; src: unset; stop-color: unset; stop-opacity: unset; stroke: unset; stroke-color: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; tab-size: unset; table-layout: unset; text-align: unset; text-anchor: unset; text-decoration: unset; text-decoration-color: unset; text-decoration-line: un
 set; text-decoration-skip: unset; text-decoration-style: unset; text-decoration-thickness: unset; text-indent: unset; text-overflow: unset; text-shadow: unset; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: unset; touch-action: unset; transform: unset; transform-box: unset; transform-origin: unset unset unset; transform-style: unset; transition: unset unset unset unset; unicode-range: unset; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: unset; widows: unset; width: unset; will-change: unset; word-break: unset; word-spacing: unset; word-wrap: unset; x: unset; y: unset; z-index: unset; -apple-color-filter: unset; -apple-pay-button-style: unset; -apple-pay-button-type: unset; -apple-trailing-word: unset; -internal-text-autosizing-status: unset; -webkit-appearance: unset; -webkit-aspect-ratio: unset; -webkit-backdrop-filter: unset; -webkit-backface-visibility: unset; -webkit-background-clip: unset; -webkit-backgro
 und-composite: unset; -webkit-background-origin: unset; -webkit-background-size: unset; -webkit-border-fit: unset; border-spacing: unset; -webkit-border-image: unset; -webkit-box-align: unset; -webkit-box-decoration-break: unset; -webkit-box-direction: unset; -webkit-box-flex: unset; -webkit-box-flex-group: unset; -webkit-box-lines: unset; -webkit-box-ordinal-group: unset; -webkit-box-orient: unset; -webkit-box-pack: unset; -webkit-box-reflect: unset; -webkit-box-shadow: unset; -webkit-column-axis: unset; -webkit-column-progression: unset; -webkit-cursor-visibility: unset; -webkit-font-size-delta: unset; -webkit-hyphenate-character: unset; -webkit-hyphenate-limit-after: unset; -webkit-hyphenate-limit-before: unset; -webkit-hyphenate-limit-lines: unset; -webkit-hyphens: unset; -webkit-initial-letter: unset; -webkit-line-align: unset; -webkit-line-box-contain: unset; -webkit-line-clamp: unset; -webkit-line-grid: unset; -webkit-line-snap: unset; -webkit-margin-after-collapse: unset; -w
 ebkit-margin-before-collapse: unset; -webkit-margin-bottom-collapse: unset; -webkit-margin-top-collapse: unset; -webkit-marquee-direction: unset; -webkit-marquee-increment: unset; -webkit-marquee-repetition: unset; -webkit-marquee-speed: unset; -webkit-marquee-style: unset; -webkit-mask-box-image: unset; -webkit-mask-box-image-outset: unset; -webkit-mask-box-image-repeat: unset; -webkit-mask-box-image-slice: unset; -webkit-mask-box-image-source: unset; -webkit-mask-box-image-width: unset; -webkit-mask: unset unset unset unset / unset unset unset unset unset; -webkit-mask-composite: unset; -webkit-mask-size: unset; -webkit-mask-source-type: unset; -webkit-nbsp-mode: unset; -webkit-overflow-scrolling: unset; -webkit-print-color-adjust: unset; -webkit-rtl-ordering: unset; -webkit-ruby-position: unset; -webkit-text-combine: unset; -webkit-text-decorations-in-effect: unset; -webkit-text-emphasis-color: unset; -webkit-text-emphasis-position: unset; -webkit-text-emphasis-style: unset; -web
 kit-text-fill-color: unset; -webkit-text-security: unset; -webkit-text-stroke-color: unset; -webkit-text-stroke-width: unset; -webkit-touch-callout: unset; -webkit-transform-style: unset; -webkit-user-drag: unset; -webkit-user-modify: unset; -webkit-user-select: unset; border-bottom-left-radius: 1px; background-position: unset unset; background-repeat: unset unset;" but got "color: Revert; color-scheme: Revert; display: Revert; font-family: Revert; font-feature-settings: Revert; font-optical-sizing: Revert; font-size: Revert; font-stretch: Revert; font-style: Revert; font-synthesis: Revert; font-variant-alternates: Revert; font-variant-caps: Revert; font-variant-east-asian: Revert; font-variant-ligatures: Revert; font-variant-numeric: Revert; font-variant-position: Revert; font-variation-settings: Revert; font-weight: Revert; text-rendering: Revert; writing-mode: Revert; zoom: Revert; -webkit-font-kerning: Revert; -webkit-font-smoothing: Revert; -webkit-locale: Revert; -we
 bkit-text-orientation: Revert; -webkit-text-size-adjust: Revert; -webkit-text-zoom: Revert; align-content: Revert; align-items: Revert; align-self: Revert; alignment-baseline: Revert; alt: Revert; animation: Revert Revert Revert Revert Revert Revert Revert Revert; background-attachment: Revert; background-blend-mode: Revert; background-clip: Revert; background-color: Revert; background-image: Revert; background-origin: Revert; background-size: Revert; baseline-shift: Revert; block-size: Revert; border-block-end-color: Revert; border-block-end-style: Revert; border-block-end-width: Revert; border-block-start-color: Revert; border-block-start-style: Revert; border-block-start-width: Revert; border: Revert Revert Revert; border-bottom-right-radius: Revert; border-collapse: Revert; border-image-outset: Revert; border-image-repeat: Revert; border-image-slice: Revert; border-image-source: Revert; border-image-width: Revert; border-inline-end-color: Revert; border-inline-end-style: Revert;
  border-inline-end-width: Revert; border-inline-start-color: Revert; border-inline-start-style: Revert; border-inline-start-width: Revert; border-top-left-radius: Revert; border-top-right-radius: Revert; bottom: Revert; box-shadow: Revert; box-sizing: Revert; break-after: Revert; break-before: Revert; break-inside: Revert; buffered-rendering: Revert; caption-side: Revert; caret-color: Revert; clear: Revert; clip: Revert; clip-path: Revert; clip-rule: Revert; color-interpolation: Revert; color-interpolation-filters: Revert; color-profile: Revert; color-rendering: Revert; column-count: Revert; column-fill: Revert; column-gap: Revert; column-rule-color: Revert; column-rule-style: Revert; column-rule-width: Revert; column-span: Revert; column-width: Revert; content: Revert; counter-increment: Revert; counter-reset: Revert; cursor: Revert; cx: Revert; cy: Revert; dominant-baseline: Revert; empty-cells: Revert; enable-background: Revert; fill: Revert; fill-opacity: Revert; fill-rule: Reve
 rt; filter: Revert; flex: Revert Revert Revert; flex-flow: Revert Revert; float: Revert; flood-color: Revert; flood-opacity: Revert; font-display: Revert; glyph-orientation-horizontal: Revert; glyph-orientation-vertical: Revert; grid-auto-columns: Revert; grid-auto-flow: Revert; grid-auto-rows: Revert; grid-column-end: Revert; grid-column-start: Revert; grid-row-end: Revert; grid-row-start: Revert; grid-template-areas: Revert; grid-template-columns: Revert; grid-template-rows: Revert; hanging-punctuation: Revert; height: Revert; image-orientation: Revert; image-rendering: Revert; inline-size: Revert; isolation: Revert; justify-content: Revert; justify-items: Revert; justify-self: Revert; kerning: Revert; left: Revert; letter-spacing: Revert; lighting-color: Revert; line-break: Revert; line-height: Revert; list-style: Revert Revert Revert; margin-block-end: Revert; margin-block-start: Revert; margin: Revert; margin-inline-end: Revert; margin-inline-start: Revert; marker-end: Revert; 
 marker-mid: Revert; marker-start: Revert; mask: Revert; mask-type: Revert; max-block-size: Revert; max-height: Revert; max-inline-size: Revert; max-width: Revert; min-block-size: Revert; min-height: Revert; min-inline-size: Revert; min-width: Revert; mix-blend-mode: Revert; object-fit: Revert; object-position: Revert; opacity: Revert; order: Revert; orphans: Revert; outline: Revert Revert Revert; outline-offset: Revert; overflow-wrap: Revert; overflow: Revert; padding-block-end: Revert; padding-block-start: Revert; padding: Revert; padding-inline-end: Revert; padding-inline-start: Revert; page: Revert; paint-order: Revert; perspective: Revert; perspective-origin: Revert Revert; pointer-events: Revert; position: Revert; quotes: Revert; r: Revert; resize: Revert; right: Revert; row-gap: Revert; rx: Revert; ry: Revert; scroll-behavior: Revert; scroll-padding: Revert; scroll-snap-align: Revert; scroll-snap-margin: Revert; scroll-snap-type: Revert; shape-image-threshold: Revert; shape-ma
 rgin: Revert; shape-outside: Revert; shape-rendering: Revert; size: Revert; speak-as: Revert; src: Revert; stop-color: Revert; stop-opacity: Revert; stroke: Revert; stroke-color: Revert; stroke-dasharray: Revert; stroke-dashoffset: Revert; stroke-linecap: Revert; stroke-linejoin: Revert; stroke-miterlimit: Revert; stroke-opacity: Revert; stroke-width: Revert; tab-size: Revert; table-layout: Revert; text-align: Revert; text-anchor: Revert; text-decoration: Revert; text-decoration-color: Revert; text-decoration-line: Revert; text-decoration-skip: Revert; text-decoration-style: Revert; text-decoration-thickness: Revert; text-indent: Revert; text-overflow: Revert; text-shadow: Revert; text-transform: Revert; text-underline-offset: Revert; text-underline-position: Revert; top: Revert; touch-action: Revert; transform: Revert; transform-box: Revert; transform-origin: Revert Revert Revert; transform-style: Revert; transition: Revert Revert Revert Revert; unicode-range: Revert; vector-effect
 : Revert; vertical-align: Revert; visibility: Revert; white-space: Revert; widows: Revert; width: Revert; will-change: Revert; word-break: Revert; word-spacing: Revert; word-wrap: Revert; x: Revert; y: Revert; z-index: Revert; -apple-color-filter: Revert; -apple-pay-button-style: Revert; -apple-pay-button-type: Revert; -apple-trailing-word: Revert; -internal-text-autosizing-status: Revert; -webkit-appearance: Revert; -webkit-aspect-ratio: Revert; -webkit-backdrop-filter: Revert; -webkit-backface-visibility: Revert; -webkit-background-clip: Revert; -webkit-background-composite: Revert; -webkit-background-origin: Revert; -webkit-background-size: Revert; -webkit-border-fit: Revert; border-spacing: Revert; -webkit-border-image: Revert; -webkit-box-align: Revert; -webkit-box-decoration-break: Revert; -webkit-box-direction: Revert; -webkit-box-flex: Revert; -webkit-box-flex-group: Revert; -webkit-box-lines: Revert; -webkit-box-ordinal-group: Revert; -webkit-box-orient: Revert; -webkit-box
 -pack: Revert; -webkit-box-reflect: Revert; -webkit-box-shadow: Revert; -webkit-column-axis: Revert; -webkit-column-progression: Revert; -webkit-cursor-visibility: Revert; -webkit-font-size-delta: Revert; -webkit-hyphenate-character: Revert; -webkit-hyphenate-limit-after: Revert; -webkit-hyphenate-limit-before: Revert; -webkit-hyphenate-limit-lines: Revert; -webkit-hyphens: Revert; -webkit-initial-letter: Revert; -webkit-line-align: Revert; -webkit-line-box-contain: Revert; -webkit-line-clamp: Revert; -webkit-line-grid: Revert; -webkit-line-snap: Revert; -webkit-margin-after-collapse: Revert; -webkit-margin-before-collapse: Revert; -webkit-margin-bottom-collapse: Revert; -webkit-margin-top-collapse: Revert; -webkit-marquee-direction: Revert; -webkit-marquee-increment: Revert; -webkit-marquee-repetition: Revert; -webkit-marquee-speed: Revert; -webkit-marquee-style: Revert; -webkit-mask-box-image: Revert; -webkit-mask-box-image-outset: Revert; -webkit-mask-box-image-repeat: Revert; -w
 ebkit-mask-box-image-slice: Revert; -webkit-mask-box-image-source: Revert; -webkit-mask-box-image-width: Revert; -webkit-mask: Revert Revert Revert Revert / Revert Revert Revert Revert Revert; -webkit-mask-composite: Revert; -webkit-mask-size: Revert; -webkit-mask-source-type: Revert; -webkit-nbsp-mode: Revert; -webkit-overflow-scrolling: Revert; -webkit-print-color-adjust: Revert; -webkit-rtl-ordering: Revert; -webkit-ruby-position: Revert; -webkit-text-combine: Revert; -webkit-text-decorations-in-effect: Revert; -webkit-text-emphasis-color: Revert; -webkit-text-emphasis-position: Revert; -webkit-text-emphasis-style: Revert; -webkit-text-fill-color: Revert; -webkit-text-security: Revert; -webkit-text-stroke-color: Revert; -webkit-text-stroke-width: Revert; -webkit-touch-callout: Revert; -webkit-transform-style: Revert; -webkit-user-drag: Revert; -webkit-user-modify: Revert; -webkit-user-select: Revert; border-bottom-left-radius: 1px; background-position: Revert Revert; background-r
 epeat: Revert Revert;"
-

Deleted: trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt (266659 => 266660)


--- trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block-expected.txt	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,9 +0,0 @@
-
-PASS Style attribute should create CSS declaration block based on its content 
-FAIL Changes to style attribute should reflect on CSS declaration block assert_equals: CSS declaration block after removing the style attribute expected "" but got "z-index: 21;"
-PASS Changes to CSS declaration block should reflect on style attribute 
-PASS Changes to CSS declaration block should queue mutation record for style attribute 
-PASS Removing non-existing property or setting invalid value on CSS declaration block shouldn't queue mutation record 
-PASS Changes to CSS declaration block after a base URL change 
-FAIL Expansion of all:unset and all:revert treated identically assert_equals: expected "color: unset; display: unset; font-family: unset; font-feature-settings: unset; font-optical-sizing: unset; font-size: unset; font-stretch: unset; font-style: unset; font-synthesis: unset; font-variant-alternates: unset; font-variant-caps: unset; font-variant-east-asian: unset; font-variant-ligatures: unset; font-variant-numeric: unset; font-variant-position: unset; font-variation-settings: unset; font-weight: unset; text-rendering: unset; writing-mode: unset; zoom: unset; -webkit-font-kerning: unset; -webkit-font-smoothing: unset; -webkit-locale: unset; -webkit-text-orientation: unset; -webkit-text-zoom: unset; align-content: unset; align-items: unset; align-self: unset; alignment-baseline: unset; alt: unset; animation: unset unset unset unset unset unset unset unset; background-attachment: unset; background-blend-mode: unset; background-clip: unset; background-color: unset; background-imag
 e: unset; background-origin: unset; background-size: unset; baseline-shift: unset; block-size: unset; border-block-end-color: unset; border-block-end-style: unset; border-block-end-width: unset; border-block-start-color: unset; border-block-start-style: unset; border-block-start-width: unset; border: unset unset unset; border-bottom-right-radius: unset; border-collapse: unset; border-image-outset: unset; border-image-repeat: unset; border-image-slice: unset; border-image-source: unset; border-image-width: unset; border-inline-end-color: unset; border-inline-end-style: unset; border-inline-end-width: unset; border-inline-start-color: unset; border-inline-start-style: unset; border-inline-start-width: unset; border-top-left-radius: unset; border-top-right-radius: unset; bottom: unset; box-shadow: unset; box-sizing: unset; break-after: unset; break-before: unset; break-inside: unset; buffered-rendering: unset; caption-side: unset; caret-color: unset; clear: unset; clip: unset; clip-pat
 h: unset; clip-rule: unset; color-interpolation: unset; color-interpolation-filters: unset; color-profile: unset; color-rendering: unset; column-count: unset; column-fill: unset; column-gap: unset; column-rule-color: unset; column-rule-style: unset; column-rule-width: unset; column-span: unset; column-width: unset; content: unset; counter-increment: unset; counter-reset: unset; cursor: unset; cx: unset; cy: unset; dominant-baseline: unset; empty-cells: unset; enable-background: unset; fill: unset; fill-opacity: unset; fill-rule: unset; filter: unset; flex: unset unset unset; flex-flow: unset unset; float: unset; flood-color: unset; flood-opacity: unset; font-display: unset; glyph-orientation-horizontal: unset; glyph-orientation-vertical: unset; grid-auto-columns: unset; grid-auto-flow: unset; grid-auto-rows: unset; grid-column-end: unset; grid-column-start: unset; grid-row-end: unset; grid-row-start: unset; grid-template-areas: unset; grid-template-columns: unset; grid-template-rows
 : unset; hanging-punctuation: unset; height: unset; image-orientation: unset; image-rendering: unset; inline-size: unset; isolation: unset; justify-content: unset; justify-items: unset; justify-self: unset; kerning: unset; left: unset; letter-spacing: unset; lighting-color: unset; line-break: unset; line-height: unset; list-style: unset unset unset; margin-block-end: unset; margin-block-start: unset; margin: unset; margin-inline-end: unset; margin-inline-start: unset; marker-end: unset; marker-mid: unset; marker-start: unset; mask: unset; mask-type: unset; max-block-size: unset; max-height: unset; max-inline-size: unset; max-width: unset; min-block-size: unset; min-height: unset; min-inline-size: unset; min-width: unset; mix-blend-mode: unset; object-fit: unset; object-position: unset; opacity: unset; order: unset; orphans: unset; outline: unset unset unset; outline-offset: unset; overflow-wrap: unset; overflow: unset; padding-block-end: unset; padding-block-start: unset; padding: u
 nset; padding-inline-end: unset; padding-inline-start: unset; page: unset; paint-order: unset; perspective: unset; perspective-origin: unset unset; pointer-events: unset; position: unset; quotes: unset; r: unset; resize: unset; right: unset; row-gap: unset; rx: unset; ry: unset; scroll-behavior: unset; shape-image-threshold: unset; shape-margin: unset; shape-outside: unset; shape-rendering: unset; size: unset; speak-as: unset; src: unset; stop-color: unset; stop-opacity: unset; stroke: unset; stroke-color: unset; stroke-dasharray: unset; stroke-dashoffset: unset; stroke-linecap: unset; stroke-linejoin: unset; stroke-miterlimit: unset; stroke-opacity: unset; stroke-width: unset; tab-size: unset; table-layout: unset; text-align: unset; text-anchor: unset; text-decoration: unset; text-decoration-color: unset; text-decoration-line: unset; text-decoration-skip: unset; text-decoration-style: unset; text-decoration-thickness: unset; text-indent: unset; text-overflow: unset; text-shadow: un
 set; text-transform: unset; text-underline-offset: unset; text-underline-position: unset; top: unset; touch-action: unset; transform: unset; transform-box: unset; transform-origin: unset unset unset; transform-style: unset; transition: unset unset unset unset; unicode-range: unset; vector-effect: unset; vertical-align: unset; visibility: unset; white-space: unset; widows: unset; width: unset; will-change: unset; word-break: unset; word-spacing: unset; word-wrap: unset; x: unset; y: unset; z-index: unset; -apple-color-filter: unset; -webkit-appearance: unset; -webkit-aspect-ratio: unset; -webkit-backdrop-filter: unset; -webkit-backface-visibility: unset; -webkit-background-clip: unset; -webkit-background-composite: unset; -webkit-background-origin: unset; -webkit-background-size: unset; -webkit-border-fit: unset; border-spacing: unset; -webkit-border-image: unset; -webkit-box-align: unset; -webkit-box-decoration-break: unset; -webkit-box-direction: unset; -webkit-box-flex: unset; -we
 bkit-box-flex-group: unset; -webkit-box-lines: unset; -webkit-box-ordinal-group: unset; -webkit-box-orient: unset; -webkit-box-pack: unset; -webkit-box-reflect: unset; -webkit-box-shadow: unset; -webkit-column-axis: unset; -webkit-column-progression: unset; -webkit-font-size-delta: unset; -webkit-hyphenate-character: unset; -webkit-hyphenate-limit-after: unset; -webkit-hyphenate-limit-before: unset; -webkit-hyphenate-limit-lines: unset; -webkit-hyphens: unset; -webkit-initial-letter: unset; -webkit-line-align: unset; -webkit-line-box-contain: unset; -webkit-line-clamp: unset; -webkit-line-grid: unset; -webkit-line-snap: unset; -webkit-margin-after-collapse: unset; -webkit-margin-before-collapse: unset; -webkit-margin-bottom-collapse: unset; -webkit-margin-top-collapse: unset; -webkit-marquee-direction: unset; -webkit-marquee-increment: unset; -webkit-marquee-repetition: unset; -webkit-marquee-speed: unset; -webkit-marquee-style: unset; -webkit-mask-box-image: unset; -webkit-mask-box
 -image-outset: unset; -webkit-mask-box-image-repeat: unset; -webkit-mask-box-image-slice: unset; -webkit-mask-box-image-source: unset; -webkit-mask-box-image-width: unset; -webkit-mask: unset unset unset unset / unset unset unset unset unset; -webkit-mask-composite: unset; -webkit-mask-size: unset; -webkit-mask-source-type: unset; -webkit-nbsp-mode: unset; -webkit-print-color-adjust: unset; -webkit-rtl-ordering: unset; -webkit-ruby-position: unset; -webkit-tap-highlight-color: unset; -webkit-text-combine: unset; -webkit-text-decorations-in-effect: unset; -webkit-text-emphasis-color: unset; -webkit-text-emphasis-position: unset; -webkit-text-emphasis-style: unset; -webkit-text-fill-color: unset; -webkit-text-security: unset; -webkit-text-stroke-color: unset; -webkit-text-stroke-width: unset; -webkit-transform-style: unset; -webkit-user-drag: unset; -webkit-user-modify: unset; -webkit-user-select: unset; border-bottom-left-radius: 1px; background-position: unset unset; background-repe
 at: unset unset;" but got "color: Revert; display: Revert; font-family: Revert; font-feature-settings: Revert; font-optical-sizing: Revert; font-size: Revert; font-stretch: Revert; font-style: Revert; font-synthesis: Revert; font-variant-alternates: Revert; font-variant-caps: Revert; font-variant-east-asian: Revert; font-variant-ligatures: Revert; font-variant-numeric: Revert; font-variant-position: Revert; font-variation-settings: Revert; font-weight: Revert; text-rendering: Revert; writing-mode: Revert; zoom: Revert; -webkit-font-kerning: Revert; -webkit-font-smoothing: Revert; -webkit-locale: Revert; -webkit-text-orientation: Revert; -webkit-text-zoom: Revert; align-content: Revert; align-items: Revert; align-self: Revert; alignment-baseline: Revert; alt: Revert; animation: Revert Revert Revert Revert Revert Revert Revert Revert; background-attachment: Revert; background-blend-mode: Revert; background-clip: Revert; background-color: Revert; background-image: Revert; bac
 kground-origin: Revert; background-size: Revert; baseline-shift: Revert; block-size: Revert; border-block-end-color: Revert; border-block-end-style: Revert; border-block-end-width: Revert; border-block-start-color: Revert; border-block-start-style: Revert; border-block-start-width: Revert; border: Revert Revert Revert; border-bottom-right-radius: Revert; border-collapse: Revert; border-image-outset: Revert; border-image-repeat: Revert; border-image-slice: Revert; border-image-source: Revert; border-image-width: Revert; border-inline-end-color: Revert; border-inline-end-style: Revert; border-inline-end-width: Revert; border-inline-start-color: Revert; border-inline-start-style: Revert; border-inline-start-width: Revert; border-top-left-radius: Revert; border-top-right-radius: Revert; bottom: Revert; box-shadow: Revert; box-sizing: Revert; break-after: Revert; break-before: Revert; break-inside: Revert; buffered-rendering: Revert; caption-side: Revert; caret-color: Revert; clear: Reve
 rt; clip: Revert; clip-path: Revert; clip-rule: Revert; color-interpolation: Revert; color-interpolation-filters: Revert; color-profile: Revert; color-rendering: Revert; column-count: Revert; column-fill: Revert; column-gap: Revert; column-rule-color: Revert; column-rule-style: Revert; column-rule-width: Revert; column-span: Revert; column-width: Revert; content: Revert; counter-increment: Revert; counter-reset: Revert; cursor: Revert; cx: Revert; cy: Revert; dominant-baseline: Revert; empty-cells: Revert; enable-background: Revert; fill: Revert; fill-opacity: Revert; fill-rule: Revert; filter: Revert; flex: Revert Revert Revert; flex-flow: Revert Revert; float: Revert; flood-color: Revert; flood-opacity: Revert; font-display: Revert; glyph-orientation-horizontal: Revert; glyph-orientation-vertical: Revert; grid-auto-columns: Revert; grid-auto-flow: Revert; grid-auto-rows: Revert; grid-column-end: Revert; grid-column-start: Revert; grid-row-end: Revert; grid-row-start: Revert; grid-
 template-areas: Revert; grid-template-columns: Revert; grid-template-rows: Revert; hanging-punctuation: Revert; height: Revert; image-orientation: Revert; image-rendering: Revert; inline-size: Revert; isolation: Revert; justify-content: Revert; justify-items: Revert; justify-self: Revert; kerning: Revert; left: Revert; letter-spacing: Revert; lighting-color: Revert; line-break: Revert; line-height: Revert; list-style: Revert Revert Revert; margin-block-end: Revert; margin-block-start: Revert; margin: Revert; margin-inline-end: Revert; margin-inline-start: Revert; marker-end: Revert; marker-mid: Revert; marker-start: Revert; mask: Revert; mask-type: Revert; max-block-size: Revert; max-height: Revert; max-inline-size: Revert; max-width: Revert; min-block-size: Revert; min-height: Revert; min-inline-size: Revert; min-width: Revert; mix-blend-mode: Revert; object-fit: Revert; object-position: Revert; opacity: Revert; order: Revert; orphans: Revert; outline: Revert Revert Revert; outline
 -offset: Revert; overflow-wrap: Revert; overflow: Revert; padding-block-end: Revert; padding-block-start: Revert; padding: Revert; padding-inline-end: Revert; padding-inline-start: Revert; page: Revert; paint-order: Revert; perspective: Revert; perspective-origin: Revert Revert; pointer-events: Revert; position: Revert; quotes: Revert; r: Revert; resize: Revert; right: Revert; row-gap: Revert; rx: Revert; ry: Revert; scroll-behavior: Revert; shape-image-threshold: Revert; shape-margin: Revert; shape-outside: Revert; shape-rendering: Revert; size: Revert; speak-as: Revert; src: Revert; stop-color: Revert; stop-opacity: Revert; stroke: Revert; stroke-color: Revert; stroke-dasharray: Revert; stroke-dashoffset: Revert; stroke-linecap: Revert; stroke-linejoin: Revert; stroke-miterlimit: Revert; stroke-opacity: Revert; stroke-width: Revert; tab-size: Revert; table-layout: Revert; text-align: Revert; text-anchor: Revert; text-decoration: Revert; text-decoration-color: Revert; text-decorati
 on-line: Revert; text-decoration-skip: Revert; text-decoration-style: Revert; text-decoration-thickness: Revert; text-indent: Revert; text-overflow: Revert; text-shadow: Revert; text-transform: Revert; text-underline-offset: Revert; text-underline-position: Revert; top: Revert; touch-action: Revert; transform: Revert; transform-box: Revert; transform-origin: Revert Revert Revert; transform-style: Revert; transition: Revert Revert Revert Revert; unicode-range: Revert; vector-effect: Revert; vertical-align: Revert; visibility: Revert; white-space: Revert; widows: Revert; width: Revert; will-change: Revert; word-break: Revert; word-spacing: Revert; word-wrap: Revert; x: Revert; y: Revert; z-index: Revert; -apple-color-filter: Revert; -webkit-appearance: Revert; -webkit-aspect-ratio: Revert; -webkit-backdrop-filter: Revert; -webkit-backface-visibility: Revert; -webkit-background-clip: Revert; -webkit-background-composite: Revert; -webkit-background-origin: Revert; -webkit-background-siz
 e: Revert; -webkit-border-fit: Revert; border-spacing: Revert; -webkit-border-image: Revert; -webkit-box-align: Revert; -webkit-box-decoration-break: Revert; -webkit-box-direction: Revert; -webkit-box-flex: Revert; -webkit-box-flex-group: Revert; -webkit-box-lines: Revert; -webkit-box-ordinal-group: Revert; -webkit-box-orient: Revert; -webkit-box-pack: Revert; -webkit-box-reflect: Revert; -webkit-box-shadow: Revert; -webkit-column-axis: Revert; -webkit-column-progression: Revert; -webkit-font-size-delta: Revert; -webkit-hyphenate-character: Revert; -webkit-hyphenate-limit-after: Revert; -webkit-hyphenate-limit-before: Revert; -webkit-hyphenate-limit-lines: Revert; -webkit-hyphens: Revert; -webkit-initial-letter: Revert; -webkit-line-align: Revert; -webkit-line-box-contain: Revert; -webkit-line-clamp: Revert; -webkit-line-grid: Revert; -webkit-line-snap: Revert; -webkit-margin-after-collapse: Revert; -webkit-margin-before-collapse: Revert; -webkit-margin-bottom-collapse: Revert; -web
 kit-margin-top-collapse: Revert; -webkit-marquee-direction: Revert; -webkit-marquee-increment: Revert; -webkit-marquee-repetition: Revert; -webkit-marquee-speed: Revert; -webkit-marquee-style: Revert; -webkit-mask-box-image: Revert; -webkit-mask-box-image-outset: Revert; -webkit-mask-box-image-repeat: Revert; -webkit-mask-box-image-slice: Revert; -webkit-mask-box-image-source: Revert; -webkit-mask-box-image-width: Revert; -webkit-mask: Revert Revert Revert Revert / Revert Revert Revert Revert Revert; -webkit-mask-composite: Revert; -webkit-mask-size: Revert; -webkit-mask-source-type: Revert; -webkit-nbsp-mode: Revert; -webkit-print-color-adjust: Revert; -webkit-rtl-ordering: Revert; -webkit-ruby-position: Revert; -webkit-tap-highlight-color: Revert; -webkit-text-combine: Revert; -webkit-text-decorations-in-effect: Revert; -webkit-text-emphasis-color: Revert; -webkit-text-emphasis-position: Revert; -webkit-text-emphasis-style: Revert; -webkit-text-fill-color: Revert; -webkit-text-sec
 urity: Revert; -webkit-text-stroke-color: Revert; -webkit-text-stroke-width: Revert; -webkit-transform-style: Revert; -webkit-user-drag: Revert; -webkit-user-modify: Revert; -webkit-user-select: Revert; border-bottom-left-radius: 1px; background-position: Revert Revert; background-repeat: Revert Revert;"
-

Modified: trunk/Source/WebCore/ChangeLog (266659 => 266660)


--- trunk/Source/WebCore/ChangeLog	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/Source/WebCore/ChangeLog	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1,5 +1,46 @@
 2020-09-05  Darin Adler  <[email protected]>
 
+        CSS revert should serialize as "revert", not "Revert"
+        https://bugs.webkit.org/show_bug.cgi?id=216187
+
+        Reviewed by Anders Carlsson.
+
+        Tests: imported/w3c/web-platform-tests/css/css-values/unset-value-storage.html
+               imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html
+
+        * css/CSSRevertValue.cpp:
+        (WebCore::CSSRevertValue::customCSSText const): Use lowercase "revert".
+
+        * css/StyleProperties.cpp:
+        (WebCore::isCSSWideValueKeyword): Added. Replaces isInitialOrInherit.
+        (WebCore::StyleProperties::fontValue const): Use isCSSWideValueKeyword rather
+        than isInitialOrInherit.
+        (WebCore::StyleProperties::getLayeredShorthandValue const): Ditto. Also
+        rearranged thee function a bit and shortened some excessively wordy code.
+        (WebCore::StyleProperties::getShorthandValue const): Ditto.
+        (WebCore::StyleProperties::borderPropertyValue const): Ditto.
+        (WebCore::StyleProperties::asText const): Added code to properly handle the
+        case where both background-position/repeat-x and -y are the same CSS-wide
+        value keyword as well as cases involving "initial". The general case above
+        handles these properly, but background-position/repeat have their own code,
+        which needed to repeat some of the same logic.
+        (WebCore::StyleProperties::PropertyReference::cssText const): Use makeString
+        instead of StringBuilder.
+
+        * dom/StyledElement.cpp:
+        (WebCore::StyledElement::styleAttributeChanged): Removed incorrect code that
+        detached the CSS object model style wrapper from the element when the style
+        attribute was removed. This was incorrect behavior; it should stay attached.
+        This fix happens to be tested by the same file as the "revert"/"Revert" fix
+        and I wanted the whole file to pass, not just one more test.
+
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::ApplyStyleCommand::addBlockStyle): Rewrote for simplicity, but
+        also so this works properly when inlineStyle is non-null but empty. This case
+        arises in one test now because of the change to StyledElement above.
+
+2020-09-05  Darin Adler  <[email protected]>
+
         Implement serialization of CSSPropertyGap
         https://bugs.webkit.org/show_bug.cgi?id=216210
 

Modified: trunk/Source/WebCore/css/CSSRevertValue.cpp (266659 => 266660)


--- trunk/Source/WebCore/css/CSSRevertValue.cpp	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/Source/WebCore/css/CSSRevertValue.cpp	2020-09-05 15:45:27 UTC (rev 266660)
@@ -32,7 +32,7 @@
 
 String CSSRevertValue::customCSSText() const
 {
-    return "Revert"_s;
+    return "revert"_s;
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/css/StyleProperties.cpp (266659 => 266660)


--- trunk/Source/WebCore/css/StyleProperties.cpp	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/Source/WebCore/css/StyleProperties.cpp	2020-09-05 15:45:27 UTC (rev 266660)
@@ -58,9 +58,9 @@
     return sizeof(ImmutableStyleProperties) - sizeof(void*) + sizeof(StylePropertyMetadata) * count + sizeof(PackedPtr<const CSSValue>) * count;
 }
 
-static bool isInitialOrInherit(const String& value)
+static bool isCSSWideValueKeyword(StringView value)
 {
-    return value.length() == 7 && (value == "initial" || value == "inherit");
+    return value == "initial" || value == "inherit" || value == "unset" || value == "revert";
 }
 
 Ref<ImmutableStyleProperties> ImmutableStyleProperties::create(const CSSProperty* properties, unsigned count, CSSParserMode cssParserMode)
@@ -399,7 +399,7 @@
     if (!result.isEmpty())
         result.append(' ');
     result.append(fontFamilyProperty.value()->cssText());
-    if (isInitialOrInherit(commonValue))
+    if (isCSSWideValueKeyword(commonValue))
         return commonValue;
     return result.toString();
 }
@@ -503,8 +503,7 @@
     StringBuilder result;
 
     const unsigned size = shorthand.length();
-    // Begin by collecting the properties into an array.
-    Vector< RefPtr<CSSValue>> values(size);
+    Vector<RefPtr<CSSValue>> values(size);
     size_t numLayers = 0;
 
     for (unsigned i = 0; i < size; ++i) {
@@ -512,7 +511,7 @@
         if (!values[i]) {
             // We don't have all longhand properties defined as required for the shorthand
             // property and thus should not serialize to a shorthand value. See spec at
-            // http://www.w3.org/TR/cssom-1/#serialize-a-css-declaration-block.
+            // https://www.w3.org/TR/cssom-1/#serialize-a-css-declaration-block
             return String();
         }
         if (values[i]->isBaseValueList())
@@ -522,10 +521,9 @@
     }
 
     String commonValue;
-    bool commonValueInitialized = false;
 
-    // Now stitch the properties together. Implicit initial values are flagged as such and
-    // can safely be omitted.
+    // Now stitch the properties together.
+    // Implicit initial values are flagged as such and can safely be omitted.
     for (size_t i = 0; i < numLayers; i++) {
         StringBuilder layerResult;
         bool useRepeatXShorthand = false;
@@ -533,15 +531,15 @@
         bool useSingleWordShorthand = false;
         bool foundPositionYCSSProperty = false;
         for (unsigned j = 0; j < size; j++) {
-            RefPtr<CSSValue> value;
-            if (values[j]) {
-                if (values[j]->isBaseValueList())
-                    value = downcast<CSSValueList>(*values[j]).item(i);
+            auto property = shorthand.properties()[j];
+
+            auto value = values[j];
+            if (value) {
+                if (value->isBaseValueList())
+                    value = downcast<CSSValueList>(*value).item(i);
                 else {
-                    value = values[j];
-
                     // Color only belongs in the last layer.
-                    if (shorthand.properties()[j] == CSSPropertyBackgroundColor) {
+                    if (property == CSSPropertyBackgroundColor) {
                         if (i != numLayers - 1)
                             value = nullptr;
                     } else if (i) // Other singletons only belong in the first layer.
@@ -549,28 +547,20 @@
                 }
             }
 
-            // We need to report background-repeat as it was written in the CSS. If the property is implicit,
-            // then it was written with only one value. Here we figure out which value that was so we can
-            // report back correctly.
-            if ((shorthand.properties()[j] == CSSPropertyBackgroundRepeatX && isPropertyImplicit(shorthand.properties()[j]))
-                || (shorthand.properties()[j] == CSSPropertyWebkitMaskRepeatX && isPropertyImplicit(shorthand.properties()[j]))) {
-
-                // BUG 49055: make sure the value was not reset in the layer check just above.
-                if ((j < size - 1 && shorthand.properties()[j + 1] == CSSPropertyBackgroundRepeatY && value)
-                    || (j < size - 1 && shorthand.properties()[j + 1] == CSSPropertyWebkitMaskRepeatY && value)) {
-                    RefPtr<CSSValue> yValue;
-                    RefPtr<CSSValue> nextValue = values[j + 1];
-                    if (nextValue) {
-                        if (is<CSSValueList>(*nextValue))
-                            yValue = downcast<CSSValueList>(*nextValue).itemWithoutBoundsCheck(i);
-                        else
-                            yValue = nextValue;
-
+            // We need to report background-repeat as it was written in the CSS.
+            // If the property is implicit, then it was written with only one value. Here we figure out which value that was so we can report back correctly.
+            if (value && j < size - 1 && (property == CSSPropertyBackgroundRepeatX || property == CSSPropertyWebkitMaskRepeatX) && isPropertyImplicit(property)) {
+                // Make sure the value was not reset in the layer check just above.
+                auto nextProperty = shorthand.properties()[j + 1];
+                if (nextProperty == CSSPropertyBackgroundRepeatY || nextProperty == CSSPropertyWebkitMaskRepeatY) {
+                    if (auto yValue = values[j + 1]) {
+                        if (is<CSSValueList>(*yValue))
+                            yValue = downcast<CSSValueList>(*yValue).itemWithoutBoundsCheck(i);
                         if (!is<CSSPrimitiveValue>(*value) || !is<CSSPrimitiveValue>(*yValue))
                             continue;
 
-                        CSSValueID xId = downcast<CSSPrimitiveValue>(*value).valueID();
-                        CSSValueID yId = downcast<CSSPrimitiveValue>(*yValue).valueID();
+                        auto xId = downcast<CSSPrimitiveValue>(*value).valueID();
+                        auto yId = downcast<CSSPrimitiveValue>(*yValue).valueID();
                         if (xId != yId) {
                             if (xId == CSSValueRepeat && yId == CSSValueNoRepeat) {
                                 useRepeatXShorthand = true;
@@ -591,12 +581,12 @@
             if (value && !value->isImplicitInitialValue()) {
                 if (!layerResult.isEmpty())
                     layerResult.append(' ');
-                if (foundPositionYCSSProperty
-                    && (shorthand.properties()[j] == CSSPropertyBackgroundSize || shorthand.properties()[j] == CSSPropertyWebkitMaskSize))
+
+                if (property == CSSPropertyBackgroundSize || property == CSSPropertyWebkitMaskSize) {
+                    if (!foundPositionYCSSProperty)
+                        continue;
                     layerResult.appendLiteral("/ ");
-                if (!foundPositionYCSSProperty
-                    && (shorthand.properties()[j] == CSSPropertyBackgroundSize || shorthand.properties()[j] == CSSPropertyWebkitMaskSize))
-                    continue;
+                }
 
                 if (useRepeatXShorthand) {
                     useRepeatXShorthand = false;
@@ -611,37 +601,24 @@
                     layerResult.append(valueText);
                 }
 
-                if (shorthand.properties()[j] == CSSPropertyBackgroundPositionY
-                    || shorthand.properties()[j] == CSSPropertyWebkitMaskPositionY) {
+                if (property == CSSPropertyBackgroundPositionY || property == CSSPropertyWebkitMaskPositionY)
                     foundPositionYCSSProperty = true;
-
-                    // background-position is a special case: if only the first offset is specified,
-                    // the second one defaults to "center", not the same value.
-                    if (commonValueInitialized && commonValue != "initial" && commonValue != "inherit")
-                        commonValue = String();
-                }
             }
 
-            if (!commonValueInitialized) {
+            if (commonValue.isNull())
                 commonValue = valueText;
-                commonValueInitialized = true;
-            } else if (!commonValue.isNull() && commonValue != valueText)
-                commonValue = String();
+            else if (commonValue != valueText)
+                commonValue = emptyString(); // Could use value here other than a CSS-wide value keyword or the null string.
         }
 
-        if (!layerResult.isEmpty()) {
-            if (!result.isEmpty())
-                result.appendLiteral(", ");
-            result.append(layerResult);
-        }
+        if (!layerResult.isEmpty())
+            result.append(result.isEmpty() ? "" : ", ", layerResult.toString());
     }
 
-    if (isInitialOrInherit(commonValue))
+    if (isCSSWideValueKeyword(commonValue))
         return commonValue;
 
-    if (result.isEmpty())
-        return String();
-    return result.toString();
+    return result.isEmpty() ? String() : result.toString();
 }
 
 String StyleProperties::getGridShorthandValue(const StylePropertyShorthand& shorthand) const
@@ -671,7 +648,7 @@
         } else
             commonValue = String();
     }
-    if (isInitialOrInherit(commonValue))
+    if (isCSSWideValueKeyword(commonValue))
         return commonValue;
     if (result.isEmpty())
         return String();
@@ -730,7 +707,7 @@
             result.append(' ');
         result.append(value);
     }
-    if (isInitialOrInherit(commonValue))
+    if (isCSSWideValueKeyword(commonValue))
         return commonValue;
     return result.toString();
 }
@@ -1272,78 +1249,47 @@
         else
             result.append(getPropertyName(propertyID));
 
-        result.appendLiteral(": ");
-        result.append(value);
-        if (property.isImportant())
-            result.appendLiteral(" !important");
-        result.append(';');
+        result.append(": ", value, property.isImportant() ? " !important" : "", ';');
     }
 
-    // FIXME: This is a not-so-nice way to turn x/y positions into single background-position in output.
-    // It is required because background-position-x/y are non-standard properties and WebKit generated output
-    // would not work in Firefox (<rdar://problem/5143183>)
-    // It would be a better solution if background-position was CSSUnitType::CSS_PAIR.
-    if (positionXPropertyIndex != -1 && positionYPropertyIndex != -1 && propertyAt(positionXPropertyIndex).isImportant() == propertyAt(positionYPropertyIndex).isImportant()) {
-        PropertyReference positionXProperty = propertyAt(positionXPropertyIndex);
-        PropertyReference positionYProperty = propertyAt(positionYPropertyIndex);
-
-        if (numDecls++)
-            result.append(' ');
-        result.appendLiteral("background-position: ");
-        if (positionXProperty.value()->isValueList() || positionYProperty.value()->isValueList())
-            result.append(getLayeredShorthandValue(backgroundPositionShorthand()));
-        else {
-            result.append(positionXProperty.value()->cssText());
-            result.append(' ');
-            result.append(positionYProperty.value()->cssText());
+    // FIXME: This is a not-so-nice way to turn x/y positions into single background-position/repeat in output.
+    // In 2007 we decided this was required because background-position/repeat-x/y are non-standard properties and WebKit generated output would not work in Firefox (<rdar://problem/5143183>).
+    auto appendPositionOrProperty = [&] (int xIndex, int yIndex, const char* name, const StylePropertyShorthand& shorthand) {
+        if (xIndex != -1 && yIndex != -1 && propertyAt(xIndex).isImportant() == propertyAt(yIndex).isImportant()) {
+            String value;
+            auto xProperty = propertyAt(xIndex);
+            auto yProperty = propertyAt(yIndex);
+            if (xProperty.value()->isValueList() || yProperty.value()->isValueList())
+                value = getLayeredShorthandValue(shorthand);
+            else {
+                auto x = xProperty.value()->cssText();
+                auto y = yProperty.value()->cssText();
+                if (x == y && isCSSWideValueKeyword(x))
+                    value = x;
+                else
+                    value = makeString(x, ' ', y);
+            }
+            if (value != "initial") {
+                result.append(numDecls ? " " : "", name, ": ", value, xProperty.isImportant() ? " !important" : "", ';');
+                ++numDecls;
+            }
+        } else {
+            if (xIndex != -1) {
+                if (numDecls++)
+                    result.append(' ');
+                result.append(propertyAt(xIndex).cssText());
+            }
+            if (yIndex != -1) {
+                if (numDecls++)
+                    result.append(' ');
+                result.append(propertyAt(yIndex).cssText());
+            }
         }
-        if (positionXProperty.isImportant())
-            result.appendLiteral(" !important");
-        result.append(';');
-    } else {
-        if (positionXPropertyIndex != -1) {
-            if (numDecls++)
-                result.append(' ');
-            result.append(propertyAt(positionXPropertyIndex).cssText());
-        }
-        if (positionYPropertyIndex != -1) {
-            if (numDecls++)
-                result.append(' ');
-            result.append(propertyAt(positionYPropertyIndex).cssText());
-        }
-    }
+    };
 
-    // FIXME: We need to do the same for background-repeat.
-    if (repeatXPropertyIndex != -1 && repeatYPropertyIndex != -1 && propertyAt(repeatXPropertyIndex).isImportant() == propertyAt(repeatYPropertyIndex).isImportant()) {
-        PropertyReference repeatXProperty = propertyAt(repeatXPropertyIndex);
-        PropertyReference repeatYProperty = propertyAt(repeatYPropertyIndex);
+    appendPositionOrProperty(positionXPropertyIndex, positionYPropertyIndex, "background-position", backgroundPositionShorthand());
+    appendPositionOrProperty(repeatXPropertyIndex, repeatYPropertyIndex, "background-repeat", backgroundRepeatShorthand());
 
-        if (numDecls++)
-            result.append(' ');
-        result.appendLiteral("background-repeat: ");
-        if (repeatXProperty.value()->isValueList() || repeatYProperty.value()->isValueList())
-            result.append(getLayeredShorthandValue(backgroundRepeatShorthand()));
-        else {
-            result.append(repeatXProperty.value()->cssText());
-            result.append(' ');
-            result.append(repeatYProperty.value()->cssText());
-        }
-        if (repeatXProperty.isImportant())
-            result.appendLiteral(" !important");
-        result.append(';');
-    } else {
-        if (repeatXPropertyIndex != -1) {
-            if (numDecls++)
-                result.append(' ');
-            result.append(propertyAt(repeatXPropertyIndex).cssText());
-        }
-        if (repeatYPropertyIndex != -1) {
-            if (numDecls++)
-                result.append(' ');
-            result.append(propertyAt(repeatYPropertyIndex).cssText());
-        }
-    }
-
     ASSERT(!numDecls ^ !result.isEmpty());
     return result.toString();
 }
@@ -1591,14 +1537,7 @@
 
 String StyleProperties::PropertyReference::cssText() const
 {
-    StringBuilder result;
-    result.append(cssName());
-    result.appendLiteral(": ");
-    result.append(m_value->cssText());
-    if (isImportant())
-        result.appendLiteral(" !important");
-    result.append(';');
-    return result.toString();
+    return makeString(cssName(), ": ", m_value->cssText(), isImportant() ? " !important" : "", ';');
 }
     
 Ref<DeferredStyleProperties> DeferredStyleProperties::create(const CSSParserTokenRange& tokenRange, CSSDeferredParser& parser)

Modified: trunk/Source/WebCore/dom/StyledElement.cpp (266659 => 266660)


--- trunk/Source/WebCore/dom/StyledElement.cpp	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/Source/WebCore/dom/StyledElement.cpp	2020-09-05 15:45:27 UTC (rev 266660)
@@ -170,7 +170,7 @@
 
 void StyledElement::setInlineStyleFromString(const AtomString& newStyleString)
 {
-    RefPtr<StyleProperties>& inlineStyle = elementData()->m_inlineStyle;
+    auto& inlineStyle = elementData()->m_inlineStyle;
 
     // Avoid redundant work if we're using shared attribute data with already parsed inline style.
     if (inlineStyle && !elementData()->isUnique())
@@ -192,15 +192,11 @@
 
 void StyledElement::styleAttributeChanged(const AtomString& newStyleString, AttributeModificationReason reason)
 {
-    WTF::OrdinalNumber startLineNumber = WTF::OrdinalNumber::beforeFirst();
+    auto startLineNumber = WTF::OrdinalNumber::beforeFirst();
     if (document().scriptableDocumentParser() && !document().isInDocumentWrite())
         startLineNumber = document().scriptableDocumentParser()->textPosition().m_line;
 
-    if (newStyleString.isNull()) {
-        if (PropertySetCSSStyleDeclaration* cssomWrapper = inlineStyleCSSOMWrapper())
-            cssomWrapper->clearParentElement();
-        ensureUniqueElementData().m_inlineStyle = nullptr;
-    } else if (reason == ModifiedByCloning || document().contentSecurityPolicy()->allowInlineStyle(document().url().string(), startLineNumber, String(), isInUserAgentShadowTree()))
+    if (reason == ModifiedByCloning || document().contentSecurityPolicy()->allowInlineStyle(document().url().string(), startLineNumber, String(), isInUserAgentShadowTree()))
         setInlineStyleFromString(newStyleString);
 
     elementData()->setStyleAttributeIsDirty(false);

Modified: trunk/Source/WebCore/editing/ApplyStyleCommand.cpp (266659 => 266660)


--- trunk/Source/WebCore/editing/ApplyStyleCommand.cpp	2020-09-05 15:18:36 UTC (rev 266659)
+++ trunk/Source/WebCore/editing/ApplyStyleCommand.cpp	2020-09-05 15:45:27 UTC (rev 266660)
@@ -1340,21 +1340,20 @@
     // VisibleSelection::validate().
 }
 
+static String joinWithSpace(const String& a, const String& b)
+{
+    if (a.isEmpty())
+        return b;
+    if (b.isEmpty())
+        return a;
+    return makeString(a, ' ', b);
+}
+
 void ApplyStyleCommand::addBlockStyle(const StyleChange& styleChange, HTMLElement& block)
 {
+    // Do not check for legacy styles here. Those styles, like <B> and <I>, only apply for inline content.
     ASSERT(styleChange.cssStyle());
-    // Do not check for legacy styles here. Those styles, like <B> and <I>, only apply for
-    // inline content.
-        
-    String cssStyle = styleChange.cssStyle()->asText();
-    StringBuilder cssText;
-    cssText.append(cssStyle);
-    if (const StyleProperties* decl = block.inlineStyle()) {
-        if (!cssStyle.isEmpty())
-            cssText.append(' ');
-        cssText.append(decl->asText());
-    }
-    setNodeAttribute(block, styleAttr, cssText.toString());
+    setNodeAttribute(block, styleAttr, joinWithSpace(styleChange.cssStyle()->asText(), block.getAttribute(styleAttr)));
 }
 
 void ApplyStyleCommand::addInlineStyleIfNeeded(EditingStyle* style, Node& start, Node& end, EAddStyledElement addStyledElement)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to