Title: [112457] trunk/Source/WebKit2
Revision
112457
Author
[email protected]
Date
2012-03-28 15:32:20 -0700 (Wed, 28 Mar 2012)

Log Message

Massive lag opening a link in a new background tab
https://bugs.webkit.org/show_bug.cgi?id=82542
<rdar://problem/11004502>

Reviewed by Sam Weinig.

Defer waiting for the web process to update the page size until we're actually going to display the layer.
This matches what we do in the non-tiled code path.

* UIProcess/API/mac/WKView.mm:
(-[WKView setFrameSize:]):
(-[WKView updateLayer]):
* UIProcess/DrawingAreaProxy.h:
(WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
(TiledCoreAnimationDrawingAreaProxy):
* UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
(WebKit::TiledCoreAnimationDrawingAreaProxy::sizeDidChange):
(WebKit):
(WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (112456 => 112457)


--- trunk/Source/WebKit2/ChangeLog	2012-03-28 22:24:14 UTC (rev 112456)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-28 22:32:20 UTC (rev 112457)
@@ -1,5 +1,28 @@
 2012-03-28  Anders Carlsson  <[email protected]>
 
+        Massive lag opening a link in a new background tab
+        https://bugs.webkit.org/show_bug.cgi?id=82542
+        <rdar://problem/11004502>
+
+        Reviewed by Sam Weinig.
+
+        Defer waiting for the web process to update the page size until we're actually going to display the layer.
+        This matches what we do in the non-tiled code path.
+
+        * UIProcess/API/mac/WKView.mm:
+        (-[WKView setFrameSize:]):
+        (-[WKView updateLayer]):
+        * UIProcess/DrawingAreaProxy.h:
+        (WebKit::DrawingAreaProxy::waitForPossibleGeometryUpdate):
+        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
+        (TiledCoreAnimationDrawingAreaProxy):
+        * UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::sizeDidChange):
+        (WebKit):
+        (WebKit::TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate):
+
+2012-03-28  Anders Carlsson  <[email protected]>
+
         REGRESSION (r109826): Can't type into Flash text fields
         https://bugs.webkit.org/show_bug.cgi?id=82488
         <rdar://problem/11022004>

Modified: trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm (112456 => 112457)


--- trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2012-03-28 22:24:14 UTC (rev 112456)
+++ trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm	2012-03-28 22:32:20 UTC (rev 112457)
@@ -2924,6 +2924,7 @@
 - (void)updateLayer
 {
     self.layer.backgroundColor = CGColorGetConstantColor(kCGColorWhite);
+    _data->_page->drawingArea()->waitForPossibleGeometryUpdate();
 }
 #endif
 

Modified: trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h (112456 => 112457)


--- trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-03-28 22:24:14 UTC (rev 112456)
+++ trunk/Source/WebKit2/UIProcess/DrawingAreaProxy.h	2012-03-28 22:32:20 UTC (rev 112457)
@@ -84,6 +84,7 @@
     void setSize(const WebCore::IntSize&, const WebCore::IntSize& scrollOffset);
 
     virtual void pageCustomRepresentationChanged() { }
+    virtual void waitForPossibleGeometryUpdate() { }
 
 #if USE(UI_SIDE_COMPOSITING)
     virtual void updateViewport();

Modified: trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h (112456 => 112457)


--- trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h	2012-03-28 22:24:14 UTC (rev 112456)
+++ trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h	2012-03-28 22:32:20 UTC (rev 112457)
@@ -43,6 +43,7 @@
     virtual void deviceScaleFactorDidChange() OVERRIDE;
     virtual void layerHostingModeDidChange() OVERRIDE;
     virtual void sizeDidChange() OVERRIDE;
+    virtual void waitForPossibleGeometryUpdate() OVERRIDE;
 
     virtual void enterAcceleratedCompositingMode(uint64_t backingStoreStateID, const LayerTreeContext&) OVERRIDE;
     virtual void exitAcceleratedCompositingMode(uint64_t backingStoreStateID, const UpdateInfo&) OVERRIDE;

Modified: trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm (112456 => 112457)


--- trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm	2012-03-28 22:24:14 UTC (rev 112456)
+++ trunk/Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm	2012-03-28 22:32:20 UTC (rev 112457)
@@ -72,7 +72,13 @@
         return;
 
     sendUpdateGeometry();
+}
 
+void TiledCoreAnimationDrawingAreaProxy::waitForPossibleGeometryUpdate()
+{
+    if (!m_isWaitingForDidUpdateGeometry)
+        return;
+
     if (m_webPageProxy->process()->isLaunching())
         return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to