Title: [107985] trunk/Source/WebCore
- Revision
- 107985
- Author
- e...@google.com
- Date
- 2012-02-16 15:30:55 -0800 (Thu, 16 Feb 2012)
Log Message
Handle dirty descendant visibility status in RenderLayer::updateLayerPositionsAfterScroll
https://bugs.webkit.org/show_bug.cgi?id=78286
Reviewed by Julien Chaffraix.
This is an unfortunate bandaid over a corner case where sometimes the
visible descendant status dirty flag is true when this function is
called from FrameView::repaintFixedElementsAfterScrolling. As it
should be cheap to refresh this flag when dirty in most cases (as it
early outs after finding any visible descendant), just lazily update
the dirty flag here to ensure correctness.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositionsAfterScroll):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (107984 => 107985)
--- trunk/Source/WebCore/ChangeLog 2012-02-16 23:25:43 UTC (rev 107984)
+++ trunk/Source/WebCore/ChangeLog 2012-02-16 23:30:55 UTC (rev 107985)
@@ -1,3 +1,20 @@
+2012-02-16 Adrienne Walker <e...@google.com>
+
+ Handle dirty descendant visibility status in RenderLayer::updateLayerPositionsAfterScroll
+ https://bugs.webkit.org/show_bug.cgi?id=78286
+
+ Reviewed by Julien Chaffraix.
+
+ This is an unfortunate bandaid over a corner case where sometimes the
+ visible descendant status dirty flag is true when this function is
+ called from FrameView::repaintFixedElementsAfterScrolling. As it
+ should be cheap to refresh this flag when dirty in most cases (as it
+ early outs after finding any visible descendant), just lazily update
+ the dirty flag here to ensure correctness.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPositionsAfterScroll):
+
2012-02-16 Adam Barth <aba...@webkit.org>
Chrome::*Geolocation* are just useless pass-throughs to ChromeClient and should be removed
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (107984 => 107985)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-02-16 23:25:43 UTC (rev 107984)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2012-02-16 23:30:55 UTC (rev 107985)
@@ -454,8 +454,9 @@
void RenderLayer::updateLayerPositionsAfterScroll(UpdateLayerPositionsAfterScrollFlags flags)
{
- ASSERT(!m_visibleDescendantStatusDirty);
- ASSERT(!m_visibleContentStatusDirty);
+ // FIXME: This shouldn't be needed, but there are some corner cases where
+ // these flags are still dirty. Update so that the check below is valid.
+ updateVisibilityStatus();
// If we have no visible content and no visible descendants, there is no point recomputing
// our rectangles as they will be empty. If our visibility changes, we are expected to
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes