Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 77b3be1d7a731a6280de28e4637392c8ec4f7fb2
https://github.com/WebKit/WebKit/commit/77b3be1d7a731a6280de28e4637392c8ec4f7fb2
Author: Jean Haberer <[email protected]>
Date: 2025-12-02 (Tue, 02 Dec 2025)
Changed paths:
M
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt
M LayoutTests/model-element/immersive/model-element-immersive-basic.html
A
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline-expected.txt
A
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline.html
M
LayoutTests/model-element/immersive/model-element-immersive-no-client-approval.html
M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
M Source/WebCore/Modules/model-element/HTMLModelElement.h
M
Source/WebCore/Modules/model-element/ModelPlayerGraphicsLayerConfiguration.h
M Source/WebCore/dom/DocumentImmersive.cpp
M Source/WebCore/dom/DocumentImmersive.h
M Source/WebCore/platform/graphics/GraphicsLayer.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
M Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp
Log Message:
-----------
Prepare the <model> for an immersive presentation
https://bugs.webkit.org/show_bug.cgi?id=303238
rdar://165527010
Reviewed by Etienne Segonzac.
Add logic to ensure that a model player is running before entering the model in
immersive
Add logic to allow the creation of the model player for hidden inline models
Remove the inline model from the rendered page
Test: model-element/immersive/model-element-immersive-hidden-inline.html
*
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt:
* LayoutTests/model-element/immersive/model-element-immersive-basic.html:
*
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline-expected.txt:
Added.
*
LayoutTests/model-element/immersive/model-element-immersive-hidden-inline.html:
Copied from
LayoutTests/model-element/immersive/model-element-immersive-no-client-approval.html.
*
LayoutTests/model-element/immersive/model-element-immersive-no-client-approval.html:
Update test results to reflect the current state.
Add a test for hidden inline models.
* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::isVisible const):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::reloadModelPlayer):
(WebCore::HTMLModelElement::configureGraphicsLayer):
(WebCore::HTMLModelElement::setEntityTransform):
(WebCore::HTMLModelElement::modelResourceFinished):
(WebCore::HTMLModelElement::ensureImmersivePresentation):
(WebCore::HTMLModelElement::exitImmersivePresentation):
(WebCore::HTMLModelElement::setDetachedForImmersive):
(WebCore::HTMLModelElement::ensureModelPlayer):
(WebCore::HTMLModelElement::triggerModelPlayerCreationCallbacksIfNeeded):
(WebCore::HTMLModelElement::modelContainerSizeIsEmpty const):
(WebCore::HTMLModelElement::sourceRequestResource):
Add a method to ensure the presence of a model player.
This will either directly give the current running model player if it exists,
wake up a suspended model player, or start a new model player creation request.
* Source/WebCore/Modules/model-element/HTMLModelElement.h:
* Source/WebCore/Modules/model-element/ModelPlayerGraphicsLayerConfiguration.h:
* Source/WebCore/dom/DocumentImmersive.cpp:
(WebCore::DocumentImmersive::exitImmersive):
(WebCore::DocumentImmersive::requestImmersive):
* Source/WebCore/dom/DocumentImmersive.h:
* Source/WebCore/platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::removeModelContents):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::removeModelContents):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebKit/WebProcess/Model/ModelProcessModelPlayer.cpp:
(WebKit::ModelProcessModelPlayer::configureGraphicsLayer):
Remove the model inline presentation if needed.
Canonical link: https://commits.webkit.org/303751@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications