2011-01-14 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 Jan 2011 06:48:32 +0000 (06:48 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 15 Jan 2011 06:48:32 +0000 (06:48 +0000)
commit028e2cb431fb209e8ffebfd5e43a3c7e1dd45cf5
treebeb8584d8b9a2a263855c2feede398e67eefe2dd
parent804d53c7527f8048ec8cd3586d91b51c210cc4d3
2011-01-14  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Plugins render incorrectly with transformed ancestors
        https://bugs.webkit.org/show_bug.cgi?id=52507

        -[NSView visibleRect] gives the wrong answer if there are CSS transforms
        in the ancestor chain of a plugin.

        So use of this method with calls to -actualVisibleRectInWindow, which
        maps rects through the render tree to compute the correct rect,
        clipping via windowClipRect() if necessary.

        Not testable, because doing so relies on the behavior of some
        plugins, which stop rendering if setWindow passes an empty rect.

        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
        (-[WebHostedNetscapePluginView updateAndSetWindow]):
        * Plugins/WebBaseNetscapePluginView.h:
        * Plugins/WebBaseNetscapePluginView.mm:
        (-[WebBaseNetscapePluginView actualVisibleRectInWindow]):
        * Plugins/WebNetscapePluginView.mm:
        (-[WebNetscapePluginView saveAndSetNewPortStateForUpdate:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@75873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebKit/mac/ChangeLog
WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
WebKit/mac/Plugins/WebBaseNetscapePluginView.h
WebKit/mac/Plugins/WebBaseNetscapePluginView.mm
WebKit/mac/Plugins/WebNetscapePluginView.mm