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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/vr_shell/VrCoreVersionCheckerImpl.java

Issue 2701523008: Intercept WebVR api calls and check for VrCore compatibility. (Closed)
Patch Set: rebase on latest patch Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.vr_shell; 5 package org.chromium.chrome.browser.vr_shell;
6 6
7 import android.os.Build;
8
7 import com.google.vr.ndk.base.Version; 9 import com.google.vr.ndk.base.Version;
8 import com.google.vr.vrcore.base.api.VrCoreNotAvailableException; 10 import com.google.vr.vrcore.base.api.VrCoreNotAvailableException;
9 import com.google.vr.vrcore.base.api.VrCoreUtils; 11 import com.google.vr.vrcore.base.api.VrCoreUtils;
10 12
11 import org.chromium.base.ContextUtils; 13 import org.chromium.base.ContextUtils;
12 import org.chromium.base.Log; 14 import org.chromium.base.Log;
13 15
16 import org.chromium.chrome.browser.ChromeFeatureList;
17
14 /** 18 /**
15 * Helper class to check if VrCore version is compatible with Chromium. 19 * Helper class to check if VrCore version is compatible with Chromium.
16 */ 20 */
17 public class VrCoreVersionCheckerImpl implements VrCoreVersionChecker { 21 public class VrCoreVersionCheckerImpl implements VrCoreVersionChecker {
18 private static final String TAG = "VrCoreVersionChecker"; 22 private static final String TAG = "VrCoreVersionChecker";
19 23
24 private static final String MIN_SDK_VERSION_PARAM_NAME = "min_sdk_version";
25
20 @Override 26 @Override
21 public int getVrCoreCompatibility() { 27 public int getVrCoreCompatibility() {
28 // Supported Build version is determined by the webvr cardboard support feature.
29 // Default is KITKAT unless specified via server side finch config.
30 if (Build.VERSION.SDK_INT < ChromeFeatureList.getFieldTrialParamByFeatur eAsInt(
31 ChromeFeatureList.WEBVR_CARDBOARD_SU PPORT,
32 MIN_SDK_VERSION_PARAM_NAME,
33 Build.VERSION_CODES.KITKAT)) {
34 return VrCoreVersionChecker.VR_NOT_SUPPORTED;
35 }
22 try { 36 try {
23 String vrCoreSdkLibraryVersionString = VrCoreUtils.getVrCoreSdkLibra ryVersion( 37 String vrCoreSdkLibraryVersionString = VrCoreUtils.getVrCoreSdkLibra ryVersion(
24 ContextUtils.getApplicationContext()); 38 ContextUtils.getApplicationContext());
25 Version vrCoreSdkLibraryVersion = Version.parse(vrCoreSdkLibraryVers ionString); 39 Version vrCoreSdkLibraryVersion = Version.parse(vrCoreSdkLibraryVers ionString);
26 Version targetSdkLibraryVersion = 40 Version targetSdkLibraryVersion =
27 Version.parse(com.google.vr.ndk.base.BuildConstants.VERSION) ; 41 Version.parse(com.google.vr.ndk.base.BuildConstants.VERSION) ;
28 if (!vrCoreSdkLibraryVersion.isAtLeast(targetSdkLibraryVersion)) { 42 if (!vrCoreSdkLibraryVersion.isAtLeast(targetSdkLibraryVersion)) {
29 return VrCoreVersionChecker.VR_OUT_OF_DATE; 43 return VrCoreVersionChecker.VR_OUT_OF_DATE;
30 } 44 }
31 return VrCoreVersionChecker.VR_READY; 45 return VrCoreVersionChecker.VR_READY;
32 } catch (VrCoreNotAvailableException e) { 46 } catch (VrCoreNotAvailableException e) {
33 Log.i(TAG, "Unable to find VrCore."); 47 Log.i(TAG, "Unable to find VrCore.");
34 return VrCoreVersionChecker.VR_NOT_AVAILABLE; 48 return VrCoreVersionChecker.VR_NOT_AVAILABLE;
35 } 49 }
36 } 50 }
37 } 51 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698