Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 074a62d9796aa0232b99b092836899abea266ad8
      
https://github.com/WebKit/WebKit/commit/074a62d9796aa0232b99b092836899abea266ad8
  Author: Jean Haberer <[email protected]>
  Date:   2025-12-11 (Thu, 11 Dec 2025)

  Changed paths:
    M 
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt
    M Source/WebCore/Modules/model-element/HTMLModelElement.cpp
    M Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp
    M Source/WebCore/dom/DocumentImmersive.cpp
    M Source/WebCore/dom/DocumentImmersive.h

  Log Message:
  -----------
  Removing an immersive model from the DOM should exit immersive session
https://bugs.webkit.org/show_bug.cgi?id=303837
rdar://166145547

Reviewed by Mike Wyrzykowski.

Exit immersive on page reload, navigation, and whenever the
model element looses its model player.

* 
LayoutTests/model-element/immersive/model-element-immersive-basic-expected.txt:
Update expected test results.

* Source/WebCore/Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::deleteModelPlayer):
(WebCore::HTMLModelElement::removedFromAncestor):
Exit the immersive session whenever the model element
looses its model player.
Wait for the immersion exit completion before deleting the model player
to avoid black frames in the client app during dismissal.

* Source/WebCore/Modules/model-element/PlaceholderModelPlayer.cpp:
(WebCore::PlaceholderModelPlayer::exitImmersivePresentation):
During a page navigation event, the model player may be replaced by a 
placeholder,
this allows to deallocate unused resources. We can still support an immersive
exit event on a placeholder model player simply by invalidating the transform
so that it gets re-calculated whenever the placeholder is replaced by a live
model player again.

* Source/WebCore/dom/DocumentImmersive.cpp:
(WebCore::DocumentImmersive::requestImmersive):
(WebCore::DocumentImmersive::exitImmersive):
(WebCore::DocumentImmersive::exitRemovedImmersiveElement):
* Source/WebCore/dom/DocumentImmersive.h:

Canonical link: https://commits.webkit.org/304285@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to