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

Issue 839108 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug-Regression
Proj-XR



Sign in to add a comment

[WebVR] Chrome crashes when attempting to start WebVR presentation

Project Member Reported by dbbrooks@chromium.org, May 2 2018

Issue description

Chrome Version: 68.0.3415.0
OS: Android N
Device: Pixel
VRCore: 1.14.190701955

What steps will reproduce the problem?
(1) Go to https://webvr.info/samples/03-vr-presentation.html
(2) Press Enter VR button and place device in  headset when prompted


What is the expected result? WebVR presentation starts.

What happens instead? Chrome crashes

Uploaded Crash Report ID 4943accc378839ef (Local Crash ID: Chrome)
Crash report uploaded on Wednesday, May 2, 2018 at 1:34:38 PM

Uploaded Crash Report ID a415014257de9f75 (Local Crash ID: Chrome)
Crash report uploaded on Wednesday, May 2, 2018 at 1:32:50 PM



 
This doesn't happen all the time.
What headset do you have configured?

The error I see in logs is:
05-03 04:32:30.182 28564 29168 F GVR : [vr/gvr/capi/src/HTTP://WEBADDRESS.ELIDED] CHECK failed: expression='"viewport"'

The eliding is unhelpful here, but I suspect this may be a protobuf conversion failing a sanity check. That would be expected if there's a Cardboard headset with an invalid QR code or similar, but that shouldn't happen randomly.

Daydream
Labels: Pri-2 Type-Bug-Regression
This is still happening on 68.0.3420.1

Twice today:

Uploaded Crash Report ID 32240859341b86a0 (Local Crash ID: Chrome)
Crash report uploaded on Tuesday, May 8, 2018 at 10:31:29 AM

Uploaded Crash Report ID 7858d5cfc0284723 (Local Crash ID: Chrome)
Crash report uploaded on Tuesday, May 8, 2018 at 10:29:17 AM


Happened twice again today.
Device: Samsung S8+, Chrome: 68.0.3427.0

Uploaded Crash Report ID 6d7ec36e3d810765 (Local Crash ID: Chrome)
Crash report uploaded on Tuesday, May 15, 2018 at 12:46:13 PM

Uploaded Crash Report ID 53c90bc440d3a11c (Local Crash ID: Chrome)
Crash report uploaded on Tuesday, May 15, 2018 at 12:44:31 PM

Labels: -Pri-2 M-68 Pri-1
No symbols in any of the crashes (except deep in a415014257de9f75).
Looking to see if we are using any of the gvr viewports before they are initialized.  This is the most likely cause unless there is some way we can lose them.
Cc: bshe@chromium.org
bshe just fixed a crash related to GVR timing.
I think the issue is that viewports_need_updating_ isn't initialized to a default value, so any tasks that get in before OnResume (which is posted async) could try to use the viewports.

dbbrooks, how easy is this to repro?
From what bshe described, this doesn't sound like its related.  bshe?

Comment 11 by bshe@chromium.org, May 15 2018

no, I don't think this crash related to the one that I fix. 
I just sat with Bill and we were able to repro it together. 

Comment 13 by bshe@chromium.org, May 16 2018

Owner: billorr@chromium.org
Status: Assigned (was: Untriaged)
Assuming that Bill is working on this one given that you were able to repro?
Project Member

Comment 14 by bugdroid1@chromium.org, May 17 2018

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

commit 46304c60d3cf7b64ba57cc1cc73f4dc0745df7bc
Author: Bill Orr <billorr@chromium.org>
Date: Thu May 17 00:01:13 2018

Fix crash when entering WebVR presentation

The issue here is that viewports_need_updating_ is uninitialized until
OnResume, and that leaves viewports uninitialized until the first
DrawFrame after OnResume.

However, some incoming calls from mojo, such as UpdateLayerBounds may
be processed before that first DrawFrame.

The fix is to initialize viewports_need_updating_ to true, so viewports
are created in InitializeRenderer, before mojo calls are processed.

This then creates a new bug, where we lose the UVs set by a call to
UpdateLayerBounds before the first OnResume/DrawFrame. We need to cache
the bounds and can reapply them when creating new viewports.

BUG= 839108 

Change-Id: Ieef7f98d9606fe033095e8b8a8e9cde92afdcccc
Reviewed-on: https://chromium-review.googlesource.com/1062930
Reviewed-by: Klaus Weidner <klausw@chromium.org>
Commit-Queue: Bill Orr <billorr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559346}
[modify] https://crrev.com/46304c60d3cf7b64ba57cc1cc73f4dc0745df7bc/chrome/browser/android/vr/vr_shell_gl.cc
[modify] https://crrev.com/46304c60d3cf7b64ba57cc1cc73f4dc0745df7bc/chrome/browser/android/vr/vr_shell_gl.h

Status: Fixed (was: Assigned)
Components: Blink>WebXR

Sign in to add a comment