diff options
author | Derek Sollenberger <djsollen@google.com> | 2009-10-13 11:40:13 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2009-10-13 14:19:49 -0400 |
commit | 1cad91756cbfe2f7d224345e615f14639a9b6499 (patch) | |
tree | 0ab55f8abaf2ecd5d11aa62cafd49812519f1819 /WebKit/android/jni/WebViewCore.cpp | |
parent | 49e856e5d5e86855d12326294cb6b57235a2e9a1 (diff) | |
download | external_webkit-1cad91756cbfe2f7d224345e615f14639a9b6499.zip external_webkit-1cad91756cbfe2f7d224345e615f14639a9b6499.tar.gz external_webkit-1cad91756cbfe2f7d224345e615f14639a9b6499.tar.bz2 |
Enabling plugins to stay in sync with UI when the DOM changes.
Diffstat (limited to 'WebKit/android/jni/WebViewCore.cpp')
-rw-r--r-- | WebKit/android/jni/WebViewCore.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 2340f99..2a86e56 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -188,6 +188,7 @@ struct WebViewCore::JavaGlue { jmethodID m_addMessageToConsole; jmethodID m_startFullScreenPluginActivity; jmethodID m_createSurface; + jmethodID m_updateSurface; jmethodID m_destroySurface; AutoJObject object(JNIEnv* env) { return getRealObject(env, m_obj); @@ -265,6 +266,7 @@ WebViewCore::WebViewCore(JNIEnv* env, jobject javaWebViewCore, WebCore::Frame* m m_javaGlue->m_addMessageToConsole = GetJMethod(env, clazz, "addMessageToConsole", "(Ljava/lang/String;ILjava/lang/String;)V"); m_javaGlue->m_startFullScreenPluginActivity = GetJMethod(env, clazz, "startFullScreenPluginActivity", "(Ljava/lang/String;Ljava/lang/String;I)V"); m_javaGlue->m_createSurface = GetJMethod(env, clazz, "createSurface", "(Ljava/lang/String;Ljava/lang/String;IIIII)Landroid/webkit/ViewManager$ChildView;"); + m_javaGlue->m_updateSurface = GetJMethod(env, clazz, "updateSurface", "(Landroid/webkit/ViewManager$ChildView;IIII)V"); m_javaGlue->m_destroySurface = GetJMethod(env, clazz, "destroySurface", "(Landroid/webkit/ViewManager$ChildView;)V"); env->SetIntField(javaWebViewCore, gWebViewCoreFields.m_nativeClass, (jint)this); @@ -2441,6 +2443,20 @@ jobject WebViewCore::createSurface(const char* libName, const char* className, } +void WebViewCore::updateSurface(jobject childView, int x, int y, int width, int height) +{ + JNIEnv* env = JSC::Bindings::getJNIEnv(); + AutoJObject obj = m_javaGlue->object(env); + // if it is called during DESTROY is handled, the real object of WebViewCore + // can be gone. Check before using it. + if (!obj.get()) + return; + + env->CallVoidMethod(obj.get(), m_javaGlue->m_updateSurface, childView, x, + y, width, height); + checkException(env); +} + void WebViewCore::destroySurface(jobject childView) { JNIEnv* env = JSC::Bindings::getJNIEnv(); |