New issue
Advanced search Search tips

Issue 753865 link

Starred by 4 users

Issue metadata

Status: Verified
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug
Proj-XR

Blocking:
issue 767589
issue 767594
issue 768380
issue 768513



Sign in to add a comment

VR does not work on Samsung S8+ when display is not set to highest resolution

Project Member Reported by tiborg@chromium.org, Aug 9 2017

Issue description

Chrome Version: 62.0.3173.0
OS: Android 7.0
Device: Samsung Galaxy S8+ with Daydream Headset or Cardboard

What steps will reproduce the problem?

(1) WebVR:
  (a) Go to https://webvr.info/samples/03-vr-presentation.html.
  (b) Click 'Enter VR'.
(2) VR Browsing Mode:
  (a) Go to https://google.com.
  (b) Place phone into headset.
  (c) Finish DON flow.

What is the expected result?

Chrome is displayed in VR.

What happens instead?

Things I observed were that
- I ended up on the Android home screen,
- the DON screen did not disappear after connecting the controller,
- Chrome stayed in 2D after I clicked 'Enter VR'.

As a side note, I didn't get popup that Chrome crashed. Also, I didn't see anything obvious in logcat.

 
Labels: M-62 Pri-1
Description: Show this description

Comment 3 by tiborg@chromium.org, Aug 10 2017

After doing some more digging it appears that Chrome gets killed by Android when it tries to set the orientation to landscape (https://cs.chromium.org/chromium/src/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java?rcl=a129458eeb588b4d47a2e5aaeb8e8f083ebf120a&l=980). Logcat gives the following output after setting the orientation:

08-10 10:47:31.334  1172  1434 I ActivityManager: Config changes=1000 {0 1.1 themeSeq = 0 showBtnBg = 0 ?mcc?mnc [en_US] ldltr sw411dp w797dp h387dp 560dpi nrml long land ?dc finger -keyb/v/h -nav/h mkbd/h desktop/d s.278}
08-10 10:47:31.339  1172  1434 D SamsungActivityManager: killAllProcesses mSystemUIProcessRecord=ProcessRecord{5258b95 20689:com.android.systemui/u0a5}
08-10 10:47:31.339  1172  1434 I ActivityManager: Killing 20689:com.android.systemui/u0a5 (adj -800): kill all background except(policy=multi-resolution)
08-10 10:47:31.341  1172  1434 D ActivityManager: cleanUpApplicationRecord -- 20689
08-10 10:47:31.341  1172  1434 W ActivityManager: Scheduling restart of crashed service com.android.systemui/.keyguard.KeyguardService in 0ms
08-10 10:47:31.341  1172  1434 W ActivityManager: Scheduling restart of crashed service com.android.systemui/.SystemUIService in 0ms
08-10 10:47:31.345  1172  1434 I ActivityManager: KPU : put [com.wssnps] : 0 K
08-10 10:47:31.345  1172  1434 I ActivityManager: Killing 22987:com.wssnps/1000 (adj 906): DHA:empty #33
08-10 10:47:31.354  1172  1434 D MountService: MountService getExternalStorageMountMode : 1
08-10 10:47:31.354  1172  1434 D MountService: MountService getExternalStorageMountMode : 3
08-10 10:47:31.354  1172  1434 D MountService: MountService getExternalStorageMountMode : final mountMode=1, uid : 10005, packageName : com.android.systemui
08-10 10:47:31.374  1172  1434 I ActivityManager: Start proc 23778:com.android.systemui/u0a5 for added application com.android.systemui
08-10 10:47:31.376 23778 23778 E Zygote  : v2
08-10 10:47:31.376 23778 23778 I libpersona: KNOX_SDCARD checking this for 10005
08-10 10:47:31.376 23778 23778 I libpersona: KNOX_SDCARD not a persona
08-10 10:47:31.377  1172  1434 I ActivityManager: Killing 23452:com.sec.android.app.chromecustomizations/u0a108 (adj 700): kill all background except(policy=multi-resolution)
08-10 10:47:31.377 23778 23778 E Zygote  : accessInfo : 0
08-10 10:47:31.378  1172  1434 D ActivityManager: cleanUpApplicationRecord -- 23452
08-10 10:47:31.378 23778 23778 W SELinux : SELinux selinux_android_compute_policy_index : Policy Index[2],  Con:u:r:zygote:s0 RAM:SEPF_SECMOBILE_7.0_0009, [-1 -1 -1 -1 0 1]
08-10 10:47:31.379  1172  1434 I ActivityManager: Killing 23111:org.chromium.chrome/u0a231 (adj 0): kill all background except(policy=multi-resolution)

Labels: VR-Triage-Discuss
Status: Available (was: Untriaged)
Marking for discussion as this should be assigned.

Comment 5 by tiborg@chromium.org, Aug 10 2017

I reached out internally.

Comment 6 by tiborg@chromium.org, Aug 10 2017

Cc: -tiborg@chromium.org
Components: -Blink>WebVR -UI>Browser>VR
Owner: tiborg@chromium.org
Status: Assigned (was: Available)

Comment 7 by tiborg@chromium.org, Aug 10 2017

Labels: -VR-Triage-Discuss

Comment 8 by tiborg@chromium.org, Aug 30 2017

This only happens if the screen is not set to the highest resolution. As a workaround:
go to Settings > Display > Screen resolution > set slider to WQHD+ (2960x1440).

I will follow up with more info on how to solve this bug properly.
Summary: VR does not work on Samsung S8+ when display is not set to highest resolution (was: VR: Chrome VR browser broken on Samsung S8+)
Cc: tiborg@chromium.org
Owner: mthiesse@chromium.org
Labels: -M-62 M-63
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 22 2017

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

commit bc7726602e587ad0b4fdb141910c7281bbf1b73e
Author: Michael Thiessen <mthiesse@chromium.org>
Date: Fri Sep 22 21:16:38 2017

Prevent Android from recreating Chrome when density changes while in WebVR.

This adds a density change handler to the manifest for ChromeActivitys,
but manually recreates ChromeActvity when not in WebVR because we don't
correctly handle DPI changing and don't redraw our Java UI correctly.
This also disables the VR Browser when on devices that change density
when in VR as we don't correctly handle density changes.

Bug:  753865 
Change-Id: I011977b7d7ef09e4d485ef2cf1cea860b3500208
Reviewed-on: https://chromium-review.googlesource.com/668042
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Yash Malik <ymalik@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503855}
[modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/AndroidManifest.xml
[modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/bc7726602e587ad0b4fdb141910c7281bbf1b73e/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java

Status: Fixed (was: Assigned)
Marking this as fixed as WebVR works again (though there are some outstanding bugs captured separately). Filed  issue 768380  to specifically capture VR browsing.
Blocking: 767589 767594 768380
Blocking: 768513
Status: Verified (was: Fixed)
Verified that with the resolution not set at the highest, WebVR works. But Chrome  Vr does not, as noted in #13.
Cc: mthiesse@chromium.org
 Issue 793725  has been merged into this issue.
Components: Internals>XR

Sign in to add a comment