Closed Bug 1551598 Opened 7 months ago Closed 5 months ago

Stop using a popup window for urlbar results


(Firefox :: Address Bar, task, P2)




Firefox 70
70.2 - Jul 22 - Aug 4
Tracking Status
firefox70 --- fixed


(Reporter: mstange, Assigned: dao)


(Blocks 3 open bugs, Regressed 2 open bugs)



(1 file)

The urlbar dropdown is a popup window at the moment. However, this causes some problems, and to the best of my knowledge, it does not need to be a popup window any more - it could just be a regular XUL/HTML element that is overlaid on top of the other browser elements, for example using a XUL stack or CSS positioning.

As far as I know, the main advantage of a XUL popup / panel is the fact that it can extend beyond the window that opened it. But the current design does not really require this ability: The panel is usually contained entirely within the browser window. The only exception I've found to this is the case where the browser window is very narrow vertically, and the panel extends a bit downwards below the browser window's bottom edge. I question whether this behavior makes a big difference in actual usage.

Using a regular XUL/HTML element instead would have the following advantages:

  1. More predictable positioning and sizing behavior: Popup windows come with all kinds extra behavior that makes sense for context menus or tooltips, but which is not needed for the autocomplete panel. Regular CSS-controlled sizing would be easier to reason about, I think.
  2. Performance: Popup windows are their own special thing when it comes to drawing. A popup gets its own OS window + layer manager + compositor, which has overhead, and depending on the platform this compositor might not be hardware accelerated. And animations of popup window sizes are not optimized. Basically, if you paint into the browser window itself, you get to take advantage of all the graphics optimization work that was done for websites. If you paint into a popup window, you're on your own, and a lot of that graphics work does not benefit you.

Chrome also does not use a separate OS window for its urlbar dropdown, it paints it into the browser window and constrains it to the browser window's bounds.

In the distant past, it was not possible to paint on top of web content without using a popup. But this was fixed many years ago.

Is this in-scope for quantumbar?

Flags: needinfo?(mak77)

Not in scope since we're in soft freeze and the QB release is considered done (modulo a couple minor issues), and anyway we should evaluate all the possible fallbacks from the change, especially related to a11y and edge cases.

This may actually help with bug 1542486 though.

Flags: needinfo?(mak77)
See Also: → 1542486
Blocks: quantumbar
Depends on: quantumbar-release
Priority: -- → P2
Points: --- → 5

I should have said "not in scope for the initial release", obviously if this change can be done without too much trouble, it would be good.

See Also: → 1462173
Type: enhancement → task
Blocks: megabar
Depends on: 1513337
Blocks: 1561534
No longer blocks: megabar
Blocks: 1561979
Blocks: 1563617
Blocks: 1350535
Blocks: 1542486
See Also: 1542486
Assignee: nobody → dao+bmo
Iteration: --- → 70.1 - Jul 8 - 21
No longer blocks: 1563617
Iteration: 70.1 - Jul 8 - 21 → 70.2 - Jul 22 - Aug 4
Blocks: 1462173
See Also: 1462173
Blocks: 1567377
Summary: Consider not using a popup window for the quantum bar → Stop using a popup window for the quantum bar
Summary: Stop using a popup window for the quantum bar → Stop using a popup window for urlbar results
Blocks: 1359989
Blocks: 1492259, 1566407
No longer blocks: 1566407
Blocks: 1548734
Blocks: 1262512
Blocks: 1111145
Depends on: 1568604
Blocks: 1568947
Blocks: 1568956
Blocks: 1568959
Pushed by
Stop using a popup window for urlbar results. r=mak
Regressions: 1569027
Regressions: 1569051
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 70
See Also: → 1569180
Regressions: 1569180
See Also: 1569180
Regressions: 1569392
Regressions: 1569408
Regressions: 1569478
No longer regressions: 1569408
Regressions: 1569948
See Also: → 1574746
No longer regressed by: 1578715
Regressions: 1578715
No longer regressions: 1580791
Regressions: 1584281
Regressions: 1584161
Regressions: 1587135
Regressions: 1591413
Regressions: 1597878
You need to log in before you can comment on or make changes to this bug.