| 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 8e3a6b3baead5999469e0e736a035f05c86fc1d3..9ac366c318690079b3dea6babfcc4e27f0933903 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
|
| @@ -12,7 +12,6 @@ import android.content.Intent;
|
| import android.content.pm.ActivityInfo;
|
| import android.content.res.Configuration;
|
| import android.net.Uri;
|
| -import android.os.Build;
|
| import android.os.Handler;
|
| import android.os.StrictMode;
|
| import android.os.SystemClock;
|
| @@ -82,8 +81,6 @@ public class VrShellDelegate {
|
| private static final String DAYDREAM_CATEGORY = "com.google.intent.category.DAYDREAM";
|
| private static final String CARDBOARD_CATEGORY = "com.google.intent.category.CARDBOARD";
|
|
|
| - private static final String MIN_SDK_VERSION_PARAM_NAME = "min_sdk_version";
|
| -
|
| private static final String VR_ACTIVITY_ALIAS =
|
| "org.chromium.chrome.browser.VRChromeTabbedActivity";
|
|
|
| @@ -229,16 +226,6 @@ public class VrShellDelegate {
|
|
|
| if (daydreamApi.isDaydreamReadyDevice()) return VR_DAYDREAM;
|
|
|
| - // Check cardboard support for non-daydream devices. Supported Build version is determined
|
| - // by the webvr cardboard support feature. Default is KITKAT unless specified via server
|
| - // side finch config.
|
| - if (Build.VERSION.SDK_INT < ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
|
| - ChromeFeatureList.WEBVR_CARDBOARD_SUPPORT,
|
| - MIN_SDK_VERSION_PARAM_NAME,
|
| - Build.VERSION_CODES.KITKAT)) {
|
| - return VR_NOT_AVAILABLE;
|
| - }
|
| -
|
| return VR_CARDBOARD;
|
| }
|
|
|
| @@ -624,6 +611,9 @@ public class VrShellDelegate {
|
| @CalledByNative
|
| private long createNonPresentingNativeContext() {
|
| if (mVrClassesWrapper == null) return 0;
|
| + // Update VR support level as it can change at runtime
|
| + updateVrSupportLevel();
|
| + if (mVrSupportLevel == VR_NOT_AVAILABLE) return 0;
|
| mNonPresentingGvrContext = mVrClassesWrapper.createNonPresentingGvrContext(mActivity);
|
| if (mNonPresentingGvrContext == null) return 0;
|
| return mNonPresentingGvrContext.getNativeGvrContext();
|
| @@ -676,23 +666,19 @@ public class VrShellDelegate {
|
|
|
| private static boolean isVrCoreCompatible(
|
| VrCoreVersionChecker versionChecker, Tab tabToShowInfobarIn) {
|
| - return verifyOrUpdateVrServices(
|
| - versionChecker.getVrCoreCompatibility(), tabToShowInfobarIn);
|
| - }
|
| + int vrCoreCompatibility = versionChecker.getVrCoreCompatibility();
|
|
|
| - private static boolean verifyOrUpdateVrServices(int vrCoreCompatibility, Tab tab) {
|
| - if (vrCoreCompatibility == VrCoreVersionChecker.VR_READY) {
|
| - return true;
|
| + if (vrCoreCompatibility == VrCoreVersionChecker.VR_NOT_AVAILABLE
|
| + || vrCoreCompatibility == VrCoreVersionChecker.VR_OUT_OF_DATE) {
|
| + promptToUpdateVrServices(vrCoreCompatibility, tabToShowInfobarIn);
|
| }
|
| +
|
| + return vrCoreCompatibility == VrCoreVersionChecker.VR_READY;
|
| + }
|
| +
|
| + private static void promptToUpdateVrServices(int vrCoreCompatibility, Tab tab) {
|
| if (tab == null) {
|
| - return false;
|
| - }
|
| - // Make sure OS is supported before showing the user a prompt.
|
| - if (Build.VERSION.SDK_INT < ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
|
| - ChromeFeatureList.WEBVR_CARDBOARD_SUPPORT,
|
| - MIN_SDK_VERSION_PARAM_NAME,
|
| - Build.VERSION_CODES.KITKAT)) {
|
| - return false;
|
| + return;
|
| }
|
| final Activity activity = tab.getActivity();
|
| String infobarText;
|
| @@ -706,7 +692,7 @@ public class VrShellDelegate {
|
| buttonText = activity.getString(R.string.vr_services_check_infobar_update_button);
|
| } else {
|
| Log.e(TAG, "Unknown VrCore compatibility: " + vrCoreCompatibility);
|
| - return false;
|
| + return;
|
| }
|
|
|
| SimpleConfirmInfoBarBuilder.create(tab,
|
| @@ -723,7 +709,6 @@ public class VrShellDelegate {
|
| },
|
| InfoBarIdentifier.VR_SERVICES_UPGRADE_ANDROID, R.drawable.vr_services, infobarText,
|
| buttonText, null, true);
|
| - return false;
|
| }
|
|
|
| private boolean createVrShell() {
|
|
|