Commit ac94e466 authored by aestes@apple.com's avatar aestes@apple.com
Browse files

2010-10-25 Andy Estes <aestes@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@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
parent 5b67d9e4
2010-10-25 Andy Estes <aestes@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@chromium.org>
 
Unreviewed Snow Leopard rebaseline of animations, compositing, css1,
<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>
2010-10-25 Andy Estes <aestes@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@apple.com>
 
Reviewed by Gavin Barraclough.
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment