diff options
author | Derek Sollenberger <djsollen@google.com> | 2011-02-05 19:14:14 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-02-05 19:14:14 -0800 |
commit | ad1398b85d7cef3bd7c3dc833921fcdb3c7f06f6 (patch) | |
tree | 3047a7d25945cef4c9f8627ea6b5919335b5efc3 /WebCore/platform | |
parent | 4fff0b9fdd23cd60b036e2ea48190e7a7d8dbf13 (diff) | |
parent | 79f07c999ff47d31cb788a64e35bfc04e7ed394d (diff) | |
download | external_webkit-ad1398b85d7cef3bd7c3dc833921fcdb3c7f06f6.zip external_webkit-ad1398b85d7cef3bd7c3dc833921fcdb3c7f06f6.tar.gz external_webkit-ad1398b85d7cef3bd7c3dc833921fcdb3c7f06f6.tar.bz2 |
am 79f07c99: Fix to post an inval when plugins request a native video surface.
* commit '79f07c999ff47d31cb788a64e35bfc04e7ed394d':
Fix to post an inval when plugins request a native video surface.
Diffstat (limited to 'WebCore/platform')
-rw-r--r-- | WebCore/platform/graphics/android/MediaTexture.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/MediaTexture.cpp b/WebCore/platform/graphics/android/MediaTexture.cpp index c994e78..a92b570 100644 --- a/WebCore/platform/graphics/android/MediaTexture.cpp +++ b/WebCore/platform/graphics/android/MediaTexture.cpp @@ -158,8 +158,23 @@ ANativeWindow* VideoTexture::requestNewWindow() } m_newWindowRequest = true; + + // post an inval message to the UI thread to fulfill the request + if (m_weakWebViewRef) { + JNIEnv* env = JSC::Bindings::getJNIEnv(); + jobject localWebViewRef = env->NewLocalRef(m_weakWebViewRef); + if (localWebViewRef) { + jclass wvClass = env->GetObjectClass(localWebViewRef); + jmethodID postInvalMethod = env->GetMethodID(wvClass, "postInvalidate", "()V"); + env->CallVoidMethod(localWebViewRef, postInvalMethod); + env->DeleteLocalRef(wvClass); + env->DeleteLocalRef(localWebViewRef); + } + checkException(env); + } + //block until the request can be fulfilled or we time out - m_newVideoRequestCond.waitRelative(m_videoLock, 1000000000); // 1 sec + m_newVideoRequestCond.waitRelative(m_videoLock, 500000000); // .5 sec if (m_surfaceTextureClient.get()) m_newWindowReady = false; |