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

Unified Diff: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java

Issue 696943002: Refactoring of DevTools bridge tests: taking advantage of Commands for proxying client-server commu… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
Index: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
new file mode 100644
index 0000000000000000000000000000000000000000..8abd132cf3dd16c4f7f3b3b4e470cecfa5ea0f7f
--- /dev/null
+++ b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/SignalingReceiverProxy.java
@@ -0,0 +1,56 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.components.devtools_bridge;
+
+import org.chromium.components.devtools_bridge.commands.Command;
+import org.chromium.components.devtools_bridge.commands.CommandReceiver;
+import org.chromium.components.devtools_bridge.commands.CommandSender;
+
+/**
+ * Helper proxy that binds client and server sessions living on different executors.
+ */
+final class SignalingReceiverProxy extends CommandSender {
+ private final CommandReceiver mReceiver;
+ private final SessionBase.Executor mServerExecutor;
+ private final SessionBase.Executor mClientExecutor;
+ private final int mDelayMs;
+
+ public SignalingReceiverProxy(
+ SessionBase.Executor serverExecutor,
+ SessionBase.Executor clientExecutor,
+ SignalingReceiver server,
+ int delayMs) {
+ mServerExecutor = serverExecutor;
+ mClientExecutor = clientExecutor;
+ mReceiver = new CommandReceiver(server);
+ mDelayMs = delayMs;
+ }
+
+ public SessionBase.Executor serverExecutor() {
+ return mServerExecutor;
+ }
+
+ public SessionBase.Executor clientExecutor() {
+ return mClientExecutor;
+ }
+
+ @Override
+ protected void send(final Command command, final Runnable completionCallback) {
+ assert mClientExecutor.isCalledOnSessionThread();
+
+ mServerExecutor.postOnSessionThread(mDelayMs, new Runnable() {
+ @Override
+ public void run() {
+ mReceiver.receive(command, new Runnable() {
+ @Override
+ public void run() {
+ assert mServerExecutor.isCalledOnSessionThread();
+ mClientExecutor.postOnSessionThread(mDelayMs, completionCallback);
+ }
+ });
+ }
+ });
+ }
+}
« no previous file with comments | « components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/LocalSessionBridge.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698