Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 24c5a57441b2ab436ef5000d292d9597464740c3 https://github.com/WebKit/WebKit/commit/24c5a57441b2ab436ef5000d292d9597464740c3 Author: Alex Christensen <achristen...@apple.com> Date: 2025-03-11 (Tue, 11 Mar 2025)
Changed paths: M Source/WebKit/NetworkProcess/NetworkProcess.cpp M Source/WebKit/NetworkProcess/NetworkProcess.h M Source/WebKit/NetworkProcess/NetworkSession.h M Source/WebKit/NetworkProcess/ServiceWorker/WebSWRegistrationStore.cpp M Source/WebKit/NetworkProcess/ServiceWorker/WebSWRegistrationStore.h M Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.cpp M Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.h M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h M Source/WebKit/Platform/IPC/Connection.cpp M Source/WebKit/Platform/IPC/Connection.h M Source/WebKit/Platform/IPC/MessageReceiveQueues.h M Source/WebKit/Platform/IPC/WorkQueueMessageReceiver.h M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp M Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp Log Message: ----------- Make WorkQueueMessageReceiver thread safe https://bugs.webkit.org/show_bug.cgi?id=289502 rdar://131599226 Reviewed by Chris Dumez. NetworkStorageManager had WeakPtr, ThreadSafeWeakPtr, and CheckedPtr all keeping it "safe", but only one of the three was thread safe. It only inherited from CanMakeWeakPtr because it inherited from MessageReceiver. This fixes NetworkStorageManager's lifetime management and prevents other types from accidentally making non-thread-safe WeakPtrs to them by making WorkQueueMessageReceiver not inherit MessageReceiver's CanMakeWeakPtr. I also found that NetworkProcessConnection::dispatchSyncMessage was calling WebSWContextManagerConnection::didReceiveSyncMessage, but WebSWContextManagerConnection has no synchronous messages it can receive, so I removed it. * Source/WebKit/NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::destroySession): * Source/WebKit/NetworkProcess/NetworkProcess.h: * Source/WebKit/NetworkProcess/ServiceWorker/WebSWRegistrationStore.cpp: (WebKit::WebSWRegistrationStore::clearAll): (WebKit::WebSWRegistrationStore::closeFiles): (WebKit::WebSWRegistrationStore::importRegistrations): (WebKit::WebSWRegistrationStore::updateToStorage): (WebKit::WebSWRegistrationStore::checkedManager const): Deleted. * Source/WebKit/NetworkProcess/ServiceWorker/WebSWRegistrationStore.h: * Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.cpp: (WebKit::BackgroundFetchStoreImpl::BackgroundFetchStoreImpl): (WebKit::BackgroundFetchStoreImpl::initializeFetches): (WebKit::BackgroundFetchStoreImpl::initializeFetchesInternal): (WebKit::BackgroundFetchStoreImpl::clearFetch): (WebKit::BackgroundFetchStoreImpl::clearFetchInternal): (WebKit::BackgroundFetchStoreImpl::clearAllFetches): (WebKit::BackgroundFetchStoreImpl::clearAllFetchesInternal): (WebKit::BackgroundFetchStoreImpl::storeFetch): (WebKit::BackgroundFetchStoreImpl::storeFetchInternal): (WebKit::BackgroundFetchStoreImpl::storeFetchResponseBodyChunk): (WebKit::BackgroundFetchStoreImpl::storeFetchResponseBodyChunkInternal): (WebKit::BackgroundFetchStoreImpl::retrieveResponseBody): * Source/WebKit/NetworkProcess/storage/BackgroundFetchStoreImpl.h: (WebKit::BackgroundFetchStoreImpl::create): * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h: * Source/WebKit/Platform/IPC/Connection.cpp: (IPC::Connection::dispatchMessageReceiverMessage): * Source/WebKit/Platform/IPC/Connection.h: * Source/WebKit/Platform/IPC/MessageReceiveQueues.h: * Source/WebKit/Platform/IPC/WorkQueueMessageReceiver.h: (IPC::WorkQueueMessageReceiverBase::~WorkQueueMessageReceiverBase): (IPC::WorkQueueMessageReceiverBase::didReceiveSyncMessage): (IPC::WorkQueueMessageReceiverBase::didReceiveMessage): (IPC::WorkQueueMessageReceiverBase::didReceiveMessageWithReplyHandler): * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp: (WebKit::RemoteRenderingBackendProxy::didClose): (WebKit::RemoteRenderingBackendProxy::didMarkLayersAsVolatile): * Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h: Canonical link: https://commits.webkit.org/291946@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes