Changeset 147120 in webkit
- Timestamp:
- Mar 28, 2013 8:48:28 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r147119 r147120 1 2013-03-28 Xianzhu Wang <wangxianzhu@chromium.org> 2 3 Non-painting fixed elements should not cause repaints on scroll 4 https://bugs.webkit.org/show_bug.cgi?id=110430 5 6 Reviewed by Simon Fraser. 7 8 * compositing/repaint/scroll-fixed-layer-no-content.html: Added. 9 * compositing/repaint/scroll-fixed-layer-no-content-expected.txt: Added. 10 * compositing/repaint/scroll-fixed-layer-out-of-view.html: Added. 11 * compositing/repaint/scroll-fixed-layer-out-of-view-expected.txt: Added. 12 1 13 2013-03-28 Christophe Dumez <ch.dumez@sisa.samsung.com> 2 14 -
trunk/Source/WebCore/ChangeLog
r147118 r147120 1 2013-03-28 Xianzhu Wang <wangxianzhu@chromium.org> 2 3 Non-painting fixed elements should not cause repaints on scroll 4 https://bugs.webkit.org/show_bug.cgi?id=110430 5 6 Reviewed by Simon Fraser. 7 8 Test: compositing/repaint/scroll-fixed-layer-no-content.html 9 Test: compositing/repaint/scroll-fixed-layer-out-of-view.html 10 11 * page/FrameView.cpp: 12 (WebCore::FrameView::scrollContentsFastPath): Check for no-content and out-of-view flag set by RLC. 13 * rendering/RenderLayerCompositor.cpp: 14 (WebCore::RenderLayerCompositor::requiresCompositingForPosition): Moved the check for no-content above out-of-view because it's faster. 15 1 16 2013-03-28 Alexander Pavlov <apavlov@chromium.org> 2 17 -
trunk/Source/WebCore/page/FrameView.cpp
r147039 r147120 1665 1665 ASSERT(renderer->hasLayer()); 1666 1666 RenderLayer* layer = toRenderBoxModelObject(renderer)->layer(); 1667 1667 1668 #if USE(ACCELERATED_COMPOSITING) 1669 if (layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForBoundsOutOfView 1670 || layer->viewportConstrainedNotCompositedReason() == RenderLayer::NotCompositedForNoVisibleContent) { 1671 // Don't invalidate for invisible fixed layers. 1672 continue; 1673 } 1674 #endif 1675 1668 1676 #if ENABLE(CSS_FILTERS) 1669 1677 if (layer->hasAncestorWithFilterOutsets()) { -
trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp
r147039 r147120 2197 2197 } 2198 2198 2199 bool paintsContent = layer->isVisuallyNonEmpty() || layer->hasVisibleDescendant(); 2200 if (!paintsContent) { 2201 if (viewportConstrainedNotCompositedReason) 2202 *viewportConstrainedNotCompositedReason = RenderLayer::NotCompositedForNoVisibleContent; 2203 return false; 2204 } 2205 2199 2206 // Fixed position elements that are invisible in the current view don't get their own layer. 2200 2207 if (FrameView* frameView = m_renderView->frameView()) { … … 2209 2216 } 2210 2217 2211 bool paintsContent = layer->isVisuallyNonEmpty() || layer->hasVisibleDescendant();2212 if (!paintsContent) {2213 if (viewportConstrainedNotCompositedReason)2214 *viewportConstrainedNotCompositedReason = RenderLayer::NotCompositedForNoVisibleContent;2215 return false;2216 }2217 2218 2218 return true; 2219 2219 }
Note: See TracChangeset
for help on using the changeset viewer.