Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ce9cd2b20a505c1e2bb9b135fc7e29db3bd1b0e9
https://github.com/WebKit/WebKit/commit/ce9cd2b20a505c1e2bb9b135fc7e29db3bd1b0e9
Author: Chris Dumez <[email protected]>
Date: 2023-05-04 (Thu, 04 May 2023)
Changed paths:
M Source/WebKit/CMakeLists.txt
M Source/WebKit/DerivedSources-input.xcfilelist
M Source/WebKit/DerivedSources.make
M Source/WebKit/NetworkProcess/NetworkProcess.h
M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
M Source/WebKit/Shared/RemoteWorkerType.h
A Source/WebKit/Shared/RemoteWorkerType.serialization.in
M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
M Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in
M Source/WebKit/UIProcess/WebProcessPool.cpp
M Source/WebKit/UIProcess/WebProcessPool.h
M Source/WebKit/UIProcess/WebProcessProxy.cpp
M Source/WebKit/UIProcess/WebProcessProxy.h
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/WebProcess.h
M Source/WebKit/WebProcess/WebProcess.messages.in
Log Message:
-----------
[ macOS, iOS ] ASSERTION FAILED: remoteWorkerProcesses().contains(process) in
WebKit::WebProcessPool::removeFromRemoteWorkerProcesses
https://bugs.webkit.org/show_bug.cgi?id=256233
rdar://104915398
Reviewed by Alex Christensen.
I haven't been able to reproduce the assertion hit but I am refactoring the
code to
make it unlikely the state gets out of sync between the WebProcessPool and the
WebProcessProxy.
The WebProcessPool used to add the WebProcessProxy to the
remoteWorkerProcesses()
HashMap. The removal used to happen both from the WebProcessPool and the
WebProcessProxy, depending on the reason.
The new logic is simplified as the WebProcessProxy is now solely in charge of
adding
and removing itself from the map. This should make sure that WebProcessProxy
cannot
be running remote workers and yet not be in the WebProcessPool map (like the
assertion
suggests).
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::establishRemoteWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::addRemoteWorkerProcess):
(WebKit::WebProcessPool::removeRemoteWorkerProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::removeFromRemoteWorkerProcesses): Deleted.
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::disableRemoteWorkers):
(WebKit::WebProcessProxy::enableRemoteWorkers):
Canonical link: https://commits.webkit.org/263693@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes