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

Reply via email to