Changeset 115752 in webkit
- Timestamp:
- May 1, 2012 3:22:25 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r115749 r115752 1 2012-05-01 Anders Carlsson <andersca@apple.com> 2 3 Slow scrolling on www.sholby.net 4 https://bugs.webkit.org/show_bug.cgi?id=85304 5 <rdar://problem/11138952> 6 7 Reviewed by Beth Dakin. 8 9 Fix two performance issues that showed up on the profiles. 10 11 * loader/FrameLoader.cpp: 12 (WebCore::FrameLoader::checkLoadCompleteForThisFrame): 13 Reset the relevant painted object counter; it's only interesting when loading. 14 15 * page/Page.cpp: 16 (WebCore::Page::startCountingRelevantRepaintedObjects): 17 Set m_isCountingRelevantRepaintedObjects to true after calling reset, since reset now sets it to false. 18 19 (WebCore::Page::resetRelevantPaintedObjectCounter): 20 Set m_isCountingRelevantRepaintedObjects to false. 21 22 (WebCore::Page::addRelevantRepaintedObject): 23 Use HashSet::find to avoid an extra hash lookup. 24 25 * page/scrolling/ScrollingCoordinator.cpp: 26 (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition): 27 Remove the call to FrameView::updateCompositingLayersAfterLayout now, since FrameView::notifyScrollPositionChanged 28 already calls this and was making us to a lot of work twice. 29 1 30 2012-05-01 Silvia Pfeiffer <silviapf@chromium.org> 2 31 -
trunk/Source/WebCore/loader/FrameLoader.cpp
r115654 r115752 2103 2103 return; 2104 2104 2105 if (Page* page = m_frame->page()) 2105 if (Page* page = m_frame->page()) { 2106 2106 page->progress()->progressCompleted(m_frame); 2107 2108 if (m_frame == page->mainFrame()) 2109 page->resetRelevantPaintedObjectCounter(); 2110 } 2107 2111 2108 2112 const ResourceError& error = dl->mainDocumentError(); -
trunk/Source/WebCore/page/Page.cpp
r115369 r115752 1040 1040 void Page::startCountingRelevantRepaintedObjects() 1041 1041 { 1042 m_isCountingRelevantRepaintedObjects = true;1043 1044 1042 // Reset everything in case we didn't hit the threshold last time. 1045 1043 resetRelevantPaintedObjectCounter(); 1044 1045 m_isCountingRelevantRepaintedObjects = true; 1046 1046 } 1047 1047 1048 1048 void Page::resetRelevantPaintedObjectCounter() 1049 1049 { 1050 m_isCountingRelevantRepaintedObjects = false; 1050 1051 m_relevantUnpaintedRenderObjects.clear(); 1051 1052 m_relevantPaintedRegion = Region(); … … 1068 1069 // If this object was previously counted as an unpainted object, remove it from that HashSet 1069 1070 // and corresponding Region. FIXME: This doesn't do the right thing if the objects overlap. 1070 if (m_relevantUnpaintedRenderObjects.contains(object)) { 1071 m_relevantUnpaintedRenderObjects.remove(object); 1071 HashSet<RenderObject*>::iterator it = m_relevantUnpaintedRenderObjects.find(object); 1072 if (it != m_relevantUnpaintedRenderObjects.end()) { 1073 m_relevantUnpaintedRenderObjects.remove(it); 1072 1074 m_relevantUnpaintedRegion.subtract(snappedPaintRect); 1073 1075 } -
trunk/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp
r115681 r115752 287 287 IntPoint scrollPosition = m_scrollingTree->mainFrameScrollPosition(); 288 288 289 // Make sure to update the main frame scroll position before changing the scroll layer position,290 // otherwise we'll introduce jittering on pages with slow repaint objects (like background-attachment: fixed).291 frameView->updateCompositingLayersAfterLayout();292 289 frameView->setConstrainsScrollingToContentEdge(false); 293 290 frameView->notifyScrollPositionChanged(scrollPosition);
Note: See TracChangeset
for help on using the changeset viewer.