Chromium Code Reviews| Index: chrome/browser/android/chrome_entry_point.cc |
| diff --git a/chrome/browser/android/chrome_entry_point.cc b/chrome/browser/android/chrome_entry_point.cc |
| index 5bc9215ded3a07c1f0967cfd1f5461d7ffd50081..4a540518ea52b1de61bebefb9d50edf12251fa6c 100644 |
| --- a/chrome/browser/android/chrome_entry_point.cc |
| +++ b/chrome/browser/android/chrome_entry_point.cc |
| @@ -3,6 +3,7 @@ |
| // found in the LICENSE file. |
| #include "base/android/jni_android.h" |
| +#include "base/android/jni_utils.h" |
| #include "base/android/library_loader/library_loader_hooks.h" |
| #include "base/bind.h" |
| #include "chrome/app/android/chrome_jni_onload.h" |
| @@ -25,6 +26,15 @@ bool NativeInit() { |
| // This is called by the VM when the shared library is first loaded. |
| JNI_EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) { |
| + // By default, all JNI methods are registered. However, since render processes |
| + // don't need very much Java code, we enable selective JNI registration on the |
| + // Java side and only register a subset of JNI methods. |
| + base::android::InitVM(vm); |
|
Ted C
2017/01/31 17:56:54
why do we need this InitVM here? Wondering why th
Torne
2017/01/31 18:04:50
You need to call InitVM before AttachCurrentThread
estevenson
2017/01/31 18:56:41
Yeah, we need JNIEnv for making calls to Java. I t
|
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + if (base::android::isSelectiveJniRegistrationEnabled(env)) { |
| + base::android::SetJniRegistrationType( |
| + base::android::SELECTIVE_JNI_REGISTRATION); |
| + } |
| if (!android::OnJNIOnLoadRegisterJNI(vm, base::Bind(&RegisterJNI))) { |
| return -1; |
| } |