Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: d4bf0dab90e9db4ab1c487c933d93321afc8d3fb https://github.com/WebKit/WebKit/commit/d4bf0dab90e9db4ab1c487c933d93321afc8d3fb Author: Eddy Wong <eddy_w...@apple.com> Date: 2024-01-31 (Wed, 31 Jan 2024)
Changed paths: M Source/WebCore/Modules/push-api/PushStrategy.h M Source/WebKit/CMakeLists.txt M Source/WebKit/DerivedSources-input.xcfilelist M Source/WebKit/DerivedSources-output.xcfilelist M Source/WebKit/DerivedSources.make A Source/WebKit/ModelProcess/ModelConnectionToWebProcess.cpp A Source/WebKit/ModelProcess/ModelConnectionToWebProcess.h A Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in A Source/WebKit/ModelProcess/ModelProcess.cpp A Source/WebKit/ModelProcess/ModelProcess.h A Source/WebKit/ModelProcess/ModelProcess.messages.in A Source/WebKit/ModelProcess/ModelProcessCreationParameters.h A Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in M Source/WebKit/Scripts/webkit/messages.py A Source/WebKit/Shared/ModelProcessConnectionParameters.h A Source/WebKit/Shared/ModelProcessConnectionParameters.serialization.in M Source/WebKit/Sources.txt M Source/WebKit/SourcesCocoa.txt A Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp A Source/WebKit/UIProcess/Model/ModelProcessProxy.h A Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in M Source/WebKit/UIProcess/WebProcessProxy.cpp M Source/WebKit/UIProcess/WebProcessProxy.h M Source/WebKit/UIProcess/WebProcessProxy.messages.in M Source/WebKit/WebKit.xcodeproj/project.pbxproj A Source/WebKit/WebProcess/Model/ModelProcessConnection.cpp A Source/WebKit/WebProcess/Model/ModelProcessConnection.h A Source/WebKit/WebProcess/Model/ModelProcessConnection.messages.in A Source/WebKit/WebProcess/Model/ModelProcessConnectionInfo.h A Source/WebKit/WebProcess/Model/ModelProcessConnectionInfo.serialization.in M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm M Source/WebKit/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm M Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp Log Message: ----------- Introduce a <model> loading process - Part 1 https://bugs.webkit.org/show_bug.cgi?id=243874 Reviewed by Alex Christensen. In order to allow parsing of complex 3D model formats with a custom (tight) sandbox, introduce a separate process for loading/parsing <model>s. This is part 1 of the effort, where we have added the new classes and messages. Most of them are gated behind ENABLE(MODEL_PROCESS) that remains false on all platforms for the time being. In an upcoming PR, we will introduce new code in existing classes that will call into these new classes, as well as flipping on the compilation flag on applicable platforms. The actual ModelProcess XPC service will come in an upcoming PR as well. The new classes and messages in this patch is to support launching of the new process. Most of them are boilerplate code adapted from GPUProcess. There is a good amount of duplicated code that warrants a refactoring down the road, but that is out of scope for this current <model> tag effort. * Source/WebKit/CMakeLists.txt: * Source/WebKit/DerivedSources-input.xcfilelist: * Source/WebKit/DerivedSources-output.xcfilelist: * Source/WebKit/DerivedSources.make: * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.cpp: Added. (WebKit::ModelConnectionToWebProcess::create): (WebKit::ModelConnectionToWebProcess::ModelConnectionToWebProcess): (WebKit::m_presentingApplicationAuditToken): (WebKit::ModelConnectionToWebProcess::~ModelConnectionToWebProcess): (WebKit::ModelConnectionToWebProcess::didClose): (WebKit::ModelConnectionToWebProcess::createVisibilityPropagationContextForPage): (WebKit::ModelConnectionToWebProcess::destroyVisibilityPropagationContextForPage): (WebKit::ModelConnectionToWebProcess::configureLoggingChannel): (WebKit::ModelConnectionToWebProcess::allowsExitUnderMemoryPressure const): (WebKit::ModelConnectionToWebProcess::logger): (WebKit::ModelConnectionToWebProcess::didReceiveInvalidMessage): (WebKit::ModelConnectionToWebProcess::lowMemoryHandler): (WebKit::ModelConnectionToWebProcess::dispatchMessage): (WebKit::ModelConnectionToWebProcess::dispatchSyncMessage): * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.h: Added. (WebKit::ModelConnectionToWebProcess::connection): (WebKit::ModelConnectionToWebProcess::messageReceiverMap): (WebKit::ModelConnectionToWebProcess::modelProcess): (WebKit::ModelConnectionToWebProcess::webProcessIdentifier const): (WebKit::ModelConnectionToWebProcess::sessionID const): (WebKit::ModelConnectionToWebProcess::webProcessIdentity const): (WebKit::ModelConnectionToWebProcess::objectCountForTesting): * Source/WebKit/ModelProcess/ModelConnectionToWebProcess.messages.in: Added. * Source/WebKit/ModelProcess/ModelProcess.cpp: Added. (WebKit::ModelProcess::ModelProcess): (WebKit::ModelProcess::didReceiveMessage): (WebKit::ModelProcess::createModelConnectionToWebProcess): (WebKit::ModelProcess::removeModelConnectionToWebProcess): (WebKit::ModelProcess::connectionToWebProcessClosed): (WebKit::ModelProcess::shouldTerminate): (WebKit::ModelProcess::canExitUnderMemoryPressure const): (WebKit::ModelProcess::tryExitIfUnusedAndUnderMemoryPressure): (WebKit::ModelProcess::tryExitIfUnused): (WebKit::ModelProcess::lowMemoryHandler): (WebKit::ModelProcess::initializeModelProcess): (WebKit::ModelProcess::prepareToSuspend): (WebKit::ModelProcess::processDidResume): (WebKit::ModelProcess::resume): (WebKit::ModelProcess::webProcessConnection const): (WebKit::ModelProcess::webProcessConnectionCountForTesting): (WebKit::ModelProcess::addSession): (WebKit::ModelProcess::removeSession): * Source/WebKit/ModelProcess/ModelProcess.h: Added. (WebKit::ModelProcess::applicationVisibleName const): * Source/WebKit/ModelProcess/ModelProcess.messages.in: Added. * Source/WebKit/ModelProcess/ModelProcessCreationParameters.h: Added. * Source/WebKit/ModelProcess/ModelProcessCreationParameters.serialization.in: Added. * Source/WebKit/Scripts/webkit/messages.py: (types_that_must_be_moved): * Source/WebKit/Shared/ModelProcessConnectionParameters.h: Added. * Source/WebKit/Shared/ModelProcessConnectionParameters.serialization.in: Added. * Source/WebKit/Sources.txt: * Source/WebKit/SourcesCocoa.txt: * Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp: Added. (WebKit::ModelProcessProxy::create): (WebKit::ModelProcessProxy::ModelProcessProxy): (WebKit::ModelProcessProxy::getLaunchOptions): (WebKit::ModelProcessProxy::connectionWillOpen): (WebKit::ModelProcessProxy::processWillShutDown): (WebKit::ModelProcessProxy::createModelProcessConnection): (WebKit::ModelProcessProxy::modelProcessExited): (WebKit::ModelProcessProxy::processIsReadyToExit): (WebKit::ModelProcessProxy::addSession): (WebKit::ModelProcessProxy::removeSession): (WebKit::ModelProcessProxy::terminateForTesting): (WebKit::ModelProcessProxy::webProcessConnectionCountForTesting): (WebKit::ModelProcessProxy::didClose): (WebKit::ModelProcessProxy::didReceiveInvalidMessage): (WebKit::ModelProcessProxy::didFinishLaunching): (WebKit::ModelProcessProxy::updateProcessAssertion): (WebKit::ModelProcessProxy::sendPrepareToSuspend): (WebKit::ModelProcessProxy::sendProcessDidResume): (WebKit::ModelProcessProxy::didCreateContextForVisibilityPropagation): (WebKit::ModelProcessProxy::didBecomeUnresponsive): * Source/WebKit/UIProcess/Model/ModelProcessProxy.h: Added. * Source/WebKit/UIProcess/Model/ModelProcessProxy.messages.in: Added. * Source/WebKit/UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::createModelProcessConnection): * Source/WebKit/UIProcess/WebProcessProxy.h: * Source/WebKit/UIProcess/WebProcessProxy.messages.in: * Source/WebKit/WebKit.xcodeproj/project.pbxproj: In addition to the newly added classes, also added the existing GPUProcessConnectionInfo.serialization.in file so that it can be directly edited from Xcode. * Source/WebKit/WebProcess/Model/ModelProcessConnection.cpp: Added. (WebKit::getModelProcessConnectionParameters): (WebKit::ModelProcessConnection::create): (WebKit::ModelProcessConnection::ModelProcessConnection): (WebKit::ModelProcessConnection::~ModelProcessConnection): (WebKit::ModelProcessConnection::auditToken): (WebKit::ModelProcessConnection::invalidate): (WebKit::ModelProcessConnection::didClose): (WebKit::ModelProcessConnection::didReceiveInvalidMessage): (WebKit::ModelProcessConnection::dispatchMessage): (WebKit::ModelProcessConnection::dispatchSyncMessage): (WebKit::ModelProcessConnection::didInitialize): (WebKit::ModelProcessConnection::waitForDidInitialize): (WebKit::ModelProcessConnection::createVisibilityPropagationContextForPage): (WebKit::ModelProcessConnection::destroyVisibilityPropagationContextForPage): (WebKit::ModelProcessConnection::configureLoggingChannel): * Source/WebKit/WebProcess/Model/ModelProcessConnection.h: Added. (WebKit::ModelProcessConnection::connection): (WebKit::ModelProcessConnection::messageReceiverMap): (WebKit::ModelProcessConnection::Client::modelProcessConnectionDidClose): (WebKit::ModelProcessConnection::addClient): (WebKit::ModelProcessConnection::removeClient): * Source/WebKit/WebProcess/Model/ModelProcessConnection.messages.in: Added. * Source/WebKit/WebProcess/Model/ModelProcessConnectionInfo.h: Added. * Source/WebKit/WebProcess/Model/ModelProcessConnectionInfo.serialization.in: Added. The following files are modified trivially to accomodate for source unification reshuffling: * Source/WebCore/Modules/push-api/PushStrategy.h: * Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm: * Source/WebKit/WebProcess/Plugins/PDF/PDFPluginAnnotation.mm: * Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp: Canonical link: https://commits.webkit.org/273840@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes