send the base uri back to debuggers (#5321)

* send the base uri back to debuggers

* add a fullRestart parameter to app.restart

* add await
diff --git a/packages/flutter_tools/lib/src/run.dart b/packages/flutter_tools/lib/src/run.dart
index 7108ef1..4764905 100644
--- a/packages/flutter_tools/lib/src/run.dart
+++ b/packages/flutter_tools/lib/src/run.dart
@@ -39,7 +39,7 @@
 
   @override
   Future<int> run({
-    Completer<int> observatoryPortCompleter,
+    Completer<DebugConnectionInfo> connectionInfoCompleter,
     String route,
     bool shouldBuild: true
   }) {
@@ -48,7 +48,7 @@
       return _run(
         traceStartup: traceStartup,
         benchmark: benchmark,
-        observatoryPortCompleter: observatoryPortCompleter,
+        connectionInfoCompleter: connectionInfoCompleter,
         route: route,
         shouldBuild: shouldBuild
       );
@@ -58,7 +58,7 @@
   }
 
   @override
-  Future<bool> restart() async {
+  Future<bool> restart({ bool fullRestart: false }) async {
     if (serviceProtocol == null) {
       printError('Debugging is not enabled.');
       return false;
@@ -94,7 +94,7 @@
   Future<int> _run({
     bool traceStartup: false,
     bool benchmark: false,
-    Completer<int> observatoryPortCompleter,
+    Completer<DebugConnectionInfo> connectionInfoCompleter,
     String route,
     bool shouldBuild: true
   }) async {
@@ -175,8 +175,8 @@
 
     startTime.stop();
 
-    if (observatoryPortCompleter != null && _result.hasObservatory)
-      observatoryPortCompleter.complete(_result.observatoryPort);
+    if (connectionInfoCompleter != null && _result.hasObservatory)
+      connectionInfoCompleter.complete(new DebugConnectionInfo(_result.observatoryPort));
 
     // Connect to observatory.
     if (debuggingOptions.debuggingEnabled) {