Bug 199152

Summary: [iOS] Scrolling on an enlarged Facebook video gets locked on the main frame
Product: WebKit Reporter: Antti Koivisto <koivisto>
Component: ScrollingAssignee: Nobody <webkit-unassigned>
Status: NEW ---    
Severity: Normal CC: cmarcelo, ews-watchlist, fred.wang, jamesr, luiz, simon.fraser, thorton, tonikitoo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
none
patch
none
patch
ews-watchlist: commit-queue-
Archive of layout-test-results from ews124 for ios-simulator-wk2 none

Description Antti Koivisto 2019-06-24 06:47:34 PDT
1. Navigate to https://www.facebook.com/
2. Tap the enlarge button on a video
3. Attempt to scroll
Comment 1 Antti Koivisto 2019-06-24 06:47:50 PDT
<rdar://problem/51376074>
Comment 2 Antti Koivisto 2019-06-24 07:08:08 PDT
Created attachment 372755 [details]
patch
Comment 3 Antti Koivisto 2019-06-24 07:19:30 PDT
Created attachment 372757 [details]
patch
Comment 4 Antti Koivisto 2019-06-24 07:24:59 PDT
Created attachment 372758 [details]
patch
Comment 5 Simon Fraser (smfr) 2019-06-24 08:30:22 PDT
Comment on attachment 372758 [details]
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=372758&action=review

> Source/WebKit/ChangeLog:11
> +        Scrollable content on the page consists is in overflow scrollers, the main frame is not scrollable. However we still enable
> +        vertical rubberbanding in the main frame.
> +

Is the main frame not overflow:hidden in this case (which should disable scrolling)?

> Source/WebKit/ChangeLog:14
> +        other scrollers don't receive swipes, further attempts just keep the main view in in rubberbanding state. This
> +        makes scrolling feel glitchy (rubberbanding is only observable in the scrollbar since no content moves).

This is really a UIKit bug (44777596).

> Source/WebKit/ChangeLog:17
> +        This patch disables rubberbanding in non-scrollable main frame if it contains a scrollable element that covers at least
> +        50% of the view.

That seems pretty likely to break legitimate cases. Also, you don't seem to be only disabling bouncing when the main frame is not scrollable.
Comment 6 EWS Watchlist 2019-06-24 09:26:44 PDT
Comment on attachment 372758 [details]
patch

Attachment 372758 [details] did not pass ios-sim-ews (ios-simulator-wk2):
Output: https://webkit-queues.webkit.org/results/12562733

New failing tests:
fast/scrolling/ios/reconcile-layer-position-recursive.html
Comment 7 EWS Watchlist 2019-06-24 09:26:47 PDT
Created attachment 372767 [details]
Archive of layout-test-results from ews124 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews124  Port: ios-simulator-wk2  Platform: Mac OS X 10.14.5
Comment 8 Antti Koivisto 2019-06-24 11:05:15 PDT
> Is the main frame not overflow:hidden in this case (which should disable
> scrolling)?

No.

> This is really a UIKit bug (44777596).

Could well be. This [atch would fix the issue from our side in many cases though.
 
> That seems pretty likely to break legitimate cases. 

What sort of cases? It is pretty limited. 

> Also, you don't seem to be only disabling bouncing when the main frame is not scrollable.

'alwaysBounceVertical = NO' is the default behaviour where the scrollview only rubber bands if it has scrollable content.