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
This regressed between 1.9a7pre: 2007071506 and 1.9a7pre: 2007071605

Range:
http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=PhoenixTinderbox&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2007-07-15+06%3A00%3A00&maxdate=2007-07-16+05%3A00%3A00&cvsroot=%2Fcvsroot

likely Bug 388019, no?
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]
http://hg.mozilla.org/integration/mozilla-inbound/rev/64c328251a24
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.
This patch wasn't the problem; repushed as http://hg.mozilla.org/integration/mozilla-inbound/rev/16813bde78b9
http://hg.mozilla.org/mozilla-central/rev/16813bde78b9
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: