[webkit-changes] [WebKit/WebKit] 48ace7: Introduce a <model> loading process - Part 2
Commit Queue
noreply at github.com
Tue Feb 6 18:23:07 PST 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 48ace7f41c0cfd439060cfcc58e4a32d45c3ffcf
https://github.com/WebKit/WebKit/commit/48ace7f41c0cfd439060cfcc58e4a32d45c3ffcf
Author: Eddy Wong <eddy_wong at apple.com>
Date: 2024-02-06 (Tue, 06 Feb 2024)
Changed paths:
M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
M Source/WTF/wtf/PlatformEnableCocoa.h
M Source/WebCore/platform/RuntimeApplicationChecks.cpp
M Source/WebCore/platform/RuntimeApplicationChecks.h
A Source/WebKit/ModelProcess/EntryPoint/Cocoa/XPCService/ModelServiceEntryPoint.mm
A Source/WebKit/ModelProcess/cocoa/ModelProcessCocoa.mm
A Source/WebKit/ModelProcess/ios/ModelProcessIOS.mm
M Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h
M Source/WebKit/Shared/Cocoa/DefaultWebBrowserChecks.mm
M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h
M Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h
M Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h
M Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm
M Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm
M Source/WebKit/UIProcess/Launcher/ProcessLauncher.h
M Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm
M Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp
M Source/WebKit/UIProcess/Model/ModelProcessProxy.h
M Source/WebKit/UIProcess/PageClient.h
M Source/WebKit/UIProcess/ProvisionalPageProxy.cpp
M Source/WebKit/UIProcess/ProvisionalPageProxy.h
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/UIProcess/WebPageProxy.h
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/UIProcess/ios/PageClientImplIOS.h
M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
M Source/WebKit/UIProcess/ios/WKContentView.h
M Source/WebKit/UIProcess/ios/WKContentView.mm
M Source/WebKit/WebKit.xcodeproj/project.pbxproj
M Source/WebKit/WebProcess/Model/ModelProcessConnection.h
A Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h
A Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.mm
M Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.cpp
M Source/WebKit/WebProcess/WebPage/WebPage.h
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
Log Message:
-----------
Introduce a <model> loading process - Part 2
https://bugs.webkit.org/show_bug.cgi?id=243874
rdar://122051588 (Create new com.apple.WebKit.Model process)
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 2 of the effort, where we hook up the new Model* classes from
existing classes. ENABLE_MODEL_PROCESS is now turned on for visionOS.
The new process doesn't exist yet. The actual rendering flow is not changed yet.
Certain changes were to accommodate for the new plan of having a single ModelProcess
across the system instead of having one ModelProcess for each WebProcess.
* Source/WTF/wtf/PlatformEnableCocoa.h:
Enables MODEL_PROCESS for visionOS.
* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/platform/RuntimeApplicationChecks.cpp:
(WebCore::processTypeDescription):
* Source/WebCore/platform/RuntimeApplicationChecks.h:
* Source/WebKit/ModelProcess/EntryPoint/Cocoa/XPCService/ModelServiceEntryPoint.mm: Copied from Source/WebKit/UIProcess/WebContextClient.h.
(WebKit::ModelServiceInitializerDelegate::ModelServiceInitializerDelegate):
(WebKit::initializeAuxiliaryProcess<ModelProcess>):
(MODEL_SERVICE_INITIALIZER):
* Source/WebKit/ModelProcess/cocoa/ModelProcessCocoa.mm: Copied from Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h.
(WebKit::ModelProcess::notifyPreferencesChanged):
(WebKit::ModelProcess::dispatchSimulatedNotificationsForPreferenceChange):
* Source/WebKit/ModelProcess/ios/ModelProcessIOS.mm: Copied from Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h.
(WebKit::ModelProcess::initializeProcess):
(WebKit::ModelProcess::initializeProcessName):
(WebKit::ModelProcess::initializeSandbox):
* Source/WebKit/Platform/ExtraPrivateSymbolsForTAPI.h:
* Source/WebKit/Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::isInWebKitChildProcess):
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
* Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:
(WebKit::XPCServiceEventHandler):
* Source/WebKit/Shared/RemoteLayerTree/DynamicContentScalingImageBufferBackend.mm:
(WebKit::DynamicContentScalingImageBufferBackend::createBackendHandle const):
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _modelProcessIdentifier]):
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:
* Source/WebKit/UIProcess/AuxiliaryProcessProxy.cpp:
(WebKit::AuxiliaryProcessProxy::getLaunchOptions):
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.h:
* Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:
(WebKit::PageClientImplCocoa::modelProcessDidFinishLaunching):
(WebKit::PageClientImplCocoa::modelProcessDidExit):
* Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::didCreateContextInModelProcessForVisibilityPropagation):
* Source/WebKit/UIProcess/Launcher/ProcessLauncher.h:
* Source/WebKit/UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::serviceName):
* Source/WebKit/UIProcess/Model/ModelProcessProxy.cpp:
(WebKit::singleton):
(WebKit::ModelProcessProxy::getOrCreate):
(WebKit::ModelProcessProxy::singletonIfCreated):
(WebKit::ModelProcessProxy::ModelProcessProxy):
(WebKit::ModelProcessProxy::modelProcessExited):
(WebKit::ModelProcessProxy::didFinishLaunching):
(WebKit::ModelProcessProxy::updateProcessAssertion):
(WebKit::ModelProcessProxy::create): Deleted.
* Source/WebKit/UIProcess/Model/ModelProcessProxy.h:
* Source/WebKit/UIProcess/PageClient.h:
(WebKit::PageClient::didCreateContextInModelProcessForVisibilityPropagation):
(WebKit::PageClient::modelProcessDidFinishLaunching):
(WebKit::PageClient::modelProcessDidExit):
* Source/WebKit/UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didCreateContextInModelProcessForVisibilityPropagation):
* Source/WebKit/UIProcess/ProvisionalPageProxy.h:
(WebKit::ProvisionalPageProxy::contextIDForVisibilityPropagationInModelProcess const):
* Source/WebKit/UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::modelProcessID const):
(WebKit::WebPageProxy::modelProcessDidFinishLaunching):
(WebKit::WebPageProxy::modelProcessExited):
* Source/WebKit/UIProcess/WebPageProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::m_resetModelProcessCrashCountTimer):
(WebKit::WebProcessPool::ensureModelProcess):
(WebKit::WebProcessPool::ensureProtectedModelProcess):
(WebKit::WebProcessPool::modelProcessDidFinishLaunching):
(WebKit::WebProcessPool::modelProcessExited):
(WebKit::WebProcessPool::createModelProcessConnection):
(WebKit::WebProcessPool::updateProcessAssertions):
* Source/WebKit/UIProcess/WebProcessPool.h:
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::createModelProcessConnection):
(WebKit::WebProcessProxy::modelProcessDidFinishLaunching):
(WebKit::WebProcessProxy::modelProcessExited):
* Source/WebKit/UIProcess/WebProcessProxy.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
* Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::didCreateContextInModelProcessForVisibilityPropagation):
(WebKit::PageClientImpl::modelProcessDidExit):
* Source/WebKit/UIProcess/ios/WKContentView.h:
* Source/WebKit/UIProcess/ios/WKContentView.mm:
(-[WKContentView _setupVisibilityPropagationViewForModelProcess]):
(-[WKContentView _removeVisibilityPropagationViewForModelProcess]):
(-[WKContentView _modelProcessDidExit]):
(-[WKContentView _didRelaunchProcess]):
(-[WKContentView _modelProcessDidCreateContextForVisibilityPropagation]):
(-[WKContentView _createVisibilityPropagationView]):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Model/ModelProcessConnection.h:
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h: Added.
(WebKit::ModelProcessModelPlayer::page):
(WebKit::ModelProcessModelPlayer::client):
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.mm: Added.
(WebKit::ModelProcessModelPlayer::create):
(WebKit::ModelProcessModelPlayer::ModelProcessModelPlayer):
(WebKit::ModelProcessModelPlayer::~ModelProcessModelPlayer):
(WebKit::ModelProcessModelPlayer::load):
(WebKit::ModelProcessModelPlayer::sizeDidChange):
(WebKit::ModelProcessModelPlayer::layer):
(WebKit::ModelProcessModelPlayer::handleMouseDown):
(WebKit::ModelProcessModelPlayer::handleMouseMove):
(WebKit::ModelProcessModelPlayer::handleMouseUp):
(WebKit::ModelProcessModelPlayer::enterFullscreen):
(WebKit::ModelProcessModelPlayer::getCamera):
(WebKit::ModelProcessModelPlayer::setCamera):
(WebKit::ModelProcessModelPlayer::isPlayingAnimation):
(WebKit::ModelProcessModelPlayer::setAnimationIsPlaying):
(WebKit::ModelProcessModelPlayer::isLoopingAnimation):
(WebKit::ModelProcessModelPlayer::setIsLoopingAnimation):
(WebKit::ModelProcessModelPlayer::animationDuration):
(WebKit::ModelProcessModelPlayer::animationCurrentTime):
(WebKit::ModelProcessModelPlayer::setAnimationCurrentTime):
(WebKit::ModelProcessModelPlayer::hasAudio):
(WebKit::ModelProcessModelPlayer::isMuted):
(WebKit::ModelProcessModelPlayer::setIsMuted):
(WebKit::ModelProcessModelPlayer::accessibilityChildren):
* Source/WebKit/WebProcess/Model/WebModelPlayerProvider.cpp:
(WebKit::WebModelPlayerProvider::createModelPlayer):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::modelProcessConnectionDidBecomeAvailable):
(WebKit::WebPage::~WebPage):
(WebKit::WebPage::updatePreferences):
(WebKit::WebPage::configureLoggingChannel):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureModelProcessConnection):
(WebKit::WebProcess::modelProcessConnectionClosed):
* Source/WebKit/WebProcess/WebProcess.h:
(WebKit::WebProcess::existingModelProcessConnection):
Canonical link: https://commits.webkit.org/274185@main
More information about the webkit-changes
mailing list