Title: [127319] trunk/Source/WebKit2
Revision
127319
Author
[email protected]
Date
2012-08-31 14:18:51 -0700 (Fri, 31 Aug 2012)

Log Message

       REGRESSION (r127252): incomplete repaint on Flash element after pinch to zoom
       <rdar://problem/12217897> and https://bugs.webkit.org/show_bug.cgi?id=95607

       Reviewed by Simon Fraser.

       * WebProcess/Plugins/PluginView.cpp:
       (WebKit::PluginView::viewGeometryDidChange): Only give the window coordinate clip rect a chance
 to override the boundsRect() if the page scale factor is 1.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (127318 => 127319)


--- trunk/Source/WebKit2/ChangeLog	2012-08-31 21:17:19 UTC (rev 127318)
+++ trunk/Source/WebKit2/ChangeLog	2012-08-31 21:18:51 UTC (rev 127319)
@@ -1,3 +1,14 @@
+2012-08-31  Brady Eidson  <[email protected]>
+
+       REGRESSION (r127252): incomplete repaint on Flash element after pinch to zoom
+       <rdar://problem/12217897> and https://bugs.webkit.org/show_bug.cgi?id=95607
+
+       Reviewed by Simon Fraser.
+
+       * WebProcess/Plugins/PluginView.cpp:
+       (WebKit::PluginView::viewGeometryDidChange): Only give the window coordinate clip rect a chance
+         to override the boundsRect() if the page scale factor is 1.
+
 2012-08-31  Tony Chang  <[email protected]>
 
         Remove ENABLE_CSS3_FLEXBOX compile time flag

Modified: trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp (127318 => 127319)


--- trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2012-08-31 21:17:19 UTC (rev 127318)
+++ trunk/Source/WebKit2/WebProcess/Plugins/PluginView.cpp	2012-08-31 21:18:51 UTC (rev 127319)
@@ -785,13 +785,19 @@
     transform.translate(scaledLocationInRootViewCoordinates.x(), scaledLocationInRootViewCoordinates.y());
     transform.scale(pageScaleFactor);
 
-    // FIXME: This clip rect isn't correct.
-    // But it is still important distinguish between empty and non-empty rects so we can notify the plug-in when it becomes invisible.
+    // FIXME: The way we calculate this clip rect isn't correct.
+    // But it is still important to distinguish between empty and non-empty rects so we can notify the plug-in when it becomes invisible.
     // Making the rect actually correct is covered by https://bugs.webkit.org/show_bug.cgi?id=95362
-    IntRect clipRect = clipRectInWindowCoordinates();
-    if (!clipRect.isEmpty())
-        clipRect = boundsRect();
-        
+    IntRect clipRect = boundsRect();
+    
+    // FIXME: We can only get a semi-reliable answer from clipRectInWindowCoordinates() when the page is not scaled.
+    // Fixing that is tracked in <rdar://problem/9026611> - Make the Widget hierarchy play nicely with transforms, for zoomed plug-ins and iframes
+    if (pageScaleFactor == 1) {
+        clipRect = clipRectInWindowCoordinates();
+        if (!clipRect.isEmpty())
+            clipRect = boundsRect();
+    }
+    
     m_plugin->geometryDidChange(size(), clipRect, transform);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to