Auto merge of #26171 - Manishearth:hittest, r=asajeffrey

Implement hit testing API

Depends on https://github.com/servo/webxr/pull/149 , https://github.com/servo/servo/pull/26170

This implements non-transient hit tests.

The tests that do not pass are due to https://github.com/web-platform-tests/wpt/issues/22898 , https://github.com/web-platform-tests/wpt/issues/22900, https://github.com/web-platform-tests/wpt/issues/22901 , and https://github.com/immersive-web/hit-test/issues/86
This commit is contained in:
bors-servo 2020-04-20 00:30:46 -04:00 committed by GitHub
commit 99cd30eaad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 650 additions and 77 deletions

View file

@ -1,4 +0,0 @@
[xrDevice_isSessionSupported_immersive-ar.https.html]
[isSessionSupported resolves to false for immersive-ar on an unsupported device]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrDevice_requestSession_immersive-ar.https.html]
[Tests requestSession rejects immersive-ar mode when unsupported]
expected: FAIL

View file

@ -1,4 +1,5 @@
[ar_dom_overlay.https.html]
expected: ERROR
[Ensures DOM Overlay element selection works]
expected: FAIL
@ -6,7 +7,7 @@
expected: FAIL
[Ensures DOM Overlay input deduplication works]
expected: FAIL
expected: TIMEOUT
[Ensures DOM Overlay feature works for immersive-ar, body element]
expected: FAIL
@ -15,11 +16,11 @@
expected: FAIL
[Ensures DOM Overlay Fullscreen API doesn't change DOM overlay]
expected: FAIL
expected: NOTRUN
[Ensures DOM Overlay feature works for immersive-ar, div element]
expected: FAIL
[Ensures DOM Overlay interactions on cross origin iframe are ignored]
expected: FAIL
expected: NOTRUN

View file

@ -1,2 +1,4 @@
[ar_dom_overlay_hit_test.https.html]
expected: ERROR
[Ensures DOM Overlay interactions on cross origin iframe do not cause hit test results to come up]
expected: FAIL

View file

@ -1,2 +1,10 @@
[ar_hittest_subscription_inputSources.https.html]
expected: ERROR
[Ensures subscription to hit test works with an XRSpace from input source - after move - no results]
expected: FAIL
[Ensures subscription to hit test works with an XRSpace from input source - after move - 1 result]
expected: FAIL
[Ensures subscription to hit test works with an XRSpace from input source - no move]
expected: FAIL

View file

@ -1,2 +1,10 @@
[ar_hittest_subscription_refSpaces.https.html]
expected: ERROR
[Ensures subscription to hit test works with viewer space - straight ahead - plane]
expected: FAIL
[Ensures subscription to hit test works with local space]
expected: FAIL
[Ensures subscription to hit test works with local-floor space]
expected: FAIL

View file

@ -1,10 +0,0 @@
[ar_hittest_subscription_states_regular.https.html]
[Hit test subscription succeeds if the feature was requested]
expected: FAIL
[Hit test subscription fails if the feature was not requested]
expected: FAIL
[Hit test subscription fails if the feature was requested but the session already ended]
expected: FAIL

View file

@ -1,2 +1,11 @@
[ar_hittest_subscription_transientInputSources.https.html]
expected: ERROR
[Ensures subscription to transient hit test works with an XRSpace from input source - after move - 1 result]
expected: NOTRUN
[Ensures subscription to transient hit test works with an XRSpace from input source - after move - no results]
expected: NOTRUN
[Ensures subscription to transient hit test works with an XRSpace from input source - no move]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[xrRay_constructor.https.html]
[XRRay constructors work]
expected: FAIL

View file

@ -1,4 +0,0 @@
[xrRay_matrix.https.html]
[XRRay matrix works]
expected: FAIL

View file

@ -13870,7 +13870,7 @@
]
],
"interfaces.html": [
"dc9a1f5f378bc50487bfb7dc3db6d121d2f325ca",
"1a579837cc22d31a7792566615d9e321b3d7fe39",
[
null,
{}
@ -14609,21 +14609,21 @@
},
"webxr": {
"create_session.html": [
"af76c5a812d7d05a0158194560933def3fbdb9f9",
"5b5d485b372bfffb22204bc162c9e182306395cb",
[
null,
{}
]
],
"layers.html": [
"31f4b6bd51cfcca47666331857bd2bbdf84d2f5e",
"49821d7661f92bc9cf22232d3fcb391c2cdc7295",
[
null,
{}
]
],
"obtain_frame.html": [
"74fda5bad43e8ea95552e65380e83952680e8469",
"d9ff25729f9cdfd348e7c9914ce2dacd231e13a0",
[
null,
{}

View file

@ -266,11 +266,14 @@ test_interfaces([
"XMLHttpRequestUpload",
"XMLSerializer",
"XRFrame",
"XRHitTestResult",
"XRHitTestSource",
"XRInputSource",
"XRInputSourceArray",
"XRInputSourceEvent",
"XRPose",
"XRReferenceSpace",
"XRRay",
"XRRenderState",
"XRRigidTransform",
"XRSession",

View file

@ -8,7 +8,7 @@
<script>
async_test(function(t) {
navigator.xr.test.simulateDeviceConnection({
supportsImmersive: true,
supportedModes: ["immersive-vr"],
views: TEST_VIEWS,
viewerOrigin: {position: [0.5, 0.1, 0.1], orientation: [1, 0, 0, 1] }
}).then((m) => {

View file

@ -12,7 +12,7 @@
let gl = canvas.getContext('webgl');
promise_test(async function() {
let mock = await navigator.xr.test.simulateDeviceConnection({
supportsImmersive: true,
supportedModes: ["immersive-vr"],
views: TEST_VIEWS,
viewerOrigin: {position: [0.5, 0.1, 0.1], orientation: [1, 0, 0, 1] }
});

View file

@ -12,7 +12,7 @@
let gl = canvas.getContext('webgl');
promise_test(async function() {
let mock = await navigator.xr.test.simulateDeviceConnection({
supportsImmersive: true,
supportedModes: ["immersive-vr"],
views: TEST_VIEWS,
viewerOrigin: {position: [0.5, 0.1, 0.1], orientation: [1, 0, 0, 1] }
});