Chromium Code Reviews| 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; |
| } |