New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 790770 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug
Proj-VR
Proj-XR



Sign in to add a comment

NonPresentingGvrContext isn't aware of VrCore version check in Chrome

Project Member Reported by bshe@chromium.org, Nov 30 2017

Issue description

This currently leads a problem that webvr page appears to be able to present. But after press the presentation button, it just failed without obvious reason. It can confuse user.

We should handle this case more carefully. 
There are already some discussions and a few possible ways has proposed:
1. We could show "update vrcore" UI each time after user click the presentation button. 
2. We could set VRDisplayCapabilities.canPresent to false if we know that VrCore version is older than ChromeVR expect but newer than minimal required version (note this is different from ChromeVR's expect version) which could still provide orientation. This way, user wont see the presentation button.
3. We could gate magic window on the same VrCore version as ChromeVR.

Let's continue discussion here. 
 
I don't like options 1 and 3. 'Allowing' presentation but blocking it with a request to update when you try isn't great. We /could/ gate magic window, but I don't see the point.

I think option 2, where we disable presentation but still show the update infobar is the best option here.

Comment 2 by bshe@chromium.org, Dec 1 2017

After seeing Anna's CL for "Add magic window only device that uses orientation events". I think I am more lean toward option 3 now. I said magic window in option 3 but I don't really mean magic window. I mean we should gate providing a GVR device on the same VrCore version as ChromeVR.

The reason being, in the future, we are going to relax ChromeVR's expect version to minimal required version anyway. Once we do that, option 2 and option 3 are essentially the same. Before that, with Anna's patch, user can still use magic window if they decide to not upgrade VrCore.

This doesnt change how and when we show "update VrCore" infobar. We still show "update VrCore" infobar per browser session(between two Chrome cold start) on GVR capable devices to give user a chance to upgrade their VrCore. We might want to change the text in the infobar to be more specific about VR presentation though as it is the only reason that we want user update VrCore with Anna's patch.

WDYT?
Fine by me to use the orientation device instead.
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 6 2017

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

commit 5161e6122769a13f990a1915997b8224b2f9ab48
Author: Biao She <bshe@chromium.org>
Date: Wed Dec 06 20:42:51 2017

Disable GvrDevice if VR is not available

Previously, we create a GvrDevice even if VrShellDelegate thinks VR is not
available. This GvrDevice may works for magic window but can't present as Vr
presentation depend on VrShellDelegate. However, the returned GvrDevice marks
itself as a device which set canPresent to true. This leads to confusion.

This CL gate GvrDevice creation on the same criteria as VrShellDelegate.

Bug:  790770 
Change-Id: I686eda152418b71ad5c5344aed593903db2b70f7
Reviewed-on: https://chromium-review.googlesource.com/809227
Reviewed-by: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: Biao She <bshe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522182}
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/chrome/android/BUILD.gn
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrIntentUtils.java
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/chrome/browser/android/vr_shell/vr_shell_delegate.cc
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/chrome/browser/android/vr_shell/vr_shell_delegate.h
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/device/vr/android/gvr/gvr_delegate_provider.h
[modify] https://crrev.com/5161e6122769a13f990a1915997b8224b2f9ab48/device/vr/android/gvr/gvr_device.cc

The orientation device work is tracked in  issue 695937 .

What is left to do in this issue?

Comment 6 by bshe@chromium.org, Mar 6 2018

Status: Fixed (was: Started)
Labels: Test-Complete
Status: Verified (was: Fixed)
Verified that if VRCore is not installed the first VR Page ask to install it and if not installed subsequent pages get a blue bar stating that "WebVR supported, but no VRDisplays found.  We do not enter VR.
Components: Internals>XR
Components: Blink>WebXR

Sign in to add a comment