Index: runtime/observatory/lib/src/elements/vm_connect.dart |
diff --git a/runtime/observatory/lib/src/elements/vm_connect.dart b/runtime/observatory/lib/src/elements/vm_connect.dart |
index 6c0b87f17351811b3e60f5af1848f5f4896c478d..e57463b4a02f67854874b69b8973823bbbc167f9 100644 |
--- a/runtime/observatory/lib/src/elements/vm_connect.dart |
+++ b/runtime/observatory/lib/src/elements/vm_connect.dart |
@@ -12,6 +12,7 @@ import 'package:observatory/app.dart'; |
import 'package:observatory/src/elements/helpers/tag.dart'; |
import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; |
import 'package:observatory/src/elements/helpers/nav_bar.dart'; |
+import 'package:observatory/src/elements/helpers/uris.dart'; |
import 'package:observatory/src/elements/nav/notify.dart'; |
import 'package:observatory/src/elements/nav/top_menu.dart'; |
import 'package:observatory/src/elements/view_footer.dart'; |
@@ -119,7 +120,7 @@ class VMConnectElement extends HtmlElement implements Renderable { |
..text = 'Connect' |
..onClick.listen((e) { |
e.preventDefault(); |
- _create(); |
+ _createAndConnect(); |
}), |
], |
new BRElement(), |
@@ -150,11 +151,11 @@ class VMConnectElement extends HtmlElement implements Renderable { |
TextInputElement _createAddressBox() { |
var textbox = new TextInputElement() |
..classes = ['textbox'] |
- ..placeholder = '127.0.0.1:8181' |
+ ..placeholder = 'http://127.0.0.1:8181/...' |
..value = _address |
..onKeyUp.where((e) => e.key == '\n').listen((e) { |
e.preventDefault(); |
- _create(); |
+ _createAndConnect(); |
}); |
textbox.onInput.listen((e) { |
_address = textbox.value; |
@@ -176,9 +177,14 @@ class VMConnectElement extends HtmlElement implements Renderable { |
return e; |
} |
- void _create() { |
+ void _createAndConnect() { |
if (_address == null || _address.isEmpty) return; |
- _targets.add(_normalizeStandaloneAddress(_address)); |
+ String normalizedNetworkAddress = _normalizeStandaloneAddress(_address); |
+ _targets.add(normalizedNetworkAddress); |
+ var target = _targets.find(normalizedNetworkAddress); |
+ assert(target != null); |
+ _targets.setCurrent(target); |
+ ObservatoryApplication.app.locationManager.go(Uris.vm()); |
} |
void _connect(TargetEvent e) { |
@@ -194,8 +200,7 @@ class VMConnectElement extends HtmlElement implements Renderable { |
} |
try { |
Uri uri = Uri.parse(networkAddress); |
- print('returning ${uri.host} ${uri.port}'); |
- return 'ws://${uri.host}:${uri.port}/ws'; |
+ return 'ws://${uri.authority}${uri.path}ws'; |
} catch (e) { |
print('caught exception with: $networkAddress -- $e'); |
return networkAddress; |