Title: [287487] trunk
Revision
287487
Author
[email protected]
Date
2021-12-30 16:26:34 -0800 (Thu, 30 Dec 2021)

Log Message

Implement text-combine-upright property
https://bugs.webkit.org/show_bug.cgi?id=150821

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
* web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
* web-platform-tests/css/css-writing-modes/inheritance-expected.txt:
* web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt:
* web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt:
* web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt:
* web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt:
* web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt:
* web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt:
* web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt:
* web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:

Source/WebCore:

webkit.org/b/234694 and webkit.org/b/234707 are landed for this initial version of text-combine-upright.

To reach Chrome parity, layout needs to be tweaked (webkit.org/b/234704), and pseudo elements need to be properly supported (webkit.org/b/234705).

To reach standards parity, it also needs the digits syntax to be implemented (webkit.org/b/234706), which no browser implements yet.

* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextCombine const):
* css/CSSProperties.json:
* css/CSSValueKeywords.in:
* css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
* rendering/LegacyLineLayout.cpp:
(WebCore::expansionBehaviorForInlineTextBox):
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:
* style/PropertyAllowlist.cpp:
(WebCore::Style::isValidMarkerStyleProperty):
Allow setting text-combine-upright on ::marker.

LayoutTests:

* TestExpectations:
* fast/css/getComputedStyle/computed-style-expected.txt:
* fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* fast/css/getComputedStyle/resources/property-names.js:
* platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/glib/svg/css/getComputedStyle-basic-expected.txt:
* platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
* platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
* platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* platform/ios/svg/css/getComputedStyle-basic-expected.txt:
* platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
* svg/css/getComputedStyle-basic-expected.txt:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (287486 => 287487)


--- trunk/LayoutTests/ChangeLog	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/ChangeLog	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,3 +1,26 @@
+2021-12-27  Tim Nguyen  <[email protected]>
+
+        Implement text-combine-upright property
+        https://bugs.webkit.org/show_bug.cgi?id=150821
+
+        Reviewed by Dean Jackson.
+
+        * TestExpectations:
+        * fast/css/getComputedStyle/computed-style-expected.txt:
+        * fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+        * fast/css/getComputedStyle/resources/property-names.js:
+        * platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
+        * platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+        * platform/glib/svg/css/getComputedStyle-basic-expected.txt:
+        * platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+        * platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
+        * platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
+        * platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
+        * platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+        * platform/ios/svg/css/getComputedStyle-basic-expected.txt:
+        * platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+        * svg/css/getComputedStyle-basic-expected.txt:
+
 2021-12-30  Alan Bujtas  <[email protected]>
 
         [IFC][Integration] Enable RTL inline base direction

Modified: trunk/LayoutTests/TestExpectations (287486 => 287487)


--- trunk/LayoutTests/TestExpectations	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/TestExpectations	2021-12-31 00:26:34 UTC (rev 287487)
@@ -2592,6 +2592,18 @@
 
 http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only.html [ Pass Failure ]
 
+# text-transform: full-width support
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-001.xht [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-002.xht [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-004.xht [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-005.xht [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-writing-modes/full-width-001.html [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-writing-modes/full-width-002.html [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-008.html [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-009.html [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-multiple-001.html [ ImageOnlyFailure ]
+webkit.org/b/143153 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-009.html [ ImageOnlyFailure ]
+
 # css-text start
 webkit.org/b/195275 imported/w3c/web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-001.html [ ImageOnlyFailure ]
 webkit.org/b/195275 imported/w3c/web-platform-tests/css/css-text/boundary-shaping/boundary-shaping-003.html [ ImageOnlyFailure ]
@@ -2675,10 +2687,6 @@
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-capitalize-020.html [ ImageOnlyFailure Pass ]
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-capitalize-026.html [ ImageOnlyFailure Pass ]
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-capitalize-028.html [ ImageOnlyFailure Pass ]
-webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-001.xht [ ImageOnlyFailure ]
-webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-002.xht [ ImageOnlyFailure ]
-webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-004.xht [ ImageOnlyFailure ]
-webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-005.xht [ ImageOnlyFailure ]
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-tailoring-001.html [ ImageOnlyFailure ]
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002.html [ ImageOnlyFailure ]
 webkit.org/b/183258 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-tailoring-002a.html [ ImageOnlyFailure ]
@@ -2700,9 +2708,6 @@
 webkit.org/b/195275 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-full-size-kana-004.html [ ImageOnlyFailure ]
 webkit.org/b/195275 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-shaping-002.html [ ImageOnlyFailure ]
 webkit.org/b/195275 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-shaping-001.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-008.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-fullwidth-009.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-multiple-001.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-upperlower-016.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/text-transform-upperlower-044.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/text-transform/math/text-transform-math-auto-001.tentative.html [ ImageOnlyFailure ]
@@ -2752,7 +2757,6 @@
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-006.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-007.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-008.html [ ImageOnlyFailure ]
-webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-009.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-010.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-011.html [ ImageOnlyFailure ]
 webkit.org/b/214290 imported/w3c/web-platform-tests/css/css-text/word-boundary/word-boundary-012.html [ ImageOnlyFailure ]
@@ -4037,7 +4041,6 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/background-size-document-root-vrl-004.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/background-size-document-root-vrl-006.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/background-size-document-root-vrl-008.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/bidi-plaintext-011.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/block-flow-direction-slr-043.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/block-flow-direction-slr-047.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/block-flow-direction-slr-048.xht [ ImageOnlyFailure ]
@@ -4072,7 +4075,6 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/ch-units-vrl-008.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/clearance-calculations-vrl-006.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/float-in-htb-in-vrl.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/full-width-001.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/inline-block-alignment-003.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/inline-block-alignment-005.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/inline-block-alignment-007.xht [ ImageOnlyFailure ]
@@ -4161,17 +4163,6 @@
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/table-progression-vrl-004.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-baseline-slr-009.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-baseline-srl-008.xht [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-layout-rules-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-line-breaking-rules-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-002.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-003.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits2-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits2-002.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits3-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits3-002.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits4-001.html [ ImageOnlyFailure ]
-webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits4-002.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-mixed-srl-016.xht [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-mixed-vlr-100.html [ ImageOnlyFailure ]
 webkit.org/b/209080 imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-mixed-vrl-100.html [ ImageOnlyFailure ]
@@ -4215,6 +4206,21 @@
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/scrollbars-auto.html [ ImageOnlyFailure ]
 webkit.org/b/212046 imported/w3c/web-platform-tests/css/css-flexbox/scrollbars.html [ ImageOnlyFailure ]
 
+# text-combine-upright bugs
+webkit.org/b/234707 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-decorations-001.html [ ImageOnlyFailure ]
+webkit.org/b/234704 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-layout-rules-001.html [ ImageOnlyFailure ]
+webkit.org/b/164510 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-line-breaking-rules-001.html [ ImageOnlyFailure ]
+webkit.org/b/234704 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-001.html [ ImageOnlyFailure ]
+webkit.org/b/234704 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-002.html [ ImageOnlyFailure ]
+webkit.org/b/234704 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-all-003.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits2-001.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits2-002.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits3-001.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits3-002.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits4-001.html [ ImageOnlyFailure ]
+webkit.org/b/234706 imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-value-digits4-002.html [ ImageOnlyFailure ]
+webkit.org/b/234705 imported/w3c/web-platform-tests/css/css-pseudo/marker-text-combine-upright.html [ ImageOnlyFailure ]
+
 # Used flex-basis should be used to compute definiteness instead of specified.
 webkit.org/b/233196 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-016.html [ ImageOnlyFailure ]
 webkit.org/b/233196 imported/w3c/web-platform-tests/css/css-flexbox/percentage-heights-017.html [ ImageOnlyFailure ]
@@ -4324,7 +4330,6 @@
 
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/available-size-004.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/available-size-018.html [ ImageOnlyFailure ]
-webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/baseline-with-orthogonal-flow-001.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/direction-upright-001.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/direction-upright-002.html [ ImageOnlyFailure ]
 webkit.org/b/214291 imported/w3c/web-platform-tests/css/css-writing-modes/inline-box-border-vlr-001.html [ ImageOnlyFailure ]
@@ -4537,7 +4542,6 @@
 webkit.org/b/204163 imported/w3c/web-platform-tests/css/css-pseudo/marker-content-022.html [ ImageOnlyFailure ]
 webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal.html [ ImageOnlyFailure ]
 webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/marker-list-style-position.html [ ImageOnlyFailure ]
-webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/marker-text-combine-upright.html [ ImageOnlyFailure ]
 webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-default.html [ ImageOnlyFailure ]
 webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-normal.html [ ImageOnlyFailure ]
 webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/spelling-error-001.html [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt (287486 => 287487)


--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -171,6 +171,7 @@
 table-layout: auto;
 text-align: start;
 text-anchor: start;
+text-combine-upright: none;
 text-decoration: none;
 text-emphasis-color: rgb(0, 0, 0);
 text-emphasis-position: over right;
@@ -245,7 +246,6 @@
 -webkit-nbsp-mode: normal;
 -webkit-print-color-adjust: economy;
 -webkit-rtl-ordering: logical;
--webkit-text-combine: none;
 -webkit-text-fill-color: rgb(0, 0, 0);
 -webkit-text-orientation: mixed;
 -webkit-text-security: none;

Modified: trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (287486 => 287487)


--- trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -170,6 +170,7 @@
 table-layout: auto
 text-align: start
 text-anchor: start
+text-combine-upright: none
 text-decoration: none
 text-emphasis-color: rgb(0, 0, 0)
 text-emphasis-position: over right
@@ -244,7 +245,6 @@
 -webkit-nbsp-mode: normal
 -webkit-print-color-adjust: economy
 -webkit-rtl-ordering: logical
--webkit-text-combine: none
 -webkit-text-fill-color: rgb(0, 0, 0)
 -webkit-text-orientation: mixed
 -webkit-text-security: none

Modified: trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js (287486 => 287487)


--- trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/fast/css/getComputedStyle/resources/property-names.js	2021-12-31 00:26:34 UTC (rev 287487)
@@ -97,7 +97,7 @@
     "perspective-origin": true,
     "-webkit-print-color-adjust": true,
     "-webkit-rtl-ordering": true,
-    "-webkit-text-combine": true,
+    "text-combine-upright": true,
     "-webkit-text-decorations-in-effect": true,
     "text-emphasis-color": true,
     "text-emphasis-position": true,

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,3 +1,23 @@
+2021-12-27  Tim Nguyen  <[email protected]>
+
+        Implement text-combine-upright property
+        https://bugs.webkit.org/show_bug.cgi?id=150821
+
+        Reviewed by Dean Jackson.
+
+        * web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
+        * web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
+        * web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
+        * web-platform-tests/css/css-writing-modes/inheritance-expected.txt:
+        * web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt:
+        * web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt:
+        * web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt:
+        * web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt:
+        * web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt:
+        * web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt:
+        * web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt:
+        * web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+
 2021-12-28  Sam Weinig  <[email protected]>
 
         Support color interpolation methods for CSS Gradients

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -281,6 +281,7 @@
 PASS table-layout
 PASS text-align
 PASS text-anchor
+PASS text-combine-upright
 PASS text-decoration
 PASS text-decoration-color
 PASS text-decoration-line

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -18,7 +18,7 @@
 PASS Property line-height value '50px' in ::marker
 PASS Property white-space value 'nowrap' in ::marker
 PASS Property color value 'rgb(0, 100, 200)' in ::marker
-FAIL Property text-combine-upright value 'all' in ::marker assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
+PASS Property text-combine-upright value 'all' in ::marker
 PASS Property unicode-bidi value 'plaintext' in ::marker
 PASS Property direction value 'rtl' in ::marker
 PASS Property content value '"foo"' in ::marker

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -18,7 +18,7 @@
 PASS Animation of line-height in ::marker
 FAIL Animation of white-space in ::marker assert_equals: expected "nowrap" but got "pre"
 FAIL Animation of color in ::marker assert_equals: expected "rgb(50, 150, 100)" but got "rgb(0, 0, 0)"
-FAIL Animation of text-combine-upright in ::marker assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
+PASS Animation of text-combine-upright in ::marker
 PASS Animation of unicode-bidi in ::marker
 PASS Animation of direction in ::marker
 FAIL Animation of content in ::marker assert_equals: expected "\"bar\"" but got "normal"
@@ -62,7 +62,7 @@
 PASS Transition of line-height in ::marker
 PASS Transition of white-space in ::marker
 PASS Transition of color in ::marker
-FAIL Transition of text-combine-upright in ::marker assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
+PASS Transition of text-combine-upright in ::marker
 PASS Transition of unicode-bidi in ::marker
 PASS Transition of direction in ::marker
 PASS Transition of content in ::marker

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inheritance-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inheritance-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/inheritance-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,8 +1,8 @@
 
 PASS Property direction has initial value ltr
 PASS Property direction inherits
-FAIL Property text-combine-upright has initial value none assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
-FAIL Property text-combine-upright inherits assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
+PASS Property text-combine-upright has initial value none
+PASS Property text-combine-upright inherits
 PASS Property text-orientation has initial value mixed
 PASS Property text-orientation inherits
 PASS Property unicode-bidi has initial value normal

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,4 +1,4 @@
 
-FAIL Property text-combine-upright value 'none' assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
-FAIL Property text-combine-upright value 'all' assert_true: text-combine-upright doesn't seem to be supported in the computed style expected true got false
+PASS Property text-combine-upright value 'none'
+PASS Property text-combine-upright value 'all'
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,4 +1,4 @@
 
-FAIL e.style['text-combine-upright'] = "none" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['text-combine-upright'] = "all" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['text-combine-upright'] = "none" should set the property value
+PASS e.style['text-combine-upright'] = "all" should set the property value
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,12 +1,12 @@
 
-FAIL Computed value for `text-combine-upright: digits` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 2` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 3` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 4` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits +2` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits+3` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits[TAB]4` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits[LF]2` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits [TAB]3` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits[TAB][LF]4` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
+FAIL Computed value for `text-combine-upright: digits` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits 2` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits 3` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits 4` is `digits 4` assert_equals: expected "digits 4" but got "none"
+FAIL Computed value for `text-combine-upright: digits +2` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits+3` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits[TAB]4` is `digits 4` assert_equals: expected "digits 4" but got "none"
+FAIL Computed value for `text-combine-upright: digits[LF]2` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits [TAB]3` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits[TAB][LF]4` is `digits 4` assert_equals: expected "digits 4" but got "none"
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,14 +1,14 @@
 
-FAIL Computed value for `text-combine-upright: digits calc(1 + 1)` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(1 + 1 + 1)` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2 + 2)` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(4 - 2)` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(6 - 3)` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(7 - 1 - 2)` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2 * 1)` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(3 * 1)` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2 * 2 * 1)` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(4 / 2)` is `digits 2` assert_equals: expected (string) "digits 2" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(6 / 2)` is `digits 3` assert_equals: expected (string) "digits 3" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(24 / 3 / 2)` is `digits 4` assert_equals: expected (string) "digits 4" but got (undefined) undefined
+FAIL Computed value for `text-combine-upright: digits calc(1 + 1)` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(1 + 1 + 1)` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(2 + 2)` is `digits 4` assert_equals: expected "digits 4" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(4 - 2)` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(6 - 3)` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(7 - 1 - 2)` is `digits 4` assert_equals: expected "digits 4" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(2 * 1)` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(3 * 1)` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(2 * 2 * 1)` is `digits 4` assert_equals: expected "digits 4" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(4 / 2)` is `digits 2` assert_equals: expected "digits 2" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(6 / 2)` is `digits 3` assert_equals: expected "digits 3" but got "none"
+FAIL Computed value for `text-combine-upright: digits calc(24 / 3 / 2)` is `digits 4` assert_equals: expected "digits 4" but got "none"
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,17 +1,17 @@
 
-FAIL Computed value for `text-combine-upright: foo` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: all none` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: none digits` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits bar` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 4 none` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits2` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 1` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits +5` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 2.00` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 2e0` is not `digits 2` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits +2e0` is not `digits 2` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 3e+0` is not `digits 3` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits 3e-0` is not `digits 3` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits +4e+0` is not `digits 4` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits +4e-0` is not `digits 4` but `none` assert_equals: expected (string) "none" but got (undefined) undefined
+PASS Computed value for `text-combine-upright: foo` is `none`
+PASS Computed value for `text-combine-upright: all none` is `none`
+PASS Computed value for `text-combine-upright: none digits` is `none`
+PASS Computed value for `text-combine-upright: digits bar` is `none`
+PASS Computed value for `text-combine-upright: digits 4 none` is `none`
+PASS Computed value for `text-combine-upright: digits2` is `none`
+PASS Computed value for `text-combine-upright: digits 1` is `none`
+PASS Computed value for `text-combine-upright: digits +5` is `none`
+PASS Computed value for `text-combine-upright: digits 2.00` is `none`
+PASS Computed value for `text-combine-upright: digits 2e0` is not `digits 2` but `none`
+PASS Computed value for `text-combine-upright: digits +2e0` is not `digits 2` but `none`
+PASS Computed value for `text-combine-upright: digits 3e+0` is not `digits 3` but `none`
+PASS Computed value for `text-combine-upright: digits 3e-0` is not `digits 3` but `none`
+PASS Computed value for `text-combine-upright: digits +4e+0` is not `digits 4` but `none`
+PASS Computed value for `text-combine-upright: digits +4e-0` is not `digits 4` but `none`
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,13 +1,13 @@
 
-FAIL Computed value for `text-combine-upright: digits calc(0 + 1)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2 + 3)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(4 - 3)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(10 - 3)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(3 * 1.0)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2.0 * 2)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2 / 1.0)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(4.0 / 2)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2e0 * 2e+0)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(2e2 * 2e-2)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: digits calc(4e+2 / +2e2)` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
+PASS Computed value for `text-combine-upright: digits calc(0 + 1)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(2 + 3)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(4 - 3)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(10 - 3)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(3 * 1.0)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(2.0 * 2)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(2 / 1.0)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(4.0 / 2)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(2e0 * 2e+0)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(2e2 * 2e-2)` is `none`
+PASS Computed value for `text-combine-upright: digits calc(4e+2 / +2e2)` is `none`
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,7 +1,7 @@
 
-FAIL Computed value for `text-combine-upright: none` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: all` is `all` assert_equals: expected (string) "all" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: initial` is `none` assert_equals: expected (string) "none" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: inherit` is `all` which is inherited from the parent element assert_equals: expected (string) "all" but got (undefined) undefined
-FAIL Computed value for `text-combine-upright: unset` is `all` which is inherited from the parent element assert_equals: expected (string) "all" but got (undefined) undefined
+PASS Computed value for `text-combine-upright: none` is `none`
+PASS Computed value for `text-combine-upright: all` is `all`
+PASS Computed value for `text-combine-upright: initial` is `none`
+PASS Computed value for `text-combine-upright: inherit` is `all` which is inherited from the parent element
+PASS Computed value for `text-combine-upright: unset` is `all` which is inherited from the parent element
 

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt (287486 => 287487)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,8 +1,8 @@
 
 PASS getComputedStyle returns no style for detached element
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 394
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 394
-FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 394
-FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 394
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 395
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 395
+FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 395
+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 395
 PASS getComputedStyle returns no style for shadow tree outside of flattened tree
 

Modified: trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -171,6 +171,7 @@
 table-layout: auto;
 text-align: start;
 text-anchor: start;
+text-combine-upright: none;
 text-decoration: none;
 text-emphasis-color: rgb(0, 0, 0);
 text-emphasis-position: over right;
@@ -245,7 +246,6 @@
 -webkit-nbsp-mode: normal;
 -webkit-print-color-adjust: economy;
 -webkit-rtl-ordering: logical;
--webkit-text-combine: none;
 -webkit-text-fill-color: rgb(0, 0, 0);
 -webkit-text-orientation: mixed;
 -webkit-text-security: none;

Modified: trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -170,6 +170,7 @@
 table-layout: auto
 text-align: start
 text-anchor: start
+text-combine-upright: none
 text-decoration: none
 text-emphasis-color: rgb(0, 0, 0)
 text-emphasis-position: over right
@@ -244,7 +245,6 @@
 -webkit-nbsp-mode: normal
 -webkit-print-color-adjust: economy
 -webkit-rtl-ordering: logical
--webkit-text-combine: none
 -webkit-text-fill-color: rgb(0, 0, 0)
 -webkit-text-orientation: mixed
 -webkit-text-security: none

Modified: trunk/LayoutTests/platform/glib/svg/css/getComputedStyle-basic-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/glib/svg/css/getComputedStyle-basic-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/glib/svg/css/getComputedStyle-basic-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -340,6 +340,8 @@
 rect: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-anchor) : start
 rect: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(text-combine-upright) : none
+rect: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-decoration) : none
 rect: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -488,8 +490,6 @@
 rect: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-rtl-ordering) : logical
 rect: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-rect: style.getPropertyValue(-webkit-text-combine) : none
-rect: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 rect: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-orientation) : mixed
@@ -850,6 +850,8 @@
 g: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-anchor) : start
 g: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(text-combine-upright) : none
+g: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-decoration) : none
 g: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -998,8 +1000,6 @@
 g: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-rtl-ordering) : logical
 g: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-g: style.getPropertyValue(-webkit-text-combine) : none
-g: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 g: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-orientation) : mixed

Modified: trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,8 +1,8 @@
 
 PASS getComputedStyle returns no style for detached element
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 391
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 391
-FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 391
-FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 391
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 392
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 392
+FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 392
+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 392
 PASS getComputedStyle returns no style for shadow tree outside of flattened tree
 

Modified: trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -171,6 +171,7 @@
 table-layout: auto;
 text-align: start;
 text-anchor: start;
+text-combine-upright: none;
 text-decoration: none;
 text-emphasis-color: rgb(0, 0, 0);
 text-emphasis-position: over right;
@@ -245,7 +246,6 @@
 -webkit-nbsp-mode: normal;
 -webkit-print-color-adjust: economy;
 -webkit-rtl-ordering: logical;
--webkit-text-combine: none;
 -webkit-text-fill-color: rgb(0, 0, 0);
 -webkit-text-orientation: mixed;
 -webkit-text-security: none;

Modified: trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -170,6 +170,7 @@
 table-layout: auto
 text-align: start
 text-anchor: start
+text-combine-upright: none
 text-decoration: none
 text-emphasis-color: rgb(0, 0, 0)
 text-emphasis-position: over right
@@ -244,7 +245,6 @@
 -webkit-nbsp-mode: normal
 -webkit-print-color-adjust: economy
 -webkit-rtl-ordering: logical
--webkit-text-combine: none
 -webkit-text-fill-color: rgb(0, 0, 0)
 -webkit-text-orientation: mixed
 -webkit-text-security: none

Modified: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -253,6 +253,7 @@
 PASS table-layout
 PASS text-align
 PASS text-anchor
+PASS text-combine-upright
 PASS text-decoration
 PASS text-decoration-color
 PASS text-decoration-line
@@ -361,7 +362,6 @@
 PASS -webkit-print-color-adjust
 PASS -webkit-rtl-ordering
 PASS -webkit-ruby-position
-PASS -webkit-text-combine
 PASS -webkit-text-fill-color
 PASS -webkit-text-orientation
 PASS -webkit-text-security

Modified: trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,8 +1,8 @@
 
 PASS getComputedStyle returns no style for detached element
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 396
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 396
-FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 396
-FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 396
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 397
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 397
+FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 397
+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 397
 PASS getComputedStyle returns no style for shadow tree outside of flattened tree
 

Modified: trunk/LayoutTests/platform/ios/svg/css/getComputedStyle-basic-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/ios/svg/css/getComputedStyle-basic-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/ios/svg/css/getComputedStyle-basic-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -340,6 +340,8 @@
 rect: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-anchor) : start
 rect: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(text-combine-upright) : none
+rect: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-decoration) : none
 rect: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -488,8 +490,6 @@
 rect: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-rtl-ordering) : logical
 rect: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-rect: style.getPropertyValue(-webkit-text-combine) : none
-rect: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 rect: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-orientation) : mixed
@@ -850,6 +850,8 @@
 g: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-anchor) : start
 g: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(text-combine-upright) : none
+g: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-decoration) : none
 g: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -998,8 +1000,6 @@
 g: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-rtl-ordering) : logical
 g: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-g: style.getPropertyValue(-webkit-text-combine) : none
-g: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 g: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-orientation) : mixed

Modified: trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt (287486 => 287487)


--- trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,8 +1,8 @@
 
 PASS getComputedStyle returns no style for detached element
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 390
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 390
-FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 390
-FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 390
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 391
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 391
+FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 391
+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 391
 PASS getComputedStyle returns no style for shadow tree outside of flattened tree
 

Modified: trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt (287486 => 287487)


--- trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/LayoutTests/svg/css/getComputedStyle-basic-expected.txt	2021-12-31 00:26:34 UTC (rev 287487)
@@ -340,6 +340,8 @@
 rect: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-anchor) : start
 rect: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+rect: style.getPropertyValue(text-combine-upright) : none
+rect: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-decoration) : none
 rect: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -488,8 +490,6 @@
 rect: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-rtl-ordering) : logical
 rect: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-rect: style.getPropertyValue(-webkit-text-combine) : none
-rect: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 rect: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 rect: style.getPropertyValue(-webkit-text-orientation) : mixed
@@ -850,6 +850,8 @@
 g: style.getPropertyCSSValue(text-align) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-anchor) : start
 g: style.getPropertyCSSValue(text-anchor) : [object CSSPrimitiveValue]
+g: style.getPropertyValue(text-combine-upright) : none
+g: style.getPropertyCSSValue(text-combine-upright) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-decoration) : none
 g: style.getPropertyCSSValue(text-decoration) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(text-emphasis-color) : rgb(0, 0, 0)
@@ -998,8 +1000,6 @@
 g: style.getPropertyCSSValue(-webkit-print-color-adjust) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-rtl-ordering) : logical
 g: style.getPropertyCSSValue(-webkit-rtl-ordering) : [object CSSPrimitiveValue]
-g: style.getPropertyValue(-webkit-text-combine) : none
-g: style.getPropertyCSSValue(-webkit-text-combine) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-fill-color) : rgb(0, 0, 0)
 g: style.getPropertyCSSValue(-webkit-text-fill-color) : [object CSSPrimitiveValue]
 g: style.getPropertyValue(-webkit-text-orientation) : mixed

Modified: trunk/Source/WebCore/ChangeLog (287486 => 287487)


--- trunk/Source/WebCore/ChangeLog	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/ChangeLog	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1,3 +1,35 @@
+2021-12-27  Tim Nguyen  <[email protected]>
+
+        Implement text-combine-upright property
+        https://bugs.webkit.org/show_bug.cgi?id=150821
+
+        Reviewed by Dean Jackson.
+
+        webkit.org/b/234694 and webkit.org/b/234707 are landed for this initial version of text-combine-upright.
+
+        To reach Chrome parity, layout needs to be tweaked (webkit.org/b/234704), and pseudo elements need to be properly supported (webkit.org/b/234705).
+
+        To reach standards parity, it also needs the digits syntax to be implemented (webkit.org/b/234706), which no browser implements yet.
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator TextCombine const):
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+        * css/parser/CSSParserFastPaths.cpp:
+        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
+        (WebCore::CSSParserFastPaths::isKeywordPropertyID):
+        * rendering/LegacyLineLayout.cpp:
+        (WebCore::expansionBehaviorForInlineTextBox):
+        * rendering/style/RenderStyleConstants.cpp:
+        (WebCore::operator<<):
+        * rendering/style/RenderStyleConstants.h:
+        * style/PropertyAllowlist.cpp:
+        (WebCore::Style::isValidMarkerStyleProperty):
+        Allow setting text-combine-upright on ::marker.
+
 2021-12-30  Adrian Perez de Castro  <[email protected]>
 
         Non-unified build fixes, end-of-year 2021 edition

Modified: trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp (287486 => 287487)


--- trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp	2021-12-31 00:26:34 UTC (rev 287487)
@@ -3843,6 +3843,10 @@
         case CSSPropertyWritingMode:
             return cssValuePool.createValue(style.writingMode());
         case CSSPropertyWebkitTextCombine:
+            if (style.textCombine() == TextCombine::All)
+                return CSSPrimitiveValue::createIdentifier(CSSValueHorizontal);
+            return nullptr;
+        case CSSPropertyTextCombineUpright:
             return cssValuePool.createValue(style.textCombine());
         case CSSPropertyWebkitTextOrientation:
             return CSSPrimitiveValue::create(style.textOrientation());

Modified: trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h (287486 => 287487)


--- trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/css/CSSPrimitiveValueMappings.h	2021-12-31 00:26:34 UTC (rev 287487)
@@ -3102,8 +3102,8 @@
     case TextCombine::None:
         m_value.valueID = CSSValueNone;
         break;
-    case TextCombine::Horizontal:
-        m_value.valueID = CSSValueHorizontal;
+    case TextCombine::All:
+        m_value.valueID = CSSValueAll;
         break;
     }
 }
@@ -3115,8 +3115,9 @@
     switch (m_value.valueID) {
     case CSSValueNone:
         return TextCombine::None;
-    case CSSValueHorizontal:
-        return TextCombine::Horizontal;
+    case CSSValueAll:
+    case CSSValueHorizontal: // -webkit-text-combine only
+        return TextCombine::All;
     default:
         break;
     }

Modified: trunk/Source/WebCore/css/CSSProperties.json (287486 => 287487)


--- trunk/Source/WebCore/css/CSSProperties.json	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/css/CSSProperties.json	2021-12-31 00:26:34 UTC (rev 287487)
@@ -6625,8 +6625,25 @@
                     "-epub-text-combine"
                 ]
             },
-            "status": "non-standard"
+            "status": {
+                "status": "obsolete",
+                "comment": "Use text-combine-upright instead."
+            }
         },
