Closed Bug 1815713 Opened 2 years ago Closed 1 year ago

Pull to refresh doesn't work in bing.com/covid

Categories

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

Firefox 109
All
Android
defect

Tracking

()

RESOLVED FIXED
116 Branch
Tracking Status
firefox116 --- fixed

People

(Reporter: petru, Assigned: dlrobertson)

References

()

Details

Attachments

(2 files)

Attached video PullToRefreshInBing.mp4

Issue initially reported in https://github.com/mozilla-mobile/fenix/issues/9720.

Swiping down on the page header I see the following data from GeckoView's InputResultDetail here[1]:

  • inputResult == INPUT_HANDLING_UNKNOWN (-1)
  • scrolLDirections == SCROLL_DIRECTIONS_NONE (0)
  • overscrollDirections == OVERSCROLL_DIRECTIONS_VERTICAL (2)

Swiping down on the scrollbable content while at it's top I see the following data from GeckoView's InputResultDetail here[1]:
InputResultDetail here[1]:

  • inputResult == INPUT_HANDLED_CONTENT (2)
  • scrolLDirections == SCROLL_DIRECTIONS_BOTTOM (4)
  • overscrollDirections == OVERSCROLL_DIRECTIONS_HORIZONTAL | OVERSCROLL_DIRECTIONS_VERTICAL (3)

In this last case the values seem unexpected and they explain why also the toolbar does not respond to the scroll gestures.
Note that on Chrome scrolls in the "Latest updates" section of the website will also scroll the header and then the toolbar / pull to refresh.

cc Botond for recommendations since we're in an active process of polishing the feature.

 
[1] https://searchfox.org/mozilla-mobile/rev/4c640a0da38ce181ea89e71d20b90a7f881d65b9/firefox-android/android-components/components/concept/engine/src/main/java/mozilla/components/concept/engine/InputResultDetail.kt#258-261

Flags: needinfo?(botond)
Blocks: 1807071

The issue here is on the APZ side: we don't have logic for allowing pull-to-refresh (returning inputResult == INPUT_UNHANDLED) in the case where the user is panning upward on a scrollable subframe and that subframe is scrolled to the top (such that the scroll is handed off to the root), and the root is also scrolled to the top.

This case be seen on a reduced testcase at https://theres-waldo.github.io/mozilla-testcases/div.html: panning upwards over the green area after loading the page activates pull-to-refresh in Chromium, but not in Firefox.

Severity: -- → S3
Component: General → Panning and Zooming
Flags: needinfo?(botond)
Priority: -- → P2
Product: Fenix → Core
Assignee: nobody → drobertson

When a subframe and all of its scroll handoff parents have no room to scroll
up, return UNHANDLED. This allows pull to refresh to work on mobile when
the upwards scroll occurs over a subframe

Blocks: 1811570
Duplicate of this bug: 1766366
Attachment #9330439 - Attachment description: Bug 1815713 - Allow returning input unhandled for subframes. r=botond → Bug 1815713 - Allow pull to refresh from subframes. r=botond
Pushed by drobertson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9c9d29101b3d Allow pull to refresh from subframes. r=botond,geckoview-reviewers,owlish
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 116 Branch
Duplicate of this bug: 1811570
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: