Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(934)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrShellDelegate.java

Issue 2955483003: Show splash screen when entering VR from a deep-link (Closed)
Patch Set: . Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 8c037d7e34cc2976b9d517c97cf8bd4758ff998a..a656a047881eef5af627af8f557d0b2872f98dda 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
@@ -46,7 +46,6 @@ import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.ChromeTabbedActivity;
-import org.chromium.chrome.browser.IntentHandler;
import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.help.HelpAndFeedback;
import org.chromium.chrome.browser.infobar.InfoBarIdentifier;
@@ -578,14 +577,18 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
return false;
}
- if (mListeningForWebVrActivateBeforePause && !mRequestedWebVr) {
+ // If the page is listening for vrdisplayactivate we assume it wants to request
+ // presentation. Go into WebVR mode tentatively. If the page doesn't request presentation
+ // in the vrdisplayactivate handler we will exit presentation later. Note that in the
+ // case of autopresentation, we don't want to enter WebVR mode so that we can show the
+ // splash screen. In this case, we enter WebVR mode when the site requests presentation.
+ boolean tentativeWebVrMode =
+ mListeningForWebVrActivateBeforePause && !mRequestedWebVr && !mAutopresentWebVr;
+ if (tentativeWebVrMode) {
nativeDisplayActivate(mNativeVrShellDelegate);
}
- // If the page is listening for vrdisplayactivate we assume it wants to request
- // presentation. Go into WebVR mode tentatively. If the page doesn't request presentation
- // in the vrdisplayactivate handler we will exit presentation later.
- enterVr(mListeningForWebVrActivateBeforePause && !mRequestedWebVr);
+ enterVr(tentativeWebVrMode);
// The user has successfully completed a DON flow.
RecordUserAction.record("VR.DON");
@@ -644,11 +647,10 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
mActivity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
addVrViews();
- boolean webVrMode = mRequestedWebVr || tentativeWebVrMode;
+ boolean webVrMode = mRequestedWebVr || tentativeWebVrMode && !mAutopresentWebVr;
mVrShell.initializeNative(mActivity.getActivityTab(), webVrMode, mAutopresentWebVr,
mActivity instanceof CustomTabActivity);
- mVrShell.setWebVrModeEnabled(webVrMode, mAutopresentWebVr);
- mAutopresentWebVr = false;
+ mVrShell.setWebVrModeEnabled(webVrMode);
// We're entering VR, but not in WebVr mode.
mVrBrowserUsed = !webVrMode;
@@ -672,6 +674,7 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
// we're not in vr.
assert !mInVr;
mAutopresentWebVr = true;
+ mDonSucceeded = true;
}
/**
@@ -679,9 +682,9 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
*/
public static void onNewIntent(ChromeActivity activity, Intent intent) {
if (IntentUtils.safeGetBooleanExtra(intent, DAYDREAM_VR_EXTRA, false)
- && ChromeFeatureList.isEnabled(ChromeFeatureList.WEBVR_AUTOPRESENT)
+ //&& ChromeFeatureList.isEnabled(ChromeFeatureList.WEBVR_AUTOPRESENT)
cjgrant 2017/06/23 19:26:32 This needs cleanup.
ymalik 2017/06/25 20:27:14 Done.
&& activitySupportsAutopresentation(activity)
- && IntentHandler.isIntentFromTrustedApp(intent, DAYDREAM_HOME_PACKAGE)) {
+ /*&& IntentHandler.isIntentFromTrustedApp(intent, DAYDREAM_HOME_PACKAGE)*/) {
VrShellDelegate instance = getInstance(activity);
if (instance == null) return;
instance.onAutopresentIntent();
@@ -744,7 +747,7 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
mRequestedWebVr = true;
switch (enterVrInternal()) {
case ENTER_VR_NOT_NECESSARY:
- mVrShell.setWebVrModeEnabled(true, mAutopresentWebVr);
+ mVrShell.setWebVrModeEnabled(true);
maybeSetPresentResult(true);
break;
case ENTER_VR_CANCELLED:
@@ -758,6 +761,7 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
default:
Log.e(TAG, "Unexpected enum.");
}
+ mAutopresentWebVr = false;
}
/**
@@ -799,7 +803,7 @@ public class VrShellDelegate implements ApplicationStatus.ActivityStateListener,
} else {
mVrBrowserUsed = true;
mAutopresentWebVr = false;
- mVrShell.setWebVrModeEnabled(false, false);
+ mVrShell.setWebVrModeEnabled(false);
}
return true;
}

Powered by Google App Engine
This is Rietveld 408576698