diff --git a/components/script/dom/webidls/XRTest.webidl b/components/script/dom/webidls/XRTest.webidl index 1b1d131d562..89af1da991e 100644 --- a/components/script/dom/webidls/XRTest.webidl +++ b/components/script/dom/webidls/XRTest.webidl @@ -13,7 +13,7 @@ interface XRTest { // // Simulates a user activation (aka user gesture) for the current scope. // // The activation is only guaranteed to be valid in the provided function and only applies to WebXR // // Device API methods. - // void simulateUserActivation(Function); + void simulateUserActivation(Function f); // // Disconnect all fake devices // Promise disconnectAllDevices(); diff --git a/components/script/dom/xrtest.rs b/components/script/dom/xrtest.rs index 6068a9a3e3a..8049b9ffa41 100644 --- a/components/script/dom/xrtest.rs +++ b/components/script/dom/xrtest.rs @@ -6,6 +6,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ +use crate::dom::bindings::callback::ExceptionHandling; +use crate::dom::bindings::codegen::Bindings::FunctionBinding::Function; use crate::dom::bindings::codegen::Bindings::XRTestBinding::{ self, FakeXRDeviceInit, XRTestMethods, }; @@ -162,4 +164,10 @@ impl XRTestMethods for XRTest { p } + + /// https://github.com/immersive-web/webxr-test-api/blob/master/explainer.md + fn SimulateUserActivation(&self, f: Rc) { + // XXXManishearth actually check for activation in XRSession + let _ = f.Call__(vec![], ExceptionHandling::Rethrow); + } }