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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/webapps/ChromeWebApkHost.java

Issue 2772483002: Commment signed webapks working and verified. (Closed)
Patch Set: Fix setting of flags. Created 3 years, 8 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/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..d6e36d0fde86dc381f278f5e0135c4677dae95d4 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,15 @@ public class ChromeWebApkHost {
Log.d(TAG, "WebApk setting changed (%s => %s)", wasEnabled, isEnabled);
preferenceManager.setCachedWebApkRuntimeEnabled(isEnabled);
}
+
+ boolean wasAnyPackageNameEnabled = isAnyPackageNameEnabledInPrefs();
+ boolean isAnyPackageNameEnabled =
+ CommandLine.getInstance().hasSwitch(ChromeSwitches.ENABLE_ANY_WEBAPK_PACKAGE_NAME);
+ if (wasAnyPackageNameEnabled != isAnyPackageNameEnabled) {
+ Log.d(TAG, "WebApk Any Package name setting changed (%s => %s)",
+ wasAnyPackageNameEnabled, isAnyPackageNameEnabled);
+ preferenceManager.setCachedWebApkAnyPackageNameEnabled(isAnyPackageNameEnabled);
+ }
}
private static native boolean nativeCanLaunchRendererInWebApkProcess();

Powered by Google App Engine
This is Rietveld 408576698