1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/android/base_jni_onload.h"
7 #include "base/android/jni_android.h"
8 #include "base/android/jni_utils.h"
9 #include "base/android/library_loader/library_loader_hooks.h"
10 #include "base/bind.h"
17 bool RegisterJNI(JNIEnv
* env
) {
18 return RegisterLibraryLoaderEntryHook(env
);
23 JNIEnv
* env
= base::android::AttachCurrentThread();
24 base::android::InitReplacementClassLoader(env
,
25 base::android::GetClassLoader(env
));
32 bool OnJNIOnLoadRegisterJNI(JavaVM
* vm
,
33 std::vector
<RegisterCallback
> callbacks
) {
34 base::android::InitVM(vm
);
35 JNIEnv
* env
= base::android::AttachCurrentThread();
37 callbacks
.push_back(base::Bind(&RegisterJNI
));
38 for (std::vector
<RegisterCallback
>::reverse_iterator i
=
39 callbacks
.rbegin(); i
!= callbacks
.rend(); ++i
) {
46 bool OnJNIOnLoadInit(std::vector
<InitCallback
> callbacks
) {
47 callbacks
.push_back(base::Bind(&Init
));
48 for (std::vector
<InitCallback
>::reverse_iterator i
=
49 callbacks
.rbegin(); i
!= callbacks
.rend(); ++i
) {
56 } // namespace android