summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorAlberto97 <albertop2197@gmail.com>2015-05-18 14:31:45 -0700
committerSteve Kondik <steve@cyngn.com>2015-10-27 15:11:37 -0700
commit16c1a46d1feda185c49d7f4cf7bf0ebfd106f573 (patch)
tree02a52ef90c4acba2fa40b1d957950da518733261 /core/java
parent617275f6af2398761f32f2ec09ef9946d990cfdb (diff)
downloadframeworks_base-16c1a46d1feda185c49d7f4cf7bf0ebfd106f573.zip
frameworks_base-16c1a46d1feda185c49d7f4cf7bf0ebfd106f573.tar.gz
frameworks_base-16c1a46d1feda185c49d7f4cf7bf0ebfd106f573.tar.bz2
Add alternate WebView provider package
* Fall back to old config_webViewPackageName value if the alternate WebView package is not found. Change-Id: Ifd33d939e7327c6904a1c461133a4ac6389196e8
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/webkit/WebViewFactory.java17
1 files changed, 16 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java
index 584deff..93b1e56 100644
--- a/core/java/android/webkit/WebViewFactory.java
+++ b/core/java/android/webkit/WebViewFactory.java
@@ -97,7 +97,14 @@ public final class WebViewFactory {
}
public static String getWebViewPackageName() {
- return AppGlobals.getInitialApplication().getString(
+ Application initialApp = AppGlobals.getInitialApplication();
+ String pkg = initialApp.getString(
+ com.android.internal.R.string.config_alternateWebViewPackageName);
+ /* Attempt to use alternate WebView package first */
+ if (isPackageInstalled(initialApp, pkg)) {
+ return pkg;
+ }
+ return initialApp.getString(
com.android.internal.R.string.config_webViewPackageName);
}
@@ -529,6 +536,14 @@ public final class WebViewFactory {
return IWebViewUpdateService.Stub.asInterface(ServiceManager.getService("webviewupdate"));
}
+ private static boolean isPackageInstalled(Context context, String packageName) {
+ try {
+ return context.getPackageManager().getPackageInfo(packageName, 0) != null;
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ }
+
private static native boolean nativeReserveAddressSpace(long addressSpaceToReserve);
private static native boolean nativeCreateRelroFile(String lib32, String lib64,
String relro32, String relro64);