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

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

Issue 1142463003: Remove devtools_bridge component (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 7 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
Index: components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/LocalSessionBridge.java
diff --git a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/LocalSessionBridge.java b/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/LocalSessionBridge.java
deleted file mode 100644
index 13f241815fe716f437e399a2a11ba9b9c6db063d..0000000000000000000000000000000000000000
--- a/components/devtools_bridge/test/android/javatests/src/org/chromium/components/devtools_bridge/LocalSessionBridge.java
+++ /dev/null
@@ -1,303 +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 android.util.Log;
-
-import java.io.IOException;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-/**
- * Helper class designated for automatic and manual testing. Creates a pair of ClientSession and
- * ServerSession on separate and threads binds them through and adapters that makes call the calls
- * on correct threads (no serialization needed for communication).
- */
-public class LocalSessionBridge {
- private static final String TAG = "LocalSessionBridge";
-
- private volatile int mDelayMs = 0;
-
- private final SessionDependencyFactory mFactory = SessionDependencyFactory.newInstance();
-
- private final ThreadedExecutor mServerExecutor = new ThreadedExecutor();
- private final ThreadedExecutor mClientExecutor = new ThreadedExecutor();
-
- private final ServerSessionMock mServerSession;
- private final ClientSessionMock mClientSession;
-
- private boolean mStarted = false;
-
- private final CountDownLatch mNegotiated = new CountDownLatch(2);
- private final CountDownLatch mControlChannelOpened = new CountDownLatch(2);
- private final CountDownLatch mClientAutoClosed = new CountDownLatch(1);
- private final CountDownLatch mServerAutoClosed = new CountDownLatch(1);
- private final CountDownLatch mTunnelConfirmed = new CountDownLatch(1);
-
- private int mServerAutoCloseTimeoutMs = -1;
- private int mClientAutoCloseTimeoutMs = -1;
-
- public LocalSessionBridge(String serverSocketName, String clientSocketName) throws IOException {
- mServerSession = new ServerSessionMock(serverSocketName);
- mClientSession = new ClientSessionMock(mServerSession, clientSocketName);
- }
-
- public void setMessageDeliveryDelayMs(int value) {
- mDelayMs = value;
- }
-
- void setClientAutoCloseTimeoutMs(int value) {
- assert !isStarted();
-
- mClientAutoCloseTimeoutMs = value;
- }
-
- void setServerAutoCloseTimeoutMs(int value) {
- assert !isStarted();
-
- mServerAutoCloseTimeoutMs = value;
- }
-
- public void dispose() {
- mServerExecutor.runSynchronously(new Runnable() {
- @Override
- public void run() {
- mServerSession.dispose();
- }
- });
- mClientExecutor.runSynchronously(new Runnable() {
- @Override
- public void run() {
- mClientSession.dispose();
- }
- });
-
- mServerExecutor.dispose();
- mClientExecutor.dispose();
- mFactory.dispose();
- }
-
- public void start() {
- start(new RTCConfiguration());
- }
-
- public void start(final RTCConfiguration config) {
- if (mServerAutoCloseTimeoutMs >= 0)
- mServerSession.setAutoCloseTimeoutMs(mServerAutoCloseTimeoutMs);
- if (mClientAutoCloseTimeoutMs >= 0)
- mClientSession.setAutoCloseTimeoutMs(mClientAutoCloseTimeoutMs);
- mClientExecutor.runSynchronously(new Runnable() {
- @Override
- public void run() {
- mClientSession.start(config);
- }
- });
- mStarted = true;
- }
-
- private boolean isStarted() {
- return mStarted;
- }
-
- public void stop() {
- assert mStarted;
-
- mServerExecutor.runSynchronously(new Runnable() {
- @Override
- public void run() {
- mServerSession.stop();
- }
- });
- mClientExecutor.runSynchronously(new Runnable() {
- @Override
- public void run() {
- mClientSession.stop();
- }
- });
- mStarted = false;
- }
-
- public void awaitNegotiated() throws InterruptedException {
- mNegotiated.await();
- }
-
- public void awaitControlChannelOpened() throws InterruptedException {
- mControlChannelOpened.await();
- }
-
- public void awaitClientAutoClosed() throws InterruptedException {
- mClientAutoClosed.await();
- }
-
- public void awaitServerAutoClosed() throws InterruptedException {
- mServerAutoClosed.await();
- }
-
- private class ServerSessionMock extends ServerSession {
- public ServerSessionMock(String serverSocketName) {
- super(LocalSessionBridge.this.mFactory, mServerExecutor, serverSocketName);
- }
-
- public void setAutoCloseTimeoutMs(int value) {
- mAutoCloseTimeoutMs = value;
- }
-
- @Override
- protected void onSessionNegotiated() {
- Log.d(TAG, "Server negotiated");
- mNegotiated.countDown();
- super.onSessionNegotiated();
- }
-
- @Override
- protected void onControlChannelOpened() {
- Log.d(TAG, "Server's control channel opened");
- super.onControlChannelOpened();
- mControlChannelOpened.countDown();
- }
-
- @Override
- protected void onIceCandidate(String candidate) {
- Log.d(TAG, "Server's ICE candidate: " + candidate);
- super.onIceCandidate(candidate);
- }
-
- @Override
- protected void closeSelf() {
- Log.d(TAG, "Server autoclosed");
- super.closeSelf();
- mServerAutoClosed.countDown();
- }
-
- @Override
- protected SocketTunnel newSocketTunnelServer(String serverSocketName) {
- SocketTunnel tunnel = super.newSocketTunnelServer(serverSocketName);
- Log.d(TAG, "Server tunnel created on " + serverSocketName);
- return tunnel;
- }
- }
-
- private class ClientSessionMock extends ClientSession {
- public ClientSessionMock(ServerSession serverSession, String clientSocketName)
- throws IOException {
- super(LocalSessionBridge.this.mFactory,
- mClientExecutor,
- createServerSessionProxy(serverSession),
- clientSocketName);
- }
-
- public void setAutoCloseTimeoutMs(int value) {
- mAutoCloseTimeoutMs = value;
- }
-
- @Override
- protected void onSessionNegotiated() {
- Log.d(TAG, "Client negotiated");
- mNegotiated.countDown();
- super.onSessionNegotiated();
- }
-
- @Override
- protected void onControlChannelOpened() {
- Log.d(TAG, "Client's control channel opened");
- super.onControlChannelOpened();
- mControlChannelOpened.countDown();
- }
-
- @Override
- protected void onIceCandidate(String candidate) {
- Log.d(TAG, "Client's ICE candidate: " + candidate);
- super.onIceCandidate(candidate);
- }
-
- @Override
- protected void closeSelf() {
- Log.d(TAG, "Client autoclosed");
- super.closeSelf();
- mClientAutoClosed.countDown();
- }
- }
-
- /**
- * Implementation of SessionBase.Executor on top of ScheduledExecutorService.
- */
- public static final class ThreadedExecutor implements SessionBase.Executor {
- private final ScheduledExecutorService mExecutor =
- Executors.newSingleThreadScheduledExecutor();
- private final AtomicReference<Thread> mSessionThread = new AtomicReference<Thread>();
-
- @Override
- public SessionBase.Cancellable postOnSessionThread(int delayMs, Runnable runnable) {
- return new CancellableFuture(mExecutor.schedule(
- new SessionThreadRunner(runnable), delayMs, TimeUnit.MILLISECONDS));
- }
-
- @Override
- public boolean isCalledOnSessionThread() {
- return Thread.currentThread() == mSessionThread.get();
- }
-
- public void runSynchronously(Runnable runnable) {
- try {
- mExecutor.submit(new SessionThreadRunner(runnable)).get();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- } catch (ExecutionException e) {
- throw new RuntimeException(e);
- }
- }
-
- public void dispose() {
- mExecutor.shutdownNow();
- }
-
- private class SessionThreadRunner implements Runnable {
- private final Runnable mRunnable;
-
- public SessionThreadRunner(Runnable runnable) {
- mRunnable = runnable;
- }
-
- @Override
- public void run() {
- Thread thread = mSessionThread.getAndSet(Thread.currentThread());
- assert thread == null;
- try {
- mRunnable.run();
- } finally {
- thread = mSessionThread.getAndSet(null);
- }
- assert thread == Thread.currentThread();
- }
- }
- }
-
- private static final class CancellableFuture implements SessionBase.Cancellable {
- private final ScheduledFuture<?> mFuture;
-
- public CancellableFuture(ScheduledFuture<?> future) {
- mFuture = future;
- }
-
- @Override
- public void cancel() {
- mFuture.cancel(false);
- }
- }
-
- private SessionBase.ServerSessionInterface createServerSessionProxy(
- SessionBase.ServerSessionInterface serverSession) {
- String sessionId = "";
-
- return new SignalingReceiverProxy(
- mServerExecutor, mClientExecutor, serverSession, sessionId, mDelayMs)
- .asServerSession(sessionId);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698