summaryrefslogtreecommitdiffstats
path: root/WebKit
diff options
context:
space:
mode:
authorIain Merrick <husky@google.com>2010-12-10 15:50:24 +0000
committerIain Merrick <husky@google.com>2010-12-10 16:02:01 +0000
commitff813251e110b03bbdbce5f6e2dd27e706cbb931 (patch)
tree59743a9395191803bd971cfce38f87dbe97e9ef8 /WebKit
parent83ddee4501f0c2f48d1073e0185a2fb0a732c929 (diff)
downloadexternal_webkit-ff813251e110b03bbdbce5f6e2dd27e706cbb931.zip
external_webkit-ff813251e110b03bbdbce5f6e2dd27e706cbb931.tar.gz
external_webkit-ff813251e110b03bbdbce5f6e2dd27e706cbb931.tar.bz2
Add JNI hooks for JniUtil class.
This is needed because I moved the useChromiumHttpStack() function into JniUtil (it was previously in CookieManager). Corresponding Java change in I56b0ddca BUG=3270236 Change-Id: I78a92cb2a6cee4a93957f2638d96ea5b82a8620c
Diffstat (limited to 'WebKit')
-rw-r--r--WebKit/Android.mk1
-rw-r--r--WebKit/android/jni/CookieManager.cpp11
-rw-r--r--WebKit/android/jni/JniUtil.cpp58
-rw-r--r--WebKit/android/jni/WebCoreJniOnLoad.cpp2
4 files changed, 61 insertions, 11 deletions
diff --git a/WebKit/Android.mk b/WebKit/Android.mk
index 49fc13c..510fb4e 100644
--- a/WebKit/Android.mk
+++ b/WebKit/Android.mk
@@ -67,6 +67,7 @@ LOCAL_SRC_FILES := $(LOCAL_SRC_FILES) \
android/jni/GeolocationPermissionsBridge.cpp \
android/jni/JavaBridge.cpp \
android/jni/JavaSharedClient.cpp \
+ android/jni/JniUtil.cpp \
android/jni/MIMETypeRegistry.cpp \
android/jni/MockGeolocation.cpp \
android/jni/PictureSet.cpp \
diff --git a/WebKit/android/jni/CookieManager.cpp b/WebKit/android/jni/CookieManager.cpp
index 0ba767c..e3644d1 100644
--- a/WebKit/android/jni/CookieManager.cpp
+++ b/WebKit/android/jni/CookieManager.cpp
@@ -39,16 +39,6 @@ namespace android {
// JNI for android.webkit.CookieManager
static const char* javaCookieManagerClass = "android/webkit/CookieManager";
-// WebCookieJar is threadsafe, as is CookieMonster.
-static bool useChromiumHttpStack(JNIEnv*, jobject)
-{
-#if USE(CHROME_NETWORK_STACK)
- return true;
-#else
- return false;
-#endif
-}
-
static bool acceptCookie(JNIEnv*, jobject)
{
#if USE(CHROME_NETWORK_STACK)
@@ -167,7 +157,6 @@ static void flushCookieStore(JNIEnv*, jobject)
}
static JNINativeMethod gCookieManagerMethods[] = {
- { "nativeUseChromiumHttpStack", "()Z", (void*) useChromiumHttpStack },
{ "nativeAcceptCookie", "()Z", (void*) acceptCookie },
{ "nativeGetCookie", "(Ljava/lang/String;)Ljava/lang/String;", (void*) getCookie },
{ "nativeHasCookies", "()Z", (void*) hasCookies },
diff --git a/WebKit/android/jni/JniUtil.cpp b/WebKit/android/jni/JniUtil.cpp
new file mode 100644
index 0000000..ee1e3f9
--- /dev/null
+++ b/WebKit/android/jni/JniUtil.cpp
@@ -0,0 +1,58 @@
+/*
+ * Copyright 2010, The Android Open Source Project
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+
+#include "ChromiumIncludes.h"
+#include <JNIHelp.h>
+
+namespace android {
+
+static const char* javaJniUtilClass = "android/webkit/JniUtil";
+
+static bool useChromiumHttpStack(JNIEnv*, jobject)
+{
+#if USE(CHROME_NETWORK_STACK)
+ return true;
+#else
+ return false;
+#endif
+}
+
+static JNINativeMethod gJniUtilMethods[] = {
+ { "nativeUseChromiumHttpStack", "()Z", (void*) useChromiumHttpStack },
+};
+
+int registerJniUtil(JNIEnv* env)
+{
+#ifndef NDEBUG
+ jclass jniUtil = env->FindClass(javaJniUtilClass);
+ LOG_ASSERT(jniUtil, "Unable to find class");
+ env->DeleteLocalRef(jniUtil);
+#endif
+ return jniRegisterNativeMethods(env, javaJniUtilClass, gJniUtilMethods, NELEM(gJniUtilMethods));
+}
+
+} // namespace android
diff --git a/WebKit/android/jni/WebCoreJniOnLoad.cpp b/WebKit/android/jni/WebCoreJniOnLoad.cpp
index 33afb02..f512604 100644
--- a/WebKit/android/jni/WebCoreJniOnLoad.cpp
+++ b/WebKit/android/jni/WebCoreJniOnLoad.cpp
@@ -75,6 +75,7 @@ namespace android {
extern int registerWebFrame(JNIEnv*);
extern int registerJavaBridge(JNIEnv*);
+extern int registerJniUtil(JNIEnv*);
extern int registerResourceLoader(JNIEnv*);
extern int registerWebViewCore(JNIEnv*);
extern int registerWebHistory(JNIEnv*);
@@ -102,6 +103,7 @@ struct RegistrationMethod {
static RegistrationMethod gWebCoreRegMethods[] = {
{ "JavaBridge", android::registerJavaBridge },
+ { "JniUtil", android::registerJniUtil },
{ "WebFrame", android::registerWebFrame },
{ "WebCoreResourceLoader", android::registerResourceLoader },
{ "WebViewCore", android::registerWebViewCore },