summaryrefslogtreecommitdiffstats
path: root/WebKit/android/jni/WebViewCore.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/android/jni/WebViewCore.cpp')
-rw-r--r--WebKit/android/jni/WebViewCore.cpp58
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 },