Closed Bug 36015 Opened 25 years ago Closed 25 years ago

Massive StyleChange reflows before browser comes up!

Categories

(Core :: Preferences: Backend, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED DUPLICATE of bug 36485

People

(Reporter: eric, Assigned: neeti)

Details

When ever a pref is loaded it causes a style change reflow of the entire window! This is very EXPENSIVE. This is why boxes are dumping Style change reflow messages when the browser first comes up. This really slows down our startup time. To reproduce: 1) run the browser 2) select a profile. 3) Now for ever preference loaded you will get a Style Change reflow!!!
See also bug 36009, "rendering page causes processor to spike", a regression in Today's M16 bits that may be related, if this only started happening today.
Erik, Is the StyleChangeReflow(..) method in nsCSSFrameContructor.cpp being called for every pref which gets loaded? If not, can you point me to the correct Style Style change reflow method. Also, what is the exact Style change reflow messages that are being dumped out when the browser starts up? Thanks, Neeti
Yes the stylechange reflow in nsCSSFrameConstructor is being called for every pref that is loaded.
By stepping through the code in the debugger, I find that PresShell::StyleChangeReflow(..) is being called "only" for prefs which have been registered for callback by nsPresContext while loading all.js. The prefs which have been registered by nsPresContext are mPrefs->RegisterCallback("browser.screen_resolution", PrefChangedCallback, (void*)this); D:\seamonkey\mozilla\layout\base\src\nsPresContext.cpp(308): mPrefs->RegisterCallback("browser.use_document_fonts", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.use_document_colors", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.background_color", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.foreground_color", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.base_font_scaler", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.wfe.use_windows_colors", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("font.", PrefChangedCallback, (void*)this); mPrefs->RegisterCallback("browser.display.direction", PrefChangedCallback, (void*)this); pref->RegisterCallback("intl.charset.detector", MyPrefChangedCallback, nsnull); It looks like a lot of calls, because all fonts prefs are registered. Neeti
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → WORKSFORME
h'm, i still see this occurring --right after i select a profile and as the browser launches, get a bunch of "STYLE CHANGE REFLOW. Blowing away all box caches!!" in the console. so, am gonna reopen this --neeti, should this go to someone else? thx!
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
*** This bug has been marked as a duplicate of 36485 ***
Status: REOPENED → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → DUPLICATE
verif.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.