[webkit-changes] [WebKit/WebKit] b2ed5a: REGRESSION (269598 at main?): [ macOS Debug ] ASSERTI...

Sihui noreply at github.com
Fri Dec 1 09:25:59 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b2ed5aecee27ad7088dc72a0b871f56f61ac456c
      https://github.com/WebKit/WebKit/commit/b2ed5aecee27ad7088dc72a0b871f56f61ac456c
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-12-01 (Fri, 01 Dec 2023)

  Changed paths:
    M Source/WebKit/Shared/Cocoa/XPCEndpointClient.mm
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h

  Log Message:
  -----------
  REGRESSION (269598 at main?): [ macOS Debug ] ASSERTION FAILED: m_networkProcessToKeepAliveUntilDataStoreIsCreated == networkProcess.ptr() in TestWebKitAPI.WKWebsiteDataStoreConfiguration.TotalQuotaRatio result of constant crash
https://bugs.webkit.org/show_bug.cgi?id=265489
rdar://118904784

Reviewed by Per Arne Vollan and Chris Dumez.

The assertion fails because m_networkProcessToKeepAliveUntilDataStoreIsCreated still points to old default network
process after it exits. The reason why WebProcessProxy has m_networkProcessToKeepAliveUntilDataStoreIsCreated is that
WebProcessProxy needs to launch network process and hold it alive for sending LaunchServicesDatabase to web process,
when there is no WebsiteDataStore (i.e. the web process is prewarmed). This patch removes
m_networkProcessToKeepAliveUntilDataStoreIsCreated from WebProcessProxy and delays the LaunchServicesDatabase sending
to when WebProcessProxy is assigned a WebsiteDataStore. In that case, WebProcessProxy could use the network process of
the WebsiteDataStore.

This patch also has a fix to clear m_connection of XPCEndpointClient when remote process is terminated, so web process
can accept new connection from the relaunched network process.

* Source/WebKit/Shared/Cocoa/XPCEndpointClient.mm:
(WebKit::XPCEndpointClient::setEndpoint):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::setWebsiteDataStore):
(WebKit::WebProcessProxy::didFinishLaunching):
* Source/WebKit/UIProcess/WebProcessProxy.h:

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




More information about the webkit-changes mailing list