2009-11-12 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2009 04:36:56 +0000 (04:36 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 13 Nov 2009 04:36:56 +0000 (04:36 +0000)
commitadb2c088079ecf9cc7a3c27b98ca65943c7f8d59
tree5be2d8c785eac238e324702d3392ba78c74f4d47
parent9a142481ea925aa66aead1341c30f67101f0553a
2009-11-12  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Transformed reflected elements are clipped inside element with opacity
        https://bugs.webkit.org/show_bug.cgi?id=30957

        transparencyClipBox() attemped to minimize the size of the transparency layer by mapping
        each clip rect into painting space before taking the unions. This, however, did not work
        correctly with combinations of reflections and transforms. Fixed by unioning the
        clipRect and mapping through transforms along the way.

        Also leave some #ifdeffed code in beginTransparencyLayers() that makes it easy to see
        where the transparency layers are.

        Test: fast/reflections/opacity-reflection-transform.html

        * rendering/RenderLayer.cpp:
        (WebCore::expandClipRectForDescendantsAndReflection):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::beginTransparencyLayers):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@50925 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/fast/reflections/opacity-reflection-transform.html [new file with mode: 0644]
LayoutTests/platform/mac/fast/reflections/opacity-reflection-transform-expected.checksum [new file with mode: 0644]
LayoutTests/platform/mac/fast/reflections/opacity-reflection-transform-expected.png [new file with mode: 0644]
LayoutTests/platform/mac/fast/reflections/opacity-reflection-transform-expected.txt [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/RenderLayer.cpp