[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

simon.fraser at apple.com simon.fraser at apple.com
Wed Dec 22 11:34:38 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 55bd53268057cc5b013821893142cf05027c91c2
Author: simon.fraser at apple.com <simon.fraser at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jul 29 18:41:56 2010 +0000

    2010-07-29  Simon Fraser  <simon.fraser at apple.com>
    
            Reviewed by Darin Adler.
    
            SHOULD NEVER BE REACHED assertion when switching tabs with composited content
            https://bugs.webkit.org/show_bug.cgi?id=43167
    
            When the root layer becomes unattached (e.g. when switching tabs), don't return
            'false' from paintingGoesToWindow() because that will cause a -setNeedsDispay, which
            both allocates wasteful backing store, and causes an assertion when we try to
            paint the layer.
    
            Test: manual-tests/compositing/assert-on-tab-switch.html: Added.
    
            * rendering/RenderLayerBacking.cpp:
            (WebCore::RenderLayerBacking::paintingGoesToWindow):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 0431cfb..ad62d49 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -37,6 +37,23 @@
 
 2010-07-29  Simon Fraser  <simon.fraser at apple.com>
 
+        Reviewed by Darin Adler.
+
+        SHOULD NEVER BE REACHED assertion when switching tabs with composited content
+        https://bugs.webkit.org/show_bug.cgi?id=43167
+
+        When the root layer becomes unattached (e.g. when switching tabs), don't return
+        'false' from paintingGoesToWindow() because that will cause a -setNeedsDispay, which
+        both allocates wasteful backing store, and causes an assertion when we try to
+        paint the layer.
+        
+        Test: manual-tests/compositing/assert-on-tab-switch.html: Added.
+        
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::paintingGoesToWindow):
+
+2010-07-29  Simon Fraser  <simon.fraser at apple.com>
+
         Reviewed by Pavel Feldman.
 
         Crash when computing pseudo-style of a vanished scrollbar in inspector
diff --git a/WebCore/manual-tests/compositing/assert-on-tab-switch.html b/WebCore/manual-tests/compositing/assert-on-tab-switch.html
new file mode 100644
index 0000000..5b82c49
--- /dev/null
+++ b/WebCore/manual-tests/compositing/assert-on-tab-switch.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+  <style type="text/css" media="screen">
+    .box {
+      width: 100px;
+      height: 100px;
+      background-color: blue;
+      -webkit-transform: translateZ(0);
+    }
+    
+  </style>
+</head>
+<body>
+  <div class="box"></div>
+  <p><a href="https://bugs.webkit.org/show_bug.cgi?id=43167">https://bugs.webkit.org/show_bug.cgi?id=43167</a><br>
+    You should not hit an assertion if you load this file in a tab, then switch back and forth between other tabs.</p>
+</body>
+</html>
diff --git a/WebCore/rendering/RenderLayerBacking.cpp b/WebCore/rendering/RenderLayerBacking.cpp
index ea7114a..13a8145 100644
--- a/WebCore/rendering/RenderLayerBacking.cpp
+++ b/WebCore/rendering/RenderLayerBacking.cpp
@@ -877,7 +877,7 @@ FloatPoint RenderLayerBacking::contentsToGraphicsLayerCoordinates(const Graphics
 bool RenderLayerBacking::paintingGoesToWindow() const
 {
     if (m_owningLayer->isRootLayer())
-        return compositor()->rootLayerAttachment() == RenderLayerCompositor::RootLayerAttachedViaChromeClient;
+        return compositor()->rootLayerAttachment() != RenderLayerCompositor::RootLayerAttachedViaEnclosingIframe;
     
     return false;
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list