Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java |
| index 77f01b87f7aebfe72504a9944c42108e277d2a7f..c11b25a8dd10784387b0680a762705384f1dc89f 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java |
| @@ -6,12 +6,14 @@ package org.chromium.chrome.browser.webapps; |
| import android.os.StrictMode; |
| +import org.chromium.base.CommandLine; |
| import org.chromium.base.ContextUtils; |
| import org.chromium.base.Log; |
| import org.chromium.base.annotations.CalledByNative; |
| import org.chromium.base.library_loader.LibraryLoader; |
| import org.chromium.chrome.browser.AppHooks; |
| import org.chromium.chrome.browser.ChromeFeatureList; |
| +import org.chromium.chrome.browser.ChromeSwitches; |
| import org.chromium.chrome.browser.GooglePlayInstallState; |
| import org.chromium.chrome.browser.externalauth.ExternalAuthUtils; |
| import org.chromium.chrome.browser.externalauth.UserRecoverableErrorHandler; |
| @@ -30,7 +32,8 @@ public class ChromeWebApkHost { |
| private static Boolean sEnabledForTesting; |
| public static void init() { |
| - WebApkValidator.initWithBrowserHostSignature(ChromeWebApkHostSignature.EXPECTED_SIGNATURE); |
| + WebApkValidator.init(isAnyPackageNameEnabledInPrefs(), |
| + ChromeWebApkHostSignature.EXPECTED_SIGNATURE, ChromeWebApkHostSignature.PUBLIC_KEY); |
| } |
| public static void initForTesting(boolean enabled) { |
| @@ -98,6 +101,21 @@ public class ChromeWebApkHost { |
| } |
| /** |
| + * Check the cached value to figure out if any WebAPK package name may be used. We have to use |
| + * the cached value because native library may not yet been loaded. |
| + * @return Whether the feature is enabled. |
| + */ |
| + private static boolean isAnyPackageNameEnabledInPrefs() { |
| + // Will go away once the feature is enabled for everyone by default. |
| + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); |
| + try { |
| + return ChromePreferenceManager.getInstance().getCachedWebApkAnyPackageName(); |
| + } finally { |
| + StrictMode.setThreadPolicy(oldPolicy); |
| + } |
| + } |
| + |
| + /** |
| * Once native is loaded we can consult the command-line (set via about:flags) and also finch |
| * state to see if we should enable WebAPKs. |
| */ |
| @@ -110,6 +128,14 @@ public class ChromeWebApkHost { |
| Log.d(TAG, "WebApk setting changed (%s => %s)", wasEnabled, isEnabled); |
| preferenceManager.setCachedWebApkRuntimeEnabled(isEnabled); |
| } |
| + |
| + boolean wasAnyPackgeNameEnabled = isAnyPackageNameEnabledInPrefs(); |
| + boolean isAnyPackgeNameEnabled = |
|
Yaron
2017/04/13 20:50:51
isAnyPackageNameEnabled
ScottK
2017/04/13 21:00:48
Done.
|
| + CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_ANY_WEBAPK_PACKAGE_NAME); |
| + if (wasAnyPackgeNameEnabled != isAnyPackgeNameEnabled) { |
| + Log.d(TAG, "WebApk Any Package name setting changed (%s => %s)", wasEnabled, isEnabled); |
| + preferenceManager.setCachedWebApkAnyPackageNameEnabled(isEnabled); |
| + } |
| } |
| private static native boolean nativeCanLaunchRendererInWebApkProcess(); |