diff options
Diffstat (limited to 'WebKit/android/jni/WebViewCore.cpp')
-rw-r--r-- | WebKit/android/jni/WebViewCore.cpp | 58 |
1 files changed, 13 insertions, 45 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 3889b8e..dc51a8f 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -88,7 +88,6 @@ #include "SkCanvas.h" #include "SkPicture.h" #include "SkUtils.h" -#include "SurfaceCallback.h" #include "StringImpl.h" #include "Text.h" #include "TypingCommand.h" @@ -185,7 +184,6 @@ struct WebViewCore::JavaGlue { jmethodID m_addMessageToConsole; jmethodID m_createSurface; jmethodID m_destroySurface; - jmethodID m_attachSurface; AutoJObject object(JNIEnv* env) { return getRealObject(env, m_obj); } @@ -258,9 +256,8 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m m_javaGlue->m_geolocationPermissionsShowPrompt = GetJMethod(env, clazz, "geolocationPermissionsShowPrompt", "(Ljava/lang/String;)V"); m_javaGlue->m_geolocationPermissionsHidePrompt = GetJMethod(env, clazz, "geolocationPermissionsHidePrompt", "()V"); m_javaGlue->m_addMessageToConsole = GetJMethod(env, clazz, "addMessageToConsole", "(Ljava/lang/String;ILjava/lang/String;)V"); - m_javaGlue->m_createSurface = GetJMethod(env, clazz, "createSurface", "(IIZ)Landroid/view/SurfaceView;"); - m_javaGlue->m_destroySurface = GetJMethod(env, clazz, "destroySurface", "(Landroid/view/SurfaceView;)V"); - m_javaGlue->m_attachSurface = GetJMethod(env, clazz, "attachSurface", "(Landroid/view/SurfaceView;IIII)V"); + m_javaGlue->m_createSurface = GetJMethod(env, clazz, "createSurface", "(Ljava/lang/String;Ljava/lang/String;IIIII)Landroid/webkit/ViewManager$ChildView;"); + m_javaGlue->m_destroySurface = GetJMethod(env, clazz, "destroySurface", "(Landroid/webkit/ViewManager$ChildView;)V"); env->SetIntField(javaWebViewCore, gWebViewCoreFields.m_nativeClass, (jint)this); @@ -2191,30 +2188,25 @@ void WebViewCore::setBackgroundColor(SkColor c) view->setBaseBackgroundColor(bcolor); } -jobject WebViewCore::createSurface(SurfaceCallback* cb, PixelFormat format, - bool isFixedSize) +jobject WebViewCore::createSurface(const char* packageName, const char* className, + NPP npp, int x, int y, int width, int height) { JNIEnv* env = JSC::Bindings::getJNIEnv(); - jobject surface = env->CallObjectMethod(m_javaGlue->object(env).get(), - m_javaGlue->m_createSurface, (int) cb, (int) format, isFixedSize); - checkException(env); - return surface; -} -void WebViewCore::destroySurface(jobject surface) -{ - JNIEnv* env = JSC::Bindings::getJNIEnv(); - env->CallVoidMethod(m_javaGlue->object(env).get(), - m_javaGlue->m_destroySurface, surface); + jstring packageString = env->NewStringUTF(packageName); + jstring classString = env->NewStringUTF(className); + jobject result = env->CallObjectMethod(m_javaGlue->object(env).get(), + m_javaGlue->m_createSurface, packageString, + classString,(int) npp, x, y, width, height); checkException(env); + return result; + } -void WebViewCore::attachSurface(jobject surface, int x, int y, int width, - int height) +void WebViewCore::destroySurface(jobject childView) { JNIEnv* env = JSC::Bindings::getJNIEnv(); - env->CallVoidMethod(m_javaGlue->object(env).get(), - m_javaGlue->m_attachSurface, surface, x, y, width, height); + env->CallVoidMethod(m_javaGlue->object(env).get(), m_javaGlue->m_destroySurface, childView); checkException(env); } @@ -2703,28 +2695,6 @@ static void UpdatePluginState(JNIEnv* env, jobject obj, jint framePtr, jint node (PluginState) state); } -static void SurfaceChanged(JNIEnv* env, jobject obj, jint pointer, jint state, - jint format, jint width, jint height) -{ - // Be safe and check for a valid callback - if (!pointer) - return; - SurfaceCallback* cb = reinterpret_cast<SurfaceCallback*>(pointer); - switch (state) { - case 0: - cb->surfaceCreated(); - break; - case 1: - cb->surfaceChanged(format, width, height); - break; - case 2: - cb->surfaceDestroyed(); - break; - default: - break; - } -} - static void Pause(JNIEnv* env, jobject obj) { ANPEvent event; @@ -2827,8 +2797,6 @@ static JNINativeMethod gJavaWebViewCoreMethods[] = { (void*) DumpNavTree }, { "nativeSetNewStorageLimit", "(J)V", (void*) SetNewStorageLimit }, - { "nativeSurfaceChanged", "(IIIII)V", - (void*) SurfaceChanged }, { "nativeGeolocationPermissionsProvide", "(Ljava/lang/String;ZZ)V", (void*) GeolocationPermissionsProvide }, { "nativePause", "()V", (void*) Pause }, |