Closed
Bug 1358458
Opened 8 years ago
Closed 5 years ago
6.27ms uninterruptible reflow at _showNotification@chrome://global/content/bindings/notification.xml:270:17
Categories
(Toolkit :: UI Widgets, enhancement, P4)
Toolkit
UI Widgets
Tracking
()
RESOLVED
INCOMPLETE
Performance Impact | low |
People
(Reporter: sfleiter, Unassigned)
References
Details
(Keywords: perf, Whiteboard: [ohnoreflow][fxperf:p3])
Here's the stack:
_showNotification@chrome://global/content/bindings/notification.xml:270:17
removeCurrentNotification@chrome://global/content/bindings/notification.xml:222:13
removeNotification@chrome://global/content/bindings/notification.xml:193:15
removeTransientNotifications@chrome://global/content/bindings/notification.xml:256:17
onLocationChange@chrome://browser/content/browser.js:5092:5
callListeners@chrome://browser/content/tabbrowser.xml:492:24
_callProgressListeners@chrome://browser/content/tabbrowser.xml:513:13
_callProgressListeners@chrome://browser/content/tabbrowser.xml:563:22
onLocationChange@chrome://browser/content/tabbrowser.xml:845:17
_callProgressListeners@resource://gre/modules/RemoteWebProgress.jsm:179:11
receiveMessage@resource://gre/modules/RemoteWebProgress.jsm:265:7
waitForSyncCallback@resource://services-common/async.js:98:7
makeSpinningCallback/callback.wait@resource://services-common/async.js:168:27
promiseSpinningly@resource://services-common/async.js:234:12
get changedIDs@resource://services-sync/engines.js:97:5
addChangedID@resource://services-sync/engines.js:158:1
onVisit@resource://services-sync/engines/history.js:491:9
Updated•8 years ago
|
Component: Untriaged → XUL Widgets
Product: Firefox → Toolkit
Updated•8 years ago
|
Flags: qe-verify?
Priority: -- → P2
Comment 1•8 years ago
|
||
The sync layout flush is "aNotification.boxObject.height;" at http://searchfox.org/mozilla-central/rev/7aa21f3b531ddee90a353215bd86e97d6974e25b/toolkit/content/widgets/notification.xml#269 to decide if we should skip an animation.
I think this could safely be changed to getBoundsWithoutFlushing.
Comment 2•8 years ago
|
||
(In reply to Florian Quèze [:florian] [:flo] from comment #1)
> The sync layout flush is "aNotification.boxObject.height;" at
> http://searchfox.org/mozilla-central/rev/
> 7aa21f3b531ddee90a353215bd86e97d6974e25b/toolkit/content/widgets/
> notification.xml#269 to decide if we should skip an animation.
>
> I think this could safely be changed to getBoundsWithoutFlushing.
I don't think so. If the height is off, the slide animation will be off. If we fail to detect the height==0 case, we'll erroneously wait for the transitionend event.
Comment 3•8 years ago
|
||
Yeah, I read this code too quickly, I had in mind the call stack from comment 0 where we are removing a notification due to a location change, so it's very likely (and probably guaranteed) that the notification we remove is already on screen, so with correct bounds without flushing). But that's the specific (but common) case where we are removing a notification and it's the only one. _showNotification can be called in other situations. I think we should special case the common case where it's fine to not flush.
Updated•8 years ago
|
Whiteboard: [ohnoreflow][qf][photon-performance] → [ohnoreflow][qf:p1][photon-performance]
Updated•8 years ago
|
Blocks: photon-perf-upforgrabs
Updated•8 years ago
|
No longer blocks: photon-performance-triage
Updated•8 years ago
|
Flags: qe-verify? → qe-verify-
Updated•7 years ago
|
Priority: P2 → P3
Whiteboard: [ohnoreflow][qf:p1][photon-performance] → [ohnoreflow][qf:p1][reserve-photon-performance]
Updated•7 years ago
|
Whiteboard: [ohnoreflow][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:p2][reserve-photon-performance]
Updated•7 years ago
|
Priority: P3 → P4
Comment 4•7 years ago
|
||
This reflow looks like it still exists, but showing notification bars _should_ be rare enough that I feel comfortable relegating this to a qf:p3.
Whiteboard: [ohnoreflow][qf:p2][reserve-photon-performance] → [ohnoreflow][qf:p3][reserve-photon-performance]
Updated•7 years ago
|
Whiteboard: [ohnoreflow][qf:p3][reserve-photon-performance] → [ohnoreflow][qf:p3][reserve-photon-performance] [fxperf]
Updated•7 years ago
|
Whiteboard: [ohnoreflow][qf:p3][reserve-photon-performance] [fxperf] → [ohnoreflow][qf:p3][reserve-photon-performance] [fxperf:p3]
Updated•7 years ago
|
Whiteboard: [ohnoreflow][qf:p3][reserve-photon-performance] [fxperf:p3] → [ohnoreflow][qf:p3][fxperf:p3]
Comment 5•5 years ago
|
||
This binding is gone now. I suspect the reflow has moved elsewhere, but I'm going to just close this one out as INCOMPLETE.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
Updated•3 years ago
|
Performance Impact: --- → P3
Whiteboard: [ohnoreflow][qf:p3][fxperf:p3] → [ohnoreflow][fxperf:p3]
You need to log in
before you can comment on or make changes to this bug.
Description
•