[webkit-changes] [WebKit/WebKit] 8746ea: [visionOS] Move shared simulation connection from ...

Ada Chan noreply at github.com
Tue Jan 28 06:49:58 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 8746ea87f06c2e65ea34055e95bcb7cbfa1ea59e
      https://github.com/WebKit/WebKit/commit/8746ea87f06c2e65ea34055e95bcb7cbfa1ea59e
  Author: Ada Chan <adachan at apple.com>
  Date:   2025-01-28 (Tue, 28 Jan 2025)

  Changed paths:
    M Source/WebKit/Configurations/GPUService.xcconfig
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm
    M Source/WebKit/ModelProcess/ModelProcess.cpp
    M Source/WebKit/ModelProcess/ModelProcess.h
    M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in
    M Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in
    A Source/WebKit/Resources/ios/GPUService-visionOS-simulator.entitlements
    M Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements
    M Source/WebKit/Scripts/process-entitlements.sh
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
    M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp
    M Source/WebKit/UIProcess/Model/ModelProcessProxy.h
    M Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in
    A Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [visionOS] Move shared simulation connection from the Model process to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=286366
rdar://138447079

Reviewed by Per Arne Vollan.

Instead of connecting to shared simulation as part of WKREEngine initialization
in the Model process, the Model process will send a message to the UI process to
request for that connection. UI process delegates that request to the GPU process
and returns the resulting connection back to the Model process. Sandbox rules and
entitlements related to the shared simulation connection have been removed from
the Model process, and added to the GPU process instead (only for visionOS).

* Source/WebKit/Configurations/GPUService.xcconfig:
Update the GPU process simulator entitlements for visionOS
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
Add a new message for handling shared simulation connection
* Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm:
(WebKit::GPUProcess::requestSharedSimulationConnection):
Get the shared simulation connection via WKSharedSimulationConnectionHelper using
the model process' audit token.
* Source/WebKit/ModelProcess/ModelProcess.cpp:
(WebKit::ModelProcess::createModelConnectionToWebProcess):
Initialize the WKREEngine with a function to get the shared simulation
connection via a message to the UI process.
(WebKit::ModelProcess::requestSharedSimulationConnection):
* Source/WebKit/ModelProcess/ModelProcess.h:
* Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
A couple of additions to the GPU process sandbox in order to connect to shared
simulation and to make shareable file handles.
* Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.Model.sb.in:
Remove the mach-lookup rule needed to connect to shared simulation.
* Source/WebKit/Resources/ios/GPUService-visionOS-simulator.entitlements: Copied from Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements.
* Source/WebKit/Resources/ios/ModelService-embedded-simulator.entitlements:
* Source/WebKit/Scripts/process-entitlements.sh:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::requestSharedSimulationConnection):
Send the shared simulation connection request to the GPU process
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp:
(WebKit::ModelProcessProxy::processWillShutDown):
Reset m_didInitializeSharedSimulationConnection to false.
* Source/WebKit/UIProcess/Model/ModelProcessProxy.h:
* Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in:
* Source/WebKit/UIProcess/Model/cocoa/ModelProcessProxyCocoa.mm: Added.
(WebKit::ModelProcessProxy::requestSharedSimulationConnection):
Add message checks to make sure the web content process that creates the models
to be loaded by the Model process have the expected model related preferences
set, and that this is the first time this Model process is requesting for the connection.
If all the checks pass, delegate the connection request to GPUProcessProxy.
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:

Canonical link: https://commits.webkit.org/289447@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list