google / model-viewer

Easily display interactive 3D models on the web and in AR!

Home Page:https://modelviewer.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

WebXR mode does not time out when it fails

petr-hajek opened this issue · comments

Description

  1. Go to https://modelviewer.dev/ with affected device
  2. click the AR button for the default model
  3. Console logs: Attempting to present in AR with WebXR...
  4. Nothing happens. It never times out to try the SceneViewer. Clicking the AR button again does not do anything.
    When tested with SceneViewer as a first option it works.
    Expected:
    Underlying issue is related to Samsung (or Chrome), but it should still fail gracefully and try SceneViewer in case there's some issue with WebXR.
    Problem will be somehwere here, that this await never times out:
    await arRenderer.present(this[$scene], this.xrEnvironment);

Live Demo

https://modelviewer.dev/

Version

  • model-viewer: v3.4.0
    Tested also with 3.5.0 and occurs as well

Browser Affected

  • Chrome, version: 124.0.6367.82

OS

  • Android v14
    Replicated on Samsung S24+ and S22+
    Affects OS with One UI 6.1. Tested on one device, it started occuring ater updating from One UI 6.0 to 6.1.

AR

  • WebXR

@bialpio @toji This looks like a WebXR regression; can you repro?

At the moment I only have Pixel devices on hand, but I can confirm that the Pixel 6, 7, and 8 are not seeing this regression on Android 14, so it's likely something to do with the Samsung software like @petr-hajek theorized.

That said, there's a few different places in the ARRenderer that the await could be getting hung up on, and it would be helpful to know which is was. Some would be more practical to put timeout logic around than others.

rAF:

Session:

const currentSession = await this.resolveARSession();

Reference Space:

const viewerRefSpace = await currentSession.requestReferenceSpace('viewer');

Can you also provide the full chrome://version string including the bitness of Chrome? (32 vs 64)?

@alcooper91 Chrome: 124.0.6367.113 (Official Build) (64-bit)