[webkit-changes] [WebKit/WebKit] 88e54c: Merge 254386 at main - WebDriver: Automation session ...

Patrick Angle noreply at github.com
Tue Sep 13 07:41:41 PDT 2022


  Branch: refs/heads/webkitgtk/2.36
  Home:   https://github.com/WebKit/WebKit
  Commit: 88e54c1febd5e111794eab76c02246677629a4fb
      https://github.com/WebKit/WebKit/commit/88e54c1febd5e111794eab76c02246677629a4fb
  Author: Patrick Angle <pangle at apple.com>
  Date:   2022-09-13 (Tue, 13 Sep 2022)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Merge 254386 at main - WebDriver: Automation session terminates during navigation process swap
https://bugs.webkit.org/show_bug.cgi?id=245011
rdar://90824741

Reviewed by Devin Rousso and Brent Fulgham.

WebPageProxy::commitProvisionalPage is crashing during some WebDriver sessions due to having a `nullptr` for
`m_provisionalPage` after calling `WebPageProxy::resetStateAfterProcessTermination`. This was occuring because we were
indiscriminately terminating the WebDriver session at that point, but we should not do so when resetting state for a
navigation process swap, as the automation session is very much expected to continue to exist. The reason we end up
without a `m_provisionalPage` is because terminating the automation session cleans up (e.g. closes) the windows under
automation, which in turn is cleaning up the `m_provisionalPage`, since it will no longer exist once the window is gone.

This resolves numerous test crashes in WPT, including encoding/encodeInto.any.serviceworker.html, as well as fixing
issues navigating to `youtube.com` and `twitter.com`.

* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessTermination):

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

(cherry picked from commit d65e9089f3a1e059ca3373052d58221df04b0209)




More information about the webkit-changes mailing list