Currently whenever scrollTo is called on a RenderLayer (programmatic or mouse scroll), we call updateLayerPositions(0) which automatically updates the repaint rectangles. However the call paths make sure that a layout is done prior to calling scrollTo. This means that updateLayerPositions() has already been called to make sure everything is up-to-date. Thus we are computing the layers (positions / repaint rects) twice for elements that would not move (basically anything not fixed). Patch forthcoming to avoid this double calculation.
Created attachment 104609 [details] Proposed optimization: Changed updateLayerPositions inside scrollTo for a beefed version of updateRepaintRectsAfterScroll.
Comment on attachment 104609 [details] Proposed optimization: Changed updateLayerPositions inside scrollTo for a beefed version of updateRepaintRectsAfterScroll. r=me
Comment on attachment 104609 [details] Proposed optimization: Changed updateLayerPositions inside scrollTo for a beefed version of updateRepaintRectsAfterScroll. Clearing flags on attachment: 104609 Committed r93614: <http://trac.webkit.org/changeset/93614>
All reviewed patches have been landed. Closing bug.