summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni/WebCoreJni.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/jni/WebCoreJni.cpp')
-rw-r--r--WebKit/android/jni/WebCoreJni.cpp64
1 files changed, 6 insertions, 58 deletions
diff --git a/WebKit/android/jni/WebCoreJni.cpp b/WebKit/android/jni/WebCoreJni.cpp
index f9d9cc9..b757e3a 100644
--- a/WebKit/android/jni/WebCoreJni.cpp
+++ b/WebKit/android/jni/WebCoreJni.cpp
@@ -33,15 +33,6 @@
namespace android {
-extern int register_webframe(JNIEnv*);
-extern int register_javabridge(JNIEnv*);
-extern int register_resource_loader(JNIEnv*);
-extern int register_webviewcore(JNIEnv*);
-extern int register_webhistory(JNIEnv*);
-extern int register_webicondatabase(JNIEnv*);
-extern int register_websettings(JNIEnv*);
-extern int register_webview(JNIEnv*);
-
// Class, constructor, and get method on WeakReference
jclass gWeakRefClass;
jmethodID gWeakRefInit;
@@ -93,41 +84,11 @@ WebCore::String to_string(JNIEnv* env, jstring str)
return ret;
}
-}
-
-struct RegistrationMethod {
- const char* name;
- int (*func)(JNIEnv*);
-};
-
-static RegistrationMethod gWebCoreRegMethods[] = {
- { "JavaBridge", android::register_javabridge },
- { "WebFrame", android::register_webframe },
- { "WebCoreResourceLoader", android::register_resource_loader },
- { "WebViewCore", android::register_webviewcore },
- { "WebHistory", android::register_webhistory },
- { "WebIconDatabase", android::register_webicondatabase },
- { "WebSettings", android::register_websettings },
- { "WebView", android::register_webview }
-};
-
-EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
-{
- // Save the JavaVM pointer for use globally.
- JSC::Bindings::setJavaVM(vm);
-
- JNIEnv* env = NULL;
- jint result = -1;
-
- if (vm->GetEnv((void**) &env, JNI_VERSION_1_4) != JNI_OK) {
- LOGE("GetEnv failed!");
- return result;
- }
- LOG_ASSERT(env, "Could not retrieve the env!");
-
+int register_webcorejni(JNIEnv* env) {
// Instantiate the WeakReference fields.
- android::gWeakRefClass = env->FindClass("java/lang/ref/WeakReference");
- LOG_ASSERT(android::gWeakRefClass, "Could not find WeakReference");
+ jclass weakRef = env->FindClass("java/lang/ref/WeakReference");
+ LOG_ASSERT(weakRef, "Could not find WeakReference");
+ android::gWeakRefClass = (jclass)env->NewGlobalRef(weakRef);
android::gWeakRefInit = env->GetMethodID(android::gWeakRefClass,
"<init>", "(Ljava/lang/Object;)V");
LOG_ASSERT(android::gWeakRefInit,
@@ -136,20 +97,7 @@ EXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
"()Ljava/lang/Object;");
LOG_ASSERT(android::gWeakRefInit,
"Could not find get method for WeakReference");
+ return JNI_OK;
+}
- const RegistrationMethod* method = gWebCoreRegMethods;
- const RegistrationMethod* end = method + sizeof(gWebCoreRegMethods)/sizeof(RegistrationMethod);
- while (method != end) {
- if (method->func(env) < 0) {
- LOGE("%s registration failed!", method->name);
- return result;
- }
- method++;
- }
-
- // Initialize rand() function. The rand() function is used in
- // FileSystemAndroid to create a random temporary filename.
- srand(time(NULL));
-
- return JNI_VERSION_1_4;
}