diff options
| author | Iain Merrick <husky@google.com> | 2010-12-10 15:50:24 +0000 |
|---|---|---|
| committer | Iain Merrick <husky@google.com> | 2010-12-10 16:02:01 +0000 |
| commit | ff813251e110b03bbdbce5f6e2dd27e706cbb931 (patch) | |
| tree | 59743a9395191803bd971cfce38f87dbe97e9ef8 | |
| parent | 83ddee4501f0c2f48d1073e0185a2fb0a732c929 (diff) | |
| download | external_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
| -rw-r--r-- | WebKit/Android.mk | 1 | ||||
| -rw-r--r-- | WebKit/android/jni/CookieManager.cpp | 11 | ||||
| -rw-r--r-- | WebKit/android/jni/JniUtil.cpp | 58 | ||||
| -rw-r--r-- | WebKit/android/jni/WebCoreJniOnLoad.cpp | 2 |
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 }, |
