Closed Bug 500467 Opened 13 years ago Closed 13 years ago
[FIX]Table row reordering much slower in minefield, whether done on or off DOM
Try clicking either sort button. Firefox 3.6a hangs and eventually gives a slow script warning. Firefox 3.5 does not have this issue.
So what's happening here is that the slowness is all in _removing_ the rows from the table. Every time we remove one, we try to create frames for the whitespace before/after it. This tries to do a ContentInserted on whitespace into a table-row-group, which ends up in WipeContainingBlock with us reframing the whole thing. So removing any row is O(N) in number of rows. The patch just skips trying to create frames for the whitespace if our parent expects table-related kids. If that's the case, the whitespace isn't being suppressed due to the block stuff anyway. It's being suppressed due to what the parent and siblings are, and we already handle changes to all that in MaybeRecreateContainerForFrameRemoval.
We could probably add a crashtest based on that testcase... roc, what do you think?
Summary: Table row reordering much slower in minefield, whether done on or off DOM → [FIX]Table row reordering much slower in minefield, whether done on or off DOM
Comment on attachment 385171 [details] [diff] [review] Proposed fix Looks good.
Pushed http://hg.mozilla.org/mozilla-central/rev/ac15a5ef239e Will try to create crashtest.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Pushed a crashtest as http://hg.mozilla.org/mozilla-central/rev/f6fb6cbd7121
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.