/* * Copyright (c) 2025, Psychpsyo * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Web::Internals { struct FakeXRDeviceInit { Optional> supported_modes; Optional> supported_features; }; // https://github.com/immersive-web/webxr-test-api/blob/main/explainer.md class WEB_API FakeXRDevice final : public InternalsBase { WEB_PLATFORM_OBJECT(FakeXRDevice, InternalsBase); GC_DECLARE_ALLOCATOR(FakeXRDevice); public: static GC::Ref create(JS::Realm&); virtual ~FakeXRDevice() override; void simulate_user_activation(GC::Ref) const; GC::Ref disconnect() const; private: explicit FakeXRDevice(JS::Realm&); virtual void initialize(JS::Realm&) override; }; }