Index: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java |
index e1e1fb7853516077a6bae0db7de27a2ac3bc20d1..4014645eab8873b433cd87a4cef6b146c9a52098 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java |
@@ -78,6 +78,8 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener, |
@IntDef({VR_NOT_AVAILABLE, VR_CARDBOARD, VR_DAYDREAM}) |
private @interface VrSupportLevel {} |
+ private static final String DAYDREAM_VR_EXTRA = "android.intent.extra.VR_LAUNCH"; |
+ |
// Linter and formatter disagree on how the line below should be formatted. |
/* package */ |
static final String VR_ENTRY_RESULT_ACTION = |
@@ -257,6 +259,13 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener, |
unregisterDaydreamIntent(api); |
} |
+ /** |
+ * Whether or not the intent is a Daydream VR Intent. |
+ */ |
+ public static boolean isDaydreamVrIntent(Intent intent) { |
+ return intent.getBooleanExtra(DAYDREAM_VR_EXTRA, false); |
+ } |
+ |
@CalledByNative |
private static VrShellDelegate getInstance() { |
Activity activity = ApplicationStatus.getLastTrackedFocusedActivity(); |
@@ -689,6 +698,11 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener, |
mListeningForWebVrActivate = listening; |
if (listening) { |
registerDaydreamIntent(mVrDaydreamApi, mActivity); |
+ if (mActivity.shouldAutoPresent()) { |
+ // Dispatch a vrdisplayactivate event to trigger WebVR page calling requestPresent. |
+ // This should start WebVR presentation. |
+ nativeDisplayActivate(mNativeVrShellDelegate); |
+ } |
} else { |
unregisterDaydreamIntent(mVrDaydreamApi); |
} |