diff options
author | Alberto97 <albertop2197@gmail.com> | 2015-05-18 14:31:45 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2015-10-27 15:11:37 -0700 |
commit | 16c1a46d1feda185c49d7f4cf7bf0ebfd106f573 (patch) | |
tree | 02a52ef90c4acba2fa40b1d957950da518733261 /core/java | |
parent | 617275f6af2398761f32f2ec09ef9946d990cfdb (diff) | |
download | frameworks_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.java | 17 |
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); |