Closed Bug 1356911 Opened 4 years ago Closed 4 years ago

CustomizableUI.unregisterBuildWindow is slow when closing windows

Categories

(Firefox :: Toolbars and Customization, defect, P1)

defect

Tracking

()

RESOLVED FIXED
Firefox 55
Iteration:
55.4 - May 1
Tracking Status
firefox55 --- fixed

People

(Reporter: florian, Assigned: dao)

References

(Blocks 1 open bug)

Details

(Whiteboard: [photon-performance])

Attachments

(1 file)

It's strange/unfortunate that the way listeners are implemented in CustomizableUI.jsm causes all windows to receive notifications when one window is closed, and to have lots of listeners check if the notification is relevant to the window they care about.

But specifically, when looking at a profile, a third of the time is spent in the onWidgetInstanceRemoved handler in FullZoomUI.jsm, because it loops over all windows and updates UI in them at http://searchfox.org/mozilla-central/rev/d8496d0a1f6ebef57fe39b9b204475b0eccfb94c/browser/modules/FullZoomUI.jsm#104

A quick look at the history seems to indicate this loop was added recently in bug 1348122.

See this profile of closing several windows: http://perfht.ml/2pr1SDW
Flags: qe-verify?
Priority: -- → P2
Maybe the onWidgetRemoved listener is enough. Not sure what else onWidgetInstanceRemoved is good for.
Assignee: nobody → dao+bmo
Flags: qe-verify? → qe-verify-
Status: NEW → ASSIGNED
Priority: P2 → P1
Comment on attachment 8860060 [details]
Bug 1356911 - Remove unnecessary onWidgetInstanceRemoved listener.

https://reviewboard.mozilla.org/r/132098/#review135010

::: commit-message-ef8d1:1
(Diff revision 1)
> +Bug 1356911 - Stop using a onWidgetInstanceRemoved listener to update the full zoom UI. r?jaws

Please explain in your commit message *why* we are changing event listeners. As-is the commit message tells nothing more than the literal code change.
Attachment #8860060 - Flags: review?(jaws) → review+
Pushed by dgottwald@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9a8c26fc0120
Remove unnecessary onWidgetInstanceRemoved listener. r=jaws
https://hg.mozilla.org/mozilla-central/rev/9a8c26fc0120
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 55
Iteration: --- → 55.4 - May 1
No longer blocks: photon-performance-triage
You need to log in before you can comment on or make changes to this bug.