Update menu UI
Categories
(Focus :: General, task)
Tracking
(firefox159 fixed, firefox160 verified)
People
(Reporter: petru, Assigned: petru)
References
Details
(Whiteboard: [fxdroid][android-core])
Attachments
(2 files, 8 external files, 1 obsolete file)
We can use the new menu support from bug 2066831 to update to a modern UI on Focus also.
| Assignee | ||
Comment 1•1 month ago
|
||
Replaces the View based browser-menu with the compose-menu module, kept as a
popup anchored to the menu button rather than the bottom sheet other
applications use it for. "Desktop site" becomes a row with an On/Off badge and
the previous dividers become group boundaries.
The button is a ComposeView browser action of its own because DisplayToolbar
only shows its own button for a menuBuilder or a menuController. Its store is
built when the menu opens, so the browser state is observed for only as long as
the menu is shown.
| Assignee | ||
Comment 2•1 month ago
|
||
Unlike the browser toolbar, which builds its actions in code, the home screen
declares its menu button in fragment_urlinput.xml, so the browser-menu
MenuButton view is replaced there with a ComposeView.
| Assignee | ||
Comment 3•1 month ago
|
||
CustomTabsToolbarFeature no longer gets a menuBuilder: both menus provide their
groups through MenuItems, leaving BrowserToolbarIntegration to pick which one to
build a store for.
| Assignee | ||
Comment 4•1 month ago
|
||
BrowserMenuController existed to be shared by the XML menu and the Compose one.
With only the latter left, handling the menu items can live in the middleware and
BrowserFragment no longer needs to build the controller, passing in to the
middleware the same callbacks that need the fragment.
| Assignee | ||
Comment 5•1 month ago
|
||
The sticky group holding the navigation icons was laid out with the same
horizontal and top padding as the scrolling groups, so its own background stopped
short of the menu edges and the group could still be scrolled up by the height of
that padding. The padding now applies only to the groups that scroll.
| Assignee | ||
Comment 6•1 month ago
|
||
The footer was overlaid on the content, so its measured height had to be fed back
as bottom padding for the list. Laying the two out in a Column with the list
taking the remaining height removes that round trip, along with the remembered
derivations of the header, footer and scrolling groups.
Also adds the tests Menu() did not have.
| Assignee | ||
Comment 7•1 month ago
|
||
Added support for menu integrators configuring the menu to show attribution text
at the top or bottom of the menu, like "Powered by ..", text which is more
helpful for custom tabs menus.
| Assignee | ||
Updated•1 month ago
|
Updated•1 month ago
|
Comment 8•1 month ago
|
||
I am very impressed by this concept! The padding is excessive however, it could be reduced by several px.
I'm assuming that this linear menu design will be accessible in mainline Fenix, not just Focus?
Comment 9•1 month ago
|
||
I'm assuming that this linear menu design will be accessible in mainline Fenix, not just Focus?
This comment confuses me. Fenix has had this menu style for a long time. This is about adding that same menu style to Focus (where it would naturally have far fewer items, since Focus has fewer features).
Comment 10•1 month ago
|
||
Fenix has had this menu style for a long time
Fenix did have this style for a long time, but with BUG 1863790 and it's implementation around 7/2025, the Fenix context menu was redesigned from a linear list to a bottom-sheet drawer. This regressed one-handed usability and muscle memory, particularly for top-toolbar users. This is the most common feedback point on Connect regarding the new Android UX, across several discussions and idea threads.
The proposed menu in this ticket is a linear list. For context menus, this form factor is objectively suited over a bottom drawer: A user's eyes only have to scan along one directional axis to evaluate all options, while the two-dimensional menu drawer requires up-down-left-right movement of both eyes and hands.
Unless I've missed a ticket where this exact concept is implemented in Fenix, then yes: I'm proposing that this menu style be included in Fenix as well.
Comment 11•1 month ago
•
|
||
I don’t know what you mean by “linear list,” but again: this is the design from Fenix, except that this version apparently doesn’t span the full width and is anchored to the menu button. It just has less items because Focus has less features. Your comment about “one-handed usability” doesn’t make sense to me either: for that to be optimized, everything relevant would need to be at the bottom, unless you hold your phone in a very unconventional way.
In any case, this whole discussion is off-topic. This is an implementation ticket for Focus. Broader design discussions belong on Mozilla Connect.
Comment 12•1 month ago
|
||
Please do not mark this post as advocacy or off-topic, I am communicating specific design feedback directly to the developer.
This is already the most discussed topic on Mozilla Connect regarding the new Fenix UX (this this aggregated post groups the miscellaneous threads). However, the menu's form factor may have been forgotten while internally planning this customization work, which is why I'm being very specific on the ticket where a desirable design is being showcased.
this version apparently doesn’t span the full width and is anchored to the menu button
This is the point, yes. The menu elements (excluding navigation) formerly spanned one single column (constituting a list), and were anchored to the toolbar, whereas now they are spread out along additional rows and columns, anchored to the bottom as a tray.
@petru, implementing the menu style showcased on this ticket in mainline Fenix would resolve a majority of those user complaints. I can open a specific bug for that and attempt to port this code to Fenix as a proof-of-concept, if that would help illustrate the need for this particular UX over the status quo.
| Assignee | ||
Comment 13•1 month ago
|
||
Remove obsolete menu styles, width overrides, and fact-based telemetry.
Replace legacy menu resource references with Focus-owned resources and
remove Focus's direct browser-menu dependency.
Expose browser-menu through feature-customtabs because its public API
still references BrowserMenuBuilder.
Share WebCompat reporter icon loading between both Compose menus and
add coverage for delayed reporter startup in custom tabs.
Updated•1 month ago
|
Updated•1 month ago
|
Updated•1 month ago
|
| Assignee | ||
Comment 14•1 month ago
|
||
Added support for menu integrators configuring the menu to show attribution text
at the top or bottom of the menu, like "Powered by ..", text which is more
helpful for custom tabs menus.
Updated•1 month ago
|
Updated•1 month ago
|
Comment 15•1 month ago
|
||
Please do not mark this post as advocacy or off-topic, I am communicating specific design feedback directly to the developer.
Nobody has done that (so far). But again: this is off-topic. Bugzilla is not the place for general discussions like this. And more importantly, this is about Focus, not Firefox. Even if Bugzilla were the right place for such a discussion, this would be completely the wrong ticket for it.
Please stay on topic. Other people (including me, which is why I'm bringing this up) receive an email for every comment. If I want to stay up to date on the implementation of a Focus feature, having to receive emails about general discussions concerning an entirely different product is annoying.
Comment 16•1 month ago
|
||
Comment 17•1 month ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/8b0e19ff55bf
https://hg.mozilla.org/mozilla-central/rev/b045e01a13ca
https://hg.mozilla.org/mozilla-central/rev/4d2a2170df76
https://hg.mozilla.org/mozilla-central/rev/350496f3332c
https://hg.mozilla.org/mozilla-central/rev/bb98004af8be
https://hg.mozilla.org/mozilla-central/rev/5a7b34bb963a
https://hg.mozilla.org/mozilla-central/rev/2635052ab935
https://hg.mozilla.org/mozilla-central/rev/fd5a5f48c26a
| Assignee | ||
Comment 18•1 month ago
|
||
@QA Please help validate that the same menu options are shown, in the same order and they function exactly as before.
Comment 19•1 month ago
|
||
Verified on the Focus for Android Nightly 160.0a1 from 10/13 using an Oppo Find N2 Flip (Android 15), and a Huawei Pura 70 (Android 12),
All the options function as expected, verified on both light and dark theme.
Filed Bug 2081270 for a Huawei specific issue.
Updated•1 month ago
|
Updated•1 month ago
|
| Assignee | ||
Updated•1 month ago
|
Description
•