| Index: android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java b/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java
|
| index ddc09a08423e9b5d875e6e416c98042389064805..4229cf5d576c94279ec72a026a900eab81885787 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java
|
| @@ -4,9 +4,6 @@
|
|
|
| package org.chromium.android_webview;
|
|
|
| -import android.os.Handler;
|
| -import android.os.Looper;
|
| -import android.os.Message;
|
| import android.util.SparseArray;
|
|
|
| import org.chromium.base.CalledByNative;
|
| @@ -39,8 +36,6 @@ public class AwMessagePortService {
|
|
|
| private static final String TAG = "AwMessagePortService";
|
|
|
| - private static final int POST_MESSAGE = 1;
|
| -
|
| /**
|
| * Observer for MessageChannel events.
|
| */
|
| @@ -48,45 +43,6 @@ public class AwMessagePortService {
|
| void onMessageChannelCreated();
|
| }
|
|
|
| - private static class PostMessageFromWeb {
|
| - public MessagePort port;
|
| - public String message;
|
| -
|
| - public PostMessageFromWeb(MessagePort port, String message) {
|
| - this.port = port;
|
| - this.message = message;
|
| - }
|
| - }
|
| -
|
| - // The messages from JS to Java are posted to a message port on a background thread.
|
| - // We do this to make any potential synchronization between Java and JS
|
| - // easier for user programs.
|
| - private static class MessageHandlerThread extends Thread {
|
| - private static class MessageHandler extends Handler {
|
| - @Override
|
| - public void handleMessage(Message msg) {
|
| - if (msg.what == POST_MESSAGE) {
|
| - PostMessageFromWeb m = (PostMessageFromWeb) msg.obj;
|
| - m.port.onMessage(m.message);
|
| - return;
|
| - }
|
| - throw new IllegalStateException("undefined message");
|
| - }
|
| - }
|
| -
|
| - private MessageHandler mHandler;
|
| -
|
| - public Handler getHandler() {
|
| - return mHandler;
|
| - }
|
| -
|
| - public void run() {
|
| - Looper.prepare();
|
| - mHandler = new MessageHandler();
|
| - Looper.loop();
|
| - }
|
| - }
|
| -
|
| // A thread safe storage for Message Ports.
|
| private static class MessagePortStorage {
|
| private SparseArray<MessagePort> mMessagePorts = new SparseArray<MessagePort>();
|
| @@ -112,13 +68,11 @@ public class AwMessagePortService {
|
|
|
| private long mNativeMessagePortService;
|
| private MessagePortStorage mPortStorage = new MessagePortStorage();
|
| - private MessageHandlerThread mMessageHandlerThread = new MessageHandlerThread();
|
| private ObserverList<MessageChannelObserver> mObserverList =
|
| new ObserverList<MessageChannelObserver>();
|
|
|
| AwMessagePortService() {
|
| mNativeMessagePortService = nativeInitAwMessagePortService();
|
| - mMessageHandlerThread.start();
|
| }
|
|
|
| public void addObserver(MessageChannelObserver observer) {
|
| @@ -181,16 +135,11 @@ public class AwMessagePortService {
|
| }
|
| }
|
|
|
| + // Called on IO thread.
|
| @CalledByNative
|
| - private void onPostMessage(int portId, String message, int[] ports) {
|
| - PostMessageFromWeb m = new PostMessageFromWeb(mPortStorage.get(portId), message);
|
| - Handler handler = mMessageHandlerThread.getHandler();
|
| - if (handler == null) {
|
| - // TODO(sgurun) handler could be null. But this logic will be removed.
|
| - return;
|
| - }
|
| - Message msg = handler.obtainMessage(POST_MESSAGE, m);
|
| - handler.sendMessage(msg);
|
| + private void onReceivedMessage(int portId, String message, int[] ports) {
|
| + // TODO(sgurun) implement receiving ports from native
|
| + mPortStorage.get(portId).onReceivedMessage(message);
|
| }
|
|
|
| @CalledByNative
|
|
|