blob: 6ca34dc9dbdb6a59a3ff64d555e23f648825c46c [file] [log] [blame]
#!/usr/bin/env python
# Copyright 2015 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# The script follows mojo/services/html_viewer/view_url.py and modified it for
# test the mojo media renderer. The page will be rendered in a headless mode.
#
# TODO(xhwang): Explore the possibility of running this with the Kiosk window
# manager. See http://crbug.com/467176
import argparse
import os
import subprocess
import sys
root_path = os.path.realpath(
os.path.join(
os.path.dirname(
os.path.realpath(__file__)),
os.pardir,
os.pardir,
os.pardir))
def _BuildShellCommand(args):
sdk_version = subprocess.check_output(["cat",
"third_party/mojo/src/mojo/public/VERSION"], cwd=root_path)
build_dir = os.path.join(root_path, args.build_dir)
shell_command = [os.path.join(build_dir, "mojo_shell")]
options = []
options.append(
"--origin=https://storage.googleapis.com/mojo/services/linux-x64/%s" %
sdk_version)
options.append("--url-mappings=mojo:html_viewer=file://%s/html_viewer.mojo,"
"mojo:media=file://%s/media.mojo" % (build_dir, build_dir))
args_for_html_viewer = "--enable-mojo-media-renderer --is-headless "
if args.verbose:
args_for_html_viewer += \
"--vmodule=pipeline*=3,*renderer_impl*=3,*mojo_demuxer*=3"
options.append("--args-for=mojo:html_viewer %s" % args_for_html_viewer)
if args.verbose:
args_for_media = "--vmodule=mojo*service=3"
options.append("--args-for=mojo:media %s" % args_for_media)
full_command = shell_command + options + [args.url]
if args.verbose:
print full_command
return full_command
def main():
parser = argparse.ArgumentParser(
description="View a URL with HTMLViewer with mojo media renderer. "
"You must have built //mojo/services/html_viewer, "
"//mojo/services/network and //media/mojo/services first. "
" Note that this will currently often fail spectacularly due "
" to lack of binary stability in Mojo.")
parser.add_argument(
"--build-dir",
help="Path to the dir containing the linux-x64 binaries relative to the "
"repo root (default: %(default)s)",
default="out/Release")
parser.add_argument("--verbose", help="Increase output verbosity.",
action="store_true")
parser.add_argument("url",
help="The URL to be viewed")
args = parser.parse_args()
return subprocess.call(_BuildShellCommand(args))
if __name__ == '__main__':
sys.exit(main())