2009-09-29 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Sep 2009 17:21:48 +0000 (17:21 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Sep 2009 17:21:48 +0000 (17:21 +0000)
commit195d0d6710a493bc05aeaefe16867c6fc641cbe5
tree8dd005fe46a94d19724c8997936e688a1ea1c689
parent026bca0db837cc7d04eeb75f559ab8557bc0a04e
2009-09-29  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        ASSERTION FAILED: !repaintContainer || repaintContainer == this
        https://bugs.webkit.org/show_bug.cgi?id=29755

        Generalize the fix for this bug to account for cases where there may be multiple
        containing blocks between the repaint container, and the container of the element
        being repainted.

        Test: compositing/repaint/opacity-between-absolute2.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapLocalToContainer):
        Call offsetFromAncestorContainer() to get the correct offset.

        (WebCore::RenderBox::computeRectForRepaint): Ditto
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::computeRectForRepaint): Ditto.

        * rendering/RenderObject.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::offsetFromAncestorContainer):
        New method that computes an offset from some object in the ancestor container() chain.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48932 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/compositing/repaint/opacity-between-absolute2.html [new file with mode: 0644]
LayoutTests/platform/mac/compositing/repaint/opacity-between-absolute2-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/compositing/repaint/opacity-between-absolute2-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/compositing/repaint/opacity-between-absolute2-expected.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderBox.cpp
WebCore/rendering/RenderInline.cpp
WebCore/rendering/RenderObject.cpp
WebCore/rendering/RenderObject.h