Bug 193753

Summary: Add "frame hosting" nodes to the scrolling tree
Product: WebKit Reporter: Simon Fraser (smfr) <simon.fraser>
Component: Layout and RenderingAssignee: Simon Fraser (smfr) <simon.fraser>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, ews-watchlist, fred.wang, koivisto, simon.fraser, webkit-bug-importer, zalan
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch koivisto: review+

Description Simon Fraser (smfr) 2019-01-23 18:35:53 PST
Add "frame hosting" nodes to the scrolling tree
Comment 1 Simon Fraser (smfr) 2019-01-23 18:39:44 PST
Created attachment 359982 [details]
Patch
Comment 2 EWS Watchlist 2019-01-23 18:42:05 PST
Attachment 359982 [details] did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:8:  You should remove the 'No new tests' and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Simon Fraser (smfr) 2019-01-23 18:45:40 PST
We may need to give these FrameHosting nodes some geometry (representing the offsets of the RenderIFrame from their scrolling node ancestor), so that the ScrollingTreeFrameScrollingNode's geometry doesn't need to account for offsets which belong to a different document.
Comment 4 Antti Koivisto 2019-01-24 04:15:01 PST
Comment on attachment 359982 [details]
Patch

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

> Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp:94
>      case ScrollingNodeType::Subframe:
>          return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeType, nodeID);
> +    case ScrollingNodeType::FrameHosting:
> +        return ScrollingTreeFrameHostingNode::create(*this, nodeID);

Is this code (web process side scrolling tree on iOS) actually ever used?
Comment 5 Simon Fraser (smfr) 2019-01-24 07:56:07 PST
(In reply to Antti Koivisto from comment #4)
> Comment on attachment 359982 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=359982&action=review
> 
> > Source/WebCore/page/scrolling/ios/ScrollingTreeIOS.cpp:94
> >      case ScrollingNodeType::Subframe:
> >          return ScrollingTreeFrameScrollingNodeIOS::create(*this, nodeType, nodeID);
> > +    case ScrollingNodeType::FrameHosting:
> > +        return ScrollingTreeFrameHostingNode::create(*this, nodeID);
> 
> Is this code (web process side scrolling tree on iOS) actually ever used?

No. I was hoping to use is for iOS WK1 (UIWebView) but that never happened.
Comment 6 Simon Fraser (smfr) 2019-01-24 08:11:25 PST
https://trac.webkit.org/changeset/240435/webkit
Comment 7 Radar WebKit Bug Importer 2019-01-24 08:12:27 PST
<rdar://problem/47516161>
Comment 8 Antti Koivisto 2019-01-24 08:31:12 PST
> No. I was hoping to use is for iOS WK1 (UIWebView) but that never happened.

Let's remove it then to reduce general confusion.
Comment 9 Simon Fraser (smfr) 2019-01-24 13:50:03 PST
(In reply to Antti Koivisto from comment #8)
> > No. I was hoping to use is for iOS WK1 (UIWebView) but that never happened.
> 
> Let's remove it then to reduce general confusion.

I tried, and found that RemoteLayerTree/ios/ScrollingTreeFrameScrollingNodeRemoteIOS inherits from WebCore/ScrollingTreeFrameScrollingNodeIOS so fixing this is a bit more involved.