Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ce9cd2b20a505c1e2bb9b135fc7e29db3bd1b0e9
      
https://github.com/WebKit/WebKit/commit/ce9cd2b20a505c1e2bb9b135fc7e29db3bd1b0e9
  Author: Chris Dumez <cdu...@apple.com>
  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
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to