+        "text-combine-upright": {
+            "inherited": true,
+            "codegen-properties": {
+                "name-for-methods": "TextCombine"
+            },
+            "values": [
+                "none",
+                "all"
+            ],
+            "specification": {
+                "category": "css-writing-modes",
+                "url": "https://www.w3.org/TR/css-writing-modes-3/#propdef-direction"
+            }
+        },
         "-webkit-text-align-last": {
             "inherited": true,
             "values": [

Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (287486 => 287487)


--- trunk/Source/WebCore/css/CSSValueKeywords.in	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1114,6 +1114,13 @@
 before
 inter-character
 
+// -webkit-text-combine
+// horizontal
+
+// text-combine-upright
+// all
+// none
+
 // text-emphasis-position
 over
 under

Modified: trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp (287486 => 287487)


--- trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/css/parser/CSSParserFastPaths.cpp	2021-12-31 00:26:34 UTC (rev 287487)
@@ -810,6 +810,8 @@
         return valueID == CSSValueBefore || valueID == CSSValueAfter || valueID == CSSValueInterCharacter;
     case CSSPropertyWebkitTextCombine:
         return valueID == CSSValueNone || valueID == CSSValueHorizontal;
+    case CSSPropertyTextCombineUpright:
+        return valueID == CSSValueNone || valueID == CSSValueAll;
     case CSSPropertyWebkitTextSecurity: // disc | circle | square | none
         return valueID == CSSValueDisc || valueID == CSSValueCircle || valueID == CSSValueSquare || valueID == CSSValueNone;
     case CSSPropertyTransformStyle:
@@ -976,6 +978,7 @@
     case CSSPropertyWebkitRtlOrdering:
     case CSSPropertyWebkitRubyPosition:
     case CSSPropertyWebkitTextCombine:
+    case CSSPropertyTextCombineUpright:
     case CSSPropertyTextDecorationStyle:
     case CSSPropertyWebkitTextOrientation:
     case CSSPropertyWebkitTextSecurity:

Modified: trunk/Source/WebCore/rendering/LegacyLineLayout.cpp (287486 => 287487)


--- trunk/Source/WebCore/rendering/LegacyLineLayout.cpp	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/rendering/LegacyLineLayout.cpp	2021-12-31 00:26:34 UTC (rev 287487)
@@ -722,7 +722,7 @@
 static inline ExpansionBehavior expansionBehaviorForInlineTextBox(RenderBlockFlow& block, LegacyInlineTextBox& textBox, BidiRun* previousRun, BidiRun* nextRun, TextAlignMode textAlign, bool isAfterExpansion)
 {
     // Tatechuyoko is modeled as the Object Replacement Character (U+FFFC), which can never have expansion opportunities inside nor intrinsically adjacent to it.
-    if (textBox.renderer().style().textCombine() == TextCombine::Horizontal)
+    if (textBox.renderer().style().textCombine() == TextCombine::All)
         return ForbidLeftExpansion | ForbidRightExpansion;
 
     ExpansionBehavior result = 0;

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp (287486 => 287487)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2021-12-31 00:26:34 UTC (rev 287487)
@@ -1032,7 +1032,7 @@
 {
     switch (textCombine) {
     case TextCombine::None: ts << "none"; break;
-    case TextCombine::Horizontal: ts << "horizontal"; break;
+    case TextCombine::All: ts << "all"; break;
     }
     return ts;
 }

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (287486 => 287487)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2021-12-31 00:26:34 UTC (rev 287487)
@@ -313,7 +313,7 @@
 
 enum class TextCombine : uint8_t {
     None,
-    Horizontal
+    All
 };
 
 enum class FillAttachment : uint8_t {

Modified: trunk/Source/WebCore/style/PropertyAllowlist.cpp (287486 => 287487)


--- trunk/Source/WebCore/style/PropertyAllowlist.cpp	2021-12-30 22:33:31 UTC (rev 287486)
+++ trunk/Source/WebCore/style/PropertyAllowlist.cpp	2021-12-31 00:26:34 UTC (rev 287487)
@@ -69,6 +69,7 @@
     case CSSPropertyListStyle:
     case CSSPropertyOverflowWrap:
     case CSSPropertyTabSize:
+    case CSSPropertyTextCombineUpright:
     case CSSPropertyTextDecorationSkipInk:
     case CSSPropertyTextEmphasis:
     case CSSPropertyTextEmphasisColor:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to