- Source/WebCore/ChangeLog +35 lines
Lines 1-3 Source/WebCore/ChangeLog_sec1
1
2012-08-20  Ryosuke Niwa  <rniwa@webkit.org>
2
3
        Replace isolate || bidi-override by isolate-override
4
        https://bugs.webkit.org/show_bug.cgi?id=89746
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        The combination of bidi-isolate and isolate was replaced by a single isolate-override in
9
        http://lists.w3.org/Archives/Public/www-style/2012May/0541.html. The spec. has been updated accordingly:
10
        http://dev.w3.org/csswg/css3-writing-modes/#unicode-bidi
11
12
        To follow the specification change, added -webkit-isolate-override and removed the support for
13
        isolate || bidi-override, simplifying the CSS parser and serializer.
14
15
        Test: fast/text/bidi-override-isolate.html
16
17
        * css/CSSComputedStyleDeclaration.cpp:
18
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Removed. We can just new a CSSPrimitiveValue
19
        constructor now.
20
        * css/CSSParser.cpp:
21
        (WebCore::CSSParser::parseValue):
22
        * css/CSSPrimitiveValueMappings.h:
23
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added now that unicode-bidi always creates a signle
24
        primitive value instead of a primitive value of css value list.
25
        (WebCore::CSSPrimitiveValue::operator EUnicodeBidi):
26
        * css/CSSValueKeywords.in: Added -webkit-isolate-override
27
        * css/StyleBuilder.cpp:
28
        (WebCore): Removed ApplyPropertyUnicodeBidi since we can use ApplyPropertyDefault now.
29
        (WebCore::StyleBuilder::StyleBuilder): Use ApplyPropertyDefault.
30
        * platform/text/UnicodeBidi.h: Renamed OverrideIsolate to IsolateOverride to match the spec.
31
        (WebCore::isIsolated):
32
        (WebCore::isOverride):
33
        * rendering/RenderBlockLineLayout.cpp:
34
        (WebCore::constructBidiRuns):
35
1
2012-08-20  John Mellor  <johnme@chromium.org>
36
2012-08-20  John Mellor  <johnme@chromium.org>
2
37
3
        Text Autosizing: Only take into account block width <= document layout width.
38
        Text Autosizing: Only take into account block width <= document layout width.
- Source/WebCore/css/CSSComputedStyleDeclaration.cpp -26 / +1 lines
Lines 1176-1206 static PassRefPtr<CSSPrimitiveValue> val Source/WebCore/css/CSSComputedStyleDeclaration.cpp_sec1
1176
    return cssValuePool().createValue(family.string(), CSSPrimitiveValue::CSS_STRING);
1176
    return cssValuePool().createValue(family.string(), CSSPrimitiveValue::CSS_STRING);
