| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of app; | 5 part of app; |
| 6 | 6 |
| 7 /// A [Page] controls the user interface of Observatory. At any given time | 7 /// A [Page] controls the user interface of Observatory. At any given time |
| 8 /// one page will be the current page. Pages are registered at startup. | 8 /// one page will be the current page. Pages are registered at startup. |
| 9 /// When the user navigates within the application, each page is asked if it | 9 /// When the user navigates within the application, each page is asked if it |
| 10 /// can handle the current location, the first page to say yes, wins. | 10 /// can handle the current location, the first page to say yes, wins. |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 element = new Element.tag(elementTagName); | 51 element = new Element.tag(elementTagName); |
| 52 } | 52 } |
| 53 } | 53 } |
| 54 | 54 |
| 55 void _visit(Uri uri) { | 55 void _visit(Uri uri) { |
| 56 assert(uri != null); | 56 assert(uri != null); |
| 57 assert(canVisit(uri)); | 57 assert(canVisit(uri)); |
| 58 } | 58 } |
| 59 | 59 |
| 60 Future<Isolate> getIsolate(Uri uri) { | 60 Future<Isolate> getIsolate(Uri uri) { |
| 61 return app.vm.getIsolate(uri.queryParameters['isolateId']).catchError((e) { | 61 return app.vm.getIsolate(uri.queryParameters['isolateId']) |
| 62 Logger.root.severe('$path visit error: $e'); | 62 .catchError((e, stack) { |
| 63 return e; | 63 Logger.root.severe('$path visit error: $e\n$stack'); |
| 64 }); | 64 return e; |
| 65 }); |
| 65 } | 66 } |
| 66 | 67 |
| 67 bool canVisit(Uri uri) => uri.path == path; | 68 bool canVisit(Uri uri) => uri.path == path; |
| 68 } | 69 } |
| 69 | 70 |
| 70 /// Error page for unrecognized paths. | 71 /// Error page for unrecognized paths. |
| 71 class ErrorPage extends Page { | 72 class ErrorPage extends Page { |
| 72 ErrorPage(app) : super(app); | 73 ErrorPage(app) : super(app); |
| 73 | 74 |
| 74 void onInstall() { | 75 void onInstall() { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 103 class VMPage extends SimplePage { | 104 class VMPage extends SimplePage { |
| 104 VMPage(app) : super('vm', 'service-view', app); | 105 VMPage(app) : super('vm', 'service-view', app); |
| 105 | 106 |
| 106 void _visit(Uri uri) { | 107 void _visit(Uri uri) { |
| 107 super._visit(uri); | 108 super._visit(uri); |
| 108 app.vm.reload().then((vm) { | 109 app.vm.reload().then((vm) { |
| 109 if (element != null) { | 110 if (element != null) { |
| 110 ServiceObjectViewElement serviceElement = element; | 111 ServiceObjectViewElement serviceElement = element; |
| 111 serviceElement.object = vm; | 112 serviceElement.object = vm; |
| 112 } | 113 } |
| 113 }).catchError((e) { | 114 }).catchError((e, stack) { |
| 114 Logger.root.severe('VMPage visit error: $e'); | 115 Logger.root.severe('VMPage visit error: $e\n$stack'); |
| 115 }); | 116 }); |
| 116 } | 117 } |
| 117 } | 118 } |
| 118 | 119 |
| 119 class FlagsPage extends SimplePage { | 120 class FlagsPage extends SimplePage { |
| 120 FlagsPage(app) : super('flags', 'flag-list', app); | 121 FlagsPage(app) : super('flags', 'flag-list', app); |
| 121 | 122 |
| 122 void _visit(Uri uri) { | 123 void _visit(Uri uri) { |
| 123 super._visit(uri); | 124 super._visit(uri); |
| 124 app.vm.getFlagList().then((flags) { | 125 app.vm.getFlagList().then((flags) { |
| 125 if (element != null) { | 126 if (element != null) { |
| 126 FlagListElement serviceElement = element; | 127 FlagListElement serviceElement = element; |
| 127 serviceElement.flagList = flags; | 128 serviceElement.flagList = flags; |
| 128 } | 129 } |
| 129 }).catchError((e) { | 130 }).catchError((e, stack) { |
| 130 Logger.root.severe('FlagsPage visit error: $e'); | 131 Logger.root.severe('FlagsPage visit error: $e\n$stack'); |
| 131 }); | 132 }); |
| 132 } | 133 } |
| 133 } | 134 } |
| 134 | 135 |
| 135 class InspectPage extends SimplePage { | 136 class InspectPage extends SimplePage { |
| 136 InspectPage(app) : super('inspect', 'service-view', app); | 137 InspectPage(app) : super('inspect', 'service-view', app); |
| 137 | 138 |
| 138 void _visit(Uri uri) { | 139 void _visit(Uri uri) { |
| 139 super._visit(uri); | 140 super._visit(uri); |
| 140 getIsolate(uri).then((isolate) { | 141 getIsolate(uri).then((isolate) { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 174 | 175 |
| 175 class DebuggerPage extends SimplePage { | 176 class DebuggerPage extends SimplePage { |
| 176 DebuggerPage(app) : super('debugger', 'debugger-page', app); | 177 DebuggerPage(app) : super('debugger', 'debugger-page', app); |
| 177 | 178 |
| 178 void _visit(Uri uri) { | 179 void _visit(Uri uri) { |
| 179 super._visit(uri); | 180 super._visit(uri); |
| 180 getIsolate(uri).then((isolate) { | 181 getIsolate(uri).then((isolate) { |
| 181 if (element != null) { | 182 if (element != null) { |
| 182 /// Update the page. | 183 /// Update the page. |
| 183 DebuggerPageElement page = element; | 184 DebuggerPageElement page = element; |
| 185 page.app = app; |
| 184 page.isolate = isolate; | 186 page.isolate = isolate; |
| 185 } | 187 } |
| 186 }); | 188 }); |
| 187 } | 189 } |
| 188 } | 190 } |
| 189 | 191 |
| 190 class CpuProfilerPage extends SimplePage { | 192 class CpuProfilerPage extends SimplePage { |
| 191 CpuProfilerPage(app) : super('profiler', 'cpu-profile', app); | 193 CpuProfilerPage(app) : super('profiler', 'cpu-profile', app); |
| 192 | 194 |
| 193 void _visit(Uri uri) { | 195 void _visit(Uri uri) { |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 void _visit(Uri uri) { | 325 void _visit(Uri uri) { |
| 324 assert(element != null); | 326 assert(element != null); |
| 325 assert(canVisit(uri)); | 327 assert(canVisit(uri)); |
| 326 app.vm.getIsolate(uri.queryParameters['isolateId']).then((i) { | 328 app.vm.getIsolate(uri.queryParameters['isolateId']).then((i) { |
| 327 (element as MetricsPageElement).isolate = i; | 329 (element as MetricsPageElement).isolate = i; |
| 328 }); | 330 }); |
| 329 } | 331 } |
| 330 | 332 |
| 331 bool canVisit(Uri uri) => uri.path == 'metrics'; | 333 bool canVisit(Uri uri) => uri.path == 'metrics'; |
| 332 } | 334 } |
| OLD | NEW |