[webkit-changes] [WebKit/WebKit] ec945f: [ iOS x86_64 ] fast/scrolling/keyboard-scrolling-d...

Richard Robinson noreply at github.com
Thu Mar 16 12:25:34 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ec945fa4fae17e95471f50789b79fc0d89704fa7
      https://github.com/WebKit/WebKit/commit/ec945fa4fae17e95471f50789b79fc0d89704fa7
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M LayoutTests/platform/wk2/TestExpectations
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.h
    M Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.mm

  Log Message:
  -----------
  [ iOS x86_64 ] fast/scrolling/keyboard-scrolling-distance-pageDown.html is a near-constant crash
https://bugs.webkit.org/show_bug.cgi?id=253323
rdar://106199360

Reviewed by Simon Fraser.

This test was occasionally crashing as a consequence of the test that runs prior to it,
`keyboard-scrolling-distance-pageDown`. This prior test is implemented in such a way that it ends
as soon as a certain number of scroll events occur, and does not wait until the scroll itself
actually finishes.

As a result, by the time `keyboard-scrolling-distance-pageDown` is run, the scroll from the previous
test may still be running. Then, `-[WKWebView _didFinishScrolling:]` gets called at some point
during the second test, once the scroll from the first test finishes. The scrolling coordinator proxy
from the first test has been destroyed at this point, which causes the crash to happen when the proxy
tries to be dereferenced.

This is essentially the equivalent of going to a new page midway through a scroll and not halting the
scroll. This PR fixes this by always immediately stopping any keyboard scroll that may be in progress
whenever any new page is loaded.

* LayoutTests/platform/wk2/TestExpectations:
* Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _didCommitLoadForMainFrame]):
* Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.h:
* Source/WebKit/UIProcess/ios/WKKeyboardScrollingAnimator.mm:
(-[WKKeyboardScrollingAnimator stopScrollingImmediately]):
(-[WKKeyboardScrollViewAnimator stopScrollingImmediately]):

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




More information about the webkit-changes mailing list