1177
}
1177
}
1178
1178
1179
static PassRefPtr<CSSValue> renderUnicodeBidiFlagsToCSSValue(EUnicodeBidi unicodeBidi)
1180
{
1181
    switch (unicodeBidi) {
1182
    case UBNormal:
1183
        return cssValuePool().createIdentifierValue(CSSValueNormal);
1184
    case Embed:
1185
        return cssValuePool().createIdentifierValue(CSSValueEmbed);
1186
    case Plaintext:
1187
        return cssValuePool().createIdentifierValue(CSSValueWebkitPlaintext);
1188
    case Override:
1189
        return cssValuePool().createIdentifierValue(CSSValueBidiOverride);
1190
    case Isolate:
1191
        return cssValuePool().createIdentifierValue(CSSValueWebkitIsolate);
1192
    case OverrideIsolate:
1193
    {
1194
        RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
1195
        list->append(cssValuePool().createIdentifierValue(CSSValueBidiOverride));
1196
        list->append(cssValuePool().createIdentifierValue(CSSValueWebkitIsolate));
1197
        return list;
1198
    }
1199
    }
1200
    ASSERT_NOT_REACHED();
1201
    return 0;
1202
}
1203
1204
static PassRefPtr<CSSValue> renderTextDecorationFlagsToCSSValue(int textDecoration)
1179
static PassRefPtr<CSSValue> renderTextDecorationFlagsToCSSValue(int textDecoration)
1205
{
1180
{
1206
    // Blink value is ignored.
1181
    // Blink value is ignored.
Lines 2017-2023 PassRefPtr<CSSValue> CSSComputedStyleDec Source/WebCore/css/CSSComputedStyleDeclaration.cpp_sec2
2017
        case CSSPropertyTop:
1992
        case CSSPropertyTop:
2018
            return getPositionOffsetValue(style.get(), CSSPropertyTop, m_node->document()->renderView());
1993
            return getPositionOffsetValue(style.get(), CSSPropertyTop, m_node->document()->renderView());
2019
        case CSSPropertyUnicodeBidi:
1994
        case CSSPropertyUnicodeBidi:
2020
            return renderUnicodeBidiFlagsToCSSValue(style->unicodeBidi());
1995
            return cssValuePool().createValue(style->unicodeBidi());
2021
        case CSSPropertyVerticalAlign:
1996
        case CSSPropertyVerticalAlign:
2022
            switch (style->verticalAlign()) {
1997
            switch (style->verticalAlign()) {
2023
                case BASELINE:
1998
                case BASELINE:
- Source/WebCore/css/CSSParser.cpp -20 / +4 lines
Lines 1719-1748 bool CSSParser::parseValue(CSSPropertyID Source/WebCore/css/CSSParser.cpp_sec1
1719
        else
1719
        else
1720
            return parseQuotes(propId, important);
1720
            return parseQuotes(propId, important);
1721
        break;
1721
        break;
1722
    case CSSPropertyUnicodeBidi: // normal | embed | (bidi-override || isolate) | plaintext | inherit
1722
    case CSSPropertyUnicodeBidi: // normal | embed | bidi-override | isolate | isolate-override | plaintext | inherit
1723
        if (id == CSSValueNormal
1723
        if (id == CSSValueNormal
1724
            || id == CSSValueEmbed
1724
            || id == CSSValueEmbed
1725
            || id == CSSValueBidiOverride
1726
            || id == CSSValueWebkitIsolate
1727
            || id == CSSValueWebkitIsolateOverride
1725
            || id == CSSValueWebkitPlaintext)
1728
            || id == CSSValueWebkitPlaintext)
1726
            validPrimitive = true;
1729
            validPrimitive = true;
1727
        else {
1728
            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();
1729
            bool isValid = true;
1730
            while (isValid && value) {
1731
                switch (value->id) {
1732
                case CSSValueBidiOverride:
1733
                case CSSValueWebkitIsolate:
1734
                    list->append(cssValuePool().createIdentifierValue(value->id));
1735
                    break;
1736
                default:
1737
                    isValid = false;
1738
                }
1739
                value = m_valueList->next();
1740
            }
1741
            if (list->length() && isValid) {
1742
                parsedValue = list.release();
1743
                m_valueList->next();
1744
            }
1745
        }
1746
        break;
1730
        break;
1747
1731
1748
    case CSSPropertyContent:              // [ <string> | <uri> | <counter> | attr(X) | open-quote |
1732
    case CSSPropertyContent:              // [ <string> | <uri> | <counter> | attr(X) | open-quote |
- Source/WebCore/css/CSSPrimitiveValueMappings.h +28 lines
Lines 2272-2277 template<> inline CSSPrimitiveValue::ope Source/WebCore/css/CSSPrimitiveValueMappings.h_sec1
2272
    return TTNONE;
2272
    return TTNONE;
2273
}
2273
}
2274
2274
2275
template<> inline CSSPrimitiveValue::CSSPrimitiveValue(EUnicodeBidi e)
2276
    : CSSValue(PrimitiveClass)
2277
{
2278
    m_primitiveUnitType = CSS_IDENT;
2279
    switch (e) {
2280
    case UBNormal:
2281
        m_value.ident = CSSValueNormal;
2282
        break;
2283
    case Embed:
2284
        m_value.ident = CSSValueEmbed;
2285
        break;
2286
    case Override:
2287
        m_value.ident = CSSValueBidiOverride;
2288
        break;
2289
    case Isolate:
2290
        m_value.ident = CSSValueWebkitIsolate;
2291
        break;
2292
    case IsolateOverride:
2293
        m_value.ident = CSSValueWebkitIsolateOverride;
2294
        break;
2295
    case Plaintext:
2296
        m_value.ident = CSSValueWebkitPlaintext;
2297
        break;
2298
    }
2299
}
2300
2275
template<> inline CSSPrimitiveValue::operator EUnicodeBidi() const
2301
template<> inline CSSPrimitiveValue::operator EUnicodeBidi() const
2276
{
2302
{
2277
    switch (m_value.ident) {
2303
    switch (m_value.ident) {
Lines 2283-2288 template<> inline CSSPrimitiveValue::ope Source/WebCore/css/CSSPrimitiveValueMappings.h_sec2
2283
        return Override;
2309
        return Override;
2284
    case CSSValueWebkitIsolate:
2310
    case CSSValueWebkitIsolate:
2285
        return Isolate;
2311
        return Isolate;
2312
    case CSSValueWebkitIsolateOverride:
2313
        return IsolateOverride;
2286
    case CSSValueWebkitPlaintext:
2314
    case CSSValueWebkitPlaintext:
2287
        return Plaintext;
2315
        return Plaintext;
2288
    }
2316
    }
- Source/WebCore/css/CSSValueKeywords.in +1 lines
Lines 422-427 hide Source/WebCore/css/CSSValueKeywords.in_sec1
422
higher
422
higher
423
invert
423
invert
424
-webkit-isolate
424
-webkit-isolate
425
-webkit-isolate-override
425
-webkit-plaintext
426
-webkit-plaintext
426
landscape
427
landscape
427
ledger
428
ledger
- Source/WebCore/css/StyleBuilder.cpp -31 / +1 lines
Lines 1170-1205 public: Source/WebCore/css/StyleBuilder.cpp_sec1
1170
    }
1170
    }
1171
};
1171
};
1172
1172
1173
class ApplyPropertyUnicodeBidi {
1174
public:
1175
    static void applyValue(StyleResolver* styleResolver, CSSValue* value)
1176
    {
1177
        if (value->isValueList()) {
1178
            EUnicodeBidi rendererUnicodeBidi = RenderStyle::initialUnicodeBidi();
1179
            for (CSSValueListIterator i = value; i.hasMore(); i.advance()) {
1180
                CSSValue* item = i.value();
1181
                ASSERT(item->isPrimitiveValue());
1182
                EUnicodeBidi currentValue = *static_cast<CSSPrimitiveValue*>(item);
1183
                ASSERT(currentValue == Override || currentValue == Isolate);
1184
                if (currentValue != rendererUnicodeBidi && rendererUnicodeBidi != RenderStyle::initialUnicodeBidi())
1185
                    rendererUnicodeBidi = OverrideIsolate;
1186
                else
1187
                    rendererUnicodeBidi = currentValue;
1188
            }
1189
            styleResolver->style()->setUnicodeBidi(rendererUnicodeBidi);
1190
        }
1191
        if (!value->isPrimitiveValue())
1192
            return;
1193
        CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
1194
        styleResolver->style()->setUnicodeBidi(*primitiveValue);
1195
    }
1196
    static PropertyHandler createHandler()
1197
    {
1198
        PropertyHandler handler = ApplyPropertyDefaultBase<EUnicodeBidi, &RenderStyle::unicodeBidi, EUnicodeBidi, &RenderStyle::setUnicodeBidi, EUnicodeBidi, &RenderStyle::initialUnicodeBidi>::createHandler();
1199
        return PropertyHandler(handler.inheritFunction(), handler.initialFunction(), &applyValue);
1200
    }
1201
};
1202
1203
class ApplyPropertyLineHeight {
1173
class ApplyPropertyLineHeight {
1204
public:
1174
public:
1205
    static void applyValue(StyleResolver* styleResolver, CSSValue* value)
1175
    static void applyValue(StyleResolver* styleResolver, CSSValue* value)
Lines 1940-1946 StyleBuilder::StyleBuilder() Source/WebCore/css/StyleBuilder.cpp_sec2
1940
    setPropertyHandler(CSSPropertyTextRendering, ApplyPropertyFont<TextRenderingMode, &FontDescription::textRenderingMode, &FontDescription::setTextRenderingMode, AutoTextRendering>::createHandler());
1910
    setPropertyHandler(CSSPropertyTextRendering, ApplyPropertyFont<TextRenderingMode, &FontDescription::textRenderingMode, &FontDescription::setTextRenderingMode, AutoTextRendering>::createHandler());
1941
    setPropertyHandler(CSSPropertyTextTransform, ApplyPropertyDefault<ETextTransform, &RenderStyle::textTransform, ETextTransform, &RenderStyle::setTextTransform, ETextTransform, &RenderStyle::initialTextTransform>::createHandler());
1911
    setPropertyHandler(CSSPropertyTextTransform, ApplyPropertyDefault<ETextTransform, &RenderStyle::textTransform, ETextTransform, &RenderStyle::setTextTransform, ETextTransform, &RenderStyle::initialTextTransform>::createHandler());
1942
    setPropertyHandler(CSSPropertyTop, ApplyPropertyLength<&RenderStyle::top, &RenderStyle::setTop, &RenderStyle::initialOffset, AutoEnabled>::createHandler());
1912
    setPropertyHandler(CSSPropertyTop, ApplyPropertyLength<&RenderStyle::top, &RenderStyle::setTop, &RenderStyle::initialOffset, AutoEnabled>::createHandler());
1943
    setPropertyHandler(CSSPropertyUnicodeBidi, ApplyPropertyUnicodeBidi::createHandler());
1913
    setPropertyHandler(CSSPropertyUnicodeBidi, ApplyPropertyDefault<EUnicodeBidi, &RenderStyle::unicodeBidi, EUnicodeBidi, &RenderStyle::setUnicodeBidi, EUnicodeBidi, &RenderStyle::initialUnicodeBidi>::createHandler());
1944
    setPropertyHandler(CSSPropertyVerticalAlign, ApplyPropertyVerticalAlign::createHandler());
1914
    setPropertyHandler(CSSPropertyVerticalAlign, ApplyPropertyVerticalAlign::createHandler());
1945
    setPropertyHandler(CSSPropertyVisibility, ApplyPropertyDefault<EVisibility, &RenderStyle::visibility, EVisibility, &RenderStyle::setVisibility, EVisibility, &RenderStyle::initialVisibility>::createHandler());
1915
    setPropertyHandler(CSSPropertyVisibility, ApplyPropertyDefault<EVisibility, &RenderStyle::visibility, EVisibility, &RenderStyle::setVisibility, EVisibility, &RenderStyle::initialVisibility>::createHandler());
1946
    setPropertyHandler(CSSPropertyWebkitAnimationDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, &CSSToStyleMap::mapAnimationDelay, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());
1916
    setPropertyHandler(CSSPropertyWebkitAnimationDelay, ApplyPropertyAnimation<double, &Animation::delay, &Animation::setDelay, &Animation::isDelaySet, &Animation::clearDelay, &Animation::initialAnimationDelay, &CSSToStyleMap::mapAnimationDelay, &RenderStyle::accessAnimations, &RenderStyle::animations>::createHandler());
- Source/WebCore/platform/text/UnicodeBidi.h -3 / +3 lines
Lines 34-50 enum EUnicodeBidi { Source/WebCore/platform/text/UnicodeBidi.h_sec1
34
    Override,
34
    Override,
35
    Isolate,
35
    Isolate,
36
    Plaintext,
36
    Plaintext,
37
    OverrideIsolate,
37
    IsolateOverride,
38
}; 
38
}; 
39
39
40
inline bool isIsolated(const EUnicodeBidi& unicodeBidi)
40
inline bool isIsolated(const EUnicodeBidi& unicodeBidi)
41
{
41
{
42
    return unicodeBidi == Isolate || unicodeBidi == OverrideIsolate || unicodeBidi == Plaintext;
42
    return unicodeBidi == Isolate || unicodeBidi == IsolateOverride || unicodeBidi == Plaintext;
43
}
43
}
44
44
45
inline bool isOverride(EUnicodeBidi unicodeBidi)
45
inline bool isOverride(EUnicodeBidi unicodeBidi)
46
{
46
{
47
    return unicodeBidi == Override || unicodeBidi == OverrideIsolate;
47
    return unicodeBidi == Override || unicodeBidi == IsolateOverride;
48
}
48
}
49
49
50
}
50
}
- Source/WebCore/rendering/RenderBlockLineLayout.cpp -1 / +1 lines
Lines 997-1003 static inline void constructBidiRuns(Inl Source/WebCore/rendering/RenderBlockLineLayout.cpp_sec1
997
        if (unicodeBidi == Plaintext)
997
        if (unicodeBidi == Plaintext)
998
            determineDirectionality(direction, InlineIterator(isolatedInline, isolatedRun->object(), 0));
998
            determineDirectionality(direction, InlineIterator(isolatedInline, isolatedRun->object(), 0));
999
        else {
999
        else {
1000
            ASSERT(unicodeBidi == Isolate || unicodeBidi == OverrideIsolate);
1000
            ASSERT(unicodeBidi == Isolate || unicodeBidi == IsolateOverride);
1001
            direction = isolatedInline->style()->direction();
1001
            direction = isolatedInline->style()->direction();
1002
        }
1002
        }
1003
        isolatedResolver.setStatus(statusWithDirection(direction, isOverride(unicodeBidi)));
1003
        isolatedResolver.setStatus(statusWithDirection(direction, isOverride(unicodeBidi)));
- LayoutTests/ChangeLog +13 lines
Lines 1-3 LayoutTests/ChangeLog_sec1
1
2012-08-20  Ryosuke Niwa  <rniwa@webkit.org>
2
3
        Replace isolate || bidi-override by isolate-override
4
        https://bugs.webkit.org/show_bug.cgi?id=89746
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Rebaseline test expectations. These tests test the new behavior and new property value -webkit-isolate-override.
9
10
        * fast/css/unicode-bidi-computed-value-expected.txt:
11
        * fast/css/unicode-bidi-computed-value.html:
12
        * fast/text/bidi-override-isolate.html:
13
1
2012-08-20  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
14
2012-08-20  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>
2
15
3
        [css3-text] Add getComputedStyle tests for -webkit-text-decoration-line
16
        [css3-text] Add getComputedStyle tests for -webkit-text-decoration-line
- LayoutTests/fast/css/unicode-bidi-computed-value-expected.txt -4 / +5 lines
Lines 8-17 PASS styleOf("span", {"style":"unicode-b LayoutTests/fast/css/unicode-bidi-computed-value-expected.txt_sec1
8
PASS styleOf("span", {"style":"unicode-bidi: bad-value;"}).unicodeBidi is "normal"
8
PASS styleOf("span", {"style":"unicode-bidi: bad-value;"}).unicodeBidi is "normal"
9
PASS styleOf("span", {"style":"unicode-bidi: embed embed;"}).unicodeBidi is "normal"
9
PASS styleOf("span", {"style":"unicode-bidi: embed embed;"}).unicodeBidi is "normal"
10
PASS styleOf("span", {"style":"unicode-bidi: embed -webkit-plain-text;"}).unicodeBidi is "normal"
10
PASS styleOf("span", {"style":"unicode-bidi: embed -webkit-plain-text;"}).unicodeBidi is "normal"
11
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate;"}).unicodeBidi is "bidi-override -webkit-isolate"
11
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate;"}).unicodeBidi is "normal"
12
PASS styleOf("span", {"style":"unicode-bidi: -webkit-isolate bidi-override;"}).unicodeBidi is "bidi-override -webkit-isolate"
12
PASS styleOf("span", {"style":"unicode-bidi: -webkit-isolate bidi-override;"}).unicodeBidi is "normal"
13
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate bidi-override;"}).unicodeBidi is "bidi-override -webkit-isolate"
13
PASS styleOf("span", {"style":"unicode-bidi: -webkit-isolate-override;"}).unicodeBidi is "-webkit-isolate-override"
14
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate -webkit-isolate;"}).unicodeBidi is "bidi-override -webkit-isolate"
14
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate bidi-override;"}).unicodeBidi is "normal"
15
PASS styleOf("span", {"style":"unicode-bidi: bidi-override -webkit-isolate -webkit-isolate;"}).unicodeBidi is "normal"
15
PASS styleOf("span", {"style":"unicode-bidi: bidi-override bad-value;"}).unicodeBidi is "normal"
16
PASS styleOf("span", {"style":"unicode-bidi: bidi-override bad-value;"}).unicodeBidi is "normal"
16
PASS styleOf("span", {"style":"unicode-bidi: bidi-override embed;"}).unicodeBidi is "normal"
17
PASS styleOf("span", {"style":"unicode-bidi: bidi-override embed;"}).unicodeBidi is "normal"
17
18
- LayoutTests/fast/css/unicode-bidi-computed-value.html -4 / +5 lines
Lines 28-37 var tests = [ LayoutTests/fast/css/unicode-bidi-computed-value.html_sec1
28
    ['span', {'style': 'unicode-bidi: bad-value;'}, 'normal'],
28
    ['span', {'style': 'unicode-bidi: bad-value;'}, 'normal'],
29
    ['span', {'style': 'unicode-bidi: embed embed;'}, 'normal'],
29
    ['span', {'style': 'unicode-bidi: embed embed;'}, 'normal'],
30
    ['span', {'style': 'unicode-bidi: embed -webkit-plain-text;'}, 'normal'],
30
    ['span', {'style': 'unicode-bidi: embed -webkit-plain-text;'}, 'normal'],
31
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate;'}, 'bidi-override -webkit-isolate'],
31
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate;'}, 'normal'],
32
    ['span', {'style': 'unicode-bidi: -webkit-isolate bidi-override;'}, 'bidi-override -webkit-isolate'],
32
    ['span', {'style': 'unicode-bidi: -webkit-isolate bidi-override;'}, 'normal'],
33
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate bidi-override;'}, 'bidi-override -webkit-isolate'],
33
    ['span', {'style': 'unicode-bidi: -webkit-isolate-override;'}, '-webkit-isolate-override'],
34
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate -webkit-isolate;'}, 'bidi-override -webkit-isolate'],
34
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate bidi-override;'}, 'normal'],
35
    ['span', {'style': 'unicode-bidi: bidi-override -webkit-isolate -webkit-isolate;'}, 'normal'],
35
    ['span', {'style': 'unicode-bidi: bidi-override bad-value;'}, 'normal'],
36
    ['span', {'style': 'unicode-bidi: bidi-override bad-value;'}, 'normal'],
36
    ['span', {'style': 'unicode-bidi: bidi-override embed;'}, 'normal'],
37
    ['span', {'style': 'unicode-bidi: bidi-override embed;'}, 'normal'],
37
].forEach(function (test) {
38
].forEach(function (test) {
- LayoutTests/fast/text/bidi-override-isolate.html -4 / +4 lines
Lines 6-16 LayoutTests/fast/text/bidi-override-isolate.html_sec1
6
<div style="font-size: 3em;">
6
<div style="font-size: 3em;">
7
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate isolate;">abc</span> 1</div>
7
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate isolate;">abc</span> 1</div>
8
<div><span style="direction: rtl; unicode-bidi: bidi-override;">abc</span> 1</div>
8
<div><span style="direction: rtl; unicode-bidi: bidi-override;">abc</span> 1</div>
9
<div><span style="direction: rtl; unicode-bidi: bidi-override -webkit-isolate; unicode-bidi: bidi-override isolate;">abc</span> 1</div>
9
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate-override; unicode-bidi: isolate-override;">abc</span> 1</div>
10
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate bidi-override; unicode-bidi: isolate bidi-override;">abc</span> 1</div>
10
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate-override; unicode-bidi: isolate-override;">abc</span> 1</div>
11
<div><span style="direction: rtl; unicode-bidi: bidi-override bidi-override;
11
<div><span style="direction: rtl; unicode-bidi: bidi-override;
12
unicode-bidi: -webkit-bad-value -webkit-isolate; unicode-bidi: -bad-value isolate;">abc</span> 1</div>
12
unicode-bidi: -webkit-bad-value -webkit-isolate; unicode-bidi: -bad-value isolate;">abc</span> 1</div>
13
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate -webkit-isolate; unicode-bidi: isolate isolate;
13
<div><span style="direction: rtl; unicode-bidi: -webkit-isolate; unicode-bidi: isolate;
14
unicode-bidi: -bad-value bidi-override;">abc</span> 1</div>
14
unicode-bidi: -bad-value bidi-override;">abc</span> 1</div>
15
</div>
15
</div>
16
16

Return to Bug 89746