summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/webxr
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/meta/webxr')
-rw-r--r--testing/web-platform/meta/webxr/__dir__.ini3
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_create_move.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_failure.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_getAnchors.https.html.ini12
-rw-r--r--testing/web-platform/meta/webxr/anchors/ar_anchor_states.https.html.ini19
-rw-r--r--testing/web-platform/meta/webxr/anchors/idlharness.https.window.js.ini63
-rw-r--r--testing/web-platform/meta/webxr/ar-module/idlharness.https.window.js.ini19
-rw-r--r--testing/web-platform/meta/webxr/ar-module/xrDevice_isSessionSupported_immersive-ar.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html.ini10
-rw-r--r--testing/web-platform/meta/webxr/ar-module/xrSession_environmentBlendMode.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/ar-module/xrSession_interactionMode.https.html.ini31
-rw-r--r--testing/web-platform/meta/webxr/camera-access/xrCamera_resolution.https.html.ini6
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/depth_sensing_notEnabled.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay.https.html.ini34
-rw-r--r--testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/dom-overlay/idlharness.https.window.js.ini28
-rw-r--r--testing/web-platform/meta/webxr/dom-overlay/nested_fullscreen.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_input_source_recreation.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_input_sources_change.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_referenceSpace_reset_immersive.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_referenceSpace_reset_inline.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_session_select.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_session_select_subframe.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/events_session_squeeze.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/exclusive_requestFrame_nolayer.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/gamepads-module/idlharness.https.window.js.ini4
-rw-r--r--testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/getInputPose_handedness.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/getInputPose_pointer.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/getViewerPose_emulatedPosition.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/hand-input/idlharness.https.window.js.ini82
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_source_cancel.https.html.ini25
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_inputSources.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_regular.https.html.ini19
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_transient.https.html.ini19
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_unlocalizable.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/hit-test/idlharness.https.html.ini157
-rw-r--r--testing/web-platform/meta/webxr/hit-test/xrRay_constructor.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/hit-test/xrRay_matrix.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/idlharness.https.window.js.ini837
-rw-r--r--testing/web-platform/meta/webxr/layers/xrWebGLBinding_constructor.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_valid.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_ended.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_valid.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/navigator_xr_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/render_state_update.https.html.ini31
-rw-r--r--testing/web-platform/meta/webxr/render_state_vertical_fov_immersive.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/render_state_vertical_fov_inline.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_reentrant.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/webxr-supported-by-feature-policy.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/webxr_feature_policy.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrBoundedReferenceSpace_updates.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_disconnect_ends.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive_unsupported.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_isSessionSupported_inline.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_immersive.https.html.ini19
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_no_gesture.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_unsupported.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_no_mode.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini25
-rw-r--r--testing/web-platform/meta/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrFrame_getPose.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose_identities.https.html.ini2
-rw-r--r--testing/web-platform/meta/webxr/xrFrame_lifetime.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrFrame_session_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrInputSource_add_remove.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrInputSource_emulatedPosition.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrInputSource_getPose_targetRay_grip.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrInputSource_profiles.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrInputSource_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrPose_transform_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrReferenceSpace_originOffset.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrReferenceSpace_originOffsetBounded.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrReferenceSpace_originOffset_viewer.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrReferenceSpace_relationships.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrRigidTransform_constructor.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrRigidTransform_inverse.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrRigidTransform_matrix.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrRigidTransform_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_enabledFeatures.https.html.ini6
-rw-r--r--testing/web-platform/meta/webxr/xrSession_end.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_features_deviceSupport.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrSession_input_events_end.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrSession_prevent_multiple_exclusive.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_callback_calls.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_data_valid.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_timestamp.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestReferenceSpace_features.https.html.ini73
-rw-r--r--testing/web-platform/meta/webxr/xrSession_requestSessionDuringEnd.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrSession_viewer_availability.https.html.ini4
-rw-r--r--testing/web-platform/meta/webxr/xrSession_viewer_referenceSpace.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrSession_visibilityState.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrView_eyes.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrView_match.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrView_oneframeupdate.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrView_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrViewerPose_secondaryViews.https.html.ini24
-rw-r--r--testing/web-platform/meta/webxr/xrViewerPose_views_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrViewport_valid.https.html.ini12
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_constructor.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_draw.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_sameObject.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_scale.https.html.ini7
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html.ini13
-rw-r--r--testing/web-platform/meta/webxr/xrWebGLLayer_viewports.https.html.ini24
-rw-r--r--testing/web-platform/meta/webxr/xr_viewport_scale.https.html.ini85
136 files changed, 2484 insertions, 0 deletions
diff --git a/testing/web-platform/meta/webxr/__dir__.ini b/testing/web-platform/meta/webxr/__dir__.ini
new file mode 100644
index 0000000000..d538a5ad5d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/__dir__.ini
@@ -0,0 +1,3 @@
+disabled:
+ if os == "android": bug 1544658 (frequent crashes)
+leak-threshold: [default:51200]
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_create_move.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_create_move.https.html.ini
new file mode 100644
index 0000000000..9a37e35a70
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_create_move.https.html.ini
@@ -0,0 +1,7 @@
+[ar_anchor_freefloating_create_move.https.html]
+ [Ensures free-floating anchor move gets propagated to anchor poses - webgl]
+ expected: FAIL
+
+ [Ensures free-floating anchor move gets propagated to anchor poses - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html.ini
new file mode 100644
index 0000000000..ddff0d143f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_delay_creation.https.html.ini
@@ -0,0 +1,13 @@
+[ar_anchor_freefloating_delay_creation.https.html]
+ [Ensures free-floating anchor creation with delayed failure is handled correctly - webgl2]
+ expected: FAIL
+
+ [Ensures free-floating anchor creation with delayed success is handled correctly - webgl]
+ expected: FAIL
+
+ [Ensures free-floating anchor creation with delayed failure is handled correctly - webgl]
+ expected: FAIL
+
+ [Ensures free-floating anchor creation with delayed success is handled correctly - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_failure.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_failure.https.html.ini
new file mode 100644
index 0000000000..830b02d547
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_failure.https.html.ini
@@ -0,0 +1,7 @@
+[ar_anchor_freefloating_failure.https.html]
+ [Ensures free-floating anchor creation failure is handled correctly - webgl2]
+ expected: FAIL
+
+ [Ensures free-floating anchor creation failure is handled correctly - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html.ini
new file mode 100644
index 0000000000..d2e38c18ac
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_freefloating_pause_resume_stop.https.html.ini
@@ -0,0 +1,7 @@
+[ar_anchor_freefloating_pause_resume_stop.https.html]
+ [Ensures free-floating anchor state changes get propagated - webgl2]
+ expected: FAIL
+
+ [Ensures free-floating anchor state changes get propagated - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_getAnchors.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_getAnchors.https.html.ini
new file mode 100644
index 0000000000..87cdc37c23
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_getAnchors.https.html.ini
@@ -0,0 +1,12 @@
+[ar_anchor_getAnchors.https.html]
+ [XRFrame's trackedAnchors is empty when the feature was not requested - webgl]
+ expected: FAIL
+
+ [XRFrame's trackedAnchors is empty when the feature was not requested - webgl2]
+ expected: FAIL
+
+ [XRFrame's trackedAnchors is empty when the feature was requested - webgl]
+ expected: FAIL
+
+ [XRFrame's trackedAnchors is empty when the feature was requested - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/anchors/ar_anchor_states.https.html.ini b/testing/web-platform/meta/webxr/anchors/ar_anchor_states.https.html.ini
new file mode 100644
index 0000000000..c3c4cf40a0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/ar_anchor_states.https.html.ini
@@ -0,0 +1,19 @@
+[ar_anchor_states.https.html]
+ [Anchor creation succeeds if the feature was requested - webgl2]
+ expected: FAIL
+
+ [Anchor creation fails if the feature was not requested - webgl2]
+ expected: FAIL
+
+ [Anchor creation fails if the feature was not requested - webgl]
+ expected: FAIL
+
+ [Anchor creation fails if the feature was requested but the session already ended - webgl2]
+ expected: FAIL
+
+ [Anchor creation fails if the feature was requested but the session already ended - webgl]
+ expected: FAIL
+
+ [Anchor creation succeeds if the feature was requested - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/anchors/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/anchors/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..7f696973aa
--- /dev/null
+++ b/testing/web-platform/meta/webxr/anchors/idlharness.https.window.js.ini
@@ -0,0 +1,63 @@
+[idlharness.https.window.html]
+ [XRHitTestResult interface: operation createAnchor()]
+ expected: FAIL
+
+ [XRAnchor interface object name]
+ expected: FAIL
+
+ [XRAnchor interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRAnchor interface object length]
+ expected: FAIL
+
+ [XRAnchorSet interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRAnchorSet interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRAnchor interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRFrame interface: operation createAnchor(XRRigidTransform, XRSpace)]
+ expected: FAIL
+
+ [XRFrame interface: attribute trackedAnchors]
+ expected: FAIL
+
+ [XRAnchor interface: operation delete()]
+ expected: FAIL
+
+ [XRAnchorSet interface object name]
+ expected: FAIL
+
+ [XRAnchor interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRAnchorSet interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRAnchor interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRAnchor interface: attribute anchorSpace]
+ expected: FAIL
+
+ [XRAnchorSet interface object length]
+ expected: FAIL
+
+ [XRAnchorSet interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRAnchorSet interface: setlike<XRAnchor>]
+ expected: FAIL
+
+ [XRAnchor interface: operation requestPersistentHandle()]
+ expected: FAIL
+
+ [XRSession interface: operation restorePersistentAnchor(DOMString)]
+ expected: FAIL
+
+ [XRSession interface: operation deletePersistentAnchor(DOMString)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/ar-module/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/ar-module/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..bebeae225a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/ar-module/idlharness.https.window.js.ini
@@ -0,0 +1,19 @@
+[idlharness.https.window.html]
+ [XRSession interface: attribute environmentBlendMode]
+ expected: FAIL
+
+ [XRSession interface: attribute interactionMode]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "environmentBlendMode" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "interactionMode" with the proper type]
+ expected: FAIL
+
+ [XRView interface: attribute isFirstPersonObserver]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/ar-module/xrDevice_isSessionSupported_immersive-ar.https.html.ini b/testing/web-platform/meta/webxr/ar-module/xrDevice_isSessionSupported_immersive-ar.https.html.ini
new file mode 100644
index 0000000000..b4c7bff756
--- /dev/null
+++ b/testing/web-platform/meta/webxr/ar-module/xrDevice_isSessionSupported_immersive-ar.https.html.ini
@@ -0,0 +1,7 @@
+[xrDevice_isSessionSupported_immersive-ar.https.html]
+ [isSessionSupported resolves to true for immersive-ar on a supported device]
+ expected: FAIL
+
+ [isSessionSupported resolves to false for immersive-ar on an unsupported device]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html.ini b/testing/web-platform/meta/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html.ini
new file mode 100644
index 0000000000..4efda054c0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/ar-module/xrDevice_requestSession_immersive-ar.https.html.ini
@@ -0,0 +1,10 @@
+[xrDevice_requestSession_immersive-ar.https.html]
+ [Tests requestSession rejects immersive-ar mode when unsupported]
+ expected: FAIL
+
+ [Tests requestSession accepts immersive-ar mode - webgl2]
+ expected: FAIL
+
+ [Tests requestSession accepts immersive-ar mode - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/ar-module/xrSession_environmentBlendMode.https.html.ini b/testing/web-platform/meta/webxr/ar-module/xrSession_environmentBlendMode.https.html.ini
new file mode 100644
index 0000000000..8ea2552656
--- /dev/null
+++ b/testing/web-platform/meta/webxr/ar-module/xrSession_environmentBlendMode.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_environmentBlendMode.https.html]
+ [Tests environmentBlendMode for an AR device - webgl2]
+ expected: FAIL
+
+ [Tests environmentBlendMode for a VR device - webgl]
+ expected: FAIL
+
+ [Tests environmentBlendMode for an AR device - webgl]
+ expected: FAIL
+
+ [Tests environmentBlendMode for a VR device - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/ar-module/xrSession_interactionMode.https.html.ini b/testing/web-platform/meta/webxr/ar-module/xrSession_interactionMode.https.html.ini
new file mode 100644
index 0000000000..52725941cf
--- /dev/null
+++ b/testing/web-platform/meta/webxr/ar-module/xrSession_interactionMode.https.html.ini
@@ -0,0 +1,31 @@
+[xrSession_interactionMode.https.html]
+ [Tests interactionMode for an AR_HMD_DEVICE - webgl]
+ expected: FAIL
+
+ [Tests interactionMode for an VR_HMD_DEVICE - webgl]
+ expected: FAIL
+
+ [Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl]
+ expected: FAIL
+
+ [Tests interactionMode for a INLINE_SCREEN_DEVICE - webgl2]
+ expected: FAIL
+
+ [Tests interactionMode for an AR_SCREEN_DEVICE - webgl2]
+ expected: FAIL
+
+ [Tests interactionMode for an AR_SCREEN_DEVICE - webgl]
+ expected: FAIL
+
+ [Tests interactionMode for an VR_SCREEN_DEVICE - webgl]
+ expected: FAIL
+
+ [Tests interactionMode for an VR_SCREEN_DEVICE - webgl2]
+ expected: FAIL
+
+ [Tests interactionMode for an AR_HMD_DEVICE - webgl2]
+ expected: FAIL
+
+ [Tests interactionMode for an VR_HMD_DEVICE - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/camera-access/xrCamera_resolution.https.html.ini b/testing/web-platform/meta/webxr/camera-access/xrCamera_resolution.https.html.ini
new file mode 100644
index 0000000000..ec9cccde08
--- /dev/null
+++ b/testing/web-platform/meta/webxr/camera-access/xrCamera_resolution.https.html.ini
@@ -0,0 +1,6 @@
+[xrCamera_resolution.https.html]
+ [XRCamera object is present and carries expected dimensions - webgl]
+ expected: FAIL
+
+ [XRCamera object is present and carries expected dimensions - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html.ini
new file mode 100644
index 0000000000..fed069ed36
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_dataUnavailable.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_cpu_dataUnavailable.https.html]
+ [Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl]
+ expected: FAIL
+
+ [Ensures depth data is not available when cleared in the controller, `cpu-optimized` - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html.ini
new file mode 100644
index 0000000000..67d0e4bbdd
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_inactiveFrame.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_cpu_inactiveFrame.https.html]
+ [Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl]
+ expected: FAIL
+
+ [Ensures getDepthInformation() throws when not run in an active frame, `cpu-optimized` - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https.html.ini
new file mode 100644
index 0000000000..15ef5e0b2e
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_incorrectUsage.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_cpu_incorrectUsage.https.html]
+ [Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl]
+ expected: FAIL
+
+ [Ensures XRWebGLDepthInformation is not obtainable in `cpu-optimized` usage mode - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https.html.ini
new file mode 100644
index 0000000000..21e673f076
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_luminance_alpha_dataValid.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_cpu_luminance_alpha_dataValid.https.html]
+ [Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl]
+ expected: FAIL
+
+ [Ensures depth data is returned and values match expectation, cpu-optimized, luminance-alpha. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html.ini
new file mode 100644
index 0000000000..0887ed820f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/cpu/depth_sensing_cpu_staleView.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_cpu_staleView.https.html]
+ [Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl]
+ expected: FAIL
+
+ [Ensures getDepthInformation() throws when run with stale XRView, `cpu-optimized` - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/depth_sensing_notEnabled.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/depth_sensing_notEnabled.https.html.ini
new file mode 100644
index 0000000000..05bf0639cd
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/depth_sensing_notEnabled.https.html.ini
@@ -0,0 +1,13 @@
+[depth_sensing_notEnabled.https.html]
+ [XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl]
+ expected: FAIL
+
+ [XRFrame.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2]
+ expected: FAIL
+
+ [XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl]
+ expected: FAIL
+
+ [XRWebGLBinding.getDepthInformation() rejects if depth sensing is not enabled on a session - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html.ini
new file mode 100644
index 0000000000..6f14589c24
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_dataUnavailable.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_gpu_dataUnavailable.https.html]
+ [Ensures depth data is not available when cleared in the controller, `gpu-optimized` - webgl]
+ expected: FAIL
+
+ [Ensures depth data is not available when cleared in the controller, `gpu-optimized` - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html.ini
new file mode 100644
index 0000000000..fb13f891c0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_inactiveFrame.https.html.ini
@@ -0,0 +1,2 @@
+[depth_sensing_gpu_inactiveFrame.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https.html.ini
new file mode 100644
index 0000000000..88992c47e6
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_incorrectUsage.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_gpu_incorrectUsage.https.html]
+ [Ensures XRCPUDepthInformation is not obtainable in `gpu-optimized` usage mode - webgl]
+ expected: FAIL
+
+ [Ensures XRCPUDepthInformation is not obtainable in `gpu-optimized` usage mode - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html.ini b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html.ini
new file mode 100644
index 0000000000..eae490182b
--- /dev/null
+++ b/testing/web-platform/meta/webxr/depth-sensing/gpu/depth_sensing_gpu_staleView.https.html.ini
@@ -0,0 +1,7 @@
+[depth_sensing_gpu_staleView.https.html]
+ [Ensures getDepthInformation() throws when not run with stale XRView, `gpu-optimized` - webgl]
+ expected: FAIL
+
+ [Ensures getDepthInformation() throws when not run with stale XRView, `gpu-optimized` - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay.https.html.ini b/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay.https.html.ini
new file mode 100644
index 0000000000..89c71125fe
--- /dev/null
+++ b/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay.https.html.ini
@@ -0,0 +1,34 @@
+[ar_dom_overlay.https.html]
+ [Ensures DOM Overlay rejected without root element]
+ expected: FAIL
+
+ [Ensures DOM Overlay input deduplication works - webgl2]
+ expected: FAIL
+
+ [Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl2]
+ expected: FAIL
+
+ [Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl2]
+ expected: FAIL
+
+ [Ensures DOM Overlay interactions on cross origin iframe are ignored - webgl]
+ expected: FAIL
+
+ [Ensures DOM Overlay feature works for immersive-ar, body element - webgl]
+ expected: FAIL
+
+ [Ensures DOM Overlay Fullscreen API doesn't change DOM overlay - webgl]
+ expected: FAIL
+
+ [Ensures DOM Overlay feature works for immersive-ar, div element - webgl2]
+ expected: FAIL
+
+ [Ensures DOM Overlay input deduplication works - webgl]
+ expected: FAIL
+
+ [Ensures DOM Overlay feature works for immersive-ar, body element - webgl2]
+ expected: FAIL
+
+ [Ensures DOM Overlay feature works for immersive-ar, div element - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html.ini b/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html.ini
new file mode 100644
index 0000000000..39d3a1c94c
--- /dev/null
+++ b/testing/web-platform/meta/webxr/dom-overlay/ar_dom_overlay_hit_test.https.html.ini
@@ -0,0 +1,2 @@
+[ar_dom_overlay_hit_test.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/dom-overlay/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/dom-overlay/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..65f7e7305e
--- /dev/null
+++ b/testing/web-platform/meta/webxr/dom-overlay/idlharness.https.window.js.ini
@@ -0,0 +1,28 @@
+[idlharness.https.window.html]
+ [HTMLElement interface: attribute onbeforexrselect]
+ expected: FAIL
+
+ [Document interface: attribute onbeforexrselect]
+ expected: FAIL
+
+ [Window interface: attribute onbeforexrselect]
+ expected: FAIL
+
+ [XRSession interface: attribute domOverlayState]
+ expected: FAIL
+
+ [SVGElement interface: svgElement must inherit property "onbeforexrselect" with the proper type]
+ expected: FAIL
+
+ [Document interface: document must inherit property "onbeforexrselect" with the proper type]
+ expected: FAIL
+
+ [Window interface: window must inherit property "onbeforexrselect" with the proper type]
+ expected: FAIL
+
+ [HTMLElement interface: document.body must inherit property "onbeforexrselect" with the proper type]
+ expected: FAIL
+
+ [SVGElement interface: attribute onbeforexrselect]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/dom-overlay/nested_fullscreen.https.html.ini b/testing/web-platform/meta/webxr/dom-overlay/nested_fullscreen.https.html.ini
new file mode 100644
index 0000000000..992ff1aca4
--- /dev/null
+++ b/testing/web-platform/meta/webxr/dom-overlay/nested_fullscreen.https.html.ini
@@ -0,0 +1,7 @@
+[nested_fullscreen.https.html]
+ [Check XR session from fullscreen - webgl2]
+ expected: FAIL
+
+ [Check XR session from fullscreen - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_input_source_recreation.https.html.ini b/testing/web-platform/meta/webxr/events_input_source_recreation.https.html.ini
new file mode 100644
index 0000000000..84dd98f469
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_input_source_recreation.https.html.ini
@@ -0,0 +1,7 @@
+[events_input_source_recreation.https.html]
+ [Input sources are re-created when handedness or target ray mode changes - webgl2]
+ expected: FAIL
+
+ [Input sources are re-created when handedness or target ray mode changes - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_input_sources_change.https.html.ini b/testing/web-platform/meta/webxr/events_input_sources_change.https.html.ini
new file mode 100644
index 0000000000..134434a757
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_input_sources_change.https.html.ini
@@ -0,0 +1,7 @@
+[events_input_sources_change.https.html]
+ [Transient input sources fire events in the right order - webgl2]
+ expected: FAIL
+
+ [Transient input sources fire events in the right order - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_referenceSpace_reset_immersive.https.html.ini b/testing/web-platform/meta/webxr/events_referenceSpace_reset_immersive.https.html.ini
new file mode 100644
index 0000000000..7919292fc7
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_referenceSpace_reset_immersive.https.html.ini
@@ -0,0 +1,7 @@
+[events_referenceSpace_reset_immersive.https.html]
+ [XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRSession resetpose from a device properly fires off the right events for immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_referenceSpace_reset_inline.https.html.ini b/testing/web-platform/meta/webxr/events_referenceSpace_reset_inline.https.html.ini
new file mode 100644
index 0000000000..192d8334c4
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_referenceSpace_reset_inline.https.html.ini
@@ -0,0 +1,7 @@
+[events_referenceSpace_reset_inline.https.html]
+ [XRSession resetpose from a device properly fires off the right events for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRSession resetpose from a device properly fires off the right events for non-immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_session_select.https.html.ini b/testing/web-platform/meta/webxr/events_session_select.https.html.ini
new file mode 100644
index 0000000000..94271b68e1
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_session_select.https.html.ini
@@ -0,0 +1,7 @@
+[events_session_select.https.html]
+ [XRInputSources primary input presses properly fires off the right events - webgl]
+ expected: FAIL
+
+ [XRInputSources primary input presses properly fires off the right events - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_session_select_subframe.https.html.ini b/testing/web-platform/meta/webxr/events_session_select_subframe.https.html.ini
new file mode 100644
index 0000000000..a7b8b67931
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_session_select_subframe.https.html.ini
@@ -0,0 +1,7 @@
+[events_session_select_subframe.https.html]
+ [Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl2]
+ expected: FAIL
+
+ [Ensures that an XRInputSources primary input being pressed and released in the space of a single frame properly fires off the right events - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/events_session_squeeze.https.html.ini b/testing/web-platform/meta/webxr/events_session_squeeze.https.html.ini
new file mode 100644
index 0000000000..755fde1ccd
--- /dev/null
+++ b/testing/web-platform/meta/webxr/events_session_squeeze.https.html.ini
@@ -0,0 +1,7 @@
+[events_session_squeeze.https.html]
+ [XRInputSources primary input presses properly fires off the right events - webgl]
+ expected: FAIL
+
+ [XRInputSources primary input presses properly fires off the right events - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/exclusive_requestFrame_nolayer.https.html.ini b/testing/web-platform/meta/webxr/exclusive_requestFrame_nolayer.https.html.ini
new file mode 100644
index 0000000000..73074ad280
--- /dev/null
+++ b/testing/web-platform/meta/webxr/exclusive_requestFrame_nolayer.https.html.ini
@@ -0,0 +1,13 @@
+[exclusive_requestFrame_nolayer.https.html]
+ [XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl2]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl2]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame must fail if the session has no baseLayer for non immersive - webgl]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame must fail if the session has no baseLayer for immersive - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/gamepads-module/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/gamepads-module/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..ee1d63b830
--- /dev/null
+++ b/testing/web-platform/meta/webxr/gamepads-module/idlharness.https.window.js.ini
@@ -0,0 +1,4 @@
+[idlharness.https.window.html]
+ [XRInputSource interface: attribute gamepad]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini b/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
new file mode 100644
index 0000000000..aba9da4c7d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_disconnect.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_gamepad_disconnect.https.html]
+ [WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl2]
+ expected: FAIL
+
+ [WebXR InputSource's gamepad gets disconnected when the input source is removed - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html.ini b/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html.ini
new file mode 100644
index 0000000000..006d85eb8c
--- /dev/null
+++ b/testing/web-platform/meta/webxr/gamepads-module/xrInputSource_gamepad_input_registered.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_gamepad_input_registered.https.html]
+ [WebXR InputSource's gamepad properly registers input - webgl2]
+ expected: FAIL
+
+ [WebXR InputSource's gamepad properly registers input - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/getInputPose_handedness.https.html.ini b/testing/web-platform/meta/webxr/getInputPose_handedness.https.html.ini
new file mode 100644
index 0000000000..e7911b8f5d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/getInputPose_handedness.https.html.ini
@@ -0,0 +1,7 @@
+[getInputPose_handedness.https.html]
+ [XRInputSources properly communicate their handedness - webgl2]
+ expected: FAIL
+
+ [XRInputSources properly communicate their handedness - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/getInputPose_pointer.https.html.ini b/testing/web-platform/meta/webxr/getInputPose_pointer.https.html.ini
new file mode 100644
index 0000000000..720dfaf832
--- /dev/null
+++ b/testing/web-platform/meta/webxr/getInputPose_pointer.https.html.ini
@@ -0,0 +1,7 @@
+[getInputPose_pointer.https.html]
+ [XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl2]
+ expected: FAIL
+
+ [XRInputSources with a target ray mode of 'tracked-pointer' properly communicate their poses - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/getViewerPose_emulatedPosition.https.html.ini b/testing/web-platform/meta/webxr/getViewerPose_emulatedPosition.https.html.ini
new file mode 100644
index 0000000000..381eaf4af1
--- /dev/null
+++ b/testing/web-platform/meta/webxr/getViewerPose_emulatedPosition.https.html.ini
@@ -0,0 +1,7 @@
+[getViewerPose_emulatedPosition.https.html]
+ [XRFrame getViewerPose has emulatedPosition set properly. - webgl2]
+ expected: FAIL
+
+ [XRFrame getViewerPose has emulatedPosition set properly. - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hand-input/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/hand-input/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..370e49c04f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hand-input/idlharness.https.window.js.ini
@@ -0,0 +1,82 @@
+[idlharness.https.window.html]
+ [XRHand interface object name]
+ expected: FAIL
+
+ [XRHand interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRJointPose interface: attribute radius]
+ expected: FAIL
+
+ [XRJointPose interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRJointSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRFrame interface: operation getJointPose(XRJointSpace, XRSpace)]
+ expected: FAIL
+
+ [XRJointSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRHand interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRHand interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRJointSpace interface object length]
+ expected: FAIL
+
+ [XRJointPose interface object name]
+ expected: FAIL
+
+ [XRJointPose interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRJointSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSource interface: attribute hand]
+ expected: FAIL
+
+ [XRJointSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRJointPose interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRJointPose interface object length]
+ expected: FAIL
+
+ [XRHand interface object length]
+ expected: FAIL
+
+ [XRJointPose interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRJointSpace interface object name]
+ expected: FAIL
+
+ [XRHand interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRFrame interface: operation fillJointRadii(sequence<XRJointSpace>, Float32Array)]
+ expected: FAIL
+
+ [XRFrame interface: operation fillPoses(sequence<XRSpace>, XRSpace, Float32Array)]
+ expected: FAIL
+
+ [XRHand interface: operation get(XRHandJoint)]
+ expected: FAIL
+
+ [XRHand interface: iterable<XRHandJoint, XRJointSpace>]
+ expected: FAIL
+
+ [XRHand interface: attribute size]
+ expected: FAIL
+
+ [XRJointSpace interface: attribute jointName]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_source_cancel.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_source_cancel.https.html.ini
new file mode 100644
index 0000000000..f27aadea4a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_source_cancel.https.html.ini
@@ -0,0 +1,25 @@
+[ar_hittest_source_cancel.https.html]
+ [Ensures hit test source cancellation works when the session has ended - webgl2]
+ expected: FAIL
+
+ [Ensures hit test source cancellation works when the session has not ended. - webgl2]
+ expected: FAIL
+
+ [Ensures hit test source cancellation works when the session has not ended. - webgl]
+ expected: FAIL
+
+ [Ensures transient input hit test source cancellation works when the session has not ended. - webgl]
+ expected: FAIL
+
+ [Ensures hit test source cancellation works when the session has ended - webgl]
+ expected: FAIL
+
+ [Ensures transient input hit test source cancellation works when the session has ended - webgl2]
+ expected: FAIL
+
+ [Ensures transient input hit test source cancellation works when the session has ended - webgl]
+ expected: FAIL
+
+ [Ensures transient input hit test source cancellation works when the session has not ended. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_inputSources.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_inputSources.https.html.ini
new file mode 100644
index 0000000000..670b46927b
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_inputSources.https.html.ini
@@ -0,0 +1,2 @@
+[ar_hittest_subscription_inputSources.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html.ini
new file mode 100644
index 0000000000..acc47d4ee0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_refSpaces.https.html.ini
@@ -0,0 +1,2 @@
+[ar_hittest_subscription_refSpaces.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_regular.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_regular.https.html.ini
new file mode 100644
index 0000000000..75c0cd7461
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_regular.https.html.ini
@@ -0,0 +1,19 @@
+[ar_hittest_subscription_states_regular.https.html]
+ [Hit test subscription fails if the feature was not requested - webgl2]
+ expected: FAIL
+
+ [Hit test subscription fails if the feature was requested but the session already ended - webgl]
+ expected: FAIL
+
+ [Hit test subscription succeeds if the feature was requested - webgl]
+ expected: FAIL
+
+ [Hit test subscription fails if the feature was requested but the session already ended - webgl2]
+ expected: FAIL
+
+ [Hit test subscription fails if the feature was not requested - webgl]
+ expected: FAIL
+
+ [Hit test subscription succeeds if the feature was requested - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_transient.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_transient.https.html.ini
new file mode 100644
index 0000000000..11aadc9058
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_states_transient.https.html.ini
@@ -0,0 +1,19 @@
+[ar_hittest_subscription_states_transient.https.html]
+ [Transient test subscription fails if the feature was requested but the session already ended - webgl]
+ expected: FAIL
+
+ [Transient hit test subscription fails if the feature was not requested - webgl2]
+ expected: FAIL
+
+ [Transient test subscription fails if the feature was requested but the session already ended - webgl2]
+ expected: FAIL
+
+ [Transient hit test subscription succeeds if the feature was requested - webgl2]
+ expected: FAIL
+
+ [Transient hit test subscription succeeds if the feature was requested - webgl]
+ expected: FAIL
+
+ [Transient hit test subscription fails if the feature was not requested - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html.ini
new file mode 100644
index 0000000000..e33e7dce5f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_transientInputSources.https.html.ini
@@ -0,0 +1,2 @@
+[ar_hittest_subscription_transientInputSources.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_unlocalizable.https.html.ini b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_unlocalizable.https.html.ini
new file mode 100644
index 0000000000..4197f95c4f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/ar_hittest_subscription_unlocalizable.https.html.ini
@@ -0,0 +1,2 @@
+[ar_hittest_subscription_unlocalizable.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/hit-test/idlharness.https.html.ini b/testing/web-platform/meta/webxr/hit-test/idlharness.https.html.ini
new file mode 100644
index 0000000000..24c82f5989
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/idlharness.https.html.ini
@@ -0,0 +1,157 @@
+[idlharness.https.html]
+ [XRTransientInputHitTestSource interface object length]
+ expected: FAIL
+
+ [XRHitTestResult interface object length]
+ expected: FAIL
+
+ [XRHitTestResult interface object name]
+ expected: FAIL
+
+ [XRFrame interface: operation getHitTestResultsForTransientInput(XRTransientInputHitTestSource)]
+ expected: FAIL
+
+ [XRRay interface: attribute origin]
+ expected: FAIL
+
+ [XRHitTestSource interface object name]
+ expected: FAIL
+
+ [XRHitTestResult interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRHitTestResult interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRRay interface: new XRRay() must inherit property "matrix" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: operation requestHitTestSource(XRHitTestOptionsInit)]
+ expected: FAIL
+
+ [XRHitTestSource interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface object name]
+ expected: FAIL
+
+ [XRRay interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface object name]
+ expected: FAIL
+
+ [XRRay interface: attribute direction]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRSession interface: calling requestHitTestSource(XRHitTestOptionsInit) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRRay interface object name]
+ expected: FAIL
+
+ [XRHitTestResult interface: operation getPose(XRSpace)]
+ expected: FAIL
+
+ [XRHitTestSource interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: attribute results]
+ expected: FAIL
+
+ [XRRay must be primary interface of new XRRay()]
+ expected: FAIL
+
+ [XRSession interface: calling requestHitTestSourceForTransientInput(XRTransientInputHitTestOptionsInit) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRFrame interface: operation getHitTestResults(XRHitTestSource)]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: attribute inputSource]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRRay interface: attribute matrix]
+ expected: FAIL
+
+ [XRHitTestSource interface object length]
+ expected: FAIL
+
+ [XRRay interface object length]
+ expected: FAIL
+
+ [XRHitTestSource interface: operation cancel()]
+ expected: FAIL
+
+ [XRHitTestResult interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "requestHitTestSourceForTransientInput(XRTransientInputHitTestOptionsInit)" with the proper type]
+ expected: FAIL
+
+ [XRRay interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRRay interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRRay interface: new XRRay() must inherit property "direction" with the proper type]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "requestHitTestSource(XRHitTestOptionsInit)" with the proper type]
+ expected: FAIL
+
+ [Stringification of new XRRay()]
+ expected: FAIL
+
+ [XRTransientInputHitTestSource interface: operation cancel()]
+ expected: FAIL
+
+ [XRHitTestResult interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSession interface: operation requestHitTestSourceForTransientInput(XRTransientInputHitTestOptionsInit)]
+ expected: FAIL
+
+ [XRRay interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRHitTestSource interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRTransientInputHitTestResult interface object length]
+ expected: FAIL
+
+ [XRRay interface: new XRRay() must inherit property "origin" with the proper type]
+ expected: FAIL
+
+ [XRHitTestSource interface: existence and properties of interface object]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/xrRay_constructor.https.html.ini b/testing/web-platform/meta/webxr/hit-test/xrRay_constructor.https.html.ini
new file mode 100644
index 0000000000..5381acd7bb
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/xrRay_constructor.https.html.ini
@@ -0,0 +1,4 @@
+[xrRay_constructor.https.html]
+ [XRRay constructors work]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/hit-test/xrRay_matrix.https.html.ini b/testing/web-platform/meta/webxr/hit-test/xrRay_matrix.https.html.ini
new file mode 100644
index 0000000000..fd045eaa39
--- /dev/null
+++ b/testing/web-platform/meta/webxr/hit-test/xrRay_matrix.https.html.ini
@@ -0,0 +1,4 @@
+[xrRay_matrix.https.html]
+ [XRRay matrix works]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/idlharness.https.window.js.ini b/testing/web-platform/meta/webxr/idlharness.https.window.js.ini
new file mode 100644
index 0000000000..5bfb71f26c
--- /dev/null
+++ b/testing/web-platform/meta/webxr/idlharness.https.window.js.ini
@@ -0,0 +1,837 @@
+[idlharness.https.window.html]
+ [XRFrame interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRWebGLLayer interface object name]
+ expected: FAIL
+
+ [XRViewport interface: attribute y]
+ expected: FAIL
+
+ [XRInputSource interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRViewport interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSessionEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRWebGLLayer interface object length]
+ expected: FAIL
+
+ [XRView interface object name]
+ expected: FAIL
+
+ [XRSession interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSession interface object name]
+ expected: FAIL
+
+ [XRSession interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRInputSource interface object length]
+ expected: FAIL
+
+ [XRViewport interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRSession interface object length]
+ expected: FAIL
+
+ [XRInputSource interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRView interface object length]
+ expected: FAIL
+
+ [XRSession interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRWebGLLayer interface: operation getNativeFramebufferScaleFactor(XRSession)]
+ expected: FAIL
+
+ [XRViewport interface: attribute height]
+ expected: FAIL
+
+ [XRFrame interface: attribute session]
+ expected: FAIL
+
+ [XRSession interface: attribute onselectend]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute framebuffer]
+ expected: FAIL
+
+ [XRSession interface: attribute onselect]
+ expected: FAIL
+
+ [XRSessionEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSessionEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRViewport interface object length]
+ expected: FAIL
+
+ [XRView interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRViewport interface: attribute x]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute framebufferHeight]
+ expected: FAIL
+
+ [XRWebGLLayer interface: operation getViewport(XRView)]
+ expected: FAIL
+
+ [XRView interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: attribute inputSource]
+ expected: FAIL
+
+ [XRInputSourceEvent interface object name]
+ expected: FAIL
+
+ [XRViewport interface object name]
+ expected: FAIL
+
+ [XRSession interface: attribute onselectstart]
+ expected: FAIL
+
+ [XRView interface: attribute projectionMatrix]
+ expected: FAIL
+
+ [XRView interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSessionEvent interface: attribute session]
+ expected: FAIL
+
+ [Navigator interface: navigator must inherit property "xr" with the proper type]
+ expected: FAIL
+
+ [XRInputSource interface: attribute handedness]
+ expected: FAIL
+
+ [XRSessionEvent interface object length]
+ expected: FAIL
+
+ [XRWebGLLayer interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRFrame interface object name]
+ expected: FAIL
+
+ [XRInputSource interface: attribute targetRayMode]
+ expected: FAIL
+
+ [XRViewport interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRFrame interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRView interface: attribute eye]
+ expected: FAIL
+
+ [XRWebGLLayer interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRWebGLLayer interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRViewport interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSession interface: operation requestAnimationFrame(XRFrameRequestCallback)]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute antialias]
+ expected: FAIL
+
+ [XRInputSource interface: existence and properties of interface object]
+ expected: FAIL
+
+ [Navigator interface: attribute xr]
+ expected: FAIL
+
+ [XRInputSource interface object name]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRInputSource interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRFrame interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSessionEvent interface object name]
+ expected: FAIL
+
+ [XRSession interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRViewport interface: attribute width]
+ expected: FAIL
+
+ [XRView interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSourceEvent interface: attribute frame]
+ expected: FAIL
+
+ [XRWebGLLayer interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRFrame interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSessionEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRFrame interface object length]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute framebufferWidth]
+ expected: FAIL
+
+ [XRSession interface: attribute onend]
+ expected: FAIL
+
+ [XRInputSourceEvent interface object length]
+ expected: FAIL
+
+ [XRSession interface: operation end()]
+ expected: FAIL
+
+ [XRViewerPose interface object length]
+ expected: FAIL
+
+ [XRViewerPose interface object name]
+ expected: FAIL
+
+ [XRViewerPose interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRViewerPose interface: attribute views]
+ expected: FAIL
+
+ [XRViewerPose interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRViewerPose interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRViewerPose interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRSession interface: attribute oninputsourceschange]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: attribute referenceSpace]
+ expected: FAIL
+
+ [XRReferenceSpace interface object name]
+ expected: FAIL
+
+ [XRReferenceSpace interface object length]
+ expected: FAIL
+
+ [XRSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface object length]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface object name]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface object length]
+ expected: FAIL
+
+ [XRReferenceSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRReferenceSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSpace interface object length]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRFrame interface: operation getViewerPose(XRReferenceSpace)]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface: attribute boundsGeometry]
+ expected: FAIL
+
+ [XRReferenceSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRReferenceSpace interface: attribute onreset]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSpace interface object name]
+ expected: FAIL
+
+ [XRReferenceSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface object name]
+ expected: FAIL
+
+ [XRSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRBoundedReferenceSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRRigidTransform interface object length]
+ expected: FAIL
+
+ [XRRigidTransform interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRReferenceSpaceEvent interface: attribute transform]
+ expected: FAIL
+
+ [XRRigidTransform interface: attribute position]
+ expected: FAIL
+
+ [XRRigidTransform interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRView interface: attribute transform]
+ expected: FAIL
+
+ [XRRigidTransform interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRRigidTransform interface object name]
+ expected: FAIL
+
+ [XRRigidTransform interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRRigidTransform interface: attribute orientation]
+ expected: FAIL
+
+ [XRRigidTransform interface: attribute matrix]
+ expected: FAIL
+
+ [XRRenderState interface object name]
+ expected: FAIL
+
+ [XRRenderState interface object length]
+ expected: FAIL
+
+ [XRRenderState interface: attribute baseLayer]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRRenderState interface: attribute depthFar]
+ expected: FAIL
+
+ [XRRenderState interface: attribute depthNear]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRRenderState interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSession interface: attribute renderState]
+ expected: FAIL
+
+ [XRPose interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRInputSource interface: attribute targetRaySpace]
+ expected: FAIL
+
+ [XRPose interface: attribute emulatedPosition]
+ expected: FAIL
+
+ [XRPose interface object length]
+ expected: FAIL
+
+ [XRFrame interface: operation getPose(XRSpace, XRSpace)]
+ expected: FAIL
+
+ [XRPose interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRPose interface: attribute transform]
+ expected: FAIL
+
+ [XRPose interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRPose interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRPose interface object name]
+ expected: FAIL
+
+ [XRInputSource interface: attribute gripSpace]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute ignoreDepthValues]
+ expected: FAIL
+
+ [XRRigidTransform interface: attribute inverse]
+ expected: FAIL
+
+ [XRReferenceSpace interface: operation getOffsetReferenceSpace(XRRigidTransform)]
+ expected: FAIL
+
+ [XRRenderState interface: attribute inlineVerticalFieldOfView]
+ expected: FAIL
+
+ [XRSession interface: operation requestReferenceSpace(XRReferenceSpaceType)]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface object name]
+ expected: FAIL
+
+ [XRInputSourceArray interface: iterable<XRInputSource>]
+ expected: FAIL
+
+ [XRInputSourceArray interface object name]
+ expected: FAIL
+
+ [XRSession interface: attribute inputSources]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface object length]
+ expected: FAIL
+
+ [XRInputSourceArray interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRInputSourceArray interface: attribute length]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: attribute removed]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: attribute added]
+ expected: FAIL
+
+ [XRInputSourceArray interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRInputSourceArray interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRInputSourceArray interface object length]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: attribute session]
+ expected: FAIL
+
+ [XRInputSourceArray interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSession interface: attribute onvisibilitychange]
+ expected: FAIL
+
+ [XRInputSource interface: attribute profiles]
+ expected: FAIL
+
+ [XRSession interface: attribute visibilityState]
+ expected: FAIL
+
+ [WebGLRenderingContext includes WebGLRenderingContextOverloads: member names are unique]
+ expected: FAIL
+
+ [XRSession interface: attribute onsqueeze]
+ expected: FAIL
+
+ [XRSession interface: attribute onsqueezestart]
+ expected: FAIL
+
+ [XRSession interface: attribute onsqueezeend]
+ expected: FAIL
+
+ [XRSystem interface: operation isSessionSupported(XRSessionMode)]
+ expected: FAIL
+
+ [XRSystem interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRSystem interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRSystem interface object name]
+ expected: FAIL
+
+ [XRSystem interface: attribute ondevicechange]
+ expected: FAIL
+
+ [XRSystem interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRSystem interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRSystem interface object length]
+ expected: FAIL
+
+ [XRSession interface: operation updateRenderState(optional XRRenderStateInit)]
+ expected: FAIL
+
+ [XRSystem interface: operation requestSession(XRSessionMode, optional XRSessionInit)]
+ expected: FAIL
+
+ [XRPermissionStatus interface: attribute granted]
+ expected: FAIL
+
+ [XRPermissionStatus interface object length]
+ expected: FAIL
+
+ [XRPermissionStatus interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRPermissionStatus interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRPermissionStatus interface object name]
+ expected: FAIL
+
+ [XRPermissionStatus interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRPermissionStatus interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRWebGLLayer must be primary interface of xrWebGLLayer]
+ expected: FAIL
+
+ [XRRigidTransform interface: new XRRigidTransform() must inherit property "orientation" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: calling requestReferenceSpace(XRReferenceSpaceType) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRRigidTransform must be primary interface of new XRRigidTransform()]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "visibilityState" with the proper type]
+ expected: FAIL
+
+ [XRReferenceSpace interface: xrReferenceSpace must inherit property "onreset" with the proper type]
+ expected: FAIL
+
+ [XRInputSourceArray interface: xrInputSourceArray must inherit property "length" with the proper type]
+ expected: FAIL
+
+ [XRWebGLLayer interface: calling getNativeFramebufferScaleFactor(XRSession) on xrWebGLLayer with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "antialias" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "requestAnimationFrame(XRFrameRequestCallback)" with the proper type]
+ expected: FAIL
+
+ [XRReferenceSpace interface: calling getOffsetReferenceSpace(XRRigidTransform) on xrReferenceSpace with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRSessionEvent interface: xrSessionEvent must inherit property "session" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onend" with the proper type]
+ expected: FAIL
+
+ [XRRigidTransform interface: new XRRigidTransform() must inherit property "inverse" with the proper type]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent must be primary interface of xrInputSourcesChangeEvent]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "requestReferenceSpace(XRReferenceSpaceType)" with the proper type]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "getNativeFramebufferScaleFactor(XRSession)" with the proper type]
+ expected: FAIL
+
+ [Stringification of xrReferenceSpace]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "framebuffer" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onselectstart" with the proper type]
+ expected: FAIL
+
+ [XRRenderState must be primary interface of xrRenderState]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "updateRenderState(optional XRRenderStateInit)" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onselectend" with the proper type]
+ expected: FAIL
+
+ [XRReferenceSpace must be primary interface of xrReferenceSpace]
+ expected: FAIL
+
+ [Stringification of xrInputSourcesChangeEvent]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "getViewport(XRView)" with the proper type]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "session" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "end()" with the proper type]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "added" with the proper type]
+ expected: FAIL
+
+ [XRRigidTransform interface: new XRRigidTransform() must inherit property "matrix" with the proper type]
+ expected: FAIL
+
+ [XRInputSourceArray must be primary interface of xrInputSourceArray]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onselect" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "inputSources" with the proper type]
+ expected: FAIL
+
+ [Stringification of xrSession]
+ expected: FAIL
+
+ [XRWebGLLayer interface: calling getViewport(XRView) on xrWebGLLayer with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [WebGLRenderingContextBase interface: webGLRenderingContextBase must inherit property "makeXRCompatible()" with the proper type]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "ignoreDepthValues" with the proper type]
+ expected: FAIL
+
+ [Stringification of xrSessionEvent]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "oninputsourceschange" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onsqueezeend" with the proper type]
+ expected: FAIL
+
+ [XRRenderState interface: xrRenderState must inherit property "inlineVerticalFieldOfView" with the proper type]
+ expected: FAIL
+
+ [XRReferenceSpace interface: xrReferenceSpace must inherit property "getOffsetReferenceSpace(XRRigidTransform)" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: calling requestAnimationFrame(XRFrameRequestCallback) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRRenderState interface: xrRenderState must inherit property "depthNear" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onsqueezestart" with the proper type]
+ expected: FAIL
+
+ [XRInputSourcesChangeEvent interface: xrInputSourcesChangeEvent must inherit property "removed" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onsqueeze" with the proper type]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferHeight" with the proper type]
+ expected: FAIL
+
+ [Stringification of new XRRigidTransform()]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "framebufferWidth" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "renderState" with the proper type]
+ expected: FAIL
+
+ [Stringification of xrWebGLLayer]
+ expected: FAIL
+
+ [Stringification of xrRenderState]
+ expected: FAIL
+
+ [XRRigidTransform interface: new XRRigidTransform() must inherit property "position" with the proper type]
+ expected: FAIL
+
+ [XRSession must be primary interface of xrSession]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onvisibilitychange" with the proper type]
+ expected: FAIL
+
+ [XRSessionEvent must be primary interface of xrSessionEvent]
+ expected: FAIL
+
+ [XRRenderState interface: xrRenderState must inherit property "depthFar" with the proper type]
+ expected: FAIL
+
+ [XRRenderState interface: xrRenderState must inherit property "baseLayer" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: calling updateRenderState(optional XRRenderStateInit) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Stringification of xrInputSourceArray]
+ expected: FAIL
+
+ [XRLayer interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [XRLayer interface: existence and properties of interface object]
+ expected: FAIL
+
+ [XRLayer interface object name]
+ expected: FAIL
+
+ [XRLayer interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [XRLayer interface object length]
+ expected: FAIL
+
+ [XRLayer interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [XRSession interface: operation cancelAnimationFrame(unsigned long)]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "cancelAnimationFrame(unsigned long)" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: calling cancelAnimationFrame(unsigned long) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRView interface: attribute recommendedViewportScale]
+ expected: FAIL
+
+ [XRView interface: operation requestViewportScale(double?)]
+ expected: FAIL
+
+ [XRPose interface: attribute linearVelocity]
+ expected: FAIL
+
+ [XRPose interface: attribute angularVelocity]
+ expected: FAIL
+
+ [XRWebGLLayer interface: attribute fixedFoveation]
+ expected: FAIL
+
+ [XRWebGLLayer interface: xrWebGLLayer must inherit property "fixedFoveation" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: attribute frameRate]
+ expected: FAIL
+
+ [XRSession interface: attribute supportedFrameRates]
+ expected: FAIL
+
+ [XRSession interface: operation updateTargetFrameRate(float)]
+ expected: FAIL
+
+ [XRSession interface: attribute onframeratechange]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "frameRate" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "supportedFrameRates" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "updateTargetFrameRate(float)" with the proper type]
+ expected: FAIL
+
+ [XRSession interface: calling updateTargetFrameRate(float) on xrSession with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "onframeratechange" with the proper type]
+ expected: FAIL
+
+ [WebGLRenderingContext interface: operation makeXRCompatible()]
+ expected: FAIL
+
+ [XRFrame interface: attribute predictedDisplayTime]
+ expected: FAIL
+
+ [XRSession interface: attribute enabledFeatures]
+ expected: FAIL
+
+ [XRSession interface: xrSession must inherit property "enabledFeatures" with the proper type]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/layers/xrWebGLBinding_constructor.https.html.ini b/testing/web-platform/meta/webxr/layers/xrWebGLBinding_constructor.https.html.ini
new file mode 100644
index 0000000000..cff3ce1cfd
--- /dev/null
+++ b/testing/web-platform/meta/webxr/layers/xrWebGLBinding_constructor.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLBinding_constructor.https.html]
+ [Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl2]
+ expected: FAIL
+
+ [Ensure that XRWebGLBinding's constructor throws appropriate errors using webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https.html.ini
new file mode 100644
index 0000000000..3554ffa3da
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_oldSession.https.html.ini
@@ -0,0 +1,7 @@
+[xrFrame_getLightEstimate_oldSession.https.html]
+ [getLightEstimate rejects if probe is from wrong session - webgl]
+ expected: FAIL
+
+ [getLightEstimate rejects if probe is from wrong session - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https.html.ini
new file mode 100644
index 0000000000..513c763bbb
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_staleFrame.https.html.ini
@@ -0,0 +1,7 @@
+[xrFrame_getLightEstimate_staleFrame.https.html]
+ [Cannot get XrLightEstimate from stale frame - webgl]
+ expected: FAIL
+
+ [Cannot get XrLightEstimate from stale frame - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_valid.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_valid.https.html.ini
new file mode 100644
index 0000000000..720579f072
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrFrame_getLightEstimate_valid.https.html.ini
@@ -0,0 +1,7 @@
+[xrFrame_getLightEstimate_valid.https.html]
+ [Can get XRLightEstimates during frame - webgl]
+ expected: FAIL
+
+ [Can get XRLightEstimates during frame - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_ended.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_ended.https.html.ini
new file mode 100644
index 0000000000..042bbac5c8
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_ended.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_getLightProbe_ended.https.html]
+ [getLightProbe rejects on an ended session - webgl]
+ expected: FAIL
+
+ [getLightProbe rejects on an ended session - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https.html.ini
new file mode 100644
index 0000000000..0cceaf0db2
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_notEnabled.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_getLightProbe_notEnabled.https.html]
+ [getLightProbe rejects if not enabled on session - webgl]
+ expected: FAIL
+
+ [getLightProbe rejects if not enabled on session - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_valid.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_valid.https.html.ini
new file mode 100644
index 0000000000..f7be9050ef
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrSession_getLightProbe_valid.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_getLightProbe_valid.https.html]
+ [Can create valid XRLightProbe objects - webgl]
+ expected: FAIL
+
+ [Can create valid XRLightProbe objects - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https.html.ini b/testing/web-platform/meta/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https.html.ini
new file mode 100644
index 0000000000..d813145223
--- /dev/null
+++ b/testing/web-platform/meta/webxr/light-estimation/xrWebGLBinding_getReflectionCubeMap.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLBinding_getReflectionCubeMap.https.html]
+ [Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl]
+ expected: FAIL
+
+ [Test that getReflectionCubeMap returns or throws appropriately without a reflection map. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/navigator_xr_sameObject.https.html.ini b/testing/web-platform/meta/webxr/navigator_xr_sameObject.https.html.ini
new file mode 100644
index 0000000000..8f3df8c5bb
--- /dev/null
+++ b/testing/web-platform/meta/webxr/navigator_xr_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[navigator_xr_sameObject.https.html]
+ [Navigator.xr meets [SameObject\] requirement - webgl]
+ expected: FAIL
+
+ [Navigator.xr meets [SameObject\] requirement - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/render_state_update.https.html.ini b/testing/web-platform/meta/webxr/render_state_update.https.html.ini
new file mode 100644
index 0000000000..2af21d4cac
--- /dev/null
+++ b/testing/web-platform/meta/webxr/render_state_update.https.html.ini
@@ -0,0 +1,31 @@
+[render_state_update.https.html]
+ [updateRenderState handles appropriately XRRenderStateInit with no params - webgl]
+ expected: FAIL
+
+ [updateRenderState handles appropriately baseLayers created with different sessions - webgl2]
+ expected: FAIL
+
+ [updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl2]
+ expected: FAIL
+
+ [updateRenderState handles appropriately XRRenderStateInit params - webgl2]
+ expected: FAIL
+
+ [updateRenderState handles appropriately XRRenderStateInit params - webgl]
+ expected: FAIL
+
+ [updateRenderState handles appropriately ended sessions - webgl2]
+ expected: FAIL
+
+ [updateRenderState handles appropriately ended sessions - webgl]
+ expected: FAIL
+
+ [updateRenderState handles appropriately immersive sessions with specified inlineVerticalFieldOfView - webgl]
+ expected: FAIL
+
+ [updateRenderState handles appropriately baseLayers created with different sessions - webgl]
+ expected: FAIL
+
+ [updateRenderState handles appropriately XRRenderStateInit with no params - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/render_state_vertical_fov_immersive.https.html.ini b/testing/web-platform/meta/webxr/render_state_vertical_fov_immersive.https.html.ini
new file mode 100644
index 0000000000..ca89f61914
--- /dev/null
+++ b/testing/web-platform/meta/webxr/render_state_vertical_fov_immersive.https.html.ini
@@ -0,0 +1,7 @@
+[render_state_vertical_fov_immersive.https.html]
+ [inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl2]
+ expected: FAIL
+
+ [inlineVerticalFieldOfView is set appropriately on immersively sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/render_state_vertical_fov_inline.https.html.ini b/testing/web-platform/meta/webxr/render_state_vertical_fov_inline.https.html.ini
new file mode 100644
index 0000000000..e7a9adae97
--- /dev/null
+++ b/testing/web-platform/meta/webxr/render_state_vertical_fov_inline.https.html.ini
@@ -0,0 +1,7 @@
+[render_state_vertical_fov_inline.https.html]
+ [inlineVerticalFieldOfView is set appropriately on inline sessions - webgl2]
+ expected: FAIL
+
+ [inlineVerticalFieldOfView is set appropriately on inline sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini
new file mode 100644
index 0000000000..e808464fc0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webGLCanvasContext_create_xrcompatible.https.html.ini
@@ -0,0 +1,13 @@
+[webGLCanvasContext_create_xrcompatible.https.html]
+ [Creating a webgl context with no device]
+ expected: FAIL
+
+ [An XR-compatible webgl2 context can be created]
+ expected: FAIL
+
+ [An XR-compatible webgl context can be created]
+ expected: FAIL
+
+ [Creating a webgl2 context with no device]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini
new file mode 100644
index 0000000000..9a0451e4aa
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_contextlost.https.html.ini
@@ -0,0 +1,7 @@
+[webGLCanvasContext_makecompatible_contextlost.https.html]
+ [A lost webgl2 context should not be able to set xr compatibility]
+ expected: FAIL
+
+ [A lost webgl context should not be able to set xr compatibility]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_reentrant.https.html.ini b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_reentrant.https.html.ini
new file mode 100644
index 0000000000..558b8bab46
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webGLCanvasContext_makecompatible_reentrant.https.html.ini
@@ -0,0 +1,13 @@
+[webGLCanvasContext_makecompatible_reentrant.https.html]
+ [Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl]
+ expected: FAIL
+
+ [Verify promises from reentrant calls to makeXRCompatible() are resolved for webgl2]
+ expected: FAIL
+
+ [Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl]
+ expected: FAIL
+
+ [Verify promise from a non-reentrant call to makeXRCompatible() is resolved for webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webxr-supported-by-feature-policy.html.ini b/testing/web-platform/meta/webxr/webxr-supported-by-feature-policy.html.ini
new file mode 100644
index 0000000000..cb52134259
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webxr-supported-by-feature-policy.html.ini
@@ -0,0 +1,4 @@
+[webxr-supported-by-feature-policy.html]
+ [document.featurePolicy.features should advertise xr-spatial-tracking.]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/webxr_feature_policy.https.html.ini b/testing/web-platform/meta/webxr/webxr_feature_policy.https.html.ini
new file mode 100644
index 0000000000..31aa9ec33e
--- /dev/null
+++ b/testing/web-platform/meta/webxr/webxr_feature_policy.https.html.ini
@@ -0,0 +1,13 @@
+[webxr_feature_policy.https.html]
+ [Validate devicechange event behavior without xr-spatial-tracking policy]
+ expected: FAIL
+
+ [Validate isSessionSupported behavior without xr-spatial-tracking policy]
+ expected: FAIL
+
+ [Validate requestSession behavior without xr-spatial-tracking policy]
+ expected: FAIL
+
+ [Validate xr compatibility requests without xr-spatial-tracking policy]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrBoundedReferenceSpace_updates.https.html.ini b/testing/web-platform/meta/webxr/xrBoundedReferenceSpace_updates.https.html.ini
new file mode 100644
index 0000000000..6bfdbfa83d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrBoundedReferenceSpace_updates.https.html.ini
@@ -0,0 +1,7 @@
+[xrBoundedReferenceSpace_updates.https.html]
+ ['XRBoundedReferenceSpace updates properly when the changes are applied - webgl2]
+ expected: FAIL
+
+ ['XRBoundedReferenceSpace updates properly when the changes are applied - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_disconnect_ends.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_disconnect_ends.https.html.ini
new file mode 100644
index 0000000000..d75bf8445a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_disconnect_ends.https.html.ini
@@ -0,0 +1,7 @@
+[xrDevice_disconnect_ends.https.html]
+ [Immersive session ends when device is disconnected - webgl2]
+ expected: FAIL
+
+ [Immersive session ends when device is disconnected - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive.https.html.ini
new file mode 100644
index 0000000000..638ff2a383
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_isSessionSupported_immersive.https.html]
+ [isSessionSupported resolves to true when immersive options supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive_unsupported.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive_unsupported.https.html.ini
new file mode 100644
index 0000000000..11747c997a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_immersive_unsupported.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_isSessionSupported_immersive_unsupported.https.html]
+ [isSessionSupported resolves to false when options not supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_inline.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_inline.https.html.ini
new file mode 100644
index 0000000000..7b958e3bdc
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_isSessionSupported_inline.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_isSessionSupported_inline.https.html]
+ [isSessionSupported resolves to true when inline options supported]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive.https.html.ini
new file mode 100644
index 0000000000..7c96be03e0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive.https.html.ini
@@ -0,0 +1,19 @@
+[xrDevice_requestSession_immersive.https.html]
+ [Tests requestSession accepts XRSessionInit dictionary - webgl2]
+ expected: FAIL
+
+ [Tests requestSession resolves when supported - webgl2]
+ expected: FAIL
+
+ [Tests requestSession resolves when supported - webgl]
+ expected: FAIL
+
+ [Tests requestSession ignores unknown optionalFeatures - webgl2]
+ expected: FAIL
+
+ [Tests requestSession ignores unknown optionalFeatures - webgl]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_no_gesture.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_no_gesture.https.html.ini
new file mode 100644
index 0000000000..75547bd703
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_no_gesture.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_immersive_no_gesture.https.html]
+ [Requesting immersive session outside of a user gesture rejects]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_unsupported.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_unsupported.https.html.ini
new file mode 100644
index 0000000000..58db0b825f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_immersive_unsupported.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_immersive_unsupported.https.html]
+ [Requesting an immersive session when unsupported rejects]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_no_mode.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_no_mode.https.html.ini
new file mode 100644
index 0000000000..a57eb02e02
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_no_mode.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_no_mode.https.html]
+ [Requesting a session with no mode rejects]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html.ini
new file mode 100644
index 0000000000..b6ba334933
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_non_immersive_no_gesture.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_non_immersive_no_gesture.https.html]
+ [Requesting non-immersive session outside of a user gesture succeeds]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
new file mode 100644
index 0000000000..72878b7d1a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_optionalFeatures.https.html.ini
@@ -0,0 +1,25 @@
+[xrDevice_requestSession_optionalFeatures.https.html]
+ [Tests requestSession ignores unknown objects in optionalFeatures - webgl]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl2]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary - webgl2]
+ expected: FAIL
+
+ [Tests requestSession ignores unknown strings in optionalFeatures - webgl2]
+ expected: FAIL
+
+ [Tests requestSession ignores unknown strings in optionalFeatures - webgl]
+ expected: FAIL
+
+ [Tests requestSession ignores unknown objects in optionalFeatures - webgl2]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary with empty feature lists - webgl]
+ expected: FAIL
+
+ [Tests requestSession accepts XRSessionInit dictionary - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini b/testing/web-platform/meta/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini
new file mode 100644
index 0000000000..f0e6c00ee1
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrDevice_requestSession_requiredFeatures_unknown.https.html.ini
@@ -0,0 +1,4 @@
+[xrDevice_requestSession_requiredFeatures_unknown.https.html]
+ [Tests requestSession rejects for unknown requiredFeatures]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrFrame_getPose.https.html.ini b/testing/web-platform/meta/webxr/xrFrame_getPose.https.html.ini
new file mode 100644
index 0000000000..e0ba6429d6
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrFrame_getPose.https.html.ini
@@ -0,0 +1,13 @@
+[xrFrame_getPose.https.html]
+ [XRFrame.getPose works for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame.getPose works for immersive sessions - webgl]
+ expected: FAIL
+
+ [XRFrame.getPose works for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame.getPose works for non-immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose.https.html.ini b/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose.https.html.ini
new file mode 100644
index 0000000000..6e57c065dd
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose.https.html.ini
@@ -0,0 +1,2 @@
+[xrFrame_getViewerPose_getPose.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose_identities.https.html.ini b/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose_identities.https.html.ini
new file mode 100644
index 0000000000..f67fb691b0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrFrame_getViewerPose_getPose_identities.https.html.ini
@@ -0,0 +1,2 @@
+[xrFrame_getViewerPose_getPose_identities.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/webxr/xrFrame_lifetime.https.html.ini b/testing/web-platform/meta/webxr/xrFrame_lifetime.https.html.ini
new file mode 100644
index 0000000000..7c84a2cadb
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrFrame_lifetime.https.html.ini
@@ -0,0 +1,13 @@
+[xrFrame_lifetime.https.html]
+ [XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame methods throw exceptions outside of the requestAnimationFrame callback for immersive sessions - webgl]
+ expected: FAIL
+
+ [XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame methods throw exceptions outside of the requestAnimationFrame callback for non-immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrFrame_session_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrFrame_session_sameObject.https.html.ini
new file mode 100644
index 0000000000..eeaf8e45d2
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrFrame_session_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrFrame_session_sameObject.https.html]
+ [XRFrame.session meets [SameObject\] requirement - webgl2]
+ expected: FAIL
+
+ [XRFrame.session meets [SameObject\] requirement - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrInputSource_add_remove.https.html.ini b/testing/web-platform/meta/webxr/xrInputSource_add_remove.https.html.ini
new file mode 100644
index 0000000000..075fa21bf2
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrInputSource_add_remove.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_add_remove.https.html]
+ [XRInputSources can be properly added and removed from the session - webgl2]
+ expected: FAIL
+
+ [XRInputSources can be properly added and removed from the session - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrInputSource_emulatedPosition.https.html.ini b/testing/web-platform/meta/webxr/xrInputSource_emulatedPosition.https.html.ini
new file mode 100644
index 0000000000..6fb5da65d6
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrInputSource_emulatedPosition.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_emulatedPosition.https.html]
+ [Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl]
+ expected: FAIL
+
+ [Poses from XRInputSource.gripSpace have emulatedPosition set properly - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrInputSource_getPose_targetRay_grip.https.html.ini b/testing/web-platform/meta/webxr/xrInputSource_getPose_targetRay_grip.https.html.ini
new file mode 100644
index 0000000000..45cb8dc693
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrInputSource_getPose_targetRay_grip.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_getPose_targetRay_grip.https.html]
+ [Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl]
+ expected: FAIL
+
+ [Poses between targetRaySpace and gripSpace can be obtained and behave correctly - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrInputSource_profiles.https.html.ini b/testing/web-platform/meta/webxr/xrInputSource_profiles.https.html.ini
new file mode 100644
index 0000000000..d78d39a4e3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrInputSource_profiles.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_profiles.https.html]
+ [WebXR InputSource's profiles list can be set - webgl2]
+ expected: FAIL
+
+ [WebXR InputSource's profiles list can be set - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrInputSource_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrInputSource_sameObject.https.html.ini
new file mode 100644
index 0000000000..af661b488e
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrInputSource_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrInputSource_sameObject.https.html]
+ [XRInputSource attributes meet [SameObject\] requirement - webgl2]
+ expected: FAIL
+
+ [XRInputSource attributes meet [SameObject\] requirement - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrPose_transform_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrPose_transform_sameObject.https.html.ini
new file mode 100644
index 0000000000..110cc05d20
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrPose_transform_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrPose_transform_sameObject.https.html]
+ [XRPose.transform meets [SameObject\] requirement - webgl]
+ expected: FAIL
+
+ [XRPose.transform meets [SameObject\] requirement - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset.https.html.ini b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset.https.html.ini
new file mode 100644
index 0000000000..3167786fd4
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset.https.html.ini
@@ -0,0 +1,7 @@
+[xrReferenceSpace_originOffset.https.html]
+ [Updating XRReferenceSpace origin offset updates view and input matrices. - webgl2]
+ expected: FAIL
+
+ [Updating XRReferenceSpace origin offset updates view and input matrices. - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrReferenceSpace_originOffsetBounded.https.html.ini b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffsetBounded.https.html.ini
new file mode 100644
index 0000000000..d9c5ec9bd3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffsetBounded.https.html.ini
@@ -0,0 +1,7 @@
+[xrReferenceSpace_originOffsetBounded.https.html]
+ [Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl]
+ expected: FAIL
+
+ [Updating XRBoundedReferenceSpace origin offset updates view, input matrices, and bounds geometry. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset_viewer.https.html.ini b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset_viewer.https.html.ini
new file mode 100644
index 0000000000..a70d0a6f74
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrReferenceSpace_originOffset_viewer.https.html.ini
@@ -0,0 +1,7 @@
+[xrReferenceSpace_originOffset_viewer.https.html]
+ [Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl2]
+ expected: FAIL
+
+ [Creating XRReferenceSpace origin offset off of `viewer` space works. - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrReferenceSpace_relationships.https.html.ini b/testing/web-platform/meta/webxr/xrReferenceSpace_relationships.https.html.ini
new file mode 100644
index 0000000000..f9fecd4ad0
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrReferenceSpace_relationships.https.html.ini
@@ -0,0 +1,7 @@
+[xrReferenceSpace_relationships.https.html]
+ [Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl2]
+ expected: FAIL
+
+ [Bounded space, viewer space, local and local-floor space have correct poses w.r.t. each other - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrRigidTransform_constructor.https.html.ini b/testing/web-platform/meta/webxr/xrRigidTransform_constructor.https.html.ini
new file mode 100644
index 0000000000..0d061166e5
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrRigidTransform_constructor.https.html.ini
@@ -0,0 +1,7 @@
+[xrRigidTransform_constructor.https.html]
+ [XRRigidTransform constructor works - webgl2]
+ expected: FAIL
+
+ [XRRigidTransform constructor works - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrRigidTransform_inverse.https.html.ini b/testing/web-platform/meta/webxr/xrRigidTransform_inverse.https.html.ini
new file mode 100644
index 0000000000..ee8504fbb3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrRigidTransform_inverse.https.html.ini
@@ -0,0 +1,7 @@
+[xrRigidTransform_inverse.https.html]
+ [XRRigidTransform inverse works - webgl2]
+ expected: FAIL
+
+ [XRRigidTransform inverse works - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrRigidTransform_matrix.https.html.ini b/testing/web-platform/meta/webxr/xrRigidTransform_matrix.https.html.ini
new file mode 100644
index 0000000000..40b8ebb87c
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrRigidTransform_matrix.https.html.ini
@@ -0,0 +1,4 @@
+[xrRigidTransform_matrix.https.html]
+ [XRRigidTransform matrix works]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrRigidTransform_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrRigidTransform_sameObject.https.html.ini
new file mode 100644
index 0000000000..497c5ce8f7
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrRigidTransform_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrRigidTransform_sameObject.https.html]
+ [XRRigidTransform position and orientation meet [SameObject\] requirements - webgl2]
+ expected: FAIL
+
+ [XRRigidTransform position and orientation meet [SameObject\] requirements - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame.https.html.ini b/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame.https.html.ini
new file mode 100644
index 0000000000..a3fd613163
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_cancelAnimationFrame.https.html]
+ [XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for non-immersive sessions - webgl]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame callbacks can be unregistered with cancelAnimationFrame for immersive sessions - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html.ini b/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html.ini
new file mode 100644
index 0000000000..a1f071bbc2
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_cancelAnimationFrame_invalidhandle.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_cancelAnimationFrame_invalidhandle.https.html]
+ [XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl2]
+ expected: FAIL
+
+ [XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on non-immersive testSession - webgl]
+ expected: FAIL
+
+ [XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl2]
+ expected: FAIL
+
+ [XRSession cancelAnimationFrame does not have unexpected behavior when given invalid handles on immersive testSession - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_enabledFeatures.https.html.ini b/testing/web-platform/meta/webxr/xrSession_enabledFeatures.https.html.ini
new file mode 100644
index 0000000000..e05b149a70
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_enabledFeatures.https.html.ini
@@ -0,0 +1,6 @@
+[xrSession_enabledFeatures.https.html]
+ [Validate enabledFeatures on XRSession - webgl]
+ expected: FAIL
+
+ [Validate enabledFeatures on XRSession - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/xrSession_end.https.html.ini b/testing/web-platform/meta/webxr/xrSession_end.https.html.ini
new file mode 100644
index 0000000000..3b38cc054d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_end.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_end.https.html]
+ [end event fires when non-immersive session ends - webgl2]
+ expected: FAIL
+
+ [end event fires when immersive session ends - webgl2]
+ expected: FAIL
+
+ [end event fires when immersive session ends - webgl]
+ expected: FAIL
+
+ [end event fires when non-immersive session ends - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_features_deviceSupport.https.html.ini b/testing/web-platform/meta/webxr/xrSession_features_deviceSupport.https.html.ini
new file mode 100644
index 0000000000..c205168233
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_features_deviceSupport.https.html.ini
@@ -0,0 +1,4 @@
+[xrSession_features_deviceSupport.https.html]
+ [Immersive XRSession requests with no supported device should reject]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_input_events_end.https.html.ini b/testing/web-platform/meta/webxr/xrSession_input_events_end.https.html.ini
new file mode 100644
index 0000000000..081b724d3b
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_input_events_end.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_input_events_end.https.html]
+ [Calling end during an input callback stops processing at the right time - webgl]
+ expected: FAIL
+
+ [Calling end during an input callback stops processing at the right time - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_prevent_multiple_exclusive.https.html.ini b/testing/web-platform/meta/webxr/xrSession_prevent_multiple_exclusive.https.html.ini
new file mode 100644
index 0000000000..d97e34090f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_prevent_multiple_exclusive.https.html.ini
@@ -0,0 +1,4 @@
+[xrSession_prevent_multiple_exclusive.https.html]
+ [Test prevention of multiple simultaneous immersive sessions]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_callback_calls.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_callback_calls.https.html.ini
new file mode 100644
index 0000000000..1f9f98a2ae
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_callback_calls.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_requestAnimationFrame_callback_calls.https.html]
+ [XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl2]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame calls the provided callback for an immersive session - webgl]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl2]
+ expected: FAIL
+
+ [XRSession requestAnimationFrame calls the provided callback a non-immersive session - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_data_valid.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_data_valid.https.html.ini
new file mode 100644
index 0000000000..bf90dea146
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_data_valid.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_requestAnimationFrame_data_valid.https.html]
+ [RequestAnimationFrame resolves with good data - webgl2]
+ expected: FAIL
+
+ [RequestAnimationFrame resolves with good data - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini
new file mode 100644
index 0000000000..b6c7e94b84
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_getViewerPose.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_requestAnimationFrame_getViewerPose.https.html]
+ [XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for non-immersive sessions - webgl]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_timestamp.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_timestamp.https.html.ini
new file mode 100644
index 0000000000..ee8ba626a6
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestAnimationFrame_timestamp.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_requestAnimationFrame_timestamp.https.html]
+ [XRFrame getViewerPose updates on the next frame for non-immersive - webgl2]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for non-immersive - webgl]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for immersive - webgl2]
+ expected: FAIL
+
+ [XRFrame getViewerPose updates on the next frame for immersive - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini
new file mode 100644
index 0000000000..2e1ee6bf0d
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_requestReferenceSpace.https.html]
+ [Immersive XRSession requestReferenceSpace returns expected objects - webgl2]
+ expected: FAIL
+
+ [Immersive XRSession requestReferenceSpace returns expected objects - webgl]
+ expected: FAIL
+
+ [Non-immersive XRSession requestReferenceSpace returns expected objects - webgl2]
+ expected: FAIL
+
+ [Non-immersive XRSession requestReferenceSpace returns expected objects - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace_features.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace_features.https.html.ini
new file mode 100644
index 0000000000..ab7c2e077b
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestReferenceSpace_features.https.html.ini
@@ -0,0 +1,73 @@
+[xrSession_requestReferenceSpace_features.https.html]
+ [Non-immersive session supports viewer space by default - webgl2]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when required - webgl2]
+ expected: FAIL
+
+ [Immersive session supports viewer space by default - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports local space when required - webgl]
+ expected: FAIL
+
+ [Immersive session supports local space by default - webgl]
+ expected: FAIL
+
+ [Non-immersive session rejects unbounded space even when requested - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports local-floor space when required - webgl]
+ expected: FAIL
+
+ [Non-immersive session rejects local space if not requested - webgl]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when optional - webgl]
+ expected: FAIL
+
+ [Immersive session rejects local-floor space if not requested - webgl]
+ expected: FAIL
+
+ [Non-immersive session rejects bounded-floor space even when requested - webgl]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when required - webgl]
+ expected: FAIL
+
+ [Immersive session rejects local-floor space if not requested - webgl2]
+ expected: FAIL
+
+ [Immersive session supports local space by default - webgl2]
+ expected: FAIL
+
+ [Non-immersive session rejects unbounded space even when requested - webgl]
+ expected: FAIL
+
+ [Non-immersive session rejects local space if not requested - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports local-floor space when required - webgl2]
+ expected: FAIL
+
+ [Non-immersive session rejects bounded-floor space even when requested - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports local space when optional - webgl2]
+ expected: FAIL
+
+ [Immersive session supports local-floor space when optional - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports local space when optional - webgl]
+ expected: FAIL
+
+ [Non-immersive session supports local space when required - webgl2]
+ expected: FAIL
+
+ [Non-immersive session supports viewer space by default - webgl]
+ expected: FAIL
+
+ [Immersive session supports viewer space by default - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_requestSessionDuringEnd.https.html.ini b/testing/web-platform/meta/webxr/xrSession_requestSessionDuringEnd.https.html.ini
new file mode 100644
index 0000000000..9073be31d8
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_requestSessionDuringEnd.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_requestSessionDuringEnd.https.html]
+ [Create mew session in end promise - webgl2]
+ expected: FAIL
+
+ [Create mew session in end promise - webgl]
+ expected: FAIL
+
+ [Create new session in OnSessionEnded event - webgl2]
+ expected: FAIL
+
+ [Create new session in OnSessionEnded event - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrSession_sameObject.https.html.ini
new file mode 100644
index 0000000000..83576512c4
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_sameObject.https.html]
+ [XRSession attributes meet [SameObject\] requirement - webgl2]
+ expected: FAIL
+
+ [XRSession attributes meet [SameObject\] requirement - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_viewer_availability.https.html.ini b/testing/web-platform/meta/webxr/xrSession_viewer_availability.https.html.ini
new file mode 100644
index 0000000000..bf2a6682fa
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_viewer_availability.https.html.ini
@@ -0,0 +1,4 @@
+[xrSession_viewer_availability.https.html]
+ [Inline viewer support with no device]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_viewer_referenceSpace.https.html.ini b/testing/web-platform/meta/webxr/xrSession_viewer_referenceSpace.https.html.ini
new file mode 100644
index 0000000000..c594ebf8e8
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_viewer_referenceSpace.https.html.ini
@@ -0,0 +1,13 @@
+[xrSession_viewer_referenceSpace.https.html]
+ [Identity reference space provides correct poses for inline sessions - webgl2]
+ expected: FAIL
+
+ [Identity reference space provides correct poses for inline sessions - webgl]
+ expected: FAIL
+
+ [Identity reference space provides correct poses for immersive sessions - webgl]
+ expected: FAIL
+
+ [Identity reference space provides correct poses for immersive sessions - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrSession_visibilityState.https.html.ini b/testing/web-platform/meta/webxr/xrSession_visibilityState.https.html.ini
new file mode 100644
index 0000000000..2fb311447c
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrSession_visibilityState.https.html.ini
@@ -0,0 +1,7 @@
+[xrSession_visibilityState.https.html]
+ [Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl]
+ expected: FAIL
+
+ [Ensures that the XRSession's visibilityState is correctly reported and that the associated visibilitychange event fires. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html.ini b/testing/web-platform/meta/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html.ini
new file mode 100644
index 0000000000..4c68fc61ae
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrStationaryReferenceSpace_floorlevel_updates.https.html.ini
@@ -0,0 +1,13 @@
+[xrStationaryReferenceSpace_floorlevel_updates.https.html]
+ ['floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl]
+ expected: FAIL
+
+ ['floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl2]
+ expected: FAIL
+
+ ['floor-level' XRStationaryReferenceSpace updates properly when the transform changes for immersive sessions - webgl]
+ expected: FAIL
+
+ ['floor-level' XRStationaryReferenceSpace updates properly when the transform changes for non-immersive sessions - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrView_eyes.https.html.ini b/testing/web-platform/meta/webxr/xrView_eyes.https.html.ini
new file mode 100644
index 0000000000..a1dd85bcc3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrView_eyes.https.html.ini
@@ -0,0 +1,13 @@
+[xrView_eyes.https.html]
+ [XRView.eye is correct for non-immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRView.eye is correct for non-immersive sessions - webgl]
+ expected: FAIL
+
+ [XRView.eye is correct for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRView.eye is correct for immersive sessions - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrView_match.https.html.ini b/testing/web-platform/meta/webxr/xrView_match.https.html.ini
new file mode 100644
index 0000000000..3cb4bf6bfa
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrView_match.https.html.ini
@@ -0,0 +1,7 @@
+[xrView_match.https.html]
+ [XRFrame contains the expected views - webgl]
+ expected: FAIL
+
+ [XRFrame contains the expected views - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrView_oneframeupdate.https.html.ini b/testing/web-platform/meta/webxr/xrView_oneframeupdate.https.html.ini
new file mode 100644
index 0000000000..400adbb18a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrView_oneframeupdate.https.html.ini
@@ -0,0 +1,7 @@
+[xrView_oneframeupdate.https.html]
+ [XRView projection matrices update near and far depths on the next frame - webgl]
+ expected: FAIL
+
+ [XRView projection matrices update near and far depths on the next frame - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrView_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrView_sameObject.https.html.ini
new file mode 100644
index 0000000000..2d21173c39
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrView_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrView_sameObject.https.html]
+ [XRView attributes meet [SameObject\] requirement - webgl]
+ expected: FAIL
+
+ [XRView attributes meet [SameObject\] requirement - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrViewerPose_secondaryViews.https.html.ini b/testing/web-platform/meta/webxr/xrViewerPose_secondaryViews.https.html.ini
new file mode 100644
index 0000000000..b408390141
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrViewerPose_secondaryViews.https.html.ini
@@ -0,0 +1,24 @@
+[xrViewerPose_secondaryViews.https.html]
+ [Only primary views are returned if secondary views are not requested for non-immersive - webgl]
+ expected: FAIL
+
+ [Only primary views are returned if secondary views are not requested for non-immersive - webgl2]
+ expected: FAIL
+
+ [Only primary views are returned if secondary views are not requested for immersive - webgl]
+ expected: FAIL
+
+ [Only primary views are returned if secondary views are not requested for immersive - webgl2]
+ expected: FAIL
+
+ [Requesting secondary views only returns primary views for non-immersive - webgl]
+ expected: FAIL
+
+ [Requesting secondary views only returns primary views for non-immersive - webgl2]
+ expected: FAIL
+
+ [Requesting secondary views returns both primary and secondary views for immersive - webgl]
+ expected: FAIL
+
+ [Requesting secondary views returns both primary and secondary views for immersive - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/xrViewerPose_views_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrViewerPose_views_sameObject.https.html.ini
new file mode 100644
index 0000000000..c5058f12c3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrViewerPose_views_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrViewerPose_views_sameObject.https.html]
+ [XRViewerPose.views meets [SameObject\] requirement - webgl2]
+ expected: FAIL
+
+ [XRViewerPose.views meets [SameObject\] requirement - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrViewport_valid.https.html.ini b/testing/web-platform/meta/webxr/xrViewport_valid.https.html.ini
new file mode 100644
index 0000000000..ede23ec29f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrViewport_valid.https.html.ini
@@ -0,0 +1,12 @@
+[xrViewport_valid.https.html]
+ [XRViewport attributes are valid - webgl]
+ expected: FAIL
+
+ [XRViewport attributes are valid - webgl2]
+ expected: FAIL
+
+ [XRViewport attributes are valid with secondary views requested - webgl]
+ expected: FAIL
+
+ [XRViewport attributes are valid with secondary views requested - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_constructor.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_constructor.https.html.ini
new file mode 100644
index 0000000000..0de3960638
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_constructor.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLLayer_constructor.https.html]
+ [Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl2]
+ expected: FAIL
+
+ [Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_draw.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_draw.https.html.ini
new file mode 100644
index 0000000000..cb87adff2a
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_draw.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLLayer_framebuffer_draw.https.html]
+ [Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl]
+ expected: FAIL
+
+ [Ensure a WebGL layer's framebuffer can only be drawn to inside a XR frame - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_sameObject.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_sameObject.https.html.ini
new file mode 100644
index 0000000000..b6b9872a23
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_sameObject.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLLayer_framebuffer_sameObject.https.html]
+ [XRWebGLLayer.framebuffer meets [SameObject\] requirement - webgl2]
+ expected: FAIL
+
+ [XRWebGLLayer.framebuffer meets [SameObject\] requirement - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_scale.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_scale.https.html.ini
new file mode 100644
index 0000000000..8dec964c03
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_framebuffer_scale.https.html.ini
@@ -0,0 +1,7 @@
+[xrWebGLLayer_framebuffer_scale.https.html]
+ [Ensure framebuffer scaling works as expected. - webgl]
+ expected: FAIL
+
+ [Ensure framebuffer scaling works as expected. - webgl2]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer.https.html.ini
new file mode 100644
index 0000000000..a1fdcb71f3
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer.https.html.ini
@@ -0,0 +1,13 @@
+[xrWebGLLayer_opaque_framebuffer.https.html]
+ [Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl2]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer is opaque for non-immersive - webgl]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl2]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer is opaque for immersive - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html.ini
new file mode 100644
index 0000000000..2f354a26b6
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_opaque_framebuffer_stencil.https.html.ini
@@ -0,0 +1,13 @@
+[xrWebGLLayer_opaque_framebuffer_stencil.https.html]
+ [Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl2]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer works with stencil for immersive - webgl]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer works with stencil for non-immersive - webgl2]
+ expected: FAIL
+
+ [Ensure that the framebuffer given by the WebGL layer works with stencil for non-immersive - webgl]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/webxr/xrWebGLLayer_viewports.https.html.ini b/testing/web-platform/meta/webxr/xrWebGLLayer_viewports.https.html.ini
new file mode 100644
index 0000000000..7f3e2d0e9f
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xrWebGLLayer_viewports.https.html.ini
@@ -0,0 +1,24 @@
+[xrWebGLLayer_viewports.https.html]
+ [XRWebGLLayer reports a valid viewports for inline sessions - webgl]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for inline sessions - webgl2]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for immersive sessions - webgl2]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for immersive sessions - webgl]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for immersive sessions with secondary views requested - webgl2]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl]
+ expected: FAIL
+
+ [XRWebGLLayer reports a valid viewports for inline sessions with secondary views requested - webgl2]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webxr/xr_viewport_scale.https.html.ini b/testing/web-platform/meta/webxr/xr_viewport_scale.https.html.ini
new file mode 100644
index 0000000000..cc0704c872
--- /dev/null
+++ b/testing/web-platform/meta/webxr/xr_viewport_scale.https.html.ini
@@ -0,0 +1,85 @@
+[xr_viewport_scale.https.html]
+ [requestViewportScale valid viewport for inline session - webgl]
+ expected: FAIL
+
+ [recommendedViewportScale for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale applied next frame for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ very small scale for inline session - webgl]
+ expected: FAIL
+
+ [requestViewportScale same frame for inline session - webgl]
+ expected: FAIL
+
+ [requestViewportScale same frame for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ undefined scale for inline session - webgl]
+ expected: FAIL
+
+ [requestViewportScale applied next frame for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale applied next frame for inline session - webgl]
+ expected: FAIL
+
+ [recommendedViewportScale for inline session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ very small scale for inline session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale same frame for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ null scale for inline session - webgl2]
+ expected: FAIL
+
+ [recommendedViewportScale for inline session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ undefined scale for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale same frame for inline session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale applied next frame for inline session - webgl2]
+ expected: FAIL
+
+ [recommendedViewportScale for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport for inline session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ null scale for inline session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ null scale for immersive-vr session - webgl2]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ very small scale for immersive-vr session - webgl]
+ expected: FAIL
+
+ [requestViewportScale valid viewport w/ undefined scale for inline session - webgl2]
+ expected: FAIL
+