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

Reply via email to