diff options
Diffstat (limited to 'python/servo')
-rw-r--r-- | python/servo/build_commands.py | 3 | ||||
-rw-r--r-- | python/servo/command_base.py | 15 | ||||
-rw-r--r-- | python/servo/package_commands.py | 2 | ||||
-rw-r--r-- | python/servo/post_build_commands.py | 20 | ||||
-rw-r--r-- | python/servo/testing_commands.py | 4 |
5 files changed, 28 insertions, 16 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 13d31c7ac8a..fb2a61681ac 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -185,7 +185,6 @@ class MachCommands(CommandBase): debug_mozjs=False, params=None, with_debug_assertions=False): opts = params or [] - opts += ["--manifest-path", self.servo_manifest()] if android is None: android = self.config["build"]["android"] @@ -420,4 +419,4 @@ class MachCommands(CommandBase): opts += ["-v"] opts += params return check_call(["cargo", "clean"] + opts, - env=self.build_env(), cwd=self.servo_crate(), verbose=verbose) + env=self.build_env(), cwd=self.ports_servo_crate(), verbose=verbose) diff --git a/python/servo/command_base.py b/python/servo/command_base.py index 0963242226b..ae04bd077b8 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -330,15 +330,24 @@ class CommandBase(object): else: return path.join(self.context.topdir, "target") + def get_apk_path(self, release): + base_path = self.get_target_dir() + base_path = path.join(base_path, self.config["android"]["target"]) + apk_name = "servo.apk" + build_type = "release" if release else "debug" + return path.join(base_path, build_type, apk_name) + def get_binary_path(self, release, dev, android=False): # TODO(autrilla): this function could still use work - it shouldn't # handle quitting, or printing. It should return the path, or an error. base_path = self.get_target_dir() + binary_name = "servo" + BIN_SUFFIX + if android: base_path = path.join(base_path, self.config["android"]["target"]) + binary_name = "libsimpleservo.so" - binary_name = "servo" + BIN_SUFFIX release_path = path.join(base_path, "release", binary_name) dev_path = path.join(base_path, "debug", binary_name) @@ -594,10 +603,10 @@ class CommandBase(object): return env - def servo_crate(self): + def ports_servo_crate(self): return path.join(self.context.topdir, "ports", "servo") - def servo_manifest(self): + def ports_servo_manifest(self): return path.join(self.context.topdir, "ports", "servo", "Cargo.toml") def servo_features(self): diff --git a/python/servo/package_commands.py b/python/servo/package_commands.py index 03c2390e308..9b8cb8c6f4f 100644 --- a/python/servo/package_commands.py +++ b/python/servo/package_commands.py @@ -421,7 +421,7 @@ class PackageCommands(CommandBase): return 1 if android: - pkg_path = binary_path + ".apk" + pkg_path = self.get_apk_path(release) exec_command = [self.android_adb_path(env)] if emulator and usb: print("Cannot install to both emulator and USB at the same time.") diff --git a/python/servo/post_build_commands.py b/python/servo/post_build_commands.py index 0132d2ea4b0..5b29015e8ff 100644 --- a/python/servo/post_build_commands.py +++ b/python/servo/post_build_commands.py @@ -9,6 +9,7 @@ from __future__ import print_function, unicode_literals +import json import os import os.path as path import subprocess @@ -34,6 +35,13 @@ def read_file(filename, if_exists=False): return f.read() +# Copied from Python 3.3+'s shlex.quote() +def shell_quote(arg): + # use single quotes, and put single quotes into double quotes + # the string $'b is then quoted as '$'"'"'b' + return "'" + arg.replace("'", "'\"'\"'") + "'" + + @CommandProvider class PostBuildCommands(CommandBase): @Command('run', @@ -88,15 +96,11 @@ class PostBuildCommands(CommandBase): return script = [ "am force-stop com.mozilla.servo", - "echo servo >/sdcard/Android/data/com.mozilla.servo/files/android_params" ] - for param in params: - script += [ - "echo '%s' >>/sdcard/Android/data/com.mozilla.servo/files/android_params" - % param.replace("'", "\\'") - ] + json_params = shell_quote(json.dumps(params)) + extra = "-e servoargs " + json_params script += [ - "am start com.mozilla.servo/com.mozilla.servo.MainActivity", + "am start " + extra + " com.mozilla.servo/com.mozilla.servo.MainActivity", "sleep 0.5", "echo Servo PID: $(pidof com.mozilla.servo)", "exit" @@ -257,7 +261,7 @@ class PostBuildCommands(CommandBase): copy2(full_name, destination) return self.call_rustup_run( - ["cargo", "doc", "--manifest-path", self.servo_manifest()] + params, + ["cargo", "doc", "--manifest-path", self.ports_servo_manifest()] + params, env=self.build_env() ) diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py index db369a82b2d..78147ad6240 100644 --- a/python/servo/testing_commands.py +++ b/python/servo/testing_commands.py @@ -278,7 +278,7 @@ class MachCommands(CommandBase): features = self.servo_features() if len(packages) > 0 or len(in_crate_packages) > 0: - args = ["cargo", "bench" if bench else "test", "--manifest-path", self.servo_manifest()] + args = ["cargo", "bench" if bench else "test", "--manifest-path", self.ports_servo_manifest()] for crate in packages: args += ["-p", "%s_tests" % crate] for crate in in_crate_packages: @@ -576,7 +576,7 @@ class MachCommands(CommandBase): def test_android_startup(self, release, dev): html = """ <script> - console.log("JavaScript is running!") + window.alert("JavaScript is running!") </script> """ url = "data:text/html;base64," + html.encode("base64").replace("\n", "") |