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

Unified Diff: components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java

Issue 537253003: Implementing RTC debugging session objects (client and server parts). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@tunnel
Patch Set: Created 6 years, 2 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/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java
diff --git a/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java b/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java
index 8d230160c106151ed75e09718f256bce0339f210..57f93f840ec13372a1a2fcd63c46a57cf76a5255 100644
--- a/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java
+++ b/components/devtools_bridge/android/javatests/src/org/chromium/components/devtools_bridge/tests/DebugService.java
@@ -13,6 +13,7 @@ import android.os.IBinder;
import android.os.Process;
import android.widget.Toast;
+import org.chromium.components.devtools_bridge.LocalSessionBridge;
import org.chromium.components.devtools_bridge.LocalTunnelBridge;
import java.io.IOException;
@@ -22,15 +23,86 @@ import java.io.IOException;
*/
public class DebugService extends Service {
private static final String PACKAGE = "org.chromium.components.devtools_bridge.tests";
- public static final String START_ACTION = PACKAGE + ".START_ACTION";
+ public static final String START_TUNNEL_BRIDGE_ACTION =
+ PACKAGE + ".START_TUNNEL_BRIDGE_ACTION";
+ public static final String START_SESSION_BRIDGE_ACTION =
+ PACKAGE + ".START_SESSION_BRIDGE_ACTION";
public static final String STOP_ACTION = PACKAGE + ".STOP_ACTION";
private static final int NOTIFICATION_ID = 1;
- private LocalTunnelBridge mBridge;
+ private Controller mRunningController;
- private LocalTunnelBridge createBridge() throws IOException {
- String exposingSocketName = "webview_devtools_remote_" + Integer.valueOf(Process.myPid());
- return new LocalTunnelBridge("chrome_shell_devtools_remote", exposingSocketName);
+ private interface Controller {
+ void create() throws IOException;
+ void start() throws Exception;
+ void stop();
+ void dispose();
+ }
+
+ private String replicatingSocketName() {
+ return "chrome_shell_devtools_remote";
+ }
+
+ private String exposingSocketName() {
+ return "webview_devtools_remote_" + Integer.valueOf(Process.myPid());
+ }
+
+ private class LocalTunnelBridgeController implements Controller {
+ private LocalTunnelBridge mBridge;
+
+ @Override
+ public void create() throws IOException {
+ mBridge = new LocalTunnelBridge(replicatingSocketName(), exposingSocketName());
+ }
+
+ @Override
+ public void start() throws Exception {
+ mBridge.start();
+ }
+
+ @Override
+ public void stop() {
+ mBridge.stop();
+ }
+
+ @Override
+ public void dispose() {
+ mBridge.dispose();
+ }
+
+ @Override
+ public String toString() {
+ return "LocalTunnelBridge";
+ }
+ }
+
+ private class LocalSessionBridgeController implements Controller {
+ private LocalSessionBridge mBridge;
+
+ @Override
+ public void create() throws IOException {
+ mBridge = new LocalSessionBridge(replicatingSocketName(), exposingSocketName());
+ }
+
+ @Override
+ public void start() {
+ mBridge.start();
+ }
+
+ @Override
+ public void stop() {
+ mBridge.stop();
+ }
+
+ @Override
+ public void dispose() {
+ mBridge.dispose();
+ }
+
+ @Override
+ public String toString() {
+ return "LocalSessionBridge";
+ }
}
@Override
@@ -38,42 +110,48 @@ public class DebugService extends Service {
if (intent == null) return START_NOT_STICKY;
String action = intent.getAction();
- if (START_ACTION.equals(action)) {
- return start();
+ if (START_TUNNEL_BRIDGE_ACTION.equals(action)) {
+ return start(new LocalTunnelBridgeController());
+ } else if (START_SESSION_BRIDGE_ACTION.equals(action)) {
+ return start(new LocalSessionBridgeController());
} else if (STOP_ACTION.equals(action)) {
return stop();
}
return START_NOT_STICKY;
}
- private int start() {
- if (mBridge != null)
+ private int start(Controller controller) {
+ if (mRunningController != null) {
+ Toast.makeText(this, "Already started", Toast.LENGTH_SHORT).show();
return START_NOT_STICKY;
+ }
try {
- mBridge = createBridge();
- mBridge.start();
+ controller.create();
+ controller.start();
} catch (Exception e) {
+ e.printStackTrace();
Toast.makeText(this, "Failed to start", Toast.LENGTH_SHORT).show();
- mBridge.dispose();
- mBridge = null;
+ controller.dispose();
return START_NOT_STICKY;
}
+ mRunningController = controller;
startForeground(NOTIFICATION_ID, makeForegroundServiceNotification());
- Toast.makeText(this, "Service started", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, controller.toString() + " started", Toast.LENGTH_SHORT).show();
return START_STICKY;
}
private int stop() {
- if (mBridge == null)
+ if (mRunningController == null)
return START_NOT_STICKY;
- mBridge.stop();
- mBridge.dispose();
- mBridge = null;
+ String name = mRunningController.toString();
+ mRunningController.stop();
+ mRunningController.dispose();
+ mRunningController = null;
stopSelf();
- Toast.makeText(this, "Service stopped", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, name + " stopped", Toast.LENGTH_SHORT).show();
return START_NOT_STICKY;
}

Powered by Google App Engine
This is Rietveld 408576698