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