| Differences between
and this patch
- a/Source/WebCore/ChangeLog +54 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2020-03-09  Frank Yang  <guowei_yang@apple.com>
2
3
        Unprefix -webkit-text-orientation
4
        https://bugs.webkit.org/show_bug.cgi?id=196139
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        In order to unprefix -webkit-text-orientation to be text-orientation, a new property, "text-orientation"
9
        is added to CSSProperties.json. However only adding a new property is not enough because -webkit-text-orientation
10
        is a high-priority property, and without extra logic, the CSS property ordering rule cannot be enforced because 
11
        high-priority properties are applied to elements in the order they appear in the generated CSSPropertyNames.cpp file. 
12
        Therefore a codegen flag, "related-property" is added to both -webkit-text-orientation and text-orientation to point to
13
        each other, so that when applying high priorities, the algorithm treats both -webkit-text-orientation and text-orientation
14
        as the same property, and thus the CSS inline property ordering rule will take effect. 
15
16
        This code change also helps future developments when we want to unprefix other high-priority properties.
17
18
        Changes made in:
19
                CSSComputedStyleDeclaration.cpp
20
                CSSParserFastPaths.cpp
21
                StyleBuilderCustom.h
22
        are for parsing the newly added "text-orientation" property
23
24
        Changes made in:
25
                CSSProperties.json
26
                makeprop.pl
27
                CSSParserImpl.cpp
28
        are for implementing the logic to treat the prefixed and unprefixed CSS properties as the
29
        same property so that the CSS inline property order rule will hold
30
31
32
        Tests: fast/text/orientation-inheritance.html
33
               fast/text/orientation-mixed-unprefix.html
34
               fast/text/orientation-sideways-prefix-unprefix.html
35
               fast/text/orientation-sideways-unprefix.html
36
               fast/text/orientation-upright-unprefix.html
37
               fast/text/test-orientation-parsing-001.html
38
               fast/text/text-orientation-parse-competition.html
39
               fast/text/text-orientation-parse.html
40
41
        * WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme:
42
        * css/CSSComputedStyleDeclaration.cpp:
43
        (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
44
        * css/CSSProperties.json:
45
        * css/makeprop.pl:
46
        (addProperty):
47
        * css/parser/CSSParserFastPaths.cpp:
48
        (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
49
        (WebCore::CSSParserFastPaths::isKeywordPropertyID):
50
        * css/parser/CSSParserImpl.cpp:
51
        (WebCore::filterProperties):
52
        * style/StyleBuilderCustom.h:
53
        (WebCore::Style::BuilderCustom::applyValueTextOrientation):
54
1
2020-03-21  Philippe Normand  <pnormand@igalia.com>
55
2020-03-21  Philippe Normand  <pnormand@igalia.com>
2
56
3
        Make the MediaSample::toJSONString method generic
57
        Make the MediaSample::toJSONString method generic
- a/Source/WebCore/WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme +5 lines
Lines 40-45 a/Source/WebCore/WebCore.xcodeproj/xcshareddata/xcschemes/WebCore.xcscheme_sec1
40
      debugDocumentVersioning = "YES"
40
      debugDocumentVersioning = "YES"
41
      debugServiceExtension = "internal"
41
      debugServiceExtension = "internal"
42
      allowLocationSimulation = "YES">
42
      allowLocationSimulation = "YES">
43
      <PathRunnable
44
         runnableDebuggingMode = "0"
45
         BundleIdentifier = "org.webkit.MiniBrowser"
46
         FilePath = "/Users/framiere/projects/build/Debug/MiniBrowser.app">
47
      </PathRunnable>
43
   </LaunchAction>
48
   </LaunchAction>
44
   <ProfileAction
49
   <ProfileAction
45
      buildConfiguration = "Release"
50
      buildConfiguration = "Release"
- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp +2 lines
Lines 3504-3509 RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp_sec1
3504
            return cssValuePool.createValue(style.textCombine());
3504
            return cssValuePool.createValue(style.textCombine());
3505
        case CSSPropertyWebkitTextOrientation:
3505
        case CSSPropertyWebkitTextOrientation:
3506
            return CSSPrimitiveValue::create(style.textOrientation());
3506
            return CSSPrimitiveValue::create(style.textOrientation());
3507
        case CSSPropertyTextOrientation:
3508
            return CSSPrimitiveValue::create(style.textOrientation());
3507
        case CSSPropertyWebkitLineBoxContain:
3509
        case CSSPropertyWebkitLineBoxContain:
3508
            return createLineBoxContainValue(style.lineBoxContain());
3510
            return createLineBoxContainValue(style.lineBoxContain());
3509
        case CSSPropertyAlt:
3511
        case CSSPropertyAlt:
- a/Source/WebCore/css/CSSProperties.json +28 lines
Lines 116-121 a/Source/WebCore/css/CSSProperties.json_sec1
116
        "Whether the property needs to be applied before non-high-priority properties",
116
        "Whether the property needs to be applied before non-high-priority properties",
117
        "in CSS cascading order.",
117
        "in CSS cascading order.",
118
        "",
118
        "",
119
        "* related-property:",
120
        "Indicates the prefixed or unprefixed version of the same property",
121
        "e.g. -webkit-text-orientation has a related property text-orientation",
122
        "which is an unprefixed version, and vice versa.",
123
        "Using this instead of the alias flag makes it possible to have independent control",
124
        " of the behavior of the prefixed and unprefixed version of a property,",
125
        "but still follow the precedence rule since the two related properties target the same HTML element",
126
        "If using this flag, make sure both the prefixed and unprefixed property have specified a related-property",
127
        "and that they are pointing to each other",
128
        "",
119
        "* aliases:",
129
        "* aliases:",
120
        "An array of the alternative names for this property.",
130
        "An array of the alternative names for this property.",
121
        "",
131
        "",
Lines 619-624 a/Source/WebCore/css/CSSProperties.json_sec2
619
            },
629
            },
620
            "status": "non-standard"
630
            "status": "non-standard"
621
        },
631
        },
632
        "text-orientation": {
633
            "inherited": true,
634
            "values": [
635
                "sideways",
636
                "mixed",
637
                "upright"
638
            ],
639
            "codegen-properties": {
640
                "custom": "Value",
641
                "related-property": "-webkit-text-orientation",
642
                "high-priority": true
643
            },
644
            "specification": {
645
                "category": "css-writing-modes",
646
                "url": "https://www.w3.org/TR/css-writing-modes-3/#text-orientation"
647
            }
648
        },
622
        "-webkit-text-orientation": {
649
        "-webkit-text-orientation": {
623
            "inherited": true,
650
            "inherited": true,
624
            "values": [
651
            "values": [
Lines 638-643 a/Source/WebCore/css/CSSProperties.json_sec3
638
                "aliases": [
665
                "aliases": [
639
                    "-epub-text-orientation"
666
                    "-epub-text-orientation"
640
                ],
667
                ],
668
                "related-property": "text-orientation",
641
                "custom": "Value",
669
                "custom": "Value",
642
                "high-priority": true
670
                "high-priority": true
643
            },
671
            },
- a/Source/WebCore/css/makeprop.pl +22 lines
Lines 85-90 my %styleBuilderOptions = ( a/Source/WebCore/css/makeprop.pl_sec1
85
);
85
);
86
my %nameToId;
86
my %nameToId;
87
my %nameToAliases;
87
my %nameToAliases;
88
my %relatedProperty;
88
89
89
for my $name (@allNames) {
90
for my $name (@allNames) {
90
    my $value = $propertiesHashRef->{$name};
91
    my $value = $propertiesHashRef->{$name};
Lines 193-198 sub addProperty($$) a/Source/WebCore/css/makeprop.pl_sec2
193
                    next;
194
                    next;
194
                } elsif ($codegenOptionName eq "high-priority") {
195
                } elsif ($codegenOptionName eq "high-priority") {
195
                    $nameIsHighPriority{$name} = 1;
196
                    $nameIsHighPriority{$name} = 1;
197
                } elsif ($codegenOptionName eq "related-property") {
198
                    $relatedProperty{$name} = $codegenProperties->{"related-property"}
196
                } elsif ($codegenOptionName eq "aliases") {
199
                } elsif ($codegenOptionName eq "aliases") {
197
                    $nameToAliases{$name} = $codegenProperties->{"aliases"};
200
                    $nameToAliases{$name} = $codegenProperties->{"aliases"};
198
                } elsif ($styleBuilderOptions{$codegenOptionName}) {
201
                } elsif ($styleBuilderOptions{$codegenOptionName}) {
Lines 415-420 bool CSSProperty::isInheritedProperty(CSSPropertyID id) a/Source/WebCore/css/makeprop.pl_sec3
415
    ASSERT(id != CSSPropertyInvalid);
418
    ASSERT(id != CSSPropertyInvalid);
416
    return isInheritedPropertyTable[id];
419
    return isInheritedPropertyTable[id];
417
}
420
}
421
    
422
CSSPropertyID getRelatedPropertyId(CSSPropertyID id)
423
{
424
    switch(id) {
425
EOF
426
for my $name (@names) {
427
    if (!$relatedProperty{$name}) {
428
        next;
429
    }
430
    print GPERF "    case CSSPropertyID::CSSProperty" . $nameToId{$name} . ":\n";
431
    print GPERF "        return CSSPropertyID::CSSProperty" . $nameToId{$relatedProperty{$name}} . ";\n";
432
}
433
        
434
print GPERF << "EOF";
435
    default:
436
        return CSSPropertyID::CSSPropertyInvalid;
437
    }
438
}
418
439
419
Vector<String> CSSProperty::aliasesForProperty(CSSPropertyID id)
440
Vector<String> CSSProperty::aliasesForProperty(CSSPropertyID id)
420
{
441
{
Lines 531-536 const char* getPropertyName(CSSPropertyID); a/Source/WebCore/css/makeprop.pl_sec4
531
const WTF::AtomString& getPropertyNameAtomString(CSSPropertyID id);
552
const WTF::AtomString& getPropertyNameAtomString(CSSPropertyID id);
532
WTF::String getPropertyNameString(CSSPropertyID id);
553
WTF::String getPropertyNameString(CSSPropertyID id);
533
WTF::String getJSPropertyName(CSSPropertyID);
554
WTF::String getJSPropertyName(CSSPropertyID);
555
CSSPropertyID getRelatedPropertyId(CSSPropertyID id);
534
556
535
inline CSSPropertyID convertToCSSPropertyID(int value)
557
inline CSSPropertyID convertToCSSPropertyID(int value)
536
{
558
{
- a/Source/WebCore/css/parser/CSSParserFastPaths.cpp -1 / +3 lines
Lines 668-673 bool CSSParserFastPaths::isValidKeywordPropertyAndValue(CSSPropertyID propertyId a/Source/WebCore/css/parser/CSSParserFastPaths.cpp_sec1
668
#endif
668
#endif
669
    case CSSPropertyWebkitTextOrientation: // mixed | upright | sideways | sideways-right
669
    case CSSPropertyWebkitTextOrientation: // mixed | upright | sideways | sideways-right
670
        return valueID == CSSValueMixed || valueID == CSSValueUpright || valueID == CSSValueSideways || valueID == CSSValueSidewaysRight;
670
        return valueID == CSSValueMixed || valueID == CSSValueUpright || valueID == CSSValueSideways || valueID == CSSValueSidewaysRight;
671
    case CSSPropertyTextOrientation:
672
        return valueID == CSSValueMixed || valueID == CSSValueUpright || valueID == CSSValueSideways;
671
    case CSSPropertyTextOverflow: // clip | ellipsis
673
    case CSSPropertyTextOverflow: // clip | ellipsis
672
        return valueID == CSSValueClip || valueID == CSSValueEllipsis;
674
        return valueID == CSSValueClip || valueID == CSSValueEllipsis;
673
    case CSSPropertyTextRendering: // auto | optimizeSpeed | optimizeLegibility | geometricPrecision
675
    case CSSPropertyTextRendering: // auto | optimizeSpeed | optimizeLegibility | geometricPrecision
Lines 869-874 bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId) a/Source/WebCore/css/parser/CSSParserFastPaths.cpp_sec2
869
    case CSSPropertyResize:
871
    case CSSPropertyResize:
870
    case CSSPropertyTableLayout:
872
    case CSSPropertyTableLayout:
871
    case CSSPropertyTextAlign:
873
    case CSSPropertyTextAlign:
874
    case CSSPropertyTextOrientation:
872
    case CSSPropertyTextOverflow:
875
    case CSSPropertyTextOverflow:
873
    case CSSPropertyTextRendering:
876
    case CSSPropertyTextRendering:
874
    case CSSPropertyTextTransform:
877
    case CSSPropertyTextTransform:
Lines 943-949 bool CSSParserFastPaths::isKeywordPropertyID(CSSPropertyID propertyId) a/Source/WebCore/css/parser/CSSParserFastPaths.cpp_sec3
943
    // case CSSPropertyTextCombineUpright:
946
    // case CSSPropertyTextCombineUpright:
944
    // case CSSPropertyTextDecorationStyle:
947
    // case CSSPropertyTextDecorationStyle:
945
    // case CSSPropertyTextJustify:
948
    // case CSSPropertyTextJustify:
946
    // case CSSPropertyTextOrientation:
947
    // case CSSPropertyUserSelect:
949
    // case CSSPropertyUserSelect:
948
#if ENABLE(CSS_TRAILING_WORD)
950
#if ENABLE(CSS_TRAILING_WORD)
949
    case CSSPropertyAppleTrailingWord:
951
    case CSSPropertyAppleTrailingWord:
- a/Source/WebCore/css/parser/CSSParserImpl.cpp -1 / +9 lines
Lines 123-131 static inline void filterProperties(bool important, const ParsedPropertyVector& a/Source/WebCore/css/parser/CSSParserImpl.cpp_sec1
123
         // FIXME: Do we need to do anything here?
123
         // FIXME: Do we need to do anything here?
124
         } */
124
         } */
125
        
125
        
126
        const unsigned relatedPropertyId = getRelatedPropertyId(property.id());
127
126
        if (seenProperties.test(propertyIDIndex))
128
        if (seenProperties.test(propertyIDIndex))
127
            continue;
129
            continue;
128
        seenProperties.set(propertyIDIndex);
130
        
131
        if (property.id() != CSSPropertyInvalid && relatedPropertyId != CSSPropertyInvalid) {
132
            const unsigned relatedPropertyIDIndex = relatedPropertyId - firstCSSProperty;
133
            seenProperties.set(relatedPropertyIDIndex);
134
            seenProperties.set(propertyIDIndex);
135
        } else
136
            seenProperties.set(propertyIDIndex);
129
137
130
        output[--unusedEntries] = property;
138
        output[--unusedEntries] = property;
131
    }
139
    }
- a/Source/WebCore/style/StyleBuilderCustom.h +6 lines
Lines 133-138 public: a/Source/WebCore/style/StyleBuilderCustom.h_sec1
133
    static void applyValueTextAlign(BuilderState&, CSSValue&);
133
    static void applyValueTextAlign(BuilderState&, CSSValue&);
134
    static void applyValueWebkitLocale(BuilderState&, CSSValue&);
134
    static void applyValueWebkitLocale(BuilderState&, CSSValue&);
135
    static void applyValueWebkitTextOrientation(BuilderState&, CSSValue&);
135
    static void applyValueWebkitTextOrientation(BuilderState&, CSSValue&);
136
    static void applyValueTextOrientation(BuilderState&, CSSValue&);
136
#if ENABLE(TEXT_AUTOSIZING)
137
#if ENABLE(TEXT_AUTOSIZING)
137
    static void applyValueWebkitTextSizeAdjust(BuilderState&, CSSValue&);
138
    static void applyValueWebkitTextSizeAdjust(BuilderState&, CSSValue&);
138
#endif
139
#endif
Lines 757-762 inline void BuilderCustom::applyValueWebkitTextOrientation(BuilderState& builder a/Source/WebCore/style/StyleBuilderCustom.h_sec2
757
    builderState.setTextOrientation(downcast<CSSPrimitiveValue>(value));
758
    builderState.setTextOrientation(downcast<CSSPrimitiveValue>(value));
758
}
759
}
759
760
761
inline void BuilderCustom::applyValueTextOrientation(BuilderState& builderState, CSSValue& value)
762
{
763
    builderState.setTextOrientation(downcast<CSSPrimitiveValue>(value));
764
}
765
760
#if ENABLE(TEXT_AUTOSIZING)
766
#if ENABLE(TEXT_AUTOSIZING)
761
inline void BuilderCustom::applyValueWebkitTextSizeAdjust(BuilderState& builderState, CSSValue& value)
767
inline void BuilderCustom::applyValueWebkitTextSizeAdjust(BuilderState& builderState, CSSValue& value)
762
{
768
{
- a/Tools/ChangeLog +13 lines
Lines 1-3 a/Tools/ChangeLog_sec1
1
2020-03-09  Frank Yang  <guowei_yang@apple.com>
2
3
        Unprefix -webkit-text-orientation
4
        https://bugs.webkit.org/show_bug.cgi?id=196139
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        This change is made to add the extra flag "related-property" in CSSProperty.json
9
        in the jsonchecker so that the jsonchecker would not complain about unrecognized key
10
11
        * Scripts/webkitpy/style/checkers/jsonchecker.py:
12
        (JSONCSSPropertiesChecker.check_codegen_properties):
13
1
2020-03-21  Michael Catanzaro  <mcatanzaro@gnome.org>
14
2020-03-21  Michael Catanzaro  <mcatanzaro@gnome.org>
2
15
3
        [GTK] Use ${PYTHON_EXECUTABLE} to run generate-gtkdoc
16
        [GTK] Use ${PYTHON_EXECUTABLE} to run generate-gtkdoc
- a/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py +1 lines
Lines 287-292 class JSONCSSPropertiesChecker(JSONChecker): a/Tools/Scripts/webkitpy/style/checkers/jsonchecker.py_sec1
287
            'longhands': self.validate_array,
287
            'longhands': self.validate_array,
288
            'name-for-methods': self.validate_string,
288
            'name-for-methods': self.validate_string,
289
            'no-default-color': self.validate_boolean,
289
            'no-default-color': self.validate_boolean,
290
            'related-property': self.validate_string,
290
            'runtime-flag': self.validate_string,
291
            'runtime-flag': self.validate_string,
291
            'setter': self.validate_string,
292
            'setter': self.validate_string,
292
            'skip-builder': self.validate_boolean,
293
            'skip-builder': self.validate_boolean,
- a/LayoutTests/ChangeLog +29 lines
Lines 1-3 a/LayoutTests/ChangeLog_sec1
1
2020-03-09  Frank Yang  <guowei_yang@apple.com>
2
3
        Unprefix -webkit-text-orientation
4
        https://bugs.webkit.org/show_bug.cgi?id=196139
5
6
        Added test cases to check that Webkit can now parse text-orientation correctly, 
7
        as well as that the precedence rule for CSS property still applies when both 
8
        -webkit-text-orientation and text-orientation property are present, the second 
9
        one takes precedence. 
10
11
        Reviewed by NOBODY (OOPS!).
12
13
        * fast/text/orientation-inheritance-expected.html: Added.
14
        * fast/text/orientation-inheritance.html: Added.
15
        * fast/text/orientation-mixed-unprefix-expected.html: Added.
16
        * fast/text/orientation-mixed-unprefix.html: Added.
17
        * fast/text/orientation-sideways-prefix-unprefix-expected.html: Added.
18
        * fast/text/orientation-sideways-prefix-unprefix.html: Added.
19
        * fast/text/orientation-sideways-unprefix-expected.html: Added.
20
        * fast/text/orientation-sideways-unprefix.html: Added.
21
        * fast/text/orientation-upright-unprefix-expected.html: Added.
22
        * fast/text/orientation-upright-unprefix.html: Added.
23
        * fast/text/test-orientation-parsing-001-expected.txt: Added.
24
        * fast/text/test-orientation-parsing-001.html: Added.
25
        * fast/text/text-orientation-parse-competition-expected.txt: Added.
26
        * fast/text/text-orientation-parse-competition.html: Added.
27
        * fast/text/text-orientation-parse-expected.txt: Added.
28
        * fast/text/text-orientation-parse.html: Added.
29
1
2020-03-21  Simon Fraser  <simon.fraser@apple.com>
30
2020-03-21  Simon Fraser  <simon.fraser@apple.com>
2
31
3
        [ Mac wk2 ] tiled-drawing/simple-document-with-margin-tiles.html is flaky failing.
32
        [ Mac wk2 ] tiled-drawing/simple-document-with-margin-tiles.html is flaky failing.
- a/LayoutTests/fast/text/orientation-inheritance-expected.html +26 lines
Line 0 a/LayoutTests/fast/text/orientation-inheritance-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	</head>
5
	<body>
6
		This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
		<div id="placeholder"></div>
8
		<div style="text-orientation: upright;">
9
			<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways;">苹果公司 abcd  
10
				<div>
11
					你好 Hello World!   
12
				</div>	
13
			</div>
14
			<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: mixed;">苹果公司 abcd  
15
				<div>
16
					你好 Hello World!   
17
				</div>	
18
			</div>
19
			<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: upright;">苹果公司 abcd  
20
				<div>
21
					你好 Hello World!
22
				</div>	
23
			</div>
24
		</div>
25
	</body>
26
</html>
- a/LayoutTests/fast/text/orientation-inheritance.html +26 lines
Line 0 a/LayoutTests/fast/text/orientation-inheritance.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	</head>
5
	<body>
6
		This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
		<div id="placeholder"></div>
8
		<div style="text-orientation: upright;">
9
			<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;">苹果公司 abcd  
10
				<div>
11
					你好 Hello World!   
12
				</div>	
13
			</div>
14
			<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: mixed;">苹果公司 abcd  
15
				<div>
16
					你好 Hello World!   
17
				</div>	
18
			</div>
19
			<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: upright;">苹果公司 abcd  
20
				<div>
21
					你好 Hello World!
22
				</div>	
23
			</div>
24
		</div>
25
	</body>
26
</html>
- a/LayoutTests/fast/text/orientation-mixed-unprefix-expected.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-mixed-unprefix-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: mixed;">苹果公司abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/orientation-mixed-unprefix.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-mixed-unprefix.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: mixed;">苹果公司abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/orientation-sideways-prefix-unprefix-expected.html +12 lines
Line 0 a/LayoutTests/fast/text/orientation-sideways-prefix-unprefix-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	</head>
5
	<body>
6
		This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
		<div id="placeholder"></div>
8
		<div style="text-orientation: upright;">
9
			<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways;">苹果公司 abcd</div>
10
		</div>
11
	</body>
12
</html>
- a/LayoutTests/fast/text/orientation-sideways-prefix-unprefix.html +12 lines
Line 0 a/LayoutTests/fast/text/orientation-sideways-prefix-unprefix.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	</head>
5
	<body>
6
		This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
		<div id="placeholder"></div>
8
		<div style="text-orientation: upright;">
9
			<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: upright; text-orientation: sideways;">苹果公司 abcd</div>
10
		</div>
11
	</body>
12
</html>
- a/LayoutTests/fast/text/orientation-sideways-unprefix-expected.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-sideways-unprefix-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways;">苹果公司 abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/orientation-sideways-unprefix.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-sideways-unprefix.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;">苹果公司 abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/orientation-upright-unprefix-expected.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-upright-unprefix-expected.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: upright;">abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/orientation-upright-unprefix.html +17 lines
Line 0 a/LayoutTests/fast/text/orientation-upright-unprefix.html_sec1
1
<!DOCTYPE html>
2
<html>
3
<head>
4
</head>
5
<body>
6
This test makes sure that text-orientation: sideways is treated the same as text-orientation: sideways-right.
7
<div id="placeholder"></div>
8
<div style="text-orientation: upright;">
9
<div id="t" style="-webkit-writing-mode: vertical-rl; text-orientation: upright;">abcd</div>
10
</div>
11
<script>
12
var t = document.getElementById("t");
13
var receiver = document.getElementById("placeholder");
14
receiver.textContent = window.getComputedStyle(t).getPropertyValue("-webkit-text-orientation");
15
</script>
16
</body>
17
</html>
- a/LayoutTests/fast/text/test-orientation-parsing-001-expected.txt +11 lines
Line 0 a/LayoutTests/fast/text/test-orientation-parsing-001-expected.txt_sec1
1
PASS window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation is "upright"
2
PASS window.getComputedStyle(document.getElementById('test2')).webkitTextOrientation is "sideways"
3
PASS window.getComputedStyle(document.getElementById('test3')).webkitTextOrientation is "upright"
4
PASS window.getComputedStyle(document.getElementById('test4')).webkitTextOrientation is "mixed"
5
PASS window.getComputedStyle(document.getElementById('test5')).webkitTextOrientation is "mixed"
6
PASS window.getComputedStyle(document.getElementById('test6')).webkitTextOrientation is "upright"
7
PASS window.getComputedStyle(document.getElementById('test7')).webkitTextOrientation is "upright"
8
PASS successfullyParsed is true
9
10
TEST COMPLETE
11
- a/LayoutTests/fast/text/test-orientation-parsing-001.html +46 lines
Line 0 a/LayoutTests/fast/text/test-orientation-parsing-001.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	<script src="../../resources/js-test-pre.js"></script>
5
	</head>
6
	<body>
7
		<div
8
		  data-expected="mixed" title="text-orientation initial value"></div>
9
10
		<div id="test1" style="text-orientation: upright"
11
		  data-expected="upright"></div>
12
		<div id="test2" style="text-orientation: sideways"
13
		  data-expected="sideways"></div>
14
15
		<div id="test3" style="text-orientation: upright">
16
		  <div
17
		    data-expected="upright" title="text-orientation should inherit"></div>
18
19
		  <div id="test4" style="text-orientation: mixed"
20
		    data-expected="mixed"></div>
21
22
		  <div id="test5" style="text-orientation: initial"
23
		    data-expected="mixed"></div>
24
		  <div id="test6" style="text-orientation: inherit"
25
		    data-expected="upright"></div>
26
27
		  <div id="test7" style="text-orientation: foo"
28
		    data-expected="upright"></div>
29
		</div>
30
31
32
33
34
		<script>
35
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation", "upright");
36
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test2')).webkitTextOrientation", "sideways");
37
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test3')).webkitTextOrientation", "upright");
38
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test4')).webkitTextOrientation", "mixed");
39
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test5')).webkitTextOrientation", "mixed");
40
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test6')).webkitTextOrientation", "upright");
41
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test7')).webkitTextOrientation", "upright");
42
		</script>
43
44
		<script src="../../resources/js-test-post.js"></script>
45
	</body>
46
</html>
- a/LayoutTests/fast/text/text-orientation-parse-competition-expected.txt +5 lines
Line 0 a/LayoutTests/fast/text/text-orientation-parse-competition-expected.txt_sec1
1
PASS window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation is "upright"
2
PASS successfullyParsed is true
3
4
TEST COMPLETE
5
你好ABC
- a/LayoutTests/fast/text/text-orientation-parse-competition.html +13 lines
Line 0 a/LayoutTests/fast/text/text-orientation-parse-competition.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	<script src="../../resources/js-test-pre.js"></script>
5
	</head>
6
	<body>
7
		<div id="test1" style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways; text-orientation: upright">你好ABC</div>
8
		<script>
9
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation", "upright");
10
		</script>
11
		<script src="../../resources/js-test-post.js"></script>
12
	</body>
13
</html>
- a/LayoutTests/fast/text/text-orientation-parse-expected.txt +31 lines
Line 0 a/LayoutTests/fast/text/text-orientation-parse-expected.txt_sec1
1
PASS window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation is "sideways"
2
PASS window.getComputedStyle(document.getElementById('test2')).webkitTextOrientation is "sideways"
3
PASS window.getComputedStyle(document.getElementById('test3')).webkitTextOrientation is "sideways"
4
PASS window.getComputedStyle(document.getElementById('test4')).webkitTextOrientation is "sideways"
5
PASS window.getComputedStyle(document.getElementById('test5')).webkitTextOrientation is "upright"
6
PASS window.getComputedStyle(document.getElementById('test6')).webkitTextOrientation is "upright"
7
PASS window.getComputedStyle(document.getElementById('test7')).webkitTextOrientation is "upright"
8
PASS window.getComputedStyle(document.getElementById('test8')).webkitTextOrientation is "upright"
9
PASS window.getComputedStyle(document.getElementById('test9')).webkitTextOrientation is "upright"
10
PASS window.getComputedStyle(document.getElementById('test10')).webkitTextOrientation is "mixed"
11
PASS window.getComputedStyle(document.getElementById('test11')).webkitTextOrientation is "sideways"
12
PASS window.getComputedStyle(document.getElementById('test12')).webkitTextOrientation is "mixed"
13
PASS window.getComputedStyle(document.getElementById('test13')).webkitTextOrientation is "mixed"
14
PASS window.getComputedStyle(document.getElementById('test14')).webkitTextOrientation is "sideways"
15
PASS window.getComputedStyle(document.getElementById('test15')).webkitTextOrientation is "sideways"
16
PASS window.getComputedStyle(document.getElementById('test16')).webkitTextOrientation is "upright"
17
PASS window.getComputedStyle(document.getElementById('test17')).webkitTextOrientation is "upright"
18
PASS window.getComputedStyle(document.getElementById('test18')).webkitTextOrientation is "upright"
19
PASS window.getComputedStyle(document.getElementById('test19')).webkitTextOrientation is "upright"
20
PASS window.getComputedStyle(document.getElementById('test20')).webkitTextOrientation is "upright"
21
PASS window.getComputedStyle(document.getElementById('test21')).webkitTextOrientation is "mixed"
22
PASS window.getComputedStyle(document.getElementById('test22')).webkitTextOrientation is "sideways"
23
PASS window.getComputedStyle(document.getElementById('test23')).webkitTextOrientation is "upright"
24
PASS window.getComputedStyle(document.getElementById('test24')).webkitTextOrientation is "upright"
25
PASS window.getComputedStyle(document.getElementById('test25')).webkitTextOrientation is "sideways"
26
PASS window.getComputedStyle(document.getElementById('test26')).webkitTextOrientation is "sideways"
27
PASS window.getComputedStyle(document.getElementById('test27')).webkitTextOrientation is "sideways"
28
PASS successfullyParsed is true
29
30
TEST COMPLETE
31
- a/LayoutTests/fast/text/text-orientation-parse.html +101 lines
Line 0 a/LayoutTests/fast/text/text-orientation-parse.html_sec1
1
<!DOCTYPE html>
2
<html>
3
	<head>
4
	<script src="../../resources/js-test-pre.js"></script>
5
	</head>
6
	<body>
7
		<div style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;">
8
			<div id="test1"></div>
9
			<div id="test2" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;"></div>
10
			<div id="test3" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;"></div>
11
			<div id="test4" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;"></div>
12
			<div id="test5" style="-webkit-writing-mode: vertical-rl; text-orientation: upright;">
13
				<div id="test6"></div>
14
				<div id="test7" style="text-orientation: upright;">
15
					<div id="test8">
16
						<div id="test9"></div>
17
					</div>
18
					<div id="test10" style="text-orientation: mixed;"></div>
19
				</div>
20
			</div>
21
			<div id="test11" style="-webkit-text-orientation: upright; text-orientation: sideways;"></div> 
22
		</div>
23
24
25
		<div id="test12" style="-webkit-writing-mode: vertical-rl;">
26
			<div id="test13"></div>
27
		</div>
28
29
30
		<div style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways;">
31
			<div id="test14"></div>
32
			<div id="test15" style="-webkit-writing-mode: vertical-rl; text-orientation: sideways;"></div>
33
			<div id="test16" style="-webkit-writing-mode: vertical-rl; text-orientation: upright;">
34
				<div id="test17"></div>
35
				<div id="test18" style="text-orientation: upright;">
36
					<div id="test19">
37
						<div id="test20"></div>
38
					</div>
39
					<div id="test21" style="text-orientation: mixed;"></div>
40
				</div>
41
			<div id="test22" style="-webkit-text-orientation: upright; text-orientation: sideways;"></div> 
42
			</div>
43
		</div>
44
45
46
		<div style="-webkit-writing-mode: vertical-rl; -webkit-text-orientation: sideways; text-orientation: upright">
47
			<div id="test23">
48
				<div id="test24"></div>
49
			</div>
50
		</div>
51
52
		<div id="test25" style="-webkit-writing-mode: vertical-rl;  text-orientation: upright; -webkit-text-orientation: sideways;">
53
			<div id="test26">
54
				<div id="test27"></div>
55
			</div>
56
		</div>
57
58
59
60
		<script>
61
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test1')).webkitTextOrientation", "sideways");
62
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test2')).webkitTextOrientation", "sideways");
63
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test3')).webkitTextOrientation", "sideways");
64
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test4')).webkitTextOrientation", "sideways");
65
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test5')).webkitTextOrientation", "upright");
66
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test6')).webkitTextOrientation", "upright");
67
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test7')).webkitTextOrientation", "upright");
68
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test8')).webkitTextOrientation", "upright");
69
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test9')).webkitTextOrientation", "upright");
70
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test10')).webkitTextOrientation", "mixed");
71
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test11')).webkitTextOrientation", "sideways");
72
73
74
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test12')).webkitTextOrientation", "mixed");
75
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test13')).webkitTextOrientation", "mixed");
76
77
78
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test14')).webkitTextOrientation", "sideways");
79
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test15')).webkitTextOrientation", "sideways");
80
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test16')).webkitTextOrientation", "upright");
81
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test17')).webkitTextOrientation", "upright");
82
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test18')).webkitTextOrientation", "upright");
83
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test19')).webkitTextOrientation", "upright");
84
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test20')).webkitTextOrientation", "upright");
85
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test21')).webkitTextOrientation", "mixed");
86
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test22')).webkitTextOrientation", "sideways");
87
88
			
89
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test23')).webkitTextOrientation", "upright");
90
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test24')).webkitTextOrientation", "upright");
91
92
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test25')).webkitTextOrientation", "sideways");
93
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test26')).webkitTextOrientation", "sideways");
94
			shouldBeEqualToString("window.getComputedStyle(document.getElementById('test27')).webkitTextOrientation", "sideways");
95
96
97
		</script>
98
99
		<script src="../../resources/js-test-post.js"></script>
100
	</body>
101
</html>
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +1 lines
Lines 243-248 PASS text-decoration-line a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt_sec1
243
PASS text-decoration-skip 
243
PASS text-decoration-skip 
244
PASS text-decoration-style 
244
PASS text-decoration-style 
245
PASS text-decoration-thickness 
245
PASS text-decoration-thickness 
246
PASS text-orientation 
246
PASS text-indent 
247
PASS text-indent 
247
PASS text-overflow 
248
PASS text-overflow 
248
PASS text-rendering 
249
PASS text-rendering 
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-orientation-valid-expected.txt -3 / +3 lines
Lines 1-5 a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/parsing/text-orientation-valid-expected.txt_sec1
1
1
2
FAIL e.style['text-orientation'] = "mixed" should set the property value assert_not_equals: property should be set got disallowed value ""
2
PASS e.style['text-orientation'] = "mixed" should set the property value 
3
FAIL e.style['text-orientation'] = "upright" should set the property value assert_not_equals: property should be set got disallowed value ""
3
PASS e.style['text-orientation'] = "upright" should set the property value 
4
FAIL e.style['text-orientation'] = "sideways" should set the property value assert_not_equals: property should be set got disallowed value ""
4
PASS e.style['text-orientation'] = "sideways" should set the property value 
5
5
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-001-expected.txt -8 / +8 lines
Lines 1-10 a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-001-expected.txt_sec1
1
1
2
FAIL text-orientation initial value assert_equals: expected (string) "mixed" but got (undefined) undefined
2
PASS text-orientation initial value 
3
FAIL -webkit-text-orientation: upright assert_equals: expected (string) "upright" but got (undefined) undefined
3
PASS -webkit-text-orientation: upright 
4
FAIL -webkit-text-orientation: sideways assert_equals: expected (string) "sideways" but got (undefined) undefined
4
PASS -webkit-text-orientation: sideways 
5
FAIL text-orientation should inherit assert_equals: expected (string) "upright" but got (undefined) undefined
5
PASS text-orientation should inherit 
6
FAIL -webkit-text-orientation: mixed assert_equals: expected (string) "mixed" but got (undefined) undefined
6
PASS -webkit-text-orientation: mixed 
7
FAIL -webkit-text-orientation: initial assert_equals: expected (string) "mixed" but got (undefined) undefined
7
PASS -webkit-text-orientation: initial 
8
FAIL -webkit-text-orientation: inherit assert_equals: expected (string) "upright" but got (undefined) undefined
8
PASS -webkit-text-orientation: inherit 
9
FAIL -webkit-text-orientation: foo assert_equals: expected (string) "upright" but got (undefined) undefined
9
PASS -webkit-text-orientation: foo 
10
10
- a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-sideways-right-001-expected.txt -1 / +1 lines
Lines 1-3 a/LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/text-orientation-parsing-sideways-right-001-expected.txt_sec1
1
1
2
FAIL -webkit-text-orientation: sideways-right assert_equals: expected (string) "sideways" but got (undefined) undefined
2
PASS -webkit-text-orientation: sideways-right 
3
3
- a/LayoutTests/imported/w3c/web-platform-tests/svg/styling/required-properties-expected.txt -1 / +1 lines
Lines 67-73 PASS Property "text-decoration-color" is supported a/LayoutTests/imported/w3c/web-platform-tests/svg/styling/required-properties-expected.txt_sec1
67
PASS Property "text-decoration-line" is supported 
67
PASS Property "text-decoration-line" is supported 
68
PASS Property "text-decoration-style" is supported 
68
PASS Property "text-decoration-style" is supported 
69
PASS Property "text-indent" is supported 
69
PASS Property "text-indent" is supported 
70
FAIL Property "text-orientation" is supported assert_true: expected true got false
70
PASS Property "text-orientation" is supported 
71
PASS Property "text-overflow" is supported 
71
PASS Property "text-overflow" is supported 
72
PASS Property "text-rendering" is supported 
72
PASS Property "text-rendering" is supported 
73
FAIL Property "text-space-collapse" is supported assert_true: expected true got false
73
FAIL Property "text-space-collapse" is supported assert_true: expected true got false
- a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt +1 lines
Lines 243-248 PASS text-decoration-line a/LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt_sec1
243
PASS text-decoration-skip 
243
PASS text-decoration-skip 
244
PASS text-decoration-style 
244
PASS text-decoration-style 
245
PASS text-decoration-thickness 
245
PASS text-decoration-thickness 
246
PASS text-orientation 
246
PASS text-indent 
247
PASS text-indent 
247
PASS text-overflow 
248
PASS text-overflow 
248
PASS text-rendering 
249
PASS text-rendering 

Return to Bug 196139