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

Side by Side Diff: runtime/observatory/lib/src/elements/inbound_references.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 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 } 55 }
56 56
57 @override 57 @override
58 void detached() { 58 void detached() {
59 super.detached(); 59 super.detached();
60 children = []; 60 children = [];
61 _r.disable(notify: true); 61 _r.disable(notify: true);
62 } 62 }
63 63
64 void render() { 64 void render() {
65 children = [ 65 final curlyBlock =
66 new CurlyBlockElement(expanded: _expanded, queue: _r.queue) 66 new CurlyBlockElement(expanded: _expanded, queue: _r.queue)
67 ..content = _createContent() 67 ..content = _createContent()
68 ..onToggle.listen((e) async { 68 ..onToggle.listen((e) async {
69 _expanded = e.control.expanded; 69 _expanded = e.control.expanded;
70 if (_expanded) { 70 if (_expanded) {
71 e.control.disabled = true; 71 e.control.disabled = true;
72 await _refresh(); 72 await _refresh();
73 e.control.disabled = false; 73 e.control.disabled = false;
74 } 74 }
75 }) 75 });
76 ]; 76 children = [curlyBlock];
77 _r.waitFor([curlyBlock.onRendered.first]);
77 } 78 }
78 79
79 Future _refresh() async { 80 Future _refresh() async {
80 _inbounds = await _references.get(_isolate, _object.id); 81 _inbounds = await _references.get(_isolate, _object.id);
81 _r.dirty(); 82 _r.dirty();
82 } 83 }
83 84
84 List<Element> _createContent() { 85 List<Element> _createContent() {
85 if (_inbounds == null) { 86 if (_inbounds == null) {
86 return const []; 87 return const [];
(...skipping 23 matching lines...) Expand all
110 new InboundReferencesElement( 111 new InboundReferencesElement(
111 _isolate, reference.source, _references, _objects, 112 _isolate, reference.source, _references, _objects,
112 queue: _r.queue) 113 queue: _r.queue)
113 ]); 114 ]);
114 115
115 return new DivElement() 116 return new DivElement()
116 ..classes = ['indent'] 117 ..classes = ['indent']
117 ..children = content; 118 ..children = content;
118 } 119 }
119 } 120 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698