Open Bug 518656 Opened 11 years ago Updated 11 years ago
Changing to no style on ns
CSSFrame Constructor .cpp MXR is slow
BUILD: Current trunk STEPS TO REPRODUCE: 1) Start a separate browser process that you won't regret killing 2) Load http://mxr.mozilla.org/mozilla-central/source/layout/base/nsCSSFrameConstructor.cpp 3) View > Page Style > No Style EXPECTED RESULTS: restyle the page ACTUAL RESULTS: hang ANALYSIS: The page has rules applying to all the line numbers which give them :before content. Removing those causes us to reframe all those anchors. That means finding frames for them all so we can remove them (O(N) because inlines don't go in the map). That should be helped by bug 500882. Then it means removing them from the frame tree, which is O(N) due to needing to find the previous sibling and the right line in the block. Bug 512336 will help with the former, but finding the right line will still be O(N). Not sure how best to approach that. Then we create a new frame and have to find a previous sibling frame for it, which involves GetPrimaryFor on the prevsibling node (again bug 500882). Then we do FrameNeedsReflow(), which involves finding the right line in ChildIsDirty. Again, O(N). I have no idea why it was showing up less than some of the other line stuff; maybe it has a smaller constant...
You need to log in before you can comment on or make changes to this bug.