| Index: runtime/observatory/lib/src/app/application.dart
|
| diff --git a/runtime/observatory/lib/src/app/application.dart b/runtime/observatory/lib/src/app/application.dart
|
| index b37eda2750e780e3f455058d31e1ac72e8ce0386..a8bfabbf69fd25cfdb3837bd53251f03f253c84b 100644
|
| --- a/runtime/observatory/lib/src/app/application.dart
|
| +++ b/runtime/observatory/lib/src/app/application.dart
|
| @@ -9,6 +9,7 @@ part of app;
|
| class ObservatoryApplication extends Observable {
|
| static ObservatoryApplication app;
|
| final RenderingQueue queue = new RenderingQueue();
|
| + final TargetRepository targets = new TargetRepository();
|
| final NotificationRepository notifications = new NotificationRepository();
|
| final _pageRegistry = new List<Page>();
|
| LocationManager _locationManager;
|
| @@ -17,7 +18,7 @@ class ObservatoryApplication extends Observable {
|
| VM _vm;
|
| VM get vm => _vm;
|
|
|
| - set vm(VM vm) {
|
| + _setVM(VM vm) {
|
| if (_vm == vm) {
|
| // Do nothing.
|
| return;
|
| @@ -31,9 +32,6 @@ class ObservatoryApplication extends Observable {
|
| Logger.root.info('Registering new VM callbacks');
|
|
|
| vm.onConnect.then((_) {
|
| - if (vm is WebSocketVM) {
|
| - targets.add(vm.target);
|
| - }
|
| notifications.deleteDisconnectEvents();
|
| });
|
|
|
| @@ -52,7 +50,6 @@ class ObservatoryApplication extends Observable {
|
| }
|
| _vm = vm;
|
| }
|
| - final TargetManager targets;
|
| @reflectable final ObservatoryApplicationElement rootElement;
|
|
|
| TraceViewElement _traceView = null;
|
| @@ -194,15 +191,20 @@ class ObservatoryApplication extends Observable {
|
| currentPage = page;
|
| }
|
|
|
| - ObservatoryApplication(this.rootElement) :
|
| - targets = new TargetManager() {
|
| + ObservatoryApplication(this.rootElement) {
|
| _locationManager = new LocationManager(this);
|
| - vm = new WebSocketVM(targets.defaultTarget);
|
| + targets.onChange.listen((e) {
|
| + if (targets.current == null) return _setVM(null);
|
| + if ((_vm as WebSocketVM)?.target != targets.current) {
|
| + _setVM(new WebSocketVM(targets.current));
|
| + }
|
| + });
|
| + _setVM(new WebSocketVM(targets.current));
|
| _initOnce();
|
| }
|
|
|
| loadCrashDump(Map crashDump) {
|
| - this.vm = new FakeVM(crashDump['result']);
|
| + _setVM(new FakeVM(crashDump['result']));
|
| app.locationManager.go('#/vm');
|
| }
|
|
|
|
|