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