Open Bug 1951421 Opened 1 year ago Updated 3 months ago

Implementation of Overlap Model for the Dynamic Toolbar

Categories

(Core :: Panning and Zooming, task, P2)

task

Tracking

()

People

(Reporter: ajakobi, Unassigned)

References

(Blocks 1 open bug)

Details

This is the actual implementation bug for the overlap model as described in meta bug 1921331.

Quoting from Markus here:

  • The dynamic toolbar-on-top should overlap the GeckoView.
  • The GeckoView itself should never move.

For this to work, we need to implement a few things in APZ-land:

  • When the GeckoView is at 0,0, and the top toolbar is visible, it must still be possible to scroll a website all the way to the top - the top end of the website must be just below the top toolbar. This means that APZ needs to allow "scrolling" / moving the web page far enough down so that there will be a "gap" at the top of the GeckoView. (But this gap is then covered by the toolbar.)
  • APZ needs to decouple the "position of the website in the GeckoView" from the "scroll position".
  • APZ needs to make sure that the "scroll position" which is exposed via the DOM remains "the amount of the page that is hidden beyond the bottom edge of the top toolbar". (This definition assumes there is no pinch zooming; things get a bit more complicated when zoomed in.)
  • If Fenix decides to reveal the top toolbar at any point, APZ needs to correctly handle that doing so will change the "scroll position" that's exposed to the website, without changing the position at which the website is rendered in the GeckoView.
  • Special care needs to be taken when Fenix wants to reveal the toolbar during a navigation: If the toolbar is currently hidden, and you tap a link to navigate to a new page, the top of the new website should not end up covered by the top toolbar.
Assignee: ajakobi → nobody
You need to log in before you can comment on or make changes to this bug.