Bug 70857

Summary: REGRESSION (r94887): Scrolling the HTML spec is more jerky now than it was (regression)
Product: WebKit Reporter: Ian 'Hixie' Hickson <ian>
Component: CSSAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: andersca, dglazkov, eric, gregsimon, hyatt, kulanthaivel, macpherson, simon.fraser
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
URL: http://whatwg.org/html#window
Bug Depends on:    
Bug Blocks: 66887    

Description Ian 'Hixie' Hickson 2011-10-25 15:29:53 PDT
Between r94906 and r94871, probably at r94887 (bug 66887) the HTML spec became slow to scroll.

STEPS TO REPRODUCE
1. Load http://whatwg.org/html
2. Wait. It's a 5MB file, it takes a while to load.
3. When you're sure it's loaded, drag the scrollbar thumb to the middle of the page.
4. Hit the space bar a few times.
5. Wait for the popup to fade-in in the margin.
6. Hit the space bar again.

ACTUAL RESULTS
Scrolling is not immediate.

EXPECTED RESULTS (and results prior to this regression)
Scrolling is always smooth.
Comment 1 Luke Macpherson 2011-10-25 22:29:43 PDT
Just ran a quick experiment, running PerformanceTests/Parser/html5-full-render.html with and without r94877.

ToT (with r94877):
Testing 6092696 byte document in 13 500000 byte chunks.
Running 20 times
Ignoring warm-up run (42093)
41379 41458 41389 41444 41458 41473 41468 41554 41506 41461
41419 41297 41547 41419 41311 41312 41529 41372 41349 41528

avg 41433.65
median 41451
stdev 77.53081645384626
min 41297
max 41554

Rolling out r94877:
Testing 6092696 byte document in 13 500000 byte chunks.
Running 20 times
Ignoring warm-up run (42154)
41460 41610 41765 41769 41887 42583 42574 41619 41754 41627
41509 41558 41641 41732 41613 41639 41453 41585 42914 42755

avg 41852.35
median 41640
stdev 443.69530930583437
min 41453
max 42914

It looks like r94887 actually makes the spec load faster on that benchmark. I know this doesn't answer the question about scrolling performance, but when I profiled scrolling the hot code was similar to the hot code when doing a page load, so it *might* still be indicative.
Comment 2 Dimitri Glazkov (Google) 2011-10-26 09:39:43 PDT
Confirmed that http://trac.webkit.org/changeset/94887 is the culprit.
Comment 3 Dimitri Glazkov (Google) 2011-10-26 09:58:53 PDT
Committed r98492: <http://trac.webkit.org/changeset/98492>