2011-04-10 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 05:22:20 +0000 (05:22 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 05:22:20 +0000 (05:22 +0000)
commit78b55308fbc375cbd94cfbf207104ebe2529515c
treeaa673d6679fca9bd825399c35b3e1ff4a790cba3
parent9bebf92f3bcf13358814c5903bf5e729c1350ab9
2011-04-10  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Maciej Stachowiak.

        Car model dropdowns at audiusa.com lay out incorrectly with compositing enabled
        https://bugs.webkit.org/show_bug.cgi?id=56660

        When overflow on an element changes, we need to inform compositing
        layers which create and position an "ancestor clipping" layer based
        on that overflow. Do this by triggering a rebuild of compositing layers
        when overflow changes on a layer whose stacking context has compositing
        descendants. (We can't just check whether the layer itself has compositing
        descendants, because overflow follows the render tree, but compositing
        follows the z-order tree.)

        Test: compositing/geometry/ancestor-overflow-change.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::styleChanged):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@83424 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/compositing/geometry/ancestor-overflow-change-expected.checksum [new file with mode: 0644]
LayoutTests/compositing/geometry/ancestor-overflow-change-expected.png [new file with mode: 0644]
LayoutTests/compositing/geometry/ancestor-overflow-change-expected.txt [new file with mode: 0644]
LayoutTests/compositing/geometry/ancestor-overflow-change.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/RenderLayer.cpp
Source/WebCore/rendering/RenderLayer.h
Source/WebCore/rendering/RenderLayerBacking.cpp