Ignore:
Timestamp:
Dec 30, 2021, 4:26:34 PM (3 years ago)
Author:
[email protected]
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:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/css/CSSComputedStyleDeclaration.cpp

    r287434 r287487  
    38443844            return cssValuePool.createValue(style.writingMode());
    38453845        case CSSPropertyWebkitTextCombine:
     3846            if (style.textCombine() == TextCombine::All)
     3847                return CSSPrimitiveValue::createIdentifier(CSSValueHorizontal);
     3848            return nullptr;
     3849        case CSSPropertyTextCombineUpright:
    38463850            return cssValuePool.createValue(style.textCombine());
    38473851        case CSSPropertyWebkitTextOrientation:
Note: See TracChangeset for help on using the changeset viewer.