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

Reply via email to