Index: sky/tools/skydb |
diff --git a/sky/tools/skydb b/sky/tools/skydb |
index 6f063640bafc146dec0915e0a991a121caac84c3..eca44490be3c8cd6baf4c43572174047600dfce1 100755 |
--- a/sky/tools/skydb |
+++ b/sky/tools/skydb |
@@ -36,6 +36,8 @@ SKY_SERVER_PORT = 9999 |
PID_FILE_PATH = "/tmp/skydb.pids" |
DEFAULT_URL = "https://raw.githubusercontent.com/domokit/mojo/master/sky/examples/home.sky" |
+ANDROID_PACKAGE = "org.chromium.mojo.shell" |
+ANDROID_ACTIVITY = "%s/.MojoShellActivity" % ANDROID_PACKAGE |
# FIXME: Move this into mopy.config |
def gn_args_from_build_dir(build_dir): |
@@ -88,7 +90,7 @@ class SkyDebugger(object): |
'-W', |
'-S', |
'-a', 'android.intent.action.VIEW', |
- '-n', 'org.chromium.mojo.shell/.MojoShellActivity', |
+ '-n', ANDROID_ACTIVITY, |
# FIXME: This quoting is very error-prone. Perhaps we should read |
# our args from a file instead? |
'--esa', 'parameters', ','.join(escaped_args), |
@@ -107,9 +109,6 @@ class SkyDebugger(object): |
'--args-for=mojo:sky_debugger_prompt %d' % remote_command_port, |
'mojo:window_manager', |
] |
- # FIXME: This probably is wrong for android? |
- if args.use_osmesa: |
- shell_args.append('--args-for=mojo:native_viewport_service --use-osmesa') |
if 'remote_sky_server_port' in self.pids: |
shell_command = self._wrap_for_android(shell_args) |
@@ -179,9 +178,15 @@ class SkyDebugger(object): |
shell_command = self._build_mojo_shell_command(args) |
- # On android we can't launch inside gdb, but rather have to attach. |
- if args.gdb and not is_android: |
- shell_command = ['gdbserver', ':%s' % GDB_PORT] + shell_command |
+ if not is_android: |
+ # Desktop-only work-around for mojo crashing under chromoting. |
+ if args.use_osmesa: |
+ shell_args.append( |
+ '--args-for=mojo:native_viewport_service --use-osmesa') |
+ |
+ # On android we can't launch inside gdb, but rather have to attach. |
+ if args.gdb: |
+ shell_command = ['gdbserver', ':%s' % GDB_PORT] + shell_command |
print ' '.join(map(pipes.quote, shell_command)) |
self.pids['mojo_shell_pid'] = subprocess.Popen(shell_command).pid |
@@ -233,6 +238,9 @@ class SkyDebugger(object): |
port_string = 'tcp:%s' % self.pids['sky_command_port'] |
subprocess.call(['adb', 'forward', '--remove', port_string]) |
+ subprocess.call([ |
+ 'adb', 'shell', 'am', 'force-stop', ANDROID_PACKAGE]) |
+ |
if 'remote_gdbserver_port' in self.pids: |
port_string = 'tcp:%s' % self.pids['remote_gdbserver_port'] |
subprocess.call(['adb', 'forward', '--remove', port_string]) |