Closed Bug 1357054 Opened 7 years ago Closed 5 years ago

2.15ms uninterruptible reflow at _rebuild@chrome://browser/content/search/search.xml:1540:15

Categories

(Firefox :: Search, defect, P4)

defect

Tracking

()

RESOLVED INCOMPLETE
Performance Impact low

People

(Reporter: florian, Unassigned)

References

Details

(Keywords: perf, Whiteboard: [ohnoreflow][fxperf:p3])

The profiles in bug 1353725 show that the reflow is triggered by a .clientWidth call. I guess it's http://searchfox.org/mozilla-central/rev/d8496d0a1f6ebef57fe39b9b204475b0eccfb94c/browser/components/search/content/search.xml#1528

I think we should be able to do something here using getBoundsWithoutFlushing instead.

This currently happens whenever the awesomebar (or searchbar) panel opens. Once bug 1312999 is fixed, it'll be only the first time.

Here's the stack:

_rebuild@chrome://browser/content/search/search.xml:1540:15
handleEvent@chrome://browser/content/search/search.xml:1435:15
openPopup@chrome://global/content/bindings/popup.xml:53:15
_openAutocompletePopup@chrome://browser/content/urlbarBindings.xml:1617:11
openAutocompletePopup@chrome://browser/content/urlbarBindings.xml:1551:11
openPopup@chrome://global/content/bindings/autocomplete.xml:393:13
set_popupOpen@chrome://global/content/bindings/autocomplete.xml:103:10
notifyResults@jar:file:///Applications/FirefoxNightly.app/Contents/Resources/omni.ja!/components/UnifiedComplete.js:2111:5
_addMatch@jar:file:///Applications/FirefoxNightly.app/Contents/Resources/omni.ja!/components/UnifiedComplete.js:1733:5
_matchPlacesKeyword@jar:file:///Applications/FirefoxNightly.app/Contents/Resources/omni.ja!/components/UnifiedComplete.js:1381:5
TaskImpl_run@resource://gre/modules/Task.jsm:319:42
process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:922:23
walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:806:7
scheduleWalkerLoop/<@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:742:11
Another similar stack:

_rebuild@chrome://browser/content/search/search.xml:1540:15
handleEvent@chrome://browser/content/search/search.xml:1435:15
openPopup@chrome://global/content/bindings/popup.xml:53:15
_openAutocompletePopup@chrome://browser/content/urlbarBindings.xml:1617:11
openAutocompletePopup@chrome://browser/content/urlbarBindings.xml:1551:11
openPopup@chrome://global/content/bindings/autocomplete.xml:393:13
set_popupOpen@chrome://global/content/bindings/autocomplete.xml:103:10
notifyResults@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/UnifiedComplete.js:2111:5
_addMatch@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/UnifiedComplete.js:1733:5
_onResultRow@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/UnifiedComplete.js:1636:5
_matchKnownUrl/<@jar:file:///C:/Program%20Files/Nightly/omni.ja!/components/UnifiedComplete.js:1336:7
handleResult@resource://gre/modules/Sqlite.jsm:774:13
Flags: qe-verify?
Priority: -- → P2
Whiteboard: [ohnoreflow][qf][photon-performance] → [ohnoreflow][qf:p1][photon-performance]
No longer blocks: photon-performance-triage
Flags: qe-verify? → qe-verify-
Priority: P2 → P3
Whiteboard: [ohnoreflow][qf:p1][photon-performance] → [ohnoreflow][qf:p1][reserve-photon-performance]
Whiteboard: [ohnoreflow][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:p2][reserve-photon-performance]
Priority: P3 → P4
Keywords: perf
Whiteboard: [ohnoreflow][qf:p2][reserve-photon-performance] → [ohnoreflow][qf:p1][reserve-photon-performance]
Whiteboard: [ohnoreflow][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:i60][qf:p1][reserve-photon-performance]
Whiteboard: [ohnoreflow][qf:i60][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:f60][qf:p1][reserve-photon-performance]
Whiteboard: [ohnoreflow][qf:f60][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance]
Whiteboard: [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance] → [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance] [fxperf]
Given that it's only on the first open, I don't think this is a priority.
Whiteboard: [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance] [fxperf] → [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance] [fxperf:p3]
Whiteboard: [ohnoreflow][qf:f61][qf:p1][reserve-photon-performance] [fxperf:p3] → [ohnoreflow][qf:f61][qf:p1][fxperf:p3]
Whiteboard: [ohnoreflow][qf:f61][qf:p1][fxperf:p3] → [ohnoreflow][qf:f64][qf:p1][fxperf:p3]
Whiteboard: [ohnoreflow][qf:f64][qf:p1][fxperf:p3] → [ohnoreflow][qf:p1:f64][fxperf:p3]
Re-queuing for triage by fxperf to reconcile with qf evaluation.
Whiteboard: [ohnoreflow][qf:p1:f64][fxperf:p3] → [ohnoreflow][qf:p1:f64][fxperf]
For the reason mentioned in comment 2, I believe the most recent evaluation of this bug as fxperf:p3 stands.
Whiteboard: [ohnoreflow][qf:p1:f64][fxperf] → [ohnoreflow][qf:p3][fxperf:p3]
Whiteboard: [ohnoreflow][qf:p3][fxperf:p3] → [ohnoreflow][qf:p3:f64][fxperf:p3]
Whiteboard: [ohnoreflow][qf:p3:f64][fxperf:p3] → [ohnoreflow][qf:p3][fxperf:p3]

search.xml is now gone, just before it was removed, it didn't have a _rebuild method. Additionally, the address bar has been completely rewritten now, so if this is still an issue it'd need fresh stacks etc - they would probably be better dealt with in bug 1353725.

Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE

I think this was fixed in bug 1578375.

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.