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 df9e3b7fee3fa25f5f70bb84bb8a1fed250f9c95..2f34e250fe624539a0930f4ec8eb0d3979ca318f 100644 |
--- a/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java |
+++ b/android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java |
@@ -54,8 +54,20 @@ public class AwMessagePortService { |
// 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 MessageHandler extends Thread { |
- private Handler mHandler; |
+ private static class MessageHandlerThread extends Thread { |
+ private static class MessageHandler extends Handler { |
+ @Override |
+ public void handleMessage(Message msg) { |
+ if (msg.what == POST_MESSAGE) { |
+ PostMessage m = (PostMessage) msg.obj; |
+ m.port.onMessage(m.message); |
+ return; |
+ } |
+ throw new IllegalStateException("undefined message"); |
+ } |
+ } |
+ |
+ private MessageHandler mHandler; |
public Handler getHandler() { |
return mHandler; |
@@ -63,16 +75,7 @@ public class AwMessagePortService { |
public void run() { |
Looper.prepare(); |
- mHandler = new Handler() { |
- public void handleMessage(Message msg) { |
- if (msg.what == POST_MESSAGE) { |
- PostMessage m = (PostMessage) msg.obj; |
- m.port.onMessage(m.message); |
- return; |
- } |
- throw new IllegalStateException("undefined message"); |
- } |
- }; |
+ mHandler = new MessageHandler(); |
Looper.loop(); |
} |
} |
@@ -96,11 +99,11 @@ public class AwMessagePortService { |
private long mNativeMessagePortService; |
private MessagePortStorage mPortStorage = new MessagePortStorage(); |
- private MessageHandler mMessageHandler = new MessageHandler(); |
+ private MessageHandlerThread mMessageHandlerThread = new MessageHandlerThread(); |
AwMessagePortService() { |
mNativeMessagePortService = nativeInitAwMessagePortService(); |
- mMessageHandler.start(); |
+ mMessageHandlerThread.start(); |
} |
private MessagePort addPort(int portId) { |
@@ -122,7 +125,7 @@ public class AwMessagePortService { |
@CalledByNative |
private void onPostMessage(int portId, String message, int[] ports) { |
PostMessage m = new PostMessage(mPortStorage.get(portId), message); |
- Handler handler = mMessageHandler.getHandler(); |
+ Handler handler = mMessageHandlerThread.getHandler(); |
Message msg = handler.obtainMessage(POST_MESSAGE, m); |
handler.sendMessage(msg); |
} |