| 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 f2096252ec2ba359dd825096b315cbc485303990..b37eda2750e780e3f455058d31e1ac72e8ce0386 100644
|
| --- a/runtime/observatory/lib/src/app/application.dart
|
| +++ b/runtime/observatory/lib/src/app/application.dart
|
| @@ -4,20 +4,12 @@
|
|
|
| part of app;
|
|
|
| -class Notification {
|
| - Notification.fromEvent(this.event);
|
| - Notification.fromException(this.exception, this.stacktrace);
|
| -
|
| - ServiceEvent event;
|
| - var exception;
|
| - var stacktrace;
|
| -}
|
| -
|
| /// The observatory application. Instances of this are created and owned
|
| /// by the observatory_application custom element.
|
| class ObservatoryApplication extends Observable {
|
| static ObservatoryApplication app;
|
| final RenderingQueue queue = new RenderingQueue();
|
| + final NotificationRepository notifications = new NotificationRepository();
|
| final _pageRegistry = new List<Page>();
|
| LocationManager _locationManager;
|
| LocationManager get locationManager => _locationManager;
|
| @@ -32,7 +24,7 @@ class ObservatoryApplication extends Observable {
|
| }
|
| if (_vm != null) {
|
| // Disconnect from current VM.
|
| - notifications.clear();
|
| + notifications.deleteAll();
|
| _vm.disconnect();
|
| }
|
| if (vm != null) {
|
| @@ -42,7 +34,7 @@ class ObservatoryApplication extends Observable {
|
| if (vm is WebSocketVM) {
|
| targets.add(vm.target);
|
| }
|
| - _removeDisconnectEvents();
|
| + notifications.deleteDisconnectEvents();
|
| });
|
|
|
| vm.onDisconnect.then((String reason) {
|
| @@ -51,8 +43,8 @@ class ObservatoryApplication extends Observable {
|
| return;
|
| }
|
| notifications.add(
|
| - new Notification.fromEvent(
|
| - new ServiceEvent.connectionClosed(reason)));
|
| + new EventNotification.fromServiceEvent(
|
| + new ServiceEvent.connectionClosed(reason)));
|
| });
|
|
|
| vm.listenEventStream(VM.kIsolateStream, _onEvent);
|
| @@ -66,8 +58,6 @@ class ObservatoryApplication extends Observable {
|
| TraceViewElement _traceView = null;
|
|
|
| @reflectable ServiceObject lastErrorOrException;
|
| - @observable ObservableList<Notification> notifications =
|
| - new ObservableList<Notification>();
|
|
|
| void _initOnce() {
|
| assert(app == null);
|
| @@ -78,15 +68,6 @@ class ObservatoryApplication extends Observable {
|
| locationManager._visit();
|
| }
|
|
|
| - void removePauseEvents(Isolate isolate) {
|
| - notifications.removeWhere((notification) {
|
| - var event = notification.event;
|
| - return (event != null &&
|
| - event.isolate == isolate &&
|
| - event.isPauseEvent);
|
| - });
|
| - }
|
| -
|
| void _onEvent(ServiceEvent event) {
|
| assert(event.kind != ServiceEvent.kNone);
|
|
|
| @@ -103,12 +84,12 @@ class ObservatoryApplication extends Observable {
|
| break;
|
|
|
| case ServiceEvent.kIsolateReload:
|
| - notifications.add(new Notification.fromEvent(event));
|
| + notifications.add(new EventNotification.fromServiceEvent(event));
|
| break;
|
|
|
| case ServiceEvent.kIsolateExit:
|
| case ServiceEvent.kResume:
|
| - removePauseEvents(event.isolate);
|
| + notifications.deletePauseEvents(isolate: event.isolate);
|
| break;
|
|
|
| case ServiceEvent.kPauseStart:
|
| @@ -116,12 +97,12 @@ class ObservatoryApplication extends Observable {
|
| case ServiceEvent.kPauseBreakpoint:
|
| case ServiceEvent.kPauseInterrupted:
|
| case ServiceEvent.kPauseException:
|
| - removePauseEvents(event.isolate);
|
| - notifications.add(new Notification.fromEvent(event));
|
| + notifications.deletePauseEvents(isolate: event.isolate);
|
| + notifications.add(new EventNotification.fromServiceEvent(event));
|
| break;
|
|
|
| case ServiceEvent.kInspect:
|
| - notifications.add(new Notification.fromEvent(event));
|
| + notifications.add(new EventNotification.fromServiceEvent(event));
|
| break;
|
|
|
| default:
|
| @@ -220,14 +201,6 @@ class ObservatoryApplication extends Observable {
|
| _initOnce();
|
| }
|
|
|
| - void _removeDisconnectEvents() {
|
| - notifications.removeWhere((notification) {
|
| - var event = notification.event;
|
| - return (event != null &&
|
| - event.kind == ServiceEvent.kConnectionClosed);
|
| - });
|
| - }
|
| -
|
| loadCrashDump(Map crashDump) {
|
| this.vm = new FakeVM(crashDump['result']);
|
| app.locationManager.go('#/vm');
|
| @@ -243,7 +216,7 @@ class ObservatoryApplication extends Observable {
|
|
|
| // TODO(turnidge): Report this failure via analytics.
|
| Logger.root.warning('Caught exception: ${e}\n${st}');
|
| - notifications.add(new Notification.fromException(e, st));
|
| + notifications.add(new ExceptionNotification(e, stacktrace: st));
|
| }
|
|
|
| // This map keeps track of which curly-blocks have been expanded by the user.
|
|
|