Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7461d46a642d423be04d82011c5c548322024672
https://github.com/WebKit/WebKit/commit/7461d46a642d423be04d82011c5c548322024672
Author: Sihui Liu <[email protected]>
Date: 2026-07-15 (Wed, 15 Jul 2026)
Changed paths:
M Source/WebKit/NetworkProcess/NetworkProcess.cpp
Log Message:
-----------
Remove stale assertion in NetworkProcess::destroySession
https://bugs.webkit.org/show_bug.cgi?id=319448
rdar://182258579
Reviewed by Alexey Proskuryakov.
TestWebKitAPI.NetworkProcess.TerminateWhenNoDefaultWebsiteDataStore hits this
assertion on debug builds. The test calls
[WKWebsiteDataStore _deleteDefaultDataStoreForTesting] to release the last
strong reference to the default
WebsiteDataStore, which runs WebsiteDataStore::~WebsiteDataStore() and
unconditionally sends DestroySession for whatever
sessionID that WebsiteDataStore had, including the default one, to
NetworkProcess.
This assertion was added in 205434@main, before
_deleteDefaultDataStoreForTesting was repurposed by 251983@main to also
exercise NetworkProcess's session/process lifetime logic. At the time the
assertion was introduced, the default
WebsiteDataStore held the last reference to NetworkProcessProxy for the whole
lifetime of the process, so
destroySession() was never expected to run for the default session on Cocoa.
That assumption no longer holds: it is
legitimate for the default session to be destroyed while NetworkProcessProxy
stays alive, since all WebsiteDataStores
(default, ephemeral, custom persistent) share a single NetworkProcessProxy on
Cocoa, so destroying the default session
does not necessarily mean the process is going away.
destroySession()'s cleanup itself (removing the session from m_networkSessions
and m_networkStorageSessions) has no
special dependency on the sessionID not being the default one, so removing the
assertion does not change behavior for
any port; it only stops a stale invariant from firing on a legitimate code path.
* Source/WebKit/NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::destroySession):
Canonical link: https://commits.webkit.org/317277@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications