Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 24c5a57441b2ab436ef5000d292d9597464740c3
https://github.com/WebKit/WebKit/commit/24c5a57441b2ab436ef5000d292d9597464740c3
Author: Alex Christensen <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes