Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5b9beee0a1a59647075d1f17db05d71830d05d6a
      
https://github.com/WebKit/WebKit/commit/5b9beee0a1a59647075d1f17db05d71830d05d6a
  Author: Etienne Segonzac <[email protected]>
  Date:   2026-10-08 (Thu, 08 Oct 2026)

  Changed paths:
    M LayoutTests/model-element/volumetric/resources/volumetric-utils.js
    M LayoutTests/model-element/volumetric/volumetric-scene-api-disabled.html
    M LayoutTests/model-element/volumetric/volumetric-scene-api-expected.txt
    M LayoutTests/model-element/volumetric/volumetric-scene-api.html
    A 
LayoutTests/model-element/volumetric/volumetric-scene-change-event-expected.txt
    A LayoutTests/model-element/volumetric/volumetric-scene-change-event.html
    M Source/WebCore/dom/Element+VolumetricScene.idl
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/Element.h
    M Source/WebCore/dom/ElementRareData.cpp
    M Source/WebCore/dom/ElementRareData.h
    M Source/WebCore/dom/ElementVolumetricScene.cpp
    M Source/WebCore/dom/ElementVolumetricScene.h
    M Source/WebCore/dom/EventNames.json

  Log Message:
  -----------
  [visionOS] Implement `onvolumetricchange` for Connected Volumetric Scenes
https://bugs.webkit.org/show_bug.cgi?id=326705
<rdar://189304353>

Reviewed by Mike Wyrzykowski.

Implement `onvolumetricchange` for the page to detect when a
Connected Volumetric Scene is opened close.

Add an `element.inVolumetricScene` so that the handler can distinguish
opening from closing (like for `onimmersivechange`). This is exposed on
the element (and not the document) to leave the door opened to having
multiple volumetric scenes at the same time in the future.

Test: model-element/volumetric/volumetric-scene-change-event.html

* LayoutTests/model-element/volumetric/resources/volumetric-utils.js:
* LayoutTests/model-element/volumetric/volumetric-scene-api-disabled.html:
* LayoutTests/model-element/volumetric/volumetric-scene-api-expected.txt:
* LayoutTests/model-element/volumetric/volumetric-scene-api.html:
Update the tests with this new API surface.

* 
LayoutTests/model-element/volumetric/volumetric-scene-change-event-expected.txt:
 Added.
* LayoutTests/model-element/volumetric/volumetric-scene-change-event.html: 
Added.
Add a new test to cover all cases of opening/closing a volumetric scene.

* Source/WebCore/dom/Element+VolumetricScene.idl:
Add the new API surface to the IDL (already conditioned on the compile
time feature flag).

* Source/WebCore/dom/Element.cpp:
(WebCore::Element::isVolumetricSceneEstablished const):
(WebCore::Element::setVolumetricSceneEstablished):
* Source/WebCore/dom/Element.h:
* Source/WebCore/dom/ElementRareData.h:
(WebCore::ElementRareData::isVolumetricSceneEstablished const):
(WebCore::ElementRareData::setVolumetricSceneEstablished):
Add a rare data flag on Element to keep track of the volumetric scene
state.

* Source/WebCore/dom/ElementVolumetricScene.cpp:
(WebCore::ElementVolumetricScene::inVolumetricScene):
(WebCore::ElementVolumetricScene::setInVolumetricScene):
(WebCore::ElementVolumetricScene::requestVolumetricScene):
(WebCore::ElementVolumetricScene::volumetricSceneDidClose):
* Source/WebCore/dom/ElementVolumetricScene.h:
Update the state and dispatch the event when the volumetric scene is
opened or closed.

* Source/WebCore/dom/EventNames.json:
Introduce the `volumetricchange` event named, conditioned on the flag.
* Source/WebCore/dom/ElementRareData.cpp:

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



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

Reply via email to