Closed Bug 683952 Opened 13 years ago Closed 13 years ago

jump to anchor freezes Fx for about 15 s in 500 K data

Categories

(Core :: Layout, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla9

People

(Reporter: kdevel, Assigned: bzbarsky)

References

(Depends on 1 open bug)

Details

(Keywords: regression, testcase)

Attachments

(2 files)

User Agent: Steps to reproduce: 1. Open testcase, allow to finish loading (jumps to the end). 2. Click at "click and wait 1" Actual results: 2. Fx freezes for about 15 s Expected results: Jumps to anchor immediately. No freeze.
Attached file Testcase version 0
Attachment #557562 - Attachment mime type: text/plain → text/html
good 2.0.0.19 bad 3.0.19
OS: Other → Linux
Hardware: Other → x86_64
Status: UNCONFIRMED → NEW
Component: General → Layout
Ever confirmed: true
Keywords: regression, testcase
OS: Linux → All
Product: Firefox → Core
QA Contact: general → layout
Hardware: x86_64 → All
Stefan, thanks for the testcase! So the issue here is that we spend 85% of our time constructing line iterators (which involves two walks over the line list: once to count the lines and once to stick them in the array) and then 15% more finding the line containing a given frame. The reason the construction takes so long is that the <a name="xX"> contains all the text on the page. So when we do the walk over continuations in PresShell::DoScrollContentIntoView we end up calling AccumulateFrameBounds 10498 times. And each call constructs a line iterator for a block that has 14815 lines. I can make this part faster, but the FindLineContaining cost will still be there, of course. That's bug 682052.
Depends on: 682052
(In reply to Boris Zbarsky (:bz) from comment #4) > The reason the construction takes so long is that the <a name="xX"> contains > all the text on the page. Thanks for the hint, I forgot to close the <a> tags. > I can make this part faster, but the FindLineContaining cost will still be > there, of course. That's bug 682052. Why does it jump so fast with Fx 2?
Because we fixed bug 66619 since then, which involves looking at continuations; that's needed to make multi-line links scroll sanely.
Blocks: 66619
Assignee: nobody → bzbarsky
Priority: -- → P2
Whiteboard: [need review]
Whiteboard: [need review] → [need landing]
Flags: in-testsuite?
Whiteboard: [need landing]
Target Milestone: --- → mozilla9
Backed out - https://tbpl.mozilla.org/?tree=Mozilla-Inbound&usebuildbot=1&rev=d01a282b5a40 should be the clearest rev to see the orange from this set, free from the leak that backout fixed.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: