New issue
Advanced search Search tips

Issue 812287 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows
Pri: 3
Type: Bug
Proj-XR



Sign in to add a comment

Implement simple input system for WebXR

Project Member Reported by bajones@chromium.org, Feb 14 2018

Issue description

The plan is for WebXR to initially implement a simplified input system that is focus on point-and-click style interactions rather than exposing full input device state. The exact shape of the API is still under discussion (see https://github.com/immersive-web/webxr/issues/319 for the latest). The eventual API should be implemented once the details are firmed up.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Mar 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dcd2c2eed32cf17e279fda284ab443470e16b7a9

commit dcd2c2eed32cf17e279fda284ab443470e16b7a9
Author: Brandon Jones <bajones@chromium.org>
Date: Tue Mar 06 21:47:17 2018

Implemented simple WebXR input system

This covers the basic feature set needed for the simplified input API.
Minor details like naming may shift as we continue discussing the API
shape, but the majority of this code is likely to remain relevant.

Bug: 812287
Change-Id: I41c452f015c2dec08f123e6970920058fb2a728a
Reviewed-on: https://chromium-review.googlesource.com/919150
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541203}
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/device/vr/public/mojom/vr_service.mojom
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/webexposed/global-interface-listing-expected.txt
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/events_session_select.html
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/events_session_select_subframe.html
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/getDevicePose_oneframeupdate.html
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/getInputPose_hand.html
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/resources/test-constants.js
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/resources/xr-device-mocking.js
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/LayoutTests/xr/xrInputSource_add_remove.html
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/bindings/modules/BUILD.gn
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/core/events/event_type_names.json5
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/modules_idl_files.gni
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/BUILD.gn
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRCoordinateSystem.h
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRFrameOfReference.cpp
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRFrameOfReference.h
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRFrameProvider.cpp
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputPose.cpp
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputPose.h
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputPose.idl
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSource.cpp
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSource.h
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSource.idl
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSourceEvent.cpp
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSourceEvent.h
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSourceEvent.idl
[add] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRInputSourceEventInit.idl
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRPresentationFrame.cpp
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRPresentationFrame.h
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRPresentationFrame.idl
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRSession.cpp
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRSession.h
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRSession.idl
[modify] https://crrev.com/dcd2c2eed32cf17e279fda284ab443470e16b7a9/third_party/WebKit/Source/modules/xr/XRSessionEvent.cpp

Project Member

Comment 2 by bugdroid1@chromium.org, Mar 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/234a83d830b9eb74881feacf2bd68f35010f7003

commit 234a83d830b9eb74881feacf2bd68f35010f7003
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Wed Mar 07 13:51:35 2018

[jumbo] refactor duplicated WebXR function

This fixes the following jumbo build error:

/../../third_party/WebKit/Source/modules/xr/XRInputPose.cpp:11:18: error: redefinition of 'transformationMatrixToFloat32Array'
DOMFloat32Array* transformationMatrixToFloat32Array(
                 ^
./../../third_party/WebKit/Source/modules/xr/XRDevicePose.cpp:14:18: note: previous definition is here
DOMFloat32Array* transformationMatrixToFloat32Array(
                 ^
1 error generated.

Followup to https://chromium-review.googlesource.com/c/chromium/src/+/919150

Bug: 812287
Change-Id: Iedd5e1337fc14a1e974f6497974e283b03a48c80
Reviewed-on: https://chromium-review.googlesource.com/952444
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Reviewed-by: Daniel Bratell <bratell@opera.com>
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Cr-Commit-Position: refs/heads/master@{#541418}
[modify] https://crrev.com/234a83d830b9eb74881feacf2bd68f35010f7003/third_party/WebKit/Source/modules/xr/BUILD.gn
[modify] https://crrev.com/234a83d830b9eb74881feacf2bd68f35010f7003/third_party/WebKit/Source/modules/xr/XRDevicePose.cpp
[modify] https://crrev.com/234a83d830b9eb74881feacf2bd68f35010f7003/third_party/WebKit/Source/modules/xr/XRInputPose.cpp
[add] https://crrev.com/234a83d830b9eb74881feacf2bd68f35010f7003/third_party/WebKit/Source/modules/xr/XRUtils.cpp
[add] https://crrev.com/234a83d830b9eb74881feacf2bd68f35010f7003/third_party/WebKit/Source/modules/xr/XRUtils.h

Project Member

Comment 3 by bugdroid1@chromium.org, Mar 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/214df87537ff0210a453d8d1d3a45bc8235e9eb4

commit 214df87537ff0210a453d8d1d3a45bc8235e9eb4
Author: Brandon Jones <bajones@chromium.org>
Date: Thu Mar 08 23:39:27 2018

Implement WebXR input for GVR

Includes support for both Cardboard (gaze cursor) and Daydream (3DoF)
input modes. In 3DoF mode the WebXR pointer and controller align with
the VR Shell versions.

Bug: 812287
Change-Id: I8dcfe7cdadc9f2c0216208e643c9f11211498e25
Reviewed-on: https://chromium-review.googlesource.com/956524
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541935}
[modify] https://crrev.com/214df87537ff0210a453d8d1d3a45bc8235e9eb4/chrome/browser/android/vr/vr_controller.cc
[modify] https://crrev.com/214df87537ff0210a453d8d1d3a45bc8235e9eb4/chrome/browser/android/vr/vr_controller.h
[modify] https://crrev.com/214df87537ff0210a453d8d1d3a45bc8235e9eb4/chrome/browser/android/vr/vr_shell.cc
[modify] https://crrev.com/214df87537ff0210a453d8d1d3a45bc8235e9eb4/chrome/browser/android/vr/vr_shell_gl.cc
[modify] https://crrev.com/214df87537ff0210a453d8d1d3a45bc8235e9eb4/chrome/browser/android/vr/vr_shell_gl.h

Project Member

Comment 4 by bugdroid1@chromium.org, Mar 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1206426d2db5d3e5ca28636caa24e4b39c6b72f1

commit 1206426d2db5d3e5ca28636caa24e4b39c6b72f1
Author: Brandon Jones <bajones@chromium.org>
Date: Fri Mar 09 21:14:31 2018

Implement WebXR input for Oculus

Supports both Oculus Touch (6DoF) and the Oculus Remote (3DoF).
Automatically switches between them as each form of input becomes
active.

Bug: 812287
Change-Id: If99852472d2d536dbc739b159a73ebcb83820c4b
Reviewed-on: https://chromium-review.googlesource.com/956681
Reviewed-by: Bill Orr <billorr@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Cr-Commit-Position: refs/heads/master@{#542226}
[modify] https://crrev.com/1206426d2db5d3e5ca28636caa24e4b39c6b72f1/device/vr/oculus/oculus_render_loop.cc
[modify] https://crrev.com/1206426d2db5d3e5ca28636caa24e4b39c6b72f1/device/vr/oculus/oculus_render_loop.h

Project Member

Comment 5 by bugdroid1@chromium.org, Mar 16 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97feef784de57d03f684d3acf1f6389c763567f7

commit 97feef784de57d03f684d3acf1f6389c763567f7
Author: Brandon Jones <bajones@chromium.org>
Date: Fri Mar 16 23:10:52 2018

Capture canvas clicks as a form of XR input

This forms the basis of the WebXR Input system when used in Magic Window
mode.

Bug: 812287
Change-Id: Ibea7df8b173e378c563e011de23ab6bc5448af9f
Reviewed-on: https://chromium-review.googlesource.com/952230
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Bill Orr <billorr@chromium.org>
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543860}
[modify] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/BUILD.gn
[add] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRCanvasInputProvider.cpp
[add] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRCanvasInputProvider.h
[modify] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRSession.cpp
[modify] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRSession.h
[modify] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRView.cpp
[modify] https://crrev.com/97feef784de57d03f684d3acf1f6389c763567f7/third_party/WebKit/Source/modules/xr/XRView.h

Components: Blink>WebXR
Labels: BlinkWebXR
Removing Blink>WebVR component and assigning to Blink>WebXR 
Labels: -BlinkWebXR
Removing Blink>WebVR component and assigning to Blink>WebXR 
Components: -Blink>WebVR

Sign in to add a comment