Title: [173066] trunk/Source/WebCore
- Revision
- 173066
- Author
- akl...@apple.com
- Date
- 2014-08-28 10:54:31 -0700 (Thu, 28 Aug 2014)
Log Message
ASSERTION FAILED: !m_renderView.document().inPageCache() in compositing/iframes/resources/page-cache-helper.html
<https://webkit.org/b/136329>
Cancel any pending compositing layer updates when moving a document
into the page cache.
Reviewed by Zalan Bujtas.
* dom/Document.cpp:
(WebCore::Document::documentWillSuspendForPageCache):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::cancelCompositingLayerUpdate):
* rendering/RenderLayerCompositor.h:
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (173065 => 173066)
--- trunk/Source/WebCore/ChangeLog 2014-08-28 17:26:08 UTC (rev 173065)
+++ trunk/Source/WebCore/ChangeLog 2014-08-28 17:54:31 UTC (rev 173066)
@@ -1,3 +1,19 @@
+2014-08-28 Andreas Kling <akl...@apple.com>
+
+ ASSERTION FAILED: !m_renderView.document().inPageCache() in compositing/iframes/resources/page-cache-helper.html
+ <https://webkit.org/b/136329>
+
+ Cancel any pending compositing layer updates when moving a document
+ into the page cache.
+
+ Reviewed by Zalan Bujtas.
+
+ * dom/Document.cpp:
+ (WebCore::Document::documentWillSuspendForPageCache):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::cancelCompositingLayerUpdate):
+ * rendering/RenderLayerCompositor.h:
+
2014-08-28 Mihnea Ovidenie <mih...@adobe.com>
[CSSRegions] Incorrect selection clearing on a document without regions
Modified: trunk/Source/WebCore/dom/Document.cpp (173065 => 173066)
--- trunk/Source/WebCore/dom/Document.cpp 2014-08-28 17:26:08 UTC (rev 173065)
+++ trunk/Source/WebCore/dom/Document.cpp 2014-08-28 17:54:31 UTC (rev 173066)
@@ -4139,6 +4139,11 @@
// is dispatched, after the document is restored from the page cache.
m_didDispatchViewportPropertiesChanged = false;
#endif
+
+ if (RenderView* view = renderView()) {
+ if (view->usesCompositing())
+ view->compositor().cancelCompositingLayerUpdate();
+ }
}
void Document::documentDidResumeFromPageCache()
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (173065 => 173066)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2014-08-28 17:26:08 UTC (rev 173065)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp 2014-08-28 17:54:31 UTC (rev 173066)
@@ -646,6 +646,11 @@
return m_compositedLayerCount > (rootLayer.isComposited() ? 1 : 0);
}
+void RenderLayerCompositor::cancelCompositingLayerUpdate()
+{
+ m_updateCompositingLayersTimer.stop();
+}
+
void RenderLayerCompositor::updateCompositingLayers(CompositingUpdateType updateType, RenderLayer* updateRoot)
{
m_updateCompositingLayersTimer.stop();
Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.h (173065 => 173066)
--- trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2014-08-28 17:26:08 UTC (rev 173065)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.h 2014-08-28 17:54:31 UTC (rev 173066)
@@ -140,6 +140,8 @@
// This is only used when state changes and we do not exepect a style update or layout to happen soon (e.g. when
// we discover that an iframe is overlapped during painting).
void scheduleCompositingLayerUpdate();
+ // This is used to cancel any pending update timers when the document goes into page cache.
+ void cancelCompositingLayerUpdate();
// Update the compositing state of the given layer. Returns true if that state changed.
enum CompositingChangeRepaint { CompositingChangeRepaintNow, CompositingChangeWillRepaintLater };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes