From 9f5a253a9ea8447e96dbd6e39fcf3622aa1c8d64 Mon Sep 17 00:00:00 2001 From: Eric Seidel Date: Thu, 23 Oct 2014 13:40:48 -0700 Subject: [PATCH] Teach tools/skydb how to take a URL as a parameter. Turns out our shut-down code in debugger.cc is never called. Need to talk to Ben to figure out how to listen for the CloseWindow. R=abarth@chromium.org Review URL: https://codereview.chromium.org/658113004 --- engine/src/flutter/tools/debugger/debugger.cc | 2 ++ .../flutter/tools/debugger/prompt/prompt.cc | 6 +++- engine/src/flutter/tools/skydb | 31 +++++++++++++------ 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/engine/src/flutter/tools/debugger/debugger.cc b/engine/src/flutter/tools/debugger/debugger.cc index 8b0e0d14cf..e4aa111a0a 100644 --- a/engine/src/flutter/tools/debugger/debugger.cc +++ b/engine/src/flutter/tools/debugger/debugger.cc @@ -74,11 +74,13 @@ class SkyDebugger : public mojo::ApplicationDelegate, virtual void OnViewManagerDisconnected( mojo::ViewManager* view_manager) override { + CHECK(false); // FIXME: This is dead code, why? view_manager_ = nullptr; root_ = nullptr; } virtual void OnViewDestroyed(mojo::View* view) override { + CHECK(false); // FIXME: This is dead code, why? view->RemoveObserver(this); } diff --git a/engine/src/flutter/tools/debugger/prompt/prompt.cc b/engine/src/flutter/tools/debugger/prompt/prompt.cc index 60d6733802..3b486045e6 100644 --- a/engine/src/flutter/tools/debugger/prompt/prompt.cc +++ b/engine/src/flutter/tools/debugger/prompt/prompt.cc @@ -43,12 +43,16 @@ class Prompt : public mojo::ApplicationDelegate { // Overridden from mojo::ApplicationDelegate: virtual void Initialize(mojo::ApplicationImpl* app) override { app->ConnectToService("mojo:sky_viewer", &tracing_); - ScheduleWaitForInput(); + if (app->args().size() > 1) + url_ = app->args()[1]; } virtual bool ConfigureIncomingConnection( mojo::ApplicationConnection* connection) override { connection->ConnectToService(&debugger_); + if (!url_.empty()) + Reload(); + ScheduleWaitForInput(); return true; } diff --git a/engine/src/flutter/tools/skydb b/engine/src/flutter/tools/skydb index 5c3af21c83..406e482609 100755 --- a/engine/src/flutter/tools/skydb +++ b/engine/src/flutter/tools/skydb @@ -5,16 +5,27 @@ import os import subprocess +import sys -build_directory = 'out' -config_directory = 'Debug' -mojo_shell = os.path.abspath(os.path.join(__file__, os.pardir, os.pardir, - os.pardir, build_directory, config_directory, 'mojo_shell')) +BUILD_DIRECTORY = 'out' +CONFIG_DIRECTORY = 'Debug' +MOJO_SHELL_PATH = os.path.abspath(os.path.join(__file__, os.pardir, os.pardir, + os.pardir, BUILD_DIRECTORY, CONFIG_DIRECTORY, 'mojo_shell')) -subprocess.call([ - mojo_shell, - '--content-handlers=text/html,mojo://sky_viewer/', - '--url-mappings=mojo:window_manager=mojo:sky_debugger', - 'mojo:window_manager', -]) +def main(args): + shell_command = [ + MOJO_SHELL_PATH, + '--v=1', + '--content-handlers=text/html,mojo://sky_viewer/', + '--url-mappings=mojo:window_manager=mojo:sky_debugger', + 'mojo:window_manager', + ] + if args: + prompt_args = '--args-for=mojo://sky_debugger_prompt/ %s' % args[0] + shell_command.append(prompt_args) + subprocess.check_call(shell_command) + + +if __name__ == '__main__': + main(sys.argv[1:])