[webkit-changes] [WebKit/WebKit] e4fa5c: Make it possible to get the scrolling tree with UI...

Simon Fraser noreply at github.com
Thu Jan 26 15:26:09 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e4fa5c5f61bb9b6d345275cf05d8246fb5ac9952
      https://github.com/WebKit/WebKit/commit/e4fa5c5f61bb9b6d345275cf05d8246fb5ac9952
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-01-26 (Thu, 26 Jan 2023)

  Changed paths:
    A LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt
    M LayoutTests/resources/ui-helper.js
    M LayoutTests/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt
    M LayoutTests/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe.html
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
    M Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h
    M Source/WebCore/page/scrolling/ScrollingCoordinator.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
    M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
    M Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h
    M Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm
    M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h
    M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm
    M Tools/WebKitTestRunner/mac/UIScriptControllerMac.h

  Log Message:
  -----------
  Make it possible to get the scrolling tree with UI-side compositing on macOS
https://bugs.webkit.org/show_bug.cgi?id=251193
rdar://104681297

Reviewed by Tim Horton.

`window.internals.scrollingTreeAsText()` only works when we have a scrolling tree in the web process,
i.e. only with non-UI-side compositing. In order to make tests work with both UI-side and non-UI-side
compositing, add `internals.haveScrollingTree()` and use it in `UIHelper.getScrollingTree()` to know
when we should use UIScriptController to fetch the scrolling tree from the UI process.

Make the existing WKWebView testing code for getting the scrolling tree work on both
macOS and iOS.

Fix up one test (fixed-background-in-overflow-in-iframe.html) to use the new thing; other
tests will be fixed soon.

* LayoutTests/platform/mac-gpup/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt: Copied from LayoutTests/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt.
* LayoutTests/resources/ui-helper.js:
(window.UIHelper.getScrollingTree):
* LayoutTests/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe-expected.txt:
* LayoutTests/scrollingcoordinator/mac/fixed-backgrounds/fixed-background-in-overflow-in-iframe.html:
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::haveScrollingTree const):
* Source/WebCore/page/scrolling/AsyncScrollingCoordinator.h:
* Source/WebCore/page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::haveScrollingTree const):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::haveScrollingTree const):
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _scrollingTreeAsText]):
* Source/WebKit/UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
* Source/WebKit/UIProcess/API/ios/WKWebViewTestingIOS.mm:
(-[WKWebView _scrollingTreeAsText]): Deleted.
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
(WTR::UIScriptControllerCocoa::scrollingTreeAsText const):
* Tools/WebKitTestRunner/mac/UIScriptControllerMac.h:

Canonical link: https://commits.webkit.org/259457@main




More information about the webkit-changes mailing list