| // Copyright 2020 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #if defined(WEBLAYER_MANUAL_JNI_REGISTRATION) |
| #include "base/android/library_loader/library_loader_hooks.h" // nogncheck |
| #include "weblayer/browser/java/jni/WebViewCompatibilityHelperImpl_jni.h" // nogncheck |
| #include "weblayer/browser/java/weblayer_jni_registration.h" // nogncheck |
| #endif |
| |
| namespace weblayer { |
| namespace { |
| #if defined(WEBLAYER_MANUAL_JNI_REGISTRATION) |
| void RegisterNonMainDexNativesHook() { |
| RegisterNonMainDexNatives(base::android::AttachCurrentThread()); |
| } |
| #endif |
| } // namespace |
| |
| bool MaybeRegisterNatives() { |
| #if defined(WEBLAYER_MANUAL_JNI_REGISTRATION) |
| JNIEnv* env = base::android::AttachCurrentThread(); |
| if (Java_WebViewCompatibilityHelperImpl_requiresManualJniRegistration(env)) { |
| if (!RegisterMainDexNatives(env)) |
| return false; |
| base::android::SetNonMainDexJniRegistrationHook( |
| RegisterNonMainDexNativesHook); |
| } |
| #endif |
| return true; |
| } |
| |
| } // namespace weblayer |