| 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 d87d6fb6339416b0ed32c2fe8d92ee40876a3f16..a76823276e0f34b0996428b57188e5bbb7b56bc4 100644
|
| --- a/runtime/observatory/lib/src/app/application.dart
|
| +++ b/runtime/observatory/lib/src/app/application.dart
|
| @@ -9,8 +9,9 @@ part of app;
|
| class ObservatoryApplication extends Observable {
|
| static ObservatoryApplication app;
|
| final _pageRegistry = new List<Page>();
|
| + LocationManager _locationManager;
|
| + LocationManager get locationManager => _locationManager;
|
| @observable Page currentPage;
|
| - @observable final LocationManager locationManager;
|
| VM _vm;
|
| VM get vm => _vm;
|
| set vm(VM vm) {
|
| @@ -42,12 +43,13 @@ class ObservatoryApplication extends Observable {
|
| @observable ObservableList<ServiceEvent> notifications =
|
| new ObservableList<ServiceEvent>();
|
|
|
| - void _initOnce(bool chromium) {
|
| + void _initOnce() {
|
| assert(app == null);
|
| app = this;
|
| _registerPages();
|
| Analytics.initialize();
|
| - locationManager._init(this);
|
| + // Visit the current page.
|
| + locationManager._visit();
|
| }
|
|
|
| void removePauseEvents(Isolate isolate) {
|
| @@ -105,6 +107,7 @@ class ObservatoryApplication extends Observable {
|
| _pageRegistry.add(new ClassTreePage(this));
|
| _pageRegistry.add(new DebuggerPage(this));
|
| _pageRegistry.add(new CpuProfilerPage(this));
|
| + _pageRegistry.add(new TableCpuProfilerPage(this));
|
| _pageRegistry.add(new AllocationProfilerPage(this));
|
| _pageRegistry.add(new HeapMapPage(this));
|
| _pageRegistry.add(new VMConnectPage(this));
|
| @@ -117,7 +120,7 @@ class ObservatoryApplication extends Observable {
|
|
|
| void _onError(ServiceError error) {
|
| lastErrorOrException = error;
|
| - _visit('error/', null);
|
| + _visit(Uri.parse('error/'), null);
|
| }
|
|
|
| void _onException(ServiceException exception) {
|
| @@ -127,19 +130,13 @@ class ObservatoryApplication extends Observable {
|
| this.vm = null;
|
| locationManager.go(locationManager.makeLink('/vm-connect/'));
|
| } else {
|
| - _visit('error/', null);
|
| + _visit(Uri.parse('error/'), null);
|
| }
|
| }
|
|
|
| - void _visit(String url, String args) {
|
| - var argsMap;
|
| - if (args == null) {
|
| - argsMap = {};
|
| - } else {
|
| - argsMap = Uri.splitQueryString(args);
|
| - }
|
| - if (argsMap['trace'] != null) {
|
| - var traceArg = argsMap['trace'];
|
| + void _visit(Uri uri, Map internalArguments) {
|
| + if (internalArguments['trace'] != null) {
|
| + var traceArg = internalArguments['trace'];
|
| if (traceArg == 'on') {
|
| Tracer.start();
|
| } else if (traceArg == 'off') {
|
| @@ -152,12 +149,11 @@ class ObservatoryApplication extends Observable {
|
| if (_traceView != null) {
|
| _traceView.tracer = Tracer.current;
|
| }
|
| - Uri uri = Uri.parse(url);
|
| for (var i = 0; i < _pageRegistry.length; i++) {
|
| var page = _pageRegistry[i];
|
| if (page.canVisit(uri)) {
|
| _installPage(page);
|
| - page.visit(uri, argsMap);
|
| + page.visit(uri, internalArguments);
|
| return;
|
| }
|
| }
|
| @@ -196,10 +192,10 @@ class ObservatoryApplication extends Observable {
|
| }
|
|
|
| ObservatoryApplication(this.rootElement) :
|
| - locationManager = new HashLocationManager(),
|
| targets = new TargetManager() {
|
| + _locationManager = new LocationManager(this);
|
| vm = new WebSocketVM(targets.defaultTarget);
|
| - _initOnce(false);
|
| + _initOnce();
|
| }
|
|
|
| void _removeDisconnectEvents() {
|
|
|