Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8c75aadf564cab15d87f0b76e64c3b219bb63f40
https://github.com/WebKit/WebKit/commit/8c75aadf564cab15d87f0b76e64c3b219bb63f40
Author: Aleksei Marchenko <[email protected]>
Date: 2026-07-28 (Tue, 28 Jul 2026)
Changed paths:
M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
M Source/WebCore/Modules/model-element/HTMLModelElement.h
M Source/WebCore/Modules/model-element/ModelPlayer.cpp
M Source/WebCore/Modules/model-element/ModelPlayer.h
M Source/WebCore/Modules/model-element/ModelPlayerClient.h
M Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp
M Source/WebCore/Modules/model-element/PlaceholderModelPlayer.h
M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp
M Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in
M Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm
M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp
M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h
M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in
M Source/WebKit/WebProcess/Model/WebModelPlayer.h
M Source/WebKit/WebProcess/Model/WebModelPlayer.mm
Log Message:
-----------
Make ModelPlayer node-addressable for Multi-Model
https://bugs.webkit.org/show_bug.cgi?id=320168
rdar://182292637 (Expand ModelPlayer interface for Multi-Model)
Reviewed by Etienne Segonzac.
Foundational, behavior-preserving prep for Multi-Model: the per-model
surface of ModelPlayer / ModelPlayerClient (and the Model-process IPC)
now carries a WebCore::NodeIdentifier so one player can address a specific
model. Also adds an unload(NodeIdentifier) entry point.
* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::didFinishLoading):
(WebCore::HTMLModelElement::didFailLoading):
(WebCore::HTMLModelElement::didUpdateEntityTransform):
(WebCore::HTMLModelElement::didUpdateBoundingBox):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::unloadModelPlayer):
(WebCore::HTMLModelElement::reloadModelPlayer):
(WebCore::HTMLModelElement::setEntityTransform):
(WebCore::HTMLModelElement::setPlaybackRate):
(WebCore::HTMLModelElement::duration const):
(WebCore::HTMLModelElement::paused const):
(WebCore::HTMLModelElement::setPaused):
(WebCore::HTMLModelElement::updateAutoplay):
(WebCore::HTMLModelElement::updateLoop):
(WebCore::HTMLModelElement::currentTime const):
(WebCore::HTMLModelElement::setCurrentTime):
(WebCore::HTMLModelElement::isPlayingAnimation):
(WebCore::HTMLModelElement::setAnimationIsPlaying):
(WebCore::HTMLModelElement::isLoopingAnimation):
(WebCore::HTMLModelElement::setIsLoopingAnimation):
(WebCore::HTMLModelElement::animationDuration):
(WebCore::HTMLModelElement::animationCurrentTime):
(WebCore::HTMLModelElement::setAnimationCurrentTime):
* Source/WebCore/Modules/model-element/HTMLModelElement.h:
* Source/WebCore/Modules/model-element/ModelPlayer.cpp:
(WebCore::ModelPlayer::currentAnimationState const):
(WebCore::ModelPlayer::currentTransformState const):
(WebCore::ModelPlayer::reload):
(WebCore::ModelPlayer::unload):
(WebCore::ModelPlayer::boundingBoxCenter const):
(WebCore::ModelPlayer::boundingBoxExtents const):
(WebCore::ModelPlayer::entityTransform const):
(WebCore::ModelPlayer::setEntityTransform):
(WebCore::ModelPlayer::setAutoplay):
(WebCore::ModelPlayer::setLoop):
(WebCore::ModelPlayer::setPlaybackRate):
(WebCore::ModelPlayer::duration const):
(WebCore::ModelPlayer::paused const):
(WebCore::ModelPlayer::setPaused):
(WebCore::ModelPlayer::currentTime const):
(WebCore::ModelPlayer::setCurrentTime):
* Source/WebCore/Modules/model-element/ModelPlayer.h:
* Source/WebCore/Modules/model-element/ModelPlayerClient.h:
* Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp:
(WebCore::PlaceholderModelPlayer::currentAnimationState const):
(WebCore::PlaceholderModelPlayer::currentTransformState const):
(WebCore::PlaceholderModelPlayer::load):
(WebCore::PlaceholderModelPlayer::reload):
(WebCore::PlaceholderModelPlayer::boundingBoxCenter const):
(WebCore::PlaceholderModelPlayer::boundingBoxExtents const):
(WebCore::PlaceholderModelPlayer::entityTransform const):
(WebCore::PlaceholderModelPlayer::setEntityTransform):
(WebCore::PlaceholderModelPlayer::setAutoplay):
(WebCore::PlaceholderModelPlayer::setLoop):
(WebCore::PlaceholderModelPlayer::setPlaybackRate):
(WebCore::PlaceholderModelPlayer::duration const):
(WebCore::PlaceholderModelPlayer::paused const):
(WebCore::PlaceholderModelPlayer::setPaused):
(WebCore::PlaceholderModelPlayer::currentTime const):
(WebCore::PlaceholderModelPlayer::setCurrentTime):
(WebCore::PlaceholderModelPlayer::isPlayingAnimation):
(WebCore::PlaceholderModelPlayer::setAnimationIsPlaying):
(WebCore::PlaceholderModelPlayer::isLoopingAnimation):
(WebCore::PlaceholderModelPlayer::setIsLoopingAnimation):
(WebCore::PlaceholderModelPlayer::animationDuration):
(WebCore::PlaceholderModelPlayer::animationCurrentTime):
(WebCore::PlaceholderModelPlayer::setAnimationCurrentTime):
* Source/WebCore/Modules/model-element/PlaceholderModelPlayer.h:
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.cpp:
(WebCore::DummyModelPlayer::load):
(WebCore::DummyModelPlayer::isPlayingAnimation):
(WebCore::DummyModelPlayer::setAnimationIsPlaying):
(WebCore::DummyModelPlayer::isLoopingAnimation):
(WebCore::DummyModelPlayer::setIsLoopingAnimation):
(WebCore::DummyModelPlayer::animationDuration):
(WebCore::DummyModelPlayer::animationCurrentTime):
(WebCore::DummyModelPlayer::setAnimationCurrentTime):
* Source/WebCore/Modules/model-element/dummy/DummyModelPlayer.h:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.h:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.messages.in:
* Source/WebKit/ModelProcess/cocoa/ModelProcessModelPlayerProxy.mm:
(WebKit::ModelProcessModelPlayerProxy::loadModel):
(WebKit::ModelProcessModelPlayerProxy::reloadModel):
(WebKit::ModelProcessModelPlayerProxy::notifyModelPlayerOfEntityTransformChange):
(WebKit::ModelProcessModelPlayerProxy::animationPlaybackStateDidUpdate):
(WebKit::ModelProcessModelPlayerProxy::didFinishLoading):
(WebKit::ModelProcessModelPlayerProxy::didFailLoading):
(WebKit::ModelProcessModelPlayerProxy::load):
(WebKit::ModelProcessModelPlayerProxy::setEntityTransform):
(WebKit::ModelProcessModelPlayerProxy::isPlayingAnimation):
(WebKit::ModelProcessModelPlayerProxy::setAnimationIsPlaying):
(WebKit::ModelProcessModelPlayerProxy::isLoopingAnimation):
(WebKit::ModelProcessModelPlayerProxy::setIsLoopingAnimation):
(WebKit::ModelProcessModelPlayerProxy::animationDuration):
(WebKit::ModelProcessModelPlayerProxy::animationCurrentTime):
(WebKit::ModelProcessModelPlayerProxy::setAnimationCurrentTime):
(WebKit::ModelProcessModelPlayerProxy::setAutoplay):
(WebKit::ModelProcessModelPlayerProxy::setLoop):
(WebKit::ModelProcessModelPlayerProxy::setPlaybackRate):
(WebKit::ModelProcessModelPlayerProxy::duration const):
(WebKit::ModelProcessModelPlayerProxy::paused const):
(WebKit::ModelProcessModelPlayerProxy::setPaused):
(WebKit::ModelProcessModelPlayerProxy::currentTime const):
(WebKit::ModelProcessModelPlayerProxy::setCurrentTime):
(WebKit::ModelProcessModelPlayerProxy::captureStateForReload):
(WebKit::ModelProcessModelPlayerProxy::ensureImmersivePresentation):
(WebKit::ModelProcessModelPlayerProxy::exitImmersivePresentation):
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp:
(WebKit::ModelProcessModelPlayer::didFinishLoading):
(WebKit::ModelProcessModelPlayer::didFailLoading):
(WebKit::ModelProcessModelPlayer::didUpdateEntityTransform):
(WebKit::ModelProcessModelPlayer::didUpdateAnimationPlaybackState):
(WebKit::ModelProcessModelPlayer::currentAnimationState const):
(WebKit::ModelProcessModelPlayer::currentTransformState const):
(WebKit::ModelProcessModelPlayer::load):
(WebKit::ModelProcessModelPlayer::reload):
(WebKit::ModelProcessModelPlayer::boundingBoxCenter const):
(WebKit::ModelProcessModelPlayer::boundingBoxExtents const):
(WebKit::ModelProcessModelPlayer::entityTransform const):
(WebKit::ModelProcessModelPlayer::setEntityTransform):
(WebKit::ModelProcessModelPlayer::isPlayingAnimation):
(WebKit::ModelProcessModelPlayer::setAnimationIsPlaying):
(WebKit::ModelProcessModelPlayer::isLoopingAnimation):
(WebKit::ModelProcessModelPlayer::setIsLoopingAnimation):
(WebKit::ModelProcessModelPlayer::animationDuration):
(WebKit::ModelProcessModelPlayer::animationCurrentTime):
(WebKit::ModelProcessModelPlayer::setAnimationCurrentTime):
(WebKit::ModelProcessModelPlayer::setAutoplay):
(WebKit::ModelProcessModelPlayer::setLoop):
(WebKit::ModelProcessModelPlayer::setPlaybackRate):
(WebKit::ModelProcessModelPlayer::duration const):
(WebKit::ModelProcessModelPlayer::paused const):
(WebKit::ModelProcessModelPlayer::setPaused):
(WebKit::ModelProcessModelPlayer::currentTime const):
(WebKit::ModelProcessModelPlayer::setCurrentTime):
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.h:
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.messages.in:
* Source/WebKit/WebProcess/Model/WebModelPlayer.h:
* Source/WebKit/WebProcess/Model/WebModelPlayer.mm:
(WebKit::WebModelPlayer::duration const):
(WebKit::WebModelPlayer::load):
(WebKit::WebModelPlayer::notifyEntityTransformUpdated):
(WebKit::WebModelPlayer::handleMouseDown):
(WebKit::WebModelPlayer::isPlayingAnimation):
(WebKit::WebModelPlayer::setAnimationIsPlaying):
(WebKit::WebModelPlayer::isLoopingAnimation):
(WebKit::WebModelPlayer::setIsLoopingAnimation):
(WebKit::WebModelPlayer::animationDuration):
(WebKit::WebModelPlayer::animationCurrentTime):
(WebKit::WebModelPlayer::setAnimationCurrentTime):
(WebKit::WebModelPlayer::setPlaybackRate):
(WebKit::WebModelPlayer::update):
(WebKit::WebModelPlayer::notifyClientDidFinishLoading):
(WebKit::WebModelPlayer::play):
(WebKit::WebModelPlayer::setLoop):
(WebKit::WebModelPlayer::setAutoplay):
(WebKit::WebModelPlayer::setPaused):
(WebKit::WebModelPlayer::paused const):
(WebKit::WebModelPlayer::currentTime const):
(WebKit::WebModelPlayer::setCurrentTime):
(WebKit::WebModelPlayer::entityTransform const):
(WebKit::WebModelPlayer::setEntityTransform):
(WebKit::WebModelPlayer::visibilityStateDidChange):
(WebKit::WebModelPlayer::reload):
(WebKit::WebModelPlayer::currentAnimationState const):
(WebKit::WebModelPlayer::currentTransformState const):
(WebKit::WebModelPlayer::dynamicRangeLimitDidChange):
Canonical link: https://commits.webkit.org/318114@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications