Closed
Bug 783064
Opened 11 years ago
Closed 6 years ago
New tab performance analysis
Categories
(Firefox :: General, defect)
Firefox
General
Tracking
()
RESOLVED
INCOMPLETE
People
(Reporter: enndeakin, Unassigned)
References
Details
(Keywords: meta, Whiteboard: [Snappy:P1])
The following is a log I made of reflows or marks for reflow that get made when a new opens. Tab animation causes a lot but that is a separate bug and not shown in this log. --- start opening tab <tab> inserted - mark box for reflow after insert into <box> <notification> inserted - mark box for reflow after insert into <tabpanels> - flush style (due to getting docshell from containerBoxObject) stop() is called within loadOneTab - flush layout (due to stop request, nsDocLoader::OnStopRequest) - reflow root box - flush child document style (due to stop request, nsDocLoader::OnStopRequest) onLocationChange() called - mark block for reflow after remove <div> - mark block for reflow after insert into <div> onSecurityChange() called - flush style (due to getting popup state) - mark for reflow after style change - mark box for reflow after remove <image> - mark box for reflow after insert <box> - mark box for reflow after remove <image> - mark box for reflow after insert <box> isElementVisible() within focusAndSelectUrlBar() called - flush layout (get box object height) - reflow root box - flush layout (get box object width) focus() within focusAndSelectUrlBar() called - flush interruptable layout (due to scroll into view) select() within focusAndSelectUrlBar() called - flush style (due to select all) - mark for reflow after style change on <textbox> --- end opening tab, the remainder is after a setTimeout adjustTabstrip() called - flush layout (due to call to getBoundingClientRect()) - mark box for reflow after insert <hbox> - mark box for reflow after insert <hbox> - reflow root box adjustTabstrip() called (again) but within handleNewTab - flush layout (due to call to getBoundingClientRect()) - mark box for reflow after style change <tab> - reflow root box _fillTrailingGap() called - flush layout (due to call to get scrollLeft) flush style from refresh driver flush interruptable layout from refresh driver flush interruptable layout from esm flush pending events flush interruptable layout from willpaint flush layout from scrollintoview flush layout from querytextcontent flush layout from scrollintoview flush style from refresh driver flush interruptable layout from willpaint - mark for reflow <textbox>? - reflow root box? flush layout from stop request, nsDocLoader::OnStopRequest flush child document style from stop request, nsDocLoader::OnStopRequest flush child document style from load complete, DocumentViewerImpl::LoadComplete - reflow root box flush child document interruptable layout from refresh driver flush child document interruptable layout from esm flush pending events (DispatchSynthMouseMove) flush interruptable layout from willpaint flush child document interruptable layout from willpaint flush interruptable layout from willpaint flush child document interruptable layout from willpaint flush layout from getting window.outerWidth flush interruptable layout from willpaint flush child document interruptable layout from willpaint flush interruptable layout from willpaint flush child document interruptable layout from willpaint flush child document interruptable layout from esm flush pending events flush layout from getting window.mozInnerScreenX flush child document interruptable layout from esm flush pending events (mouseMoved) flush child document interruptable layout from esm flush pending events (mouseMoved) flush child document interruptable layout from esm flush pending events (mouseMoved) flush interruptable layout from willpaint flush child document interruptable layout from willpaint
Comment 1•11 years ago
|
||
(In reply to Neil Deakin from comment #0) > select() within focusAndSelectUrlBar() called > - flush style (due to select all) I suppose this style flush is in the input field's anonymous document, so it's probably not a big deal. We could however avoid this by calling select() only if the value is non-empty. Should we make this change?
Updated•11 years ago
|
Whiteboard: [Snappy]
Updated•11 years ago
|
Component: Tabbed Browser → General
OS: Mac OS X → All
Hardware: x86 → All
Updated•11 years ago
|
Whiteboard: [Snappy] → [Snappy:P1]
Comment 2•11 years ago
|
||
FYI, possibly related, I filed bug 837535 (tabstrip-tab and newtab-button paint few gradients, possibly should paint only one). This affects tab animation as on each frame we might be painting more than we're hoping to.
Comment 3•10 years ago
|
||
We got rid of the browser.stop() call and its consequences in bug 878747. Bug 876374 removed one of the sync reflows caused by adjustTabstrip() before addTab() finishes.
Updated•10 years ago
|
Comment 4•6 years ago
|
||
This is likely way outdated now.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•