Unnecessary invalidation of copyright <span> on IE9 Flying Images demo Watching invalidations that occur on the IE9 Flying Images demo (http://ie.microsoft.com/testdrive/Performance/FlyingImages/Default.html), I observe that the copyright span at the bottom of the page is continually invalidated. I reduced this down somewhat. See the attached test case. In the test case, if I give #board an explicit "left" and "top" coordinate, then the problem goes away. (If you are running Chromium, you can observe invalidations by running with the --show-paint-rects command line switch.)
Created attachment 75300 [details] testcase
You can also observe this using QuartzDebug on OS X.
To debug, see who's calling repaint() on the span
render tree: RenderView 0x7ffff7ef1a98 #document 0x7ffff7ef8000 RenderBlock 0x7ffff7f30478 HTML 0x7fffeb51c800 * RenderBody 0x7ffff7f30ef8 BODY 0x7fffeb064240 RenderBlock (positioned) 0x7fffe6e78718 DIV 0x7fffeaa4cb00 RenderBlock (positioned) 0x7fffe6e78558 DIV 0x7fffeaa4ca80 STYLE=top: -300px; RenderBlock (positioned) 0x7fffe6e78478 SPAN 0x7fffeaa4c980 RenderText 0x7fffeaa4c918 #text 0x7fffeaa48540 "Blah, blah" RenderBlock::layoutInlineChildren() on the <body>'s RenderBlock is marking the <span> as m_normalChildNeedsLayout because the <span> has a percentage width. This means it later gets marked for repainting even though none of its children actually move. http://trac.webkit.org/browser/trunk/WebCore/rendering/RenderBlockLineLayout.cpp#L552 seems a little pessimistic.
Created attachment 75337 [details] Patch
Comment on attachment 75337 [details] Patch This looks like a mitz/hyatt patch to review. :)
Actually hyatt typed out the meat of this patch verbatim in IRC. I just added the comment, testcase, and verified that this doesn't cause all the other layout tests to explode.
Comment on attachment 75337 [details] Patch Rejecting patch 75337 from commit-queue. Failed to run "['./WebKitTools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '--bot-id=abarth-cq-sl', 'build-and-test', '--no-clean', '--no-update', '--test', '--non-interactive']" exit_code: 2 Last 500 characters of output: ning/auto ....... fast/blockflow ................................................ fast/body-propagation/background-color ..................... fast/body-propagation/background-image ......................... fast/body-propagation/overflow ................... fast/borders ... fast/borders/border-fit.html -> failed Exiting early after 1 failures. 5969 tests run. 105.41s total testing time 5968 test cases (99%) succeeded 1 test case (<1%) had incorrect layout 3 test cases (<1%) had stderr output Full output: http://queues.webkit.org/results/6751028
Seems this patch will need an update since it breaks a test.
Attachment 75337 [details] was posted by a committer and has review+, assigning to James Robinson for commit.
Comment on attachment 75337 [details] Patch Clearing flags, patch was reverted.