package android.webkit;
+import android.app.AppGlobals;
+import android.content.Context;
+import android.content.pm.PackageManager;
import android.os.Build;
import android.os.StrictMode;
import android.os.SystemProperties;
}
private static Class<WebViewFactoryProvider> getFactoryClass() throws ClassNotFoundException {
- return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY);
+ try {
+ Context webViewContext = AppGlobals.getInitialApplication().createPackageContext(
+ getWebViewPackageName(),
+ Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
+ ClassLoader clazzLoader = webViewContext.getClassLoader();
+ return (Class<WebViewFactoryProvider>) Class.forName(CHROMIUM_WEBVIEW_FACTORY, true,
+ clazzLoader);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(LOGTAG, "Chromium WebView package does not exist");
+ return (Class<WebViewFactoryProvider>) Class.forName(NULL_WEBVIEW_FACTORY);
+ }
}
}