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

Side by Side Diff: runtime/bin/vmservice/observatory/lib/src/elements/service_view.dart

Issue 547703002: Rework how types work in the VM Service. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 library service_object_view_element; 5 library service_object_view_element;
6 6
7 import 'dart:html'; 7 import 'dart:html';
8 import 'package:logging/logging.dart'; 8 import 'package:logging/logging.dart';
9 import 'package:observatory/service.dart'; 9 import 'package:observatory/service.dart';
10 import 'package:observatory/tracer.dart'; 10 import 'package:observatory/tracer.dart';
11 import 'package:observatory/elements.dart'; 11 import 'package:observatory/elements.dart';
12 import 'package:polymer/polymer.dart'; 12 import 'package:polymer/polymer.dart';
13 import 'observatory_element.dart'; 13 import 'observatory_element.dart';
14 14
15 @CustomTag('service-view') 15 @CustomTag('service-view')
16 class ServiceObjectViewElement extends ObservatoryElement { 16 class ServiceObjectViewElement extends ObservatoryElement {
17 @published ServiceObject object; 17 @published ServiceObject object;
18 @published ObservableMap args; 18 @published ObservableMap args;
19 19
20 ServiceObjectViewElement.created() : super.created(); 20 ServiceObjectViewElement.created() : super.created();
21 21
22 ObservatoryElement _constructElementForObject() { 22 ObservatoryElement _constructElementForObject() {
23 var type = object.vmType; 23 var type = object.type;
24 switch (type) { 24 switch (type) {
25 case 'AllocationProfile': 25 case 'AllocationProfile':
26 HeapProfileElement element = new Element.tag('heap-profile'); 26 HeapProfileElement element = new Element.tag('heap-profile');
27 element.profile = object; 27 element.profile = object;
28 return element; 28 return element;
29 case 'BreakpointList': 29 case 'BreakpointList':
30 BreakpointListElement element = new Element.tag('breakpoint-list'); 30 BreakpointListElement element = new Element.tag('breakpoint-list');
31 element.msg = object; 31 element.msg = object;
32 return element; 32 return element;
33 case 'Class': 33 case 'Class':
(...skipping 21 matching lines...) Expand all
55 element.flagList = object; 55 element.flagList = object;
56 return element; 56 return element;
57 case 'Function': 57 case 'Function':
58 FunctionViewElement element = new Element.tag('function-view'); 58 FunctionViewElement element = new Element.tag('function-view');
59 element.function = object; 59 element.function = object;
60 return element; 60 return element;
61 case 'HeapMap': 61 case 'HeapMap':
62 HeapMapElement element = new Element.tag('heap-map'); 62 HeapMapElement element = new Element.tag('heap-map');
63 element.fragmentation = object; 63 element.fragmentation = object;
64 return element; 64 return element;
65 case 'LibraryPrefix':
66 case 'TypeRef':
67 case 'TypeParameter':
68 case 'BoundedType':
69 case 'Int32x4':
70 case 'Float32x4':
71 case 'Float64x4':
72 case 'TypedData':
73 case 'ExternalTypedData':
74 case 'Capability':
75 case 'ReceivePort':
76 case 'SendPort':
77 case 'Stacktrace':
78 case 'JSRegExp':
79 case 'UserTag':
80 // TODO(turnidge): The types above this comment are instance
81 // types and should be handled by the InstanceViewElement. We
82 // need to go through these and make sure that they print in a
83 // reasonable way.
84 case 'Type':
85 case 'Array':
86 case 'Bool':
87 case 'Closure':
88 case 'Double':
89 case 'GrowableObjectArray':
90 case 'Instance':
91 case 'Smi':
92 case 'Mint':
93 case 'MirrorReference':
94 case 'Null':
95 case 'Bigint':
96 case 'String':
97 case 'WeakProperty':
98 InstanceViewElement element = new Element.tag('instance-view');
99 element.instance = object;
100 return element;
101 case 'IO': 65 case 'IO':
102 IOViewElement element = new Element.tag('io-view'); 66 IOViewElement element = new Element.tag('io-view');
103 element.io = object; 67 element.io = object;
104 return element; 68 return element;
105 case 'HttpServerList': 69 case 'HttpServerList':
106 IOHttpServerListViewElement element = 70 IOHttpServerListViewElement element =
107 new Element.tag('io-http-server-list-view'); 71 new Element.tag('io-http-server-list-view');
108 element.list = object; 72 element.list = object;
109 return element; 73 return element;
110 case 'HttpServer': 74 case 'HttpServer':
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 return element; 146 return element;
183 case 'StackTrace': 147 case 'StackTrace':
184 StackTraceElement element = new Element.tag('stack-trace'); 148 StackTraceElement element = new Element.tag('stack-trace');
185 element.trace = object; 149 element.trace = object;
186 return element; 150 return element;
187 case 'VM': 151 case 'VM':
188 VMViewElement element = new Element.tag('vm-view'); 152 VMViewElement element = new Element.tag('vm-view');
189 element.vm = object; 153 element.vm = object;
190 return element; 154 return element;
191 default: 155 default:
192 JsonViewElement element = new Element.tag('json-view'); 156 if (object.isInstance ||
193 element.map = object; 157 object.isSentinel) { // TODO(rmacnak): Separate this out.
194 return element; 158 InstanceViewElement element = new Element.tag('instance-view');
159 element.instance = object;
160 return element;
161 } else {
162 JsonViewElement element = new Element.tag('json-view');
163 element.map = object;
164 return element;
165 }
195 } 166 }
196 } 167 }
197 168
198 objectChanged(oldValue) { 169 objectChanged(oldValue) {
199 // Remove the current view. 170 // Remove the current view.
200 children.clear(); 171 children.clear();
201 if (object == null) { 172 if (object == null) {
202 Logger.root.info('Viewing null object.'); 173 Logger.root.info('Viewing null object.');
203 return; 174 return;
204 } 175 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 230
260 dynamic expander() { 231 dynamic expander() {
261 return expandEvent; 232 return expandEvent;
262 } 233 }
263 234
264 void expandEvent(bool exp, var done) { 235 void expandEvent(bool exp, var done) {
265 expand = exp; 236 expand = exp;
266 done(); 237 done();
267 } 238 }
268 } 239 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698