Title: [173390] branches/safari-600.1.4.11-branch/Source/WebCore
- Revision
- 173390
- Author
- [email protected]
- Date
- 2014-09-08 11:44:03 -0700 (Mon, 08 Sep 2014)
Log Message
Merged r173344. <rdar://problem/18267402>
Modified Paths
Diff
Modified: branches/safari-600.1.4.11-branch/Source/WebCore/ChangeLog (173389 => 173390)
--- branches/safari-600.1.4.11-branch/Source/WebCore/ChangeLog 2014-09-08 18:32:12 UTC (rev 173389)
+++ branches/safari-600.1.4.11-branch/Source/WebCore/ChangeLog 2014-09-08 18:44:03 UTC (rev 173390)
@@ -1,3 +1,25 @@
+2014-09-08 Babak Shafiei <[email protected]>
+
+ Merge r173344.
+
+ 2014-09-05 Tim Horton <[email protected]>
+
+ Doing a navigation on a non-opaque WKWebView can result in an empty layer tree
+ https://bugs.webkit.org/show_bug.cgi?id=136590
+ <rdar://problem/18234000>
+
+ Reviewed by Simon Fraser.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::setTransparent):
+ Avoid scheduling a compositing layer update if the RenderView isn't the
+ one associated with this FrameView. This can happen during a navigation,
+ before the new Document (and RenderView) is swapped in. This is particularly
+ bad in the case of setTransparent because it is called from Frame::createView,
+ which is right in the middle of that transition window. If we let the compositing
+ layer update go ahead, it can end up detaching the new Document's layer tree,
+ and we have no mechanism that would cause it to reattach.
+
2014-08-18 Babak Shafiei <[email protected]>
Merge r172213.
Modified: branches/safari-600.1.4.11-branch/Source/WebCore/page/FrameView.cpp (173389 => 173390)
--- branches/safari-600.1.4.11-branch/Source/WebCore/page/FrameView.cpp 2014-09-08 18:32:12 UTC (rev 173389)
+++ branches/safari-600.1.4.11-branch/Source/WebCore/page/FrameView.cpp 2014-09-08 18:44:03 UTC (rev 173390)
@@ -2548,6 +2548,13 @@
if (!renderView)
return;
+ // setTransparent can be called in the window between FrameView initialization
+ // and switching in the new Document; this means that the RenderView that we
+ // retrieve is actually attached to the previous Document, which is going away,
+ // and must not update compositing layers.
+ if (&renderView->frameView() != this)
+ return;
+
RenderLayerCompositor& compositor = renderView->compositor();
compositor.setCompositingLayersNeedRebuild();
compositor.scheduleCompositingLayerUpdate();
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes