Open Bug 1704080 Opened 1 year ago Updated 10 months ago

[Proton] Elastic overscroll does not work if there are no vertical or horizontal scrollbars present on the site

Categories

(Core :: Panning and Zooming, defect, P3)

Desktop
macOS
defect
Points:
1

Tracking

()

REOPENED
Tracking Status
firefox87 --- disabled
firefox88 --- disabled
firefox89 --- wontfix
firefox90 --- wontfix

People

(Reporter: tbabos, Assigned: hiro)

References

(Blocks 3 open bugs)

Details

(Whiteboard: [mac:ux] [proton-platform])

Attachments

(3 files)

Affected Versions:
Nightly 89.0a1
apz.overscroll.enabled true

Tested On:
MacOS 10.15

Steps to Reproduce:

  1. Go to a page that does not have vertical scroll, ex: Google.com - and swipe up-down
  2. Go to a page that does not have horizontal scroll, ex: facebook feed, 9gag, reddit - and swipe left-right

Expected Results:
Swiping in either direction on each of the sites should toggle the overscroll effect.

Actual Result:
The rubberbanding effect is not toggled if there are no scrollbars (horizontal or vertical) on the site.

Please see attached recording for reference: https://drive.google.com/file/d/1FOuDMQmwNP682j_K_ElaG0VoniTye7dm/view?usp=sharing
Works on Safari and Chrome.

The expectation here seems to be in conflict with bug 1686151, which suggests that overscroll should only be enabled if the page is scrollable along at least one axis.

See Also: → 1686151

I can't confirm what is described in bug 1686151. On Mac, our main reference is Safari, and Safari allows overscrolling for non-scrollable pages.

The other bug references Edge and Chromium Edge, so maybe it's Windows specific behavior? (Though I also can't confirm on my windows device)

Regardless, I consider this bug as valid and think that we should go ahead, at least for MacOS.

Duplicate of this bug: 1686151

Not a release blocker but we will try to fix this before release. There may be some interactions with swipe navigation for the horizontal direction.

Whiteboard: [mac:ux] → [mac:ux] [proton-platform]
Priority: -- → P3
Blocks: overscroll-90
No longer blocks: overscroll-post
See Also: → 1709723

I don't see the Chromium Edge behavior on my Windows laptop either. It looks Chromium Edge allows overscrolling on both directions even if the page in question is not scrollable either directions. Presumably we can just allow overscrolling on the root scroller even if it's not scrollable on all platforms.

Note about the interactions with swipe navigation on Mac, overscrolling only happens in the directions where history navigation can not happen, i.e. if there is no forward history, then overscrolling happens on swiping right to left, in other words, overscrolling doesn't happen on swipe left to right if there's backward history. This principal seems to be also effective even if swipe navigation is disabled by the system setting.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED

And overscroll the root content scroller even if it's not scrollable.

The conditions when we handoff are;

  1. Handoff to the root unconditionally if the subframe is not scrollable
    with the given pan delta
  2. Handoff to the root if both the subframe and the root are scrollable
    with the given pan delta

Depends on D115425

Pushed by hikezoe.birchill@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/9a9ea6e86e2c
Factor out ScrollDirectionsForDelta(const ParentLayerPoint&). r=botond
https://hg.mozilla.org/integration/autoland/rev/71069fb39ec1
Add AsyncPanZoomController::GetScrollableDirections. r=botond
https://hg.mozilla.org/integration/autoland/rev/24335aad5608
Handoff pan gestures to the root content scroller depending on whether child/root frame is scrollable or not. r=botond

Verified fixed in the latest Nightly 90.0a1 (2021-05-23) on MacOS 11.2.3, MacOS 11.0.1 and MacOS 10.14.

Status: RESOLVED → VERIFIED
Regressions: 1712874
Regressed by: 1713291
No longer regressed by: 1713291
Regressions: 1713291
Regressions: 1713305
Depends on: 1713403

Reopening as this was backed out in bug 1712874. We will consider re-landing it after implementing dominant axis scrolling in bug 1713403, although we may want to revisit whether this behaviour is valuable at all (I've heard mixed feedback).

Status: VERIFIED → REOPENED
Resolution: FIXED → ---
Target Milestone: 90 Branch → ---

(Given the timing, a re-landing is unlikely to happen for 90.)

Blocks: overscroll-post
No longer blocks: overscroll-90
Points: --- → 1
You need to log in before you can comment on or make changes to this bug.