Bug 199222 - [iOS Scrolling] Propagate scrolls to non-nested UIScrollViews
Summary: [iOS Scrolling] Propagate scrolls to non-nested UIScrollViews
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Scrolling (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2019-06-26 04:25 PDT by Antti Koivisto
Modified: 2019-06-28 10:25 PDT (History)
3 users (show)

See Also:


Attachments
WIP (3.96 KB, patch)
2019-06-26 04:27 PDT, Antti Koivisto
no flags Details | Formatted Diff | Diff
test case (641 bytes, text/html)
2019-06-26 04:28 PDT, Antti Koivisto
no flags Details
test with more nested scrollers (995 bytes, text/html)
2019-06-27 06:43 PDT, Antti Koivisto
no flags Details
patch (6.32 KB, patch)
2019-06-28 04:31 PDT, Antti Koivisto
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Antti Koivisto 2019-06-26 04:25:39 PDT
With help of some UIKit SPIs.
Comment 1 Antti Koivisto 2019-06-26 04:27:50 PDT
Created attachment 372913 [details]
WIP
Comment 2 Antti Koivisto 2019-06-26 04:28:15 PDT
Created attachment 372914 [details]
test case
Comment 3 Antti Koivisto 2019-06-27 06:43:18 PDT
Created attachment 373030 [details]
test with more nested scrollers
Comment 4 Antti Koivisto 2019-06-28 04:31:45 PDT
Created attachment 373104 [details]
patch
Comment 5 Simon Fraser (smfr) 2019-06-28 09:15:08 PDT
Comment on attachment 373104 [details]
patch

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

> Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:141
> +                    if (auto* nonAncestorScrollingNode = host.nodeForID(node->relatedScrollContainerIDs()[0]))

I'm having a hard time convincing myself that using relatedScrollContainerIDs()[0] is correct. What does it mean to have more than one? What is the order?
Comment 6 Antti Koivisto 2019-06-28 09:41:49 PDT
> I'm having a hard time convincing myself that using
> relatedScrollContainerIDs()[0] is correct. What does it mean to have more
> than one? What is the order?

Would knowing that you wrote the code that sets it be help? :)

It is simply the layer tree counterpart of ScrollingTreeOverflowScrollProxyNode::m_overflowScrollingNodeID. Having Moves  and Stationary cases in a single vector matches the old design where PositionedNode handled both cases. It should really be refactored into two separate variables, matching PositionedNode split.
Comment 7 WebKit Commit Bot 2019-06-28 10:12:33 PDT
Comment on attachment 373104 [details]
patch

Clearing flags on attachment: 373104

Committed r246926: <https://trac.webkit.org/changeset/246926>
Comment 8 WebKit Commit Bot 2019-06-28 10:12:34 PDT
All reviewed patches have been landed.  Closing bug.
Comment 9 Radar WebKit Bug Importer 2019-06-28 10:17:49 PDT
<rdar://problem/52338107>
Comment 10 Antti Koivisto 2019-06-28 10:25:31 PDT
<rdar://problem/49720738>