| Index: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/ClientSession.java
|
| diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/ClientSession.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/ClientSession.java
|
| deleted file mode 100644
|
| index dfc16484f195e18c324c2ea76648d2f7a5c33c85..0000000000000000000000000000000000000000
|
| --- a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/ClientSession.java
|
| +++ /dev/null
|
| @@ -1,248 +0,0 @@
|
| -// 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 java.io.IOException;
|
| -import java.util.HashMap;
|
| -import java.util.List;
|
| -import java.util.Map;
|
| -
|
| -/**
|
| - * Client session. Creates client socket tunnel for clientSocketName as a default tunnel.
|
| - * See SessionBase for details.
|
| - */
|
| -public class ClientSession extends SessionBase {
|
| - private final ServerSessionInterface mServer;
|
| - private RTCConfiguration mConfig;
|
| - private Cancellable mIceExchangeTask;
|
| - private boolean mIceExchangeRequested = false;
|
| - private IceExchangeHandler mPendingIceExchangeRequest;
|
| -
|
| - private int mExchangeDelayMs = -1;
|
| -
|
| - protected int mInitialIceExchangeDelayMs = 200;
|
| - protected int mMaxIceExchangeDelayMs = 5000;
|
| -
|
| - private final Map<Integer, SocketTunnelClient> mPendingTunnel =
|
| - new HashMap<Integer, SocketTunnelClient>();
|
| -
|
| - public ClientSession(SessionDependencyFactory factory,
|
| - Executor executor,
|
| - ServerSessionInterface server,
|
| - String clientSocketName) throws IOException {
|
| - super(factory, executor, new SocketTunnelClient(clientSocketName));
|
| - mServer = server;
|
| - }
|
| -
|
| - public void start(RTCConfiguration config) {
|
| - checkCalledOnSessionThread();
|
| -
|
| - super.start(config, new ServerMessageHandler());
|
| - mConfig = config;
|
| -
|
| - for (Map.Entry<Integer, SocketTunnelClient> entry : mPendingTunnel.entrySet()) {
|
| - int channelId = entry.getKey();
|
| - entry.getValue().bind(connection().createDataChannel(channelId));
|
| - }
|
| -
|
| - connection().createAndSetLocalDescription(
|
| - AbstractPeerConnection.SessionDescriptionType.OFFER);
|
| - }
|
| -
|
| - @Override
|
| - public void stop() {
|
| - for (SocketTunnelClient tunnel : mPendingTunnel.values())
|
| - tunnel.unbind().dispose();
|
| -
|
| - if (mIceExchangeTask != null)
|
| - mIceExchangeTask.cancel();
|
| -
|
| - super.stop();
|
| - }
|
| -
|
| - @Override
|
| - protected void onLocalDescriptionCreatedAndSet(
|
| - AbstractPeerConnection.SessionDescriptionType type, String offer) {
|
| - assert type == AbstractPeerConnection.SessionDescriptionType.OFFER;
|
| - mServer.startSession(mConfig, offer, new CreateSessionHandler());
|
| - mConfig = null;
|
| - }
|
| -
|
| - private void onAnswerReceived(String answer) {
|
| - connection().setRemoteDescription(
|
| - AbstractPeerConnection.SessionDescriptionType.ANSWER, answer);
|
| - }
|
| -
|
| - @Override
|
| - protected void onRemoteDescriptionSet() {
|
| - onSessionNegotiated();
|
| - }
|
| -
|
| - protected void onSessionNegotiated() {
|
| - assert !isIceExchangeStarted();
|
| - updateIceExchangeStatus();
|
| - assert isIceExchangeStarted();
|
| - }
|
| -
|
| - @Override
|
| - protected void onControlChannelOpened() {
|
| - assert isIceExchangeStarted();
|
| - updateIceExchangeStatus();
|
| - }
|
| -
|
| - @Override
|
| - protected void onIceConnectionChange() {
|
| - super.onIceConnectionChange();
|
| - updateIceExchangeStatus();
|
| - }
|
| -
|
| - private void updateIceExchangeStatus() {
|
| - boolean needed = !isConnected() || !isControlChannelOpened();
|
| - if (needed == isIceExchangeStarted())
|
| - return;
|
| - if (needed)
|
| - startIceExchange();
|
| - else
|
| - stopIceExchange();
|
| - }
|
| -
|
| - private boolean isIceExchangeStarted() {
|
| - return mExchangeDelayMs >= 0;
|
| - }
|
| -
|
| - private void startIceExchange() {
|
| - assert !isIceExchangeStarted();
|
| - mExchangeDelayMs = mInitialIceExchangeDelayMs;
|
| - startAutoCloseTimer();
|
| -
|
| - if (!isIceExchangeScheduledOrPending()) {
|
| - scheduleIceExchange(mExchangeDelayMs);
|
| - }
|
| -
|
| - assert isIceExchangeScheduledOrPending();
|
| - assert isIceExchangeStarted();
|
| - }
|
| -
|
| - private void stopIceExchange() {
|
| - assert isIceExchangeStarted();
|
| - mExchangeDelayMs = -1;
|
| - stopAutoCloseTimer();
|
| -
|
| - // Last exchange will happen, not more will be scheduled (unless mIceExchangeRequested).
|
| - assert isIceExchangeScheduledOrPending();
|
| - assert !isIceExchangeStarted();
|
| - }
|
| -
|
| - private void scheduleIceExchange(int delay) {
|
| - assert mIceExchangeTask == null;
|
| - mIceExchangeTask = postOnSessionThread(delay, new Runnable() {
|
| - @Override
|
| - public void run() {
|
| - mIceExchangeTask = null;
|
| -
|
| - mServer.iceExchange(takeIceCandidates(), new IceExchangeHandler());
|
| - mIceExchangeRequested = false;
|
| - }
|
| - });
|
| - }
|
| -
|
| - private boolean isIceExchangeScheduledOrPending() {
|
| - return mIceExchangeTask != null || mPendingIceExchangeRequest != null;
|
| - }
|
| -
|
| - private void onServerCandidates(List<String> serverCandidates) {
|
| - addIceCandidates(serverCandidates);
|
| -
|
| - if (isIceExchangeStarted()) {
|
| - mExchangeDelayMs *= 2;
|
| - if (mExchangeDelayMs > mMaxIceExchangeDelayMs) {
|
| - mExchangeDelayMs = mMaxIceExchangeDelayMs;
|
| - }
|
| -
|
| - scheduleIceExchange(mExchangeDelayMs);
|
| - } else if (mIceExchangeRequested) {
|
| - scheduleIceExchange(mInitialIceExchangeDelayMs);
|
| - }
|
| - }
|
| -
|
| - /**
|
| - * Queries single ICE eqchange cycle regardless of ICE exchange process.
|
| - */
|
| - private void queryIceExchange() {
|
| - mIceExchangeRequested = true;
|
| - if (mIceExchangeTask == null && mPendingIceExchangeRequest != null) {
|
| - assert !isIceExchangeStarted();
|
| - scheduleIceExchange(mInitialIceExchangeDelayMs);
|
| - }
|
| - }
|
| -
|
| - private final class CreateSessionHandler implements NegotiationCallback {
|
| - @Override
|
| - public void onSuccess(String answer) {
|
| - checkCalledOnSessionThread();
|
| -
|
| - onAnswerReceived(answer);
|
| - }
|
| -
|
| - @Override
|
| - public void onFailure(String message) {
|
| - checkCalledOnSessionThread();
|
| -
|
| - ClientSession.this.onFailure(message);
|
| - }
|
| - }
|
| -
|
| - private final class IceExchangeHandler implements IceExchangeCallback {
|
| - public IceExchangeHandler() {
|
| - assert mPendingIceExchangeRequest == null;
|
| - mPendingIceExchangeRequest = this;
|
| - }
|
| -
|
| - @Override
|
| - public void onSuccess(List<String> serverCandidates) {
|
| - checkCalledOnSessionThread();
|
| -
|
| - mPendingIceExchangeRequest = null;
|
| - if (isStarted()) {
|
| - onServerCandidates(serverCandidates);
|
| - }
|
| - }
|
| -
|
| - @Override
|
| - public void onFailure(String message) {
|
| - checkCalledOnSessionThread();
|
| -
|
| - mPendingIceExchangeRequest = null;
|
| - if (isStarted()) {
|
| - ClientSession.this.onFailure(message);
|
| - }
|
| - }
|
| - }
|
| -
|
| - private final class ServerMessageHandler extends SessionControlMessages.ServerMessageHandler {
|
| - @Override
|
| - protected void onMessage(SessionControlMessages.ServerMessage message) {
|
| - switch (message.type) {
|
| - case ICE_EXCHANGE:
|
| - queryIceExchange();
|
| - break;
|
| -
|
| - case UNKNOWN_RESPONSE:
|
| - onUnknownResponse((SessionControlMessages.UnknownResponseMessage) message);
|
| - break;
|
| - }
|
| - }
|
| - }
|
| -
|
| - private void onUnknownResponse(SessionControlMessages.UnknownResponseMessage message) {
|
| - // TODO(serya): Handle server version incompatibility.
|
| - }
|
| -
|
| - @Override
|
| - protected void sendControlMessage(SessionControlMessages.Message<?> message) {
|
| - assert message instanceof SessionControlMessages.ClientMessage;
|
| - super.sendControlMessage(message);
|
| - }
|
| -}
|
|
|