[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