Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3407db2049eda9c220e3d6dfc00d30347bf85fff
https://github.com/WebKit/WebKit/commit/3407db2049eda9c220e3d6dfc00d30347bf85fff
Author: Chris Dumez <[email protected]>
Date: 2026-06-25 (Thu, 25 Jun 2026)
Changed paths:
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M TestExpectations/apitests
Log Message:
-----------
REGRESSION(315609@main) [iOS]
TestWebKitAPI.WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess
https://bugs.webkit.org/show_bug.cgi?id=317800
rdar://180569290
Reviewed by Sihui Liu.
315609@main added an IndexedDB suspension notification to
WebProcessProxy::didChangeThrottleState(). It guards against a missing
data store with `if (RefPtr dataStore = websiteDataStore())`, but
websiteDataStore() is the asserting accessor (it does
ASSERT(m_websiteDataStore)), so in debug builds the assertion fires
before the null check can take effect.
A WebProcessProxy can legitimately have no data store: prewarmed
processes, processes not yet assigned a store, and freshly relaunched
processes all start with m_websiteDataStore null. When a pending
PrepareToSuspend reply drives didChangeThrottleState() before a store is
assigned, the assertion is hit. This reproduces in
TestWebKitAPI.WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess,
which terminates and relaunches the web process.
Read the m_websiteDataStore member directly instead of the asserting
accessor, matching the other null-tolerant call sites in this file.
Release-build behavior is unchanged.
No new tests, covered by
WKNavigation.PreferredHTTPSPolicyAutomaticHTTPFallbackAfterTerminateProcess.
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didChangeThrottleState):
Canonical link: https://commits.webkit.org/315863@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications