Closed Bug 845526 Opened 9 years ago Closed 9 years ago

FrameLayerBuilder::RemoveFrameFromLayerManager can cause O(N^2) behavior

Categories

(Core :: Layout, defect)

x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla22

People

(Reporter: roc, Assigned: roc)

References

Details

Attachments

(1 file)

Every time we tear down a frame we add to thebesData->mRegionToInvalidate. This can get arbitrarily complex, so N calls to RemoveFrameFromLayerManager take O(N^2) time.

To reproduce:
1) Load http://www.gutenberg.org/cache/epub/42205/pg42205.txt
2) in Web Console, do
var s=document.documentElement.style;s.transformOrigin="top left";s.transform="scale(2)"
3) Reload page --- hangs.

I think we may be prerendering the root element --- that may be another bug.
Attached patch fixSplinter Review
Attachment #718799 - Flags: review?(matt.woodrow)
Attachment #718799 - Flags: review?(matt.woodrow) → review+
This patch shouldn't have caused the build failures on that inbound push. Can we try this again?

The build failures appear to be related to the patches for bug 829557.
Status: NEW → ASSIGNED
Keywords: checkin-needed
https://hg.mozilla.org/mozilla-central/rev/b0857123e281
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
This patchset looks remarkably empty...
> https://hg.mozilla.org/mozilla-central/rev/04856b09ea1e
(In reply to Philip Chee from comment #8)
> This patchset looks remarkably empty...
> > https://hg.mozilla.org/mozilla-central/rev/04856b09ea1e

That's because this patch ended up getting pushed to central twice.
Blocks: 846181
You need to log in before you can comment on or make changes to this bug.