| Index: android_webview/lib/main/webview_entry_point.cc
|
| diff --git a/android_webview/lib/main/webview_entry_point.cc b/android_webview/lib/main/webview_entry_point.cc
|
| index 1dff517d37d2443681cb1e07c4e9162068875c35..12d0fa99df1ae2b1a2cf53bdf482d7881bda5532 100644
|
| --- a/android_webview/lib/main/webview_entry_point.cc
|
| +++ b/android_webview/lib/main/webview_entry_point.cc
|
| @@ -4,22 +4,23 @@
|
|
|
| #include "android_webview/lib/main/webview_jni_onload.h"
|
| #include "base/android/jni_android.h"
|
| -#include "base/bind.h"
|
| -#include "content/public/app/content_jni_onload.h"
|
|
|
| // This is called by the VM when the shared library is first loaded.
|
| // Most of the initialization is done in LibraryLoadedOnMainThread(), not here.
|
| JNI_EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {
|
| - // WebView uses native JNI exports; disable manual JNI registration to
|
| - // improve startup peformance.
|
| + // WebView uses native JNI exports; disable manual JNI registration because
|
| + // we don't have a good way to detect the JNI registrations which is called,
|
| + // outside of OnJNIOnLoadRegisterJNI code path.
|
| base::android::DisableManualJniRegistration();
|
|
|
| - std::vector<base::android::RegisterCallback> register_callbacks;
|
| - register_callbacks.push_back(base::Bind(&android_webview::RegisterJNI));
|
| - std::vector<base::android::InitCallback> init_callbacks;
|
| - init_callbacks.push_back(base::Bind(&android_webview::Init));
|
| - if (!content::android::OnJNIOnLoadRegisterJNI(vm, register_callbacks) ||
|
| - !content::android::OnJNIOnLoadInit(init_callbacks)) {
|
| + if (base::android::IsManualJniRegistrationDisabled()) {
|
| + base::android::InitVM(vm);
|
| + } else {
|
| + if (android_webview::OnJNIOnLoadRegisterJNI(vm))
|
| + return -1;
|
| + }
|
| +
|
| + if (!android_webview::OnJNIOnLoadInit()) {
|
| return -1;
|
| }
|
| return JNI_VERSION_1_4;
|
|
|