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

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

Issue 2995923002: Restore "Speedup Observatory elements first time rendering" (Closed)
Patch Set: Created 3 years, 4 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) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'dart:html'; 5 import 'dart:html';
6 import 'dart:async'; 6 import 'dart:async';
7 import 'package:observatory/models.dart' as M; 7 import 'package:observatory/models.dart' as M;
8 import 'package:observatory/src/elements/curly_block.dart'; 8 import 'package:observatory/src/elements/curly_block.dart';
9 import 'package:observatory/src/elements/instance_ref.dart'; 9 import 'package:observatory/src/elements/instance_ref.dart';
10 import 'package:observatory/src/elements/helpers/any_ref.dart'; 10 import 'package:observatory/src/elements/helpers/any_ref.dart';
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 } 54 }
55 55
56 @override 56 @override
57 void detached() { 57 void detached() {
58 super.detached(); 58 super.detached();
59 children = []; 59 children = [];
60 _r.disable(notify: true); 60 _r.disable(notify: true);
61 } 61 }
62 62
63 void render() { 63 void render() {
64 children = [ 64 final curlyBlock =
65 new CurlyBlockElement(expanded: _expanded, queue: _r.queue) 65 new CurlyBlockElement(expanded: _expanded, queue: _r.queue)
66 ..content = _createContent() 66 ..content = _createContent()
67 ..onToggle.listen((e) async { 67 ..onToggle.listen((e) async {
68 _expanded = e.control.expanded; 68 _expanded = e.control.expanded;
69 if (_expanded) { 69 if (_expanded) {
70 e.control.disabled = true; 70 e.control.disabled = true;
71 await _refresh(); 71 await _refresh();
72 e.control.disabled = false; 72 e.control.disabled = false;
73 } 73 }
74 }) 74 });
75 ]; 75 children = [curlyBlock];
76 _r.waitFor([curlyBlock.onRendered.first]);
76 } 77 }
77 78
78 Future _refresh() async { 79 Future _refresh() async {
79 _path = null; 80 _path = null;
80 _path = await _retainingPaths.get(_isolate, _object.id); 81 _path = await _retainingPaths.get(_isolate, _object.id);
81 _r.dirty(); 82 _r.dirty();
82 } 83 }
83 84
84 List<Element> _createContent() { 85 List<Element> _createContent() {
85 if (_path == null) { 86 if (_path == null) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 ..classes = ['indent'] 125 ..classes = ['indent']
125 ..children = content; 126 ..children = content;
126 } 127 }
127 128
128 Element _createGCRootItem() { 129 Element _createGCRootItem() {
129 return new DivElement() 130 return new DivElement()
130 ..classes = ['indent'] 131 ..classes = ['indent']
131 ..text = 'retained by a GC root'; 132 ..text = 'retained by a GC root';
132 } 133 }
133 } 134 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698