Closed
Bug 36015
Opened 25 years ago
Closed 25 years ago
Massive StyleChange reflows before browser comes up!
Categories
(Core :: Preferences: Backend, defect, P3)
Tracking
()
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!!!
Comment 1•25 years ago
|
||
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
| Reporter | ||
Comment 3•25 years ago
|
||
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
Comment 5•25 years ago
|
||
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 ago → 25 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•