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

aestes at apple.com aestes at apple.com
Wed Dec 22 14:56:57 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit ac94e46604b0ae0e3c5b28082d4eeb529bd81af7
Author: aestes at apple.com <aestes at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Oct 25 22:48:38 2010 +0000

    2010-10-25  Andy Estes  <aestes at apple.com>
    
            Reviewed by Simon Fraser.
    
            Source change by Simon Fraser.
    
            Setting an element's visibility property to visible has no effect when
            it has a hidden parent.
            https://bugs.webkit.org/show_bug.cgi?id=48267
    
            Test: fast/layers/visible-layer-with-hidden-parent.html
    
            When a layer is hidden, there is an optimization that removes it from
            the layer tree. If the layer is made visible again, it would only mark
            its own stacking context's z-order list as dirty. If there are hidden
            parent layers, they need to be marked dirty as well so layers with
            visible descendents are re-added to the layer tree.
    
            * rendering/RenderLayer.cpp:
            (WebCore::RenderLayer::setHasVisibleContent): Dirty the z-order lists of
            all parent stacking context render layers up to and including the first
            visible stacking context.
    2010-10-25  Andy Estes  <aestes at apple.com>
    
            Reviewed by Simon Fraser.
    
            Setting an element's visibility property to visible has no effect when
            it has a hidden parent.
            https://bugs.webkit.org/show_bug.cgi?id=48267
    
            * fast/layers/visible-layer-with-hidden-parent-expected.txt: Added.
            * fast/layers/visible-layer-with-hidden-parent.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@70497 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 57a80b2..9139591 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,14 @@
+2010-10-25  Andy Estes  <aestes at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        Setting an element's visibility property to visible has no effect when
+        it has a hidden parent.
+        https://bugs.webkit.org/show_bug.cgi?id=48267
+
+        * fast/layers/visible-layer-with-hidden-parent-expected.txt: Added.
+        * fast/layers/visible-layer-with-hidden-parent.html: Added.
+
 2010-10-25  Mihai Parparita  <mihaip at chromium.org>
 
         Unreviewed Snow Leopard rebaseline of animations, compositing, css1, 
diff --git a/LayoutTests/compositing/overflow/get-transform-from-non-box-container-expected.txt b/LayoutTests/fast/layers/visible-layer-with-hidden-parent-expected.txt
similarity index 100%
copy from LayoutTests/compositing/overflow/get-transform-from-non-box-container-expected.txt
copy to LayoutTests/fast/layers/visible-layer-with-hidden-parent-expected.txt
diff --git a/LayoutTests/fast/layers/visible-layer-with-hidden-parent.html b/LayoutTests/fast/layers/visible-layer-with-hidden-parent.html
new file mode 100644
index 0000000..14dd46e
--- /dev/null
+++ b/LayoutTests/fast/layers/visible-layer-with-hidden-parent.html
@@ -0,0 +1,23 @@
+<script>
+    if (window.layoutTestController) {
+        layoutTestController.waitUntilDone();
+        layoutTestController.dumpAsText();
+    }
+</script>
+
+<div style="visibility:hidden; position:absolute; z-index:1">
+    <div style="visibility:hidden; position:absolute; z-index:1">
+        <div id="container" style="position:absolute">PASS</div>
+    </div>
+</div>
+
+<script>
+    window.addEventListener('load', function() {
+        window.setTimeout(function() {
+            document.getElementById("container").style.visibility = "visible";
+            if (window.layoutTestController)
+                layoutTestController.notifyDone();
+        }, 0);
+    }, false);
+</script>
+
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 095137a..cc6a7f8 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,26 @@
+2010-10-25  Andy Estes  <aestes at apple.com>
+
+        Reviewed by Simon Fraser.
+
+        Source change by Simon Fraser.
+
+        Setting an element's visibility property to visible has no effect when
+        it has a hidden parent.
+        https://bugs.webkit.org/show_bug.cgi?id=48267
+
+        Test: fast/layers/visible-layer-with-hidden-parent.html
+
+        When a layer is hidden, there is an optimization that removes it from
+        the layer tree. If the layer is made visible again, it would only mark
+        its own stacking context's z-order list as dirty. If there are hidden
+        parent layers, they need to be marked dirty as well so layers with
+        visible descendents are re-added to the layer tree.
+
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::setHasVisibleContent): Dirty the z-order lists of
+        all parent stacking context render layers up to and including the first
+        visible stacking context.
+
 2010-10-25  Oliver Hunt  <oliver at apple.com>
 
         Reviewed by Gavin Barraclough.
diff --git a/WebCore/rendering/RenderLayer.cpp b/WebCore/rendering/RenderLayer.cpp
index 984755f..2dbf383 100644
--- a/WebCore/rendering/RenderLayer.cpp
+++ b/WebCore/rendering/RenderLayer.cpp
@@ -524,8 +524,13 @@ void RenderLayer::setHasVisibleContent(bool b)
         RenderBoxModelObject* repaintContainer = renderer()->containerForRepaint();
         m_repaintRect = renderer()->clippedOverflowRectForRepaint(repaintContainer);
         m_outlineBox = renderer()->outlineBoundsForRepaint(repaintContainer);
-        if (!isNormalFlowOnly())
-            dirtyStackingContextZOrderLists();
+        if (!isNormalFlowOnly()) {
+            for (RenderLayer* sc = stackingContext(); sc; sc = sc->stackingContext()) {
+                sc->dirtyZOrderLists();
+                if (sc->hasVisibleContent())
+                    break;
+            }
+        }
     }
     if (parent())
         parent()->childVisibilityChanged(m_hasVisibleContent);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list