Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1707)

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwMessagePortService.java

Issue 961393002: Implement the plumbing to handle messages in a separate handler (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address code review Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | android_webview/java/src/org/chromium/android_webview/MessagePort.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « no previous file | android_webview/java/src/org/chromium/android_webview/MessagePort.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698