diff options
author | Derek Sollenberger <djsollen@google.com> | 2009-07-02 10:05:21 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2009-07-02 10:27:08 -0400 |
commit | 945f3b43a05cefc7138f1aeab252b43b2d6cea96 (patch) | |
tree | d5315249a23e26ac9b1fbae152554b5c9fcdb102 /core/java/android/webkit | |
parent | c2b9d63953c1261b12a99f295366d43ed90bae7f (diff) | |
download | frameworks_base-945f3b43a05cefc7138f1aeab252b43b2d6cea96.zip frameworks_base-945f3b43a05cefc7138f1aeab252b43b2d6cea96.tar.gz frameworks_base-945f3b43a05cefc7138f1aeab252b43b2d6cea96.tar.bz2 |
recognize when plugin is eligable for user events and then notify the plugin.
Diffstat (limited to 'core/java/android/webkit')
-rw-r--r-- | core/java/android/webkit/WebView.java | 9 | ||||
-rw-r--r-- | core/java/android/webkit/WebViewCore.java | 16 |
2 files changed, 24 insertions, 1 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index e061a4c..8cc7989 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -4504,6 +4504,15 @@ public class WebView extends AbsoluteLayout mCallbackProxy.uiOverrideUrlLoading(url); } + // called by JNI + private void sendPluginState(int state) { + WebViewCore.PluginStateData psd = new WebViewCore.PluginStateData(); + psd.mFrame = nativeCursorFramePointer(); + psd.mNode = nativeCursorNodePointer(); + psd.mState = state; + mWebViewCore.sendMessage(EventHub.PLUGIN_STATE, psd); + } + @Override public boolean requestFocus(int direction, Rect previouslyFocusedRect) { boolean result = false; diff --git a/core/java/android/webkit/WebViewCore.java b/core/java/android/webkit/WebViewCore.java index d8d9808..44d8b7e 100644 --- a/core/java/android/webkit/WebViewCore.java +++ b/core/java/android/webkit/WebViewCore.java @@ -440,6 +440,8 @@ final class WebViewCore { */ private native void nativeSetDatabaseQuota(long quota); + private native void nativeUpdatePluginState(int framePtr, int nodePtr, int state); + // EventHub for processing messages private final EventHub mEventHub; // WebCore thread handler @@ -570,6 +572,12 @@ final class WebViewCore { int mY; } + static class PluginStateData { + int mFrame; + int mNode; + int mState; + } + static final String[] HandlerDebugString = { "LOAD_URL", // = 100; "STOP_LOADING", // = 101; @@ -598,7 +606,7 @@ final class WebViewCore { "SINGLE_LISTBOX_CHOICE", // = 124; "MESSAGE_RELAY", // = 125; "SET_BACKGROUND_COLOR", // = 126; - "127", // = 127; + "PLUGIN_STATE", // = 127; "SAVE_DOCUMENT_STATE", // = 128; "GET_SELECTION", // = 129; "WEBKIT_DRAW", // = 130; @@ -648,6 +656,7 @@ final class WebViewCore { static final int SINGLE_LISTBOX_CHOICE = 124; static final int MESSAGE_RELAY = 125; static final int SET_BACKGROUND_COLOR = 126; + static final int PLUGIN_STATE = 127; // plugin notifications static final int SAVE_DOCUMENT_STATE = 128; static final int GET_SELECTION = 129; static final int WEBKIT_DRAW = 130; @@ -885,6 +894,11 @@ final class WebViewCore { nativeFreeMemory(); break; + case PLUGIN_STATE: + PluginStateData psd = (PluginStateData) msg.obj; + nativeUpdatePluginState(psd.mFrame, psd.mNode, psd.mState); + break; + case SET_NETWORK_STATE: if (BrowserFrame.sJavaBridge == null) { throw new IllegalStateException("No WebView " + |