Merge "Load the WebView Java code via createPackageContext."

This commit is contained in:
Marcin Kosiba
2014-09-01 08:50:08 +00:00
committed by Gerrit Code Review

View File

@@ -16,6 +16,9 @@
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;
@@ -92,6 +95,16 @@ public final class WebViewFactory {
}
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);
}
}
}