Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: runtime/observatory/lib/src/elements/heap_snapshot.dart

Issue 2310003004: Removed polymer & mirror from Observatory (Closed)
Patch Set: Fixed crash in heap-map page Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 5 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
6 // for details. All rights reserved. Use of this source code is governed by a 6 // for details. All rights reserved. Use of this source code is governed by a
7 // BSD-style license that can be found in the LICENSE file. 7 // BSD-style license that can be found in the LICENSE file.
8 8
9 import 'dart:async'; 9 import 'dart:async';
10 import 'dart:html'; 10 import 'dart:html';
11 import 'dart:math' as Math; 11 import 'dart:math' as Math;
12 import 'package:observatory/models.dart' as M; 12 import 'package:observatory/models.dart' as M;
13 import 'package:observatory/src/elements/class_ref.dart'; 13 import 'package:observatory/src/elements/class_ref.dart';
14 import 'package:observatory/src/elements/containers/virtual_tree.dart'; 14 import 'package:observatory/src/elements/containers/virtual_tree.dart';
15 import 'package:observatory/src/elements/helpers/any_ref.dart'; 15 import 'package:observatory/src/elements/helpers/any_ref.dart';
16 import 'package:observatory/src/elements/helpers/nav_bar.dart';
17 import 'package:observatory/src/elements/helpers/nav_menu.dart';
16 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart'; 18 import 'package:observatory/src/elements/helpers/rendering_scheduler.dart';
17 import 'package:observatory/src/elements/helpers/tag.dart'; 19 import 'package:observatory/src/elements/helpers/tag.dart';
18 import 'package:observatory/src/elements/helpers/uris.dart'; 20 import 'package:observatory/src/elements/helpers/uris.dart';
19 import 'package:observatory/src/elements/nav/bar.dart';
20 import 'package:observatory/src/elements/nav/isolate_menu.dart'; 21 import 'package:observatory/src/elements/nav/isolate_menu.dart';
21 import 'package:observatory/src/elements/nav/menu.dart';
22 import 'package:observatory/src/elements/nav/notify.dart'; 22 import 'package:observatory/src/elements/nav/notify.dart';
23 import 'package:observatory/src/elements/nav/refresh.dart'; 23 import 'package:observatory/src/elements/nav/refresh.dart';
24 import 'package:observatory/src/elements/nav/top_menu.dart'; 24 import 'package:observatory/src/elements/nav/top_menu.dart';
25 import 'package:observatory/src/elements/nav/vm_menu.dart'; 25 import 'package:observatory/src/elements/nav/vm_menu.dart';
26 import 'package:observatory/utils.dart'; 26 import 'package:observatory/utils.dart';
27 27
28 enum HeapSnapshotTreeMode { 28 enum HeapSnapshotTreeMode {
29 dominatorTree, 29 dominatorTree,
30 groupByClass 30 groupByClass
31 } 31 }
32 32
33 class HeapSnapshotElement extends HtmlElement implements Renderable { 33 class HeapSnapshotElement extends HtmlElement implements Renderable {
34 static const tag = const Tag<HeapSnapshotElement>('heap-snapshot', 34 static const tag = const Tag<HeapSnapshotElement>('heap-snapshot',
35 dependencies: const [ 35 dependencies: const [
36 ClassRefElement.tag, 36 ClassRefElement.tag,
37 NavBarElement.tag,
38 NavTopMenuElement.tag, 37 NavTopMenuElement.tag,
39 NavVMMenuElement.tag, 38 NavVMMenuElement.tag,
40 NavIsolateMenuElement.tag, 39 NavIsolateMenuElement.tag,
41 NavMenuElement.tag,
42 NavRefreshElement.tag, 40 NavRefreshElement.tag,
43 NavNotifyElement.tag, 41 NavNotifyElement.tag,
44 VirtualTreeElement.tag, 42 VirtualTreeElement.tag,
45 ]); 43 ]);
46 44
47 RenderingScheduler<HeapSnapshotElement> _r; 45 RenderingScheduler<HeapSnapshotElement> _r;
48 46
49 Stream<RenderedEvent<HeapSnapshotElement>> get onRendered => _r.onRendered; 47 Stream<RenderedEvent<HeapSnapshotElement>> get onRendered => _r.onRendered;
50 48
51 M.VM _vm; 49 M.VM _vm;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 97
100 @override 98 @override
101 detached() { 99 detached() {
102 super.detached(); 100 super.detached();
103 _r.disable(notify: true); 101 _r.disable(notify: true);
104 children = []; 102 children = [];
105 } 103 }
106 104
107 void render() { 105 void render() {
108 final content = [ 106 final content = [
109 new NavBarElement(queue: _r.queue) 107 navBar([
110 ..children = [ 108 new NavTopMenuElement(queue: _r.queue),
111 new NavTopMenuElement(queue: _r.queue), 109 new NavVMMenuElement(_vm, _events, queue: _r.queue),
112 new NavVMMenuElement(_vm, _events, queue: _r.queue), 110 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue),
113 new NavIsolateMenuElement(_isolate, _events, queue: _r.queue), 111 navMenu('heap snapshot'),
114 new NavMenuElement('heap snapshot', link: Uris.heapSnapshot(_isolate), 112 new NavRefreshElement(queue: _r.queue)
115 last: true, queue: _r.queue), 113 ..disabled = M.isHeapSnapshotProgressRunning(_progress?.status)
116 new NavRefreshElement(queue: _r.queue) 114 ..onRefresh.listen((e) {
117 ..disabled = M.isHeapSnapshotProgressRunning(_progress?.status) 115 _refresh();
118 ..onRefresh.listen((e) { 116 }),
119 _refresh(); 117 new NavNotifyElement(_notifications, queue: _r.queue)
120 }), 118 ]),
121 new NavNotifyElement(_notifications, queue: _r.queue)
122 ],
123 ]; 119 ];
124 if (_progress == null) { 120 if (_progress == null) {
125 children = content; 121 children = content;
126 return; 122 return;
127 } 123 }
128 switch (_progress.status) { 124 switch (_progress.status) {
129 case M.HeapSnapshotLoadingStatus.fetching : 125 case M.HeapSnapshotLoadingStatus.fetching :
130 content.addAll(_createStatusMessage('Fetching snapshot from VM...', 126 content.addAll(_createStatusMessage('Fetching snapshot from VM...',
131 description: _progress.stepDescription, 127 description: _progress.stepDescription,
132 progress: _progress.progress)); 128 progress: _progress.progress));
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
408 selected: _mode == mode) 404 selected: _mode == mode)
409 ..text = modeToString(mode); 405 ..text = modeToString(mode);
410 }).toList(growable: false) 406 }).toList(growable: false)
411 ..onChange.listen((_) { 407 ..onChange.listen((_) {
412 _mode = HeapSnapshotTreeMode.values[s.selectedIndex]; 408 _mode = HeapSnapshotTreeMode.values[s.selectedIndex];
413 _r.dirty(); 409 _r.dirty();
414 }) 410 })
415 ]; 411 ];
416 } 412 }
417 } 413 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/heap_map.dart ('k') | runtime/observatory/lib/src/elements/helpers/nav_bar.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698