| 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
|
| index 8abd132cf3dd16c4f7f3b3b4e470cecfa5ea0f7f..f57637b05ed092d5fce84a564dd9f47204055e1b 100644
|
| --- 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
|
| @@ -8,6 +8,8 @@ import org.chromium.components.devtools_bridge.commands.Command;
|
| import org.chromium.components.devtools_bridge.commands.CommandReceiver;
|
| import org.chromium.components.devtools_bridge.commands.CommandSender;
|
|
|
| +import java.util.List;
|
| +
|
| /**
|
| * Helper proxy that binds client and server sessions living on different executors.
|
| */
|
| @@ -28,6 +30,17 @@ final class SignalingReceiverProxy extends CommandSender {
|
| mDelayMs = delayMs;
|
| }
|
|
|
| + public SignalingReceiverProxy(
|
| + SessionBase.Executor serverExecutor,
|
| + SessionBase.Executor clientExecutor,
|
| + SessionBase.ServerSessionInterface serverSession,
|
| + String sessionId,
|
| + int delayMs) {
|
| + this(serverExecutor, clientExecutor,
|
| + new SignalingReceiverAdaptor(serverSession, sessionId),
|
| + delayMs);
|
| + }
|
| +
|
| public SessionBase.Executor serverExecutor() {
|
| return mServerExecutor;
|
| }
|
| @@ -53,4 +66,72 @@ final class SignalingReceiverProxy extends CommandSender {
|
| }
|
| });
|
| }
|
| +
|
| + public SessionBase.ServerSessionInterface asServerSession(String sessionId) {
|
| + return new ServerSessionAdapter(this, sessionId);
|
| + }
|
| +
|
| + private static final class ServerSessionAdapter implements SessionBase.ServerSessionInterface {
|
| + private final SignalingReceiver mAdaptee;
|
| + private final String mSessionId;
|
| +
|
| + public ServerSessionAdapter(SignalingReceiver adaptee, String sessionId) {
|
| + mAdaptee = adaptee;
|
| + mSessionId = sessionId;
|
| + }
|
| +
|
| + @Override
|
| + public void startSession(
|
| + RTCConfiguration config, String offer, SessionBase.NegotiationCallback callback) {
|
| + mAdaptee.startSession(mSessionId, config, offer, callback);
|
| + }
|
| +
|
| + @Override
|
| + public void renegotiate(String offer, SessionBase.NegotiationCallback callback) {
|
| + mAdaptee.renegotiate(mSessionId, offer, callback);
|
| + }
|
| +
|
| + @Override
|
| + public void iceExchange(
|
| + List<String> clientCandidates, SessionBase.IceExchangeCallback callback) {
|
| + mAdaptee.iceExchange(mSessionId, clientCandidates, callback);
|
| + }
|
| + }
|
| +
|
| + private static final class SignalingReceiverAdaptor implements SignalingReceiver {
|
| + private final SessionBase.ServerSessionInterface mAdaptee;
|
| + private final String mSessionId;
|
| +
|
| + public SignalingReceiverAdaptor(
|
| + SessionBase.ServerSessionInterface adaptee, String sessionId) {
|
| + mAdaptee = adaptee;
|
| + mSessionId = sessionId;
|
| + }
|
| +
|
| + @Override
|
| + public void startSession(
|
| + String sessionId, RTCConfiguration config, String offer,
|
| + SessionBase.NegotiationCallback callback) {
|
| + if (mSessionId.equals(sessionId)) {
|
| + mAdaptee.startSession(config, offer, callback);
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public void renegotiate(
|
| + String sessionId, String offer, SessionBase.NegotiationCallback callback) {
|
| + if (mSessionId.equals(sessionId)) {
|
| + mAdaptee.renegotiate(offer, callback);
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public void iceExchange(
|
| + String sessionId, List<String> clientCandidates,
|
| + SessionBase.IceExchangeCallback callback) {
|
| + if (mSessionId.equals(sessionId)) {
|
| + mAdaptee.iceExchange(clientCandidates, callback);
|
| + }
|
| + }
|
| + }
|
| }
|
|
|