From 96cbe7ac97c7df131f332a33ab2fde4eae518520 Mon Sep 17 00:00:00 2001 From: Jack Moffitt Date: Fri, 4 Mar 2016 10:24:09 -0700 Subject: [PATCH] Add --browserhtml/-b command to ./mach run This will run Servo with browser.html. We use the latest package in the dependency tree if there are multiple copies, since there is no way for Cargo to tell us which one is canonical. --- ports/cef/Cargo.lock | 6 ++++++ ports/gonk/Cargo.lock | 6 ++++++ python/servo/post_build_commands.py | 24 +++++++++++++++++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ports/cef/Cargo.lock b/ports/cef/Cargo.lock index 1f6f4a993050..42ec9dd1f06c 100644 --- a/ports/cef/Cargo.lock +++ b/ports/cef/Cargo.lock @@ -127,6 +127,11 @@ name = "brotli" version = "0.3.20" source = "git+https://github.com/ende76/brotli-rs#c243045b88b2d2924c35269586fa9b770184c74c" +[[package]] +name = "browserhtml" +version = "0.1.2" +source = "git+https://github.com/browserhtml/browserhtml?branch=gh-pages#120c811302a9993f3aad103fbb695847693969ea" + [[package]] name = "byteorder" version = "0.4.2" @@ -1660,6 +1665,7 @@ name = "servo" version = "0.0.1" dependencies = [ "bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "browserhtml 0.1.2 (git+https://github.com/browserhtml/browserhtml?branch=gh-pages)", "canvas 0.0.1", "canvas_traits 0.0.1", "compositing 0.0.1", diff --git a/ports/gonk/Cargo.lock b/ports/gonk/Cargo.lock index c9ad8eb27822..dc732ac44a56 100644 --- a/ports/gonk/Cargo.lock +++ b/ports/gonk/Cargo.lock @@ -120,6 +120,11 @@ name = "brotli" version = "0.3.20" source = "git+https://github.com/ende76/brotli-rs#c243045b88b2d2924c35269586fa9b770184c74c" +[[package]] +name = "browserhtml" +version = "0.1.2" +source = "git+https://github.com/browserhtml/browserhtml?branch=gh-pages#120c811302a9993f3aad103fbb695847693969ea" + [[package]] name = "byteorder" version = "0.4.2" @@ -1642,6 +1647,7 @@ name = "servo" version = "0.0.1" dependencies = [ "bitflags 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", + "browserhtml 0.1.2 (git+https://github.com/browserhtml/browserhtml?branch=gh-pages)", "canvas 0.0.1", "canvas_traits 0.0.1", "compositing 0.0.1", diff --git a/python/servo/post_build_commands.py b/python/servo/post_build_commands.py index ea6020de809d..c1c3f73dc69c 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 +from glob import glob import os import os.path as path import subprocess @@ -32,6 +33,18 @@ def read_file(filename, if_exists=False): return f.read() +def find_dep_path_newest(package, bin_path): + deps_path = path.join(path.split(bin_path)[0], "build") + with cd(deps_path): + print(os.getcwd()) + candidates = glob(package + '-*') + candidates = (path.join(deps_path, c) for c in candidates) + candidate_times = sorted(((path.getmtime(c), c) for c in candidates), reverse=True) + if len(candidate_times) > 0: + return candidate_times[0][1] + return None + + @CommandProvider class PostBuildCommands(CommandBase): @Command('run', @@ -50,10 +63,12 @@ class PostBuildCommands(CommandBase): 'have no effect without this.') @CommandArgument('--debugger', default=None, type=str, help='Name of debugger to use.') + @CommandArgument('--browserhtml', '-b', action='store_true', + help='Launch with Browser.html') @CommandArgument( 'params', nargs='...', help="Command-line arguments to be passed through to Servo") - def run(self, params, release=False, dev=False, android=None, debug=False, debugger=None): + def run(self, params, release=False, dev=False, android=None, debug=False, debugger=None, browserhtml=False): env = self.build_env() env["RUST_BACKTRACE"] = "1" @@ -110,6 +125,13 @@ def run(self, params, release=False, dev=False, android=None, debug=False, debug # Prepend the debugger args. args = ([command] + self.debuggerInfo.args + args + params) + elif browserhtml: + browserhtml_path = find_dep_path_newest('browserhtml', args[0]) + if browserhtml_path is None: + print("Could not find browserhtml package; perhaps you haven't built Servo.") + return 1 + args = args + ['-w', '-b', '--pref', 'dom.mozbrowser.enabled', + path.join(browserhtml_path, 'out', 'index.html')] else: args = args + params