⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 118617 in webkit


Ignore:
Timestamp:
May 26, 2012, 5:43:12 PM (14 years ago)
Author:
Simon Fraser
Message:

fast/block/inline-children-root-linebox-crash.html asserts after r118567
https://bugs.webkit.org/show_bug.cgi?id=87544

Source/WebCore:

Reviewed by Darin Adler.

RenderInline::offsetFromContainer() set offsetDependsOnPoint to true based
on the container's flipped writing mode. However, offsetFromContainer() would
then overwrite that, since it only checked for columns.

Fix by having RenderInline::offsetFromContainer() check for flipping on
the container. This fixes the assertion.

The new testcase exercises fixes another issue; unlike mapLocalToAbsolute(),
RenderGeometryMap::absoluteRect() didn't pass the rect center point through
the mapping, which resulted in a different result in some flipping cases.

Test: compositing/geometry/flipped-blocks-inline-mapping.html

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::absoluteRect):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::offsetFromContainer):
(WebCore::RenderInline::pushMappingToContainer):

LayoutTests:

Reviewed by Darin Adler.

Remove fast/block/inline-children-root-linebox-crash.html from the skipped
list.

New, more complex writing mode flipping test with compositing.

  • compositing/geometry/flipped-blocks-inline-mapping-expected.txt: Added.
  • compositing/geometry/flipped-blocks-inline-mapping.html: Added.
  • platform/mac/Skipped:
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r118613 r118617  
     12012-05-26  Simon Fraser  <simon.fraser@apple.com>
     2
     3        fast/block/inline-children-root-linebox-crash.html asserts after r118567
     4        https://bugs.webkit.org/show_bug.cgi?id=87544
     5
     6        Reviewed by Darin Adler.
     7       
     8        Remove fast/block/inline-children-root-linebox-crash.html from the skipped
     9        list.
     10       
     11        New, more complex writing mode flipping test with compositing.
     12
     13        * compositing/geometry/flipped-blocks-inline-mapping-expected.txt: Added.
     14        * compositing/geometry/flipped-blocks-inline-mapping.html: Added.
     15        * platform/mac/Skipped:
     16
    1172012-05-26  David Barton  <dbarton@mathscribe.com>
    218
  • trunk/LayoutTests/platform/mac/Skipped

    r118602 r118617  
    868868fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444.html
    869869fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551.html
    870 
    871 # https://bugs.webkit.org/show_bug.cgi?id=87544
    872 fast/block/inline-children-root-linebox-crash.html
    873 
  • trunk/Source/WebCore/ChangeLog

    r118616 r118617  
     12012-05-26  Simon Fraser  <simon.fraser@apple.com>
     2
     3        fast/block/inline-children-root-linebox-crash.html asserts after r118567
     4        https://bugs.webkit.org/show_bug.cgi?id=87544
     5
     6        Reviewed by Darin Adler.
     7       
     8        RenderInline::offsetFromContainer() set offsetDependsOnPoint to true based
     9        on the container's flipped writing mode. However, offsetFromContainer() would
     10        then overwrite that, since it only checked for columns.
     11       
     12        Fix by having RenderInline::offsetFromContainer() check for flipping on
     13        the container. This fixes the assertion.
     14       
     15        The new testcase exercises fixes another issue; unlike mapLocalToAbsolute(),
     16        RenderGeometryMap::absoluteRect() didn't pass the rect center point through
     17        the mapping, which resulted in a different result in some flipping cases.
     18
     19        Test: compositing/geometry/flipped-blocks-inline-mapping.html
     20
     21        * rendering/RenderGeometryMap.cpp:
     22        (WebCore::RenderGeometryMap::absoluteRect):
     23        * rendering/RenderInline.cpp:
     24        (WebCore::RenderInline::offsetFromContainer):
     25        (WebCore::RenderInline::pushMappingToContainer):
     26
    1272012-05-26  Geoffrey Garen  <ggaren@apple.com>
    228
  • trunk/Source/WebCore/rendering/RenderGeometryMap.cpp

    r118567 r118617  
    115115        result.move(m_accumulatedOffset);
    116116    } else {
    117         TransformState transformState(TransformState::ApplyTransformDirection, rect);
     117        TransformState transformState(TransformState::ApplyTransformDirection, rect.center(), rect);
    118118        mapToAbsolute(transformState);
    119119        result = transformState.lastPlanarQuad().boundingBox();
  • trunk/Source/WebCore/rendering/RenderInline.cpp

    r118567 r118617  
    10811081
    10821082    if (offsetDependsOnPoint)
    1083         *offsetDependsOnPoint = container->hasColumns();
     1083        *offsetDependsOnPoint = container->hasColumns() || (container->isBox() && container->style()->isFlippedBlocksWritingMode());
    10841084
    10851085    return offset;
     
    11431143        return 0;
    11441144
    1145     bool offsetDependsOnPoint = false;
    1146 
    1147     if (container->isBox() && container->style()->isFlippedBlocksWritingMode())
    1148         offsetDependsOnPoint = true;
    1149 
    11501145    LayoutSize adjustmentForSkippedAncestor;
    11511146    if (ancestorSkipped) {
     
    11551150    }
    11561151
     1152    bool offsetDependsOnPoint = false;
    11571153    LayoutSize containerOffset = offsetFromContainer(container, LayoutPoint(), &offsetDependsOnPoint);
    11581154
Note: See TracChangeset for help on using the changeset viewer.