Don't reuse rows from different providers
Categories
(Firefox :: Address Bar, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox117 | --- | fixed |
People
(Reporter: mak, Assigned: mak)
References
(Blocks 1 open bug)
Details
(Whiteboard: [sng])
Attachments
(1 file)
The current UrlbarView update system tries to reuse rows to reduce flicket, but pretty much only distinguishes search VS non-search (with a few exceptions)
See https://searchfox.org/mozilla-central/rev/a3852ea8db25c759bc8b108aeec870d66c95452c/browser/components/urlbar/UrlbarView.sys.mjs#1108-1139
This still causes flicker in some cases, because each provider has its own time characteristic.
For example, the remote tabs provider is really fast, it fetches from a cache most of the times. On the other side, the Places provider is on average slow, because it has to fetch from disk most of the times.
The remote tabs provider is thus immediately serving results, that will be pushed out on the chunking timer (16ms) then the Places provider will serve its results in the next timer. We only retain a limited amount of remote tabs, so the places provider will override most remote tabs.
What happens in practice is that remote tabs appear for a brief amount of time, then places results cover them.
When typing some text like "mozilla" that matches a lot of remote tabs from my Mac, this happens at every letter I type, and that causes a really annoying flickering.
We could change #rowCanUpdateToResult so that it will disallow updating a result if the new result comes from a different provider.
| Assignee | ||
Updated•2 years ago
|
| Assignee | ||
Updated•2 years ago
|
Updated•2 years ago
|
| Assignee | ||
Comment 1•2 years ago
|
||
Different providers have different time characteristics, reusing results across
providers may thus cause flicker of results coming from the fastest ones.
Comment 3•2 years ago
|
||
| bugherder | ||
Description
•