Major toolbar refactoring
lucasr at mozilla.com
Fri Jan 10 02:51:30 PST 2014
FYI: I've just landed a set of major refactorings in our toolbar code (see bugs 942862 and 944533). The main goals with these changes were:
- Move all toolbar-related components into a separate java package so that we can be more disciplined about the boundaries of the toolbar subsystem.
- Split BrowserToolbar into smaller self-contained components with clear responsibilities.
- Redefine the way we track state and trigger UI updates in the toolbar (favicon, site identity, progress, title, etc).
The different toolbar states (edit and display) are controlled by separate components now, namely ToolbarEditLayout and ToolbarDisplayLayout. All UI updates triggered by tab state changes are now handled by a single entry point in ToolbarDisplayLayout. This hopefully means it will be simpler for us to optimize our UI code from now on. I've just submitted a patch (bug 957992) that adds some high-level architecture javadocs to the new code.
We still need to factor out more of BrowserToolbar's code into separate components. Back/forward handling and tab counter comes to mind. I'll file follow-up bugs.
Please, file bugs for any potential regressions you find in Nightly.
More information about the mobile-firefox-dev