New issue
Advanced search Search tips

Issue 845792 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task
Proj-VR
Proj-XR

Blocking:
issue 837399



Sign in to add a comment

Consider always calling a method to request appropriate permissions when requesting a session.

Project Member Reported by ddorwin@chromium.org, May 23 2018

Issue description

Consider adding a pure virtual RequestAppropriatePermission() to the device interface (currently VRDevice[Base]) and always calling that from VRDisplayHost::RequestSession(). Doing so would force individual devices to consider whether permissions are required for the specified configuration.

We might also want to have a pure virtual AreRequestedOptionsSupported() method when session options are added to the interface.
 
Labels: XR-Device
Owner: offenwanger@chromium.org
Cc: ijamardo@chromium.org billorr@chromium.org
Labels: -Restrict-View-Google -Proj-VR
We may end up moving such methods off of the main XR runtime device objects to simplify those - both initialization and scope. For example, arcore_device.cc includes a lot of additional headers just to handle permissions.
Blocking: 837399
Components: Blink>WebXR
Status: Assigned (was: Available)
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
Owner: ----
Status: Available (was: Assigned)
Labels: AR-Cleanup
Related discussion from a CR comment.  https://chromium-review.googlesource.com/#/c/1256217/9/device/vr/public/mojom/isolated_xr_service.mojom@80

We could add another interface XRSessionProvider that is obtained from XRRuntime when we check the runtime is up to date, and request updates/install modules.

Currently we have XRRuntime that exposes several methods, and we have some assumptions (which we validate) about order that methods are called in.  Specifically that EnsureInitialized() is called before RequestSession().

By chaining a few interfaces/methods, the type system will guarantee ordering is what we expect.

XRRuntime::EnsureInitialized() -> (XRSessionProvider)
XRSessionProvider::RequestSession(options) -> (XRSession, XRSessionController)

Additionally, this cleanup will naturally fit with allowing the browser to order version checks and permission checks correctly in sequence before requesting a session from a runtime.
Cc: -ijamardo@chromium.org bialpio@chromium.org
We may want to implement the changes for "AR mode" first since that could affect the flow.

Sign in to add a comment