Title: [101838] trunk/Source/WebKit2
- Revision
- 101838
- Author
- [email protected]
- Date
- 2011-12-02 11:21:19 -0800 (Fri, 02 Dec 2011)
Log Message
WebKit2: Freeze the state of the layer tree until frame load completion if incremental rendering is suppressed
https://bugs.webkit.org/show_bug.cgi?id=73641
Reviewed by Darin Adler.
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFirstLayout): Do not
un-freeze the layer tree state if incremental rendering is suppressed.
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::layerTreeStateIsFrozen): Add a getter for
m_layerTreeStateIsFrozen.
* WebProcess/WebPage/DrawingAreaImpl.h:
(WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Ditto.
* WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
(WebKit::LayerTreeHostCA::initialize): WebFrameLoaderClient might have
tried to freeze the state of the layer tree before the layer tree host
was created. When creating the layer tree host, only schedule a layer
flush if the layer tree state isn't frozen.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (101837 => 101838)
--- trunk/Source/WebKit2/ChangeLog 2011-12-02 19:19:49 UTC (rev 101837)
+++ trunk/Source/WebKit2/ChangeLog 2011-12-02 19:21:19 UTC (rev 101838)
@@ -1,3 +1,24 @@
+2011-12-02 Andy Estes <[email protected]>
+
+ WebKit2: Freeze the state of the layer tree until frame load completion if incremental rendering is suppressed
+ https://bugs.webkit.org/show_bug.cgi?id=73641
+
+ Reviewed by Darin Adler.
+
+ * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
+ (WebKit::WebFrameLoaderClient::dispatchDidFirstLayout): Do not
+ un-freeze the layer tree state if incremental rendering is suppressed.
+ * WebProcess/WebPage/DrawingArea.h:
+ (WebKit::DrawingArea::layerTreeStateIsFrozen): Add a getter for
+ m_layerTreeStateIsFrozen.
+ * WebProcess/WebPage/DrawingAreaImpl.h:
+ (WebKit::DrawingAreaImpl::layerTreeStateIsFrozen): Ditto.
+ * WebProcess/WebPage/ca/LayerTreeHostCA.cpp:
+ (WebKit::LayerTreeHostCA::initialize): WebFrameLoaderClient might have
+ tried to freeze the state of the layer tree before the layer tree host
+ was created. When creating the layer tree host, only schedule a layer
+ flush if the layer tree state isn't frozen.
+
2011-12-02 Nayan Kumar K <[email protected]>
[WebKit2][gtk] Add 'enable-dns-prefetching' property to WebKitSettings
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp (101837 => 101838)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2011-12-02 19:19:49 UTC (rev 101837)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp 2011-12-02 19:21:19 UTC (rev 101838)
@@ -64,6 +64,7 @@
#include <WebCore/PluginData.h>
#include <WebCore/ProgressTracker.h>
#include <WebCore/ResourceError.h>
+#include <WebCore/Settings.h>
#include <WebCore/UIEventWithKeyState.h>
#include <WebCore/Widget.h>
#include <WebCore/WindowFeatures.h>
@@ -532,7 +533,7 @@
// Notify the UIProcess.
webPage->send(Messages::WebPageProxy::DidFirstLayoutForFrame(m_frame->frameID(), InjectedBundleUserMessageEncoder(userData.get())));
- if (m_frame == m_frame->page()->mainWebFrame())
+ if (m_frame == m_frame->page()->mainWebFrame() && !webPage->corePage()->settings()->suppressIncrementalRendering())
webPage->drawingArea()->setLayerTreeStateIsFrozen(false);
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h (101837 => 101838)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h 2011-12-02 19:19:49 UTC (rev 101837)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingArea.h 2011-12-02 19:21:19 UTC (rev 101838)
@@ -69,6 +69,7 @@
virtual void pageBackgroundTransparencyChanged() { }
virtual void forceRepaint() { }
virtual void setLayerTreeStateIsFrozen(bool) { }
+ virtual bool layerTreeStateIsFrozen() const { return false; }
virtual void didInstallPageOverlay() { }
virtual void didUninstallPageOverlay() { }
Modified: trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h (101837 => 101838)
--- trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h 2011-12-02 19:19:49 UTC (rev 101837)
+++ trunk/Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.h 2011-12-02 19:21:19 UTC (rev 101838)
@@ -54,6 +54,7 @@
virtual void setNeedsDisplay(const WebCore::IntRect&);
virtual void scroll(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset);
virtual void setLayerTreeStateIsFrozen(bool);
+ virtual bool layerTreeStateIsFrozen() const { return m_layerTreeStateIsFrozen; }
virtual void forceRepaint();
virtual void enableDisplayThrottling();
Modified: trunk/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp (101837 => 101838)
--- trunk/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp 2011-12-02 19:19:49 UTC (rev 101837)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ca/LayerTreeHostCA.cpp 2011-12-02 19:21:19 UTC (rev 101838)
@@ -77,6 +77,7 @@
platformInitialize(m_layerTreeContext);
+ setLayerFlushSchedulingEnabled(!m_webPage->drawingArea()->layerTreeStateIsFrozen());
scheduleLayerFlush();
}
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes