Closed Bug 1842381 Opened 1 year ago Closed 1 year ago

massive performance regression for URL completion in Firefox Nightly

Categories

(Firefox :: Address Bar, defect, P1)

Firefox 117
defect

Tracking

()

RESOLVED FIXED
117 Branch
Tracking Status
firefox-esr102 --- unaffected
firefox-esr115 --- unaffected
firefox115 --- unaffected
firefox116 --- unaffected
firefox117 --- fixed

People

(Reporter: soeren.hentzschel, Assigned: mak)

References

(Regression)

Details

(Keywords: regression, Whiteboard: [sng])

Attachments

(1 file)

There is a massive performance regression for the URL completion in the address bar in the latest Nightly. After entering a character into the address bar there is now a noticeable delay before the completion happens. As a result I open the wrong websites.

Example:

I enter "ca", a completion to "camp-firefox.de/" happens on my computer. I press the "arrow right" key to get to the end of the URL, then I enter "fo" to get the completion for "camp-firefox.de/forum/". This always worked. Now the completion to "camp-firefox.de/" did not yet happen when I press the "arrow right" cursor and as a result the address bar shows "cafo" instead of "camp-firefox.de/forum" after "ca", "arrow right", "fo".

Unfortunately mozregression can't bisect further than https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e4d87ff75575880ea0c0fa09b316e360e4d9492f&tochange=511a6a347d490d95f83e47414d604a17e143c218. So I am not sure about the regressor but the patch description from bug 1816572 looks suspicious within this regression range.

Flags: needinfo?(mak)

This may indicate one of the heuristic providers is slow, and now we wait a bit more for the heuristic results before returning, to avoid serving the wrong result if the user confirms immediately.
With the previous system we could have not autofilled because we were pushing the results at 16ms without any guarantee autofill result was returned.

Do you have add-ons that may be providing address bar results?

Flags: needinfo?(mak) → needinfo?(soeren.hentzschel)
Assignee: nobody → mak
Severity: -- → S3
Status: NEW → ASSIGNED
Priority: -- → P1
Whiteboard: [sng]

Ok, I think I found a bug in the way we unregister pending heuristic providers that causes us to always wait for the whole 200ms timer when the provider doesn't return any result.
In addition, we should probably not wait for the omnibox provider because we have no control over its performance characteristics.

In practice, Bug 1816572 uncovered an existing bug: we await for heuristic providers to be done before returning results, but due to a bug we don't remove from the list providers that don't return results. This never worked in practice.
That's both good (found a bug) and bad (caused a regression).

Regressed by: 1816572
Flags: needinfo?(soeren.hentzschel)
Pushed by mak77@bonardo.net: https://hg.mozilla.org/integration/autoland/rev/6f3d3f416c95 The address bar chunk timer is not firing early when all heuristic providers are done. r=jteow
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 117 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: