Changeset 76437 in webkit
- Timestamp:
- Jan 22, 2011 2:00:13 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r76433 r76437 1 2011-01-22 Adrienne Walker <enne@google.com> 2 3 Reviewed by James Robinson. 4 5 [chromium] Fix compositor repaints for offscreen fixed elements 6 https://bugs.webkit.org/show_bug.cgi?id=52681 7 8 The fast path scrolling was clipping offscreen invalidations. 9 Additionally, the compositor was ignoring all invalidations that were 10 entirely out of the content rect. 11 12 Test: compositing/ to verify this caused no regressions. 13 Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests. 14 15 * page/FrameView.cpp: 16 (WebCore::FrameView::scrollContentsFastPath): 17 * platform/graphics/chromium/LayerRendererChromium.cpp: 18 (WebCore::LayerRendererChromium::invalidateRootLayerRect): 19 1 20 2011-01-22 Alexey Proskuryakov <ap@apple.com> 2 21 -
trunk/Source/WebCore/page/FrameView.cpp
r76291 r76437 1098 1098 IntRect updateRect = renderBox->layer()->repaintRectIncludingDescendants(); 1099 1099 updateRect = contentsToWindow(updateRect); 1100 1101 updateRect.intersect(rectToScroll);1100 if (clipsRepaints()) 1101 updateRect.intersect(rectToScroll); 1102 1102 if (!updateRect.isEmpty()) { 1103 1103 if (subRectToUpdate.size() >= fixedObjectThreshold) { … … 1121 1121 scrolledRect.move(scrollDelta); 1122 1122 updateRect.unite(scrolledRect); 1123 updateRect.intersect(rectToScroll); 1123 if (clipsRepaints()) 1124 updateRect.intersect(rectToScroll); 1124 1125 hostWindow()->invalidateContentsAndWindow(updateRect, false); 1125 1126 } -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r76299 r76437 156 156 void LayerRendererChromium::invalidateRootLayerRect(const IntRect& dirtyRect, const IntRect& visibleRect, const IntRect& contentRect) 157 157 { 158 if (contentRect.intersects(dirtyRect)) 159 m_rootLayerTiler->invalidateRect(dirtyRect); 158 m_rootLayerTiler->invalidateRect(dirtyRect); 160 159 if (m_horizontalScrollbarTiler) { 161 160 IntRect scrollbar = horizontalScrollbarRect(visibleRect, contentRect);
Note: See TracChangeset
for help on using the changeset viewer.