Changeset 155554 in webkit


Ignore:
Timestamp:
Sep 11, 2013 12:23:58 PM (11 years ago)
Author:
commit-queue@webkit.org
Message:

Fix nested unicode-bidi: isolate
https://bugs.webkit.org/show_bug.cgi?id=120504

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2013-09-11
Reviewed by Darin Adler.

Source/WebCore:

When we have a nested isolate renderer if the outer isolate has a text
and this text is not the first child, the isolated chain is not
rendered correctly. This happens because constructBidiRunsForSegment
uses always the first inner isolated renderer as isolated inline
container. This patch fixes the behavior described changing
containingIsolate to find the right isolated container.

Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/840a57050eade39dd04dde0c6603e129b783151c

Tests: fast/text/international/unicode-bidi-isolate-nested-first-child-text.html

fast/text/international/unicode-bidi-isolate-nested-simple.html

  • rendering/InlineIterator.h:

(WebCore::containingIsolate):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::constructBidiRunsForSegment):

LayoutTests:

  • fast/text/international/unicode-bidi-isolate-nested-first-child-text-expected.html: Added.
  • fast/text/international/unicode-bidi-isolate-nested-first-child-text.html: Added.
  • fast/text/international/unicode-bidi-isolate-nested-simple-expected.html: Added.
  • fast/text/international/unicode-bidi-isolate-nested-simple.html: Added.
Location:
trunk
Files:
4 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r155553 r155554  
     12013-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Fix nested unicode-bidi: isolate
     4        https://bugs.webkit.org/show_bug.cgi?id=120504
     5
     6        Reviewed by Darin Adler.
     7
     8        * fast/text/international/unicode-bidi-isolate-nested-first-child-text-expected.html: Added.
     9        * fast/text/international/unicode-bidi-isolate-nested-first-child-text.html: Added.
     10        * fast/text/international/unicode-bidi-isolate-nested-simple-expected.html: Added.
     11        * fast/text/international/unicode-bidi-isolate-nested-simple.html: Added.
     12
    1132013-09-11  Alexey Proskuryakov  <ap@apple.com>
    214
  • trunk/Source/WebCore/ChangeLog

    r155553 r155554  
     12013-09-11  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        Fix nested unicode-bidi: isolate
     4        https://bugs.webkit.org/show_bug.cgi?id=120504
     5
     6        Reviewed by Darin Adler.
     7
     8        When we have a nested isolate renderer if the outer isolate has a text
     9        and this text is not the first child, the isolated chain is not
     10        rendered correctly. This happens because constructBidiRunsForSegment
     11        uses always the first inner isolated renderer as isolated inline
     12        container. This patch fixes the behavior described changing
     13        containingIsolate to find the right isolated container.
     14
     15        Merged from Blink: https://chromium.googlesource.com/chromium/blink/+/840a57050eade39dd04dde0c6603e129b783151c
     16
     17        Tests: fast/text/international/unicode-bidi-isolate-nested-first-child-text.html
     18               fast/text/international/unicode-bidi-isolate-nested-simple.html
     19
     20        * rendering/InlineIterator.h:
     21        (WebCore::containingIsolate):
     22        * rendering/RenderBlockLineLayout.cpp:
     23        (WebCore::constructBidiRunsForSegment):
     24
    1252013-09-11  Alexey Proskuryakov  <ap@apple.com>
    226
  • trunk/Source/WebCore/rendering/InlineIterator.h

    r149673 r155554  
    421421{
    422422    ASSERT(object);
     423    RenderObject* containingIsolateObject = 0;
    423424    while (object && object != root) {
     425        if (containingIsolateObject && !isIsolatedInline(object))
     426            break;
     427
    424428        if (isIsolatedInline(object))
    425             return object;
     429            containingIsolateObject = object;
     430
    426431        object = object->parent();
    427432    }
    428     return 0;
     433    return containingIsolateObject;
    429434}
    430435
  • trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp

    r155391 r155554  
    13591359            topResolver.isolatedRuns().appendVector(isolatedResolver.isolatedRuns());
    13601360            isolatedResolver.isolatedRuns().clear();
     1361            currentRoot = isolatedInline;
    13611362        }
    13621363    }
Note: See TracChangeset for help on using the changeset viewer.