Commit 22e9acc2 authored by michaelbai's avatar michaelbai Committed by Commit bot

Refactoring devtools_bridge JNI_OnLoad

make it using base::android::OnJNIOnLoad

BUG=447393

Review URL: https://codereview.chromium.org/994543003

Cr-Commit-Position: refs/heads/master@{#319884}
parent da9e0a7a
......@@ -22,8 +22,6 @@
'sources': [
'devtools_bridge/android/apiary_client_factory.cc',
'devtools_bridge/android/apiary_client_factory.h',
'devtools_bridge/android/component_loader.cc',
'devtools_bridge/android/component_loader.h',
'devtools_bridge/android/session_dependency_factory_android.cc',
'devtools_bridge/android/session_dependency_factory_android.h',
'devtools_bridge/session_dependency_factory.cc',
......
// Copyright 2014 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.
#include "components/devtools_bridge/android/component_loader.h"
#include "base/android/base_jni_registrar.h"
#include "components/devtools_bridge/android/apiary_client_factory.h"
#include "components/devtools_bridge/android/session_dependency_factory_android.h"
namespace devtools_bridge {
namespace android {
// static
bool ComponentLoader::OnLoad(JNIEnv* env) {
return
SessionDependencyFactory::InitializeSSL() &&
base::android::RegisterJni(env) &&
SessionDependencyFactoryAndroid::RegisterNatives(env) &&
ApiaryClientFactory::RegisterNatives(env);
}
} // namespace android
} // namespace devtools_bridge
// Copyright 2014 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.
#ifndef COMPONENTS_DEVTOOLS_BRIDGE_ANDROID_COMPONENT_LOADER_H_
#define COMPONENTS_DEVTOOLS_BRIDGE_ANDROID_COMPONENT_LOADER_H_
#include <jni.h>
namespace devtools_bridge {
namespace android {
class ComponentLoader {
public:
static bool OnLoad(JNIEnv* env);
};
} // namespace android
} // namespace devtools_bridge
#endif // COMPONENTS_DEVTOOLS_BRIDGE_ANDROID_APIARY_COMPONENT_LOADER_H_
......@@ -2,20 +2,36 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/android/base_jni_onload.h"
#include "base/android/base_jni_registrar.h"
#include "base/android/jni_android.h"
#include "base/android/library_loader/library_loader_hooks.h"
#include "components/devtools_bridge/android/component_loader.h"
#include "base/bind.h"
#include "components/devtools_bridge/android/apiary_client_factory.h"
#include "components/devtools_bridge/android/session_dependency_factory_android.h"
namespace {
using namespace devtools_bridge::android;
bool RegisterJNI(JNIEnv* env) {
return base::android::RegisterJni(env) &&
SessionDependencyFactoryAndroid::RegisterNatives(env) &&
ApiaryClientFactory::RegisterNatives(env);
}
bool Init() {
return devtools_bridge::SessionDependencyFactory::InitializeSSL();
}
} // namespace
JNI_EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {
base::android::InitVM(vm);
JNIEnv* env = base::android::AttachCurrentThread();
if (!base::android::RegisterLibraryLoaderEntryHook(env)) {
return -1;
}
if (!ComponentLoader::OnLoad(env)) {
std::vector<base::android::RegisterCallback> register_callbacks;
register_callbacks.push_back(base::Bind(&RegisterJNI));
std::vector<base::android::InitCallback> init_callbacks;
init_callbacks.push_back(base::Bind(&Init));
if (!base::android::OnJNIOnLoadRegisterJNI(vm, register_callbacks) ||
!base::android::OnJNIOnLoadInit(init_callbacks)) {
return -1;
}
return JNI_VERSION_1_4;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment