Presenting with null source while already presenting causes renderer crash |
||||||
Issue descriptionReproduction steps on Android Canary: 1. Access https://webvr.info/samples/03-vr-presentation.html in Canary 2. Attach device to workstation and inspect the Canary tab (F12 -> Remote devices) 3. Run the following Javascript in the console: var disp; var can = document.getElementById("webgl-canvas"); navigator.getVRDisplays().then( (displays) => {disp = displays[0];}); disp.requestPresent([{ source: can}]); << complete DON flow >> disp.requestPresent([{ source: null}]); 4. The renderer crashes
,
Jan 11 2017
I try to use Pixel XL to reproduce this issue but cannot reproduce. Instead of renderer crashes, I got an exception named "Uncaught (in promise) DOMException: Invalid layer source." Here is my reproduction steps on Android Canary: 1. Access https://webvr.info/samples/03-vr-presentation.html in Canary 2. Attach device to workstation and inspect the Canary tab (chrome://inspect) 3. Run the following Javascript in the console: var disp; var can = document.getElementById("webgl-canvas"); navigator.getVRDisplays().then( (displays) => {disp = displays[0];}); disp.requestPresent([{ source: can}]); The display entered full screen mode due to no Daydream Viewer. disp.requestPresent([{ source: null}]); But the renderer not crashes, it report an exception "Uncaught (in promise) DOMException: Invalid layer source.". Any steps wrong? thx. BR, Yan,Shaobo
,
Jan 11 2017
,
Jan 11 2017
Those steps look correct to me, and I can still reproduce it with the viewer set to Cardboard. When you say full screen mode, do you mean the VR rendering with two views, or is it just fullscreening the canvas? The latter shouldn't be happening.
,
Jan 12 2017
FYI, a fix for this is included in https://codereview.chromium.org/2624263003/ as well as a layout test for it.
,
Jan 12 2017
Thanks, bsheedy.
,
Jan 13 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b7f90cae827044cfb2280c8382d993848ef33340 commit b7f90cae827044cfb2280c8382d993848ef33340 Author: bsheedy <bsheedy@chromium.org> Date: Fri Jan 13 04:14:43 2017 Add more WebVR layout tests and fix small issues they found Adds several additional WebVR layout tests. Refactors the WebVR Mojo mocking to more closely emulate the actual actual implementation. Fixes several issues in the WebVR source code that were encountered by these tests. BUG= 679952 , 679288 Review-Url: https://codereview.chromium.org/2624263003 Cr-Commit-Position: refs/heads/master@{#443485} [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/events_vrdisplayactivate.html [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/events_vrdisplayconnect.html [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/events_vrdisplaypresentchange.html [modify] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/getLayers_presenting.html [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/getLayers_presenting_nondefaultbounds.html [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/getLayers_update.html [add] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/requestPresent_resolve_then_reject.html [modify] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/resources/fake-vr-displays.js [modify] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/LayoutTests/vr/resources/mock-vr-service.js [modify] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/Source/modules/vr/NavigatorVR.cpp [modify] https://crrev.com/b7f90cae827044cfb2280c8382d993848ef33340/third_party/WebKit/Source/modules/vr/VRDisplay.cpp
,
Jan 13 2017
,
Jan 17 2017
Tested on Windows 7 using chrome M57 #57.0.2970.0 and followed the steps : 1. Navigated to https://webvr.info/samples/03-vr-presentation.html in chrome. 2. Attached nexus 5 device to windows 7 and inspected the page "https://webvr.info/samples/03-vr-presentation.html" from Chrome://inspect 3. Verified that device is connected remotely in chrome dev tools and pasted the code given in comment #0 in web console. 4. No crash is seen . Attached screencast for reference. @bsheedy-- Could you please check the attacehd screencast and help us in verifying the issue by providing more steps to reproduce the issue . Thanks!
,
Jan 17 2017
You seem to be mixing testing for desktop (currently does not support WebVR) and Android, and copy-pasting the entire blob into the console won't work since there's some non-code text in there indicating what the user should be doing (completing the DON flow). Copy-paste each of the lines of code individually, and it should work. To test on Windows, you don't need to attach an android device, just access the page's console. However, it isn't expected that anything will happen - the navigator.getVRDisplays call should fail since WebVR support hasn't been added to desktop. To test on Android, you need to open the page on the Android device and inspect the page under the "Devices" section of chrome://inspect.
,
Jul 4
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by bsheedy@chromium.org
, Jan 11 2017