2011-01-16 Simon Fraser <simon.fraser@apple.com>
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Jan 2011 01:07:24 +0000 (01:07 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 17 Jan 2011 01:07:24 +0000 (01:07 +0000)
commit356dc7f204c82ce6b17701bb14c339b727af243d
tree83cfd5e4bef87f3c5586feeb1006715faef6b43d
parent621d6c8ac55e5be0ba337c077ce3a98b5037c2ad
2011-01-16  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein.

        Issues with iframes and plugins when the WebView is scaled.
        <rdar://problem/6213380>

        When _scaleWebView has been called on a WebView, iframes
        in WebKit1 render and hit-test incorrectly, and plug-ins don't scale up.
        This is caused by AppKit NSViews not playing nicely with the scale
        applied through style.

        Work around most of these issues by adjusting the bounds size
        of widgets to allow iframe contents to paint with the correct scale,
        and fix various places in the code where we relied on coordinate
        transforms via NSViews (which ignore CSS transforms).

        * WebCore.exp.in:
        * platform/Widget.cpp:
        (WebCore::Widget::setBoundsSize):
        * platform/Widget.h:
        * platform/mac/WidgetMac.mm:
        (WebCore::Widget::setBoundsSize):
        (WebCore::Widget::paint):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::setWidgetGeometry):
        (WebCore::RenderWidget::setWidget):
        (WebCore::RenderWidget::updateWidgetPosition):
        * rendering/RenderWidget.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@75897 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/platform/Widget.cpp
Source/WebCore/platform/Widget.h
Source/WebCore/platform/mac/WidgetMac.mm
Source/WebCore/rendering/RenderLayerCompositor.cpp
Source/WebCore/rendering/RenderWidget.cpp
Source/WebCore/rendering/RenderWidget.h
WebKit/mac/ChangeLog
WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
WebKit/mac/WebView/WebFrameView.mm