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

Side by Side Diff: runtime/bin/vmservice/client/out/web/index.html

Issue 77043010: - Ensure that classes are finalized before their description is (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 1 month 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
(Empty)
1 <!DOCTYPE html><html><head>
2
3 <title>Dart VM Observatory</title>
4 <meta charset="utf-8">
5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss">
6
7 <script src="index.html_bootstrap.dart.js"></script>
8
9 </head>
10 <body><polymer-element name="observatory-element">
11
12 </polymer-element><polymer-element name="class-view" extends="observatory-elemen t">
13 <template>
14 <div class="row">
15 <div class="col-md-8 col-md-offset-2">
16 <div class="panel panel-warning">
17 <div class="panel-heading">
18 {{ cls['user_name'] }} ({{ cls['name'] }})
19 <template if="{{ cls['super']['type'] != 'Null' }}">
20 extends
21 <a href="{{ app.locationManager.currentIsolateClassLink(cls['super'] ['id'])}}">
22 {{ cls['super']['user_name'] }}
23 </a>
24 </template>
25 <a class="pull-right" href="{{ app.locationManager.currentIsolateObjec tLink(cls['library']['id'])}}">
26 {{ cls['library']['name'] }}
27 </a>
28 </div>
29 <div class="panel-body">
30 <table class="table table-hover">
31 <tbody>
32 <tr>
33 <td>Abstract</td><td>{{ cls['abstract'] }}</td>
34 </tr>
35 <tr>
36 <td>Const</td><td>{{ cls['const'] }}</td>
37 </tr>
38 <tr>
39 <td>Finalized</td><td>{{ cls['const'] }}</td>
40 </tr>
41 <tr>
42 <td>Implemented</td><td>{{ cls['implemented'] }}</td>
43 </tr>
44 <tr>
45 <td>Patch</td><td>{{ cls['patch'] }}</td>
46 </tr>
47 </tbody>
48 </table>
49 <blockquote><strong>Fields</strong></blockquote>
50 <table class="table table-hover">
51 <thead>
52 <tr>
53 <th>User Name</th>
54 <th>VM Name</th>
55 </tr>
56 </thead>
57 <tbody>
58 <tr template="" repeat="{{ field in cls['fields'] }}">
59 <td><a href="{{ app.locationManager.currentIsolateObjectLink(fie ld['id'])}}">{{ field['user_name'] }}</a></td>
60 <td><a href="{{ app.locationManager.currentIsolateObjectLink(fie ld['id'])}}">{{ field['name'] }}</a></td>
61 </tr>
62 </tbody>
63 </table>
64 <blockquote><strong>Functions</strong></blockquote>
65 <table class="table table-hover">
66 <thead>
67 <tr>
68 <th>User Name</th>
69 <th>VM Name</th>
70 </tr>
71 </thead>
72 <tbody>
73 <tr template="" repeat="{{ function in cls['functions'] }}">
74 <td><a href="{{ app.locationManager.currentIsolateObjectLink(fun ction['id'])}}">{{ function['user_name'] }}</a></td>
75 <td><a href="{{ app.locationManager.currentIsolateObjectLink(fun ction['id'])}}">{{ function['name'] }}</a></td>
76 </tr>
77 </tbody>
78 </table>
79 </div>
80 </div>
81 </div>
82 </div>
83 </template>
84
85 </polymer-element><polymer-element name="disassembly-entry" extends="observatory -element">
86 <template>
87 <div class="row">
88 <template if="{{ instruction['type'] == 'DisassembledInstructionComment' }}" >
89 <div class="col-md-2"></div>
90 <div class="col-md-2"></div>
91 <div class="col-md-4"><code>{{ instruction['comment'] }}</code></div>
92 </template>
93 <template if="{{ instruction['type'] == 'DisassembledInstruction' }}">
94 <div class="col-md-2"></div>
95 <div class="col-md-2">{{ instruction['pc'] }}</div>
96 <div class="col-md-4">
97 <code>{{ instruction['hex'] }} {{ instruction['human'] }}</code>
98 </div>
99 </template>
100 </div>
101 </template>
102
103 </polymer-element><polymer-element name="code-view" extends="observatory-element ">
104 <template>
105 <div class="row">
106 <div class="col-md-8 col-md-offset-2">
107 <div class="{{ cssPanelClass }}">
108 <div class="panel-heading">
109 <a href="{{ app.locationManager.currentIsolateObjectLink(code['functio n']['id'])}}">
110 {{ code['function']['user_name'] }} ({{ code['function']['name'] }})
111 </a>
112 </div>
113 <div class="panel-body">
114 <div class="row">
115 <div class="col-md-2"><strong>Samples</strong></div>
116 <div class="col-md-2"><strong>Address</strong></div>
117 <div><strong>Instruction</strong></div>
118 </div>
119 <template repeat="{{ instruction in code['disassembly'] }}">
120 <disassembly-entry instruction="{{ instruction }}">
121 </disassembly-entry>
122 </template>
123 </div>
124 </div>
125 </div>
126 </div>
127 </template>
128
129 </polymer-element><polymer-element name="collapsible-content" extends="observato ry-element">
130 <template>
131 <div class="well row">
132 <a on-click="toggleDisplay" class="btn muted unselectable">
133 Raw message... <i class="{{ iconClass }}"></i>
134 </a>
135 <div style="display: {{ displayValue }}" class="well">
136 <content></content>
137 </div>
138 </div>
139 </template>
140
141 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t">
142 <template>
143 <div class="row">
144 <div class="col-md-8 col-md-offset-2">
145 <div class="panel panel-danger">
146 <div class="panel-heading">Error</div>
147 <div class="panel-body">
148 <p>{{ error }}</p>
149 </div>
150 </div>
151 </div>
152 </div>
153 </template>
154
155 </polymer-element><polymer-element name="field-view" extends="observatory-elemen t">
156 <template>
157 <div class="row">
158 <div class="col-md-8 col-md-offset-2">
159 <div class="panel panel-warning">
160 <div class="panel-heading">
161 <template if="{{ field['static'] }}">static</template>
162 <template if="{{ field['final'] }}">final</template>
163 <template if="{{ field['const'] }}">const</template>
164 {{ field['user_name'] }} ({{ field['name'] }})
165 <a class="pull-right" href="{{ app.locationManager.currentIsolateClass Link(field['class']['id'])}}">
166 {{ field['class']['user_name'] }}
167 </a>
168 </div>
169 <div class="panel-body">
170 <template if="{{ field['guard_class'] == 'dynamic'}}">
171 <div class="alert alert-danger">
172 Field has been assigned multiple types. If a field is only ever
173 assigned a single type, performance may improve.
174 </div>
175 </template>
176 <template if="{{ field['guard_class'] != 'dynamic'}}">
177 <div class="alert alert-success">Field has monomorphic type</div>
178 <template if="{{ (field['guard_class'] != 'dynamic') &amp;&amp;
179 field['guard_nullable'] }}">
180 <div class="alert alert-info">
181 Field has been assigned null. If a field is never assigned null,
182 performance may improve.
183 </div>
184 </template>
185 <blockquote>
186 <a href="{{ app.locationManager.currentIsolateClassLink(field['guard _class']['id'])}}">
187 {{ field['guard_class']['user_name'] }}
188 </a>
189 </blockquote>
190 </template>
191 </div>
192 </div>
193 </div>
194 </div>
195 </template>
196
197 </polymer-element><polymer-element name="function-view" extends="observatory-ele ment">
198 <template>
199 <div class="row">
200 <div class="col-md-8 col-md-offset-2">
201 <div class="panel panel-warning">
202 <div class="panel-heading">
203 {{ function['user_name'] }} ({{ function['name'] }})
204 <a class="pull-right" href="{{ app.locationManager.currentIsolateClass Link(function['class']['id'])}}">
205 {{ function['class']['name'] }}
206 </a>
207 </div>
208 <div class="panel-body">
209 <div>
210 <a class="btn btn-primary" href="{{ app.locationManager.currentIsolate ObjectLink(function['code']['id'])}}">Current Code</a>
211 <a class="btn btn-info" href="{{ app.locationManager.currentIsolateObj ectLink(function['unoptimized_code']['id'])}}">Unoptimized Code</a>
212 </div>
213 <table class="table table-hover">
214 <tbody>
215 <tr>
216 <td>static</td><td>{{ function['is_static'] }}</td>
217 </tr>
218 <tr>
219 <td>Const</td><td>{{ function['is_const'] }}</td>
220 </tr>
221 <tr>
222 <td>Optimizable</td><td>{{ function['is_optimizable'] }}</td>
223 </tr>
224 <tr>
225 <td>Inlinable</td><td>{{ function['is_inlinable'] }}</td>
226 </tr>
227 <tr>
228 <td>Kind</td><td>{{ function['kind'] }}</td>
229 </tr>
230 <tr>
231 <td>Usage Count</td><td>{{ function['usage_counter'] }}</td>
232 </tr>
233 <tr>
234 <td>Optimized Call Site Count</td><td>{{ function['optimized_cal l_site_count'] }}</td>
235 </tr>
236 <tr>
237 <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</t d>
238 </tr>
239 </tbody>
240 </table>
241 </div>
242 </div>
243 </div>
244 </div>
245 </template>
246
247 </polymer-element><polymer-element name="isolate-summary" extends="observatory-e lement">
248 <template>
249 <div class="row">
250 <div class="col-md-1">
251 <img src="img/isolate_icon.png" class="img-polaroid">
252 </div>
253 <div class="col-md-1">{{ isolate }}</div>
254 <div class="col-md-10">{{ name }}</div>
255 </div>
256 <div class="row">
257 <div class="col-md-2"></div>
258 <div class="col-md-1">
259 <a href="{{ app.locationManager.relativeLink(isolate, 'stacktrac e') }}">Stacktrace</a>
260 </div>
261 <div class="col-md-1">
262 <a href="{{ app.locationManager.relativeLink(isolate, 'library') }}">Lib rary</a>
263 </div>
264 <div class="col-md-8"></div>
265 </div>
266 </template>
267
268 </polymer-element><polymer-element name="isolate-list" extends="observatory-elem ent">
269 <template>
270 <ul class="list-group">
271 <template repeat="{{ isolate in app.isolateManager.isolates.values }}">
272 <li class="list-group-item">
273 <isolate-summary app="{{ app }}" isolate="{{ isolate.id }}" name="{{ iso late.name }}"></isolate-summary>
274 </li>
275 </template>
276 </ul>
277 </template>
278
279 </polymer-element><polymer-element name="json-view" extends="observatory-element ">
280 <template>
281 <template bind="" if="{{ valueType == 'Primitive' }}">
282 <span>{{primitiveString}}</span>
283 </template>
284 <template bind="" if="{{ valueType == 'List' }}">
285 <table class="table table-condensed table-bordered">
286 <caption class="text-left">List, {{list.length}}</caption>
287 <tbody>
288 <tr template="" repeat="{{item in list)}}">
289 <th>{{counter}}</th>
290 <td><json-view json="{{item}}"></json-view></td>
291 </tr>
292 </tbody>
293 </table>
294 </template>
295 <template if="{{ valueType == 'Map' }}">
296 <table class="table table-condensed table-bordered">
297 <caption class="text-left">Map, {{keys.length}}</caption>
298 <tbody>
299 <tr template="" repeat="{{key in keys}}">
300 <th>{{key}}</th>
301 <td><json-view json="{{value(key)}}"></json-view></td>
302 </tr>
303 </tbody>
304 </table>
305 </template>
306 </template>
307
308 </polymer-element><polymer-element name="library-view" extends="observatory-elem ent">
309 <template>
310 <div class="alert alert-success">Library {{ library['name'] }}</div>
311 <div class="alert alert-info">Imported Libraries</div>
312 <table class="table table-hover">
313 <tbody>
314 <tr template="" repeat="{{ lib in library['libraries'] }}">
315 <td>
316 <a href="{{ app.locationManager.currentIsolateObjectLink(lib['id'])}}" >
317 {{ lib['name'] }}
318 </a>
319 </td>
320 </tr>
321 </tbody>
322 </table>
323 <div class="alert alert-info">Classes</div>
324 <table class="table table-hover">
325 <thead>
326 <tr>
327 <th>Name</th>
328 <th>Internal Name</th>
329 </tr>
330 </thead>
331 <tbody>
332 <tr template="" repeat="{{ cls in library['classes'] }}">
333 <td>
334 <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}" >
335 {{ cls['user_name'] }}
336 </a>
337 </td>
338 <td>
339 <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}" >
340 {{ cls['name'] }}
341 </a>
342 </td>
343 </tr>
344 </tbody>
345 </table>
346 </template>
347
348 </polymer-element><polymer-element name="stack-trace" extends="observatory-eleme nt">
349 <template>
350 <div class="alert alert-info">Stack Trace</div>
351 <table class="table table-hover">
352 <thead>
353 <tr>
354 <th>Depth</th>
355 <th>Function</th>
356 <th>Url</th>
357 <th>Line</th>
358 </tr>
359 </thead>
360 <tbody>
361 <tr template="" repeat="{{ frame in trace['members'] }}">
362 <td>{{$index}}</td>
363 <td><a href="{{app.locationManager.currentIsolateObjectLink(frame['funct ion']['id'])}}">{{ frame['name'] }}</a></td>
364 <td>{{ frame['url'] }}</td>
365 <td>{{ frame['line'] }}</td>
366 </tr>
367 </tbody>
368 </table>
369 </template>
370
371 </polymer-element><polymer-element name="message-viewer" extends="observatory-el ement">
372 <!--
373 This is a big switch statement which instantiates the custom element
374 designated to display the message type.
375 -->
376 <template>
377 <!-- If the message type is an IsolateList -->
378 <template if="{{ messageType == 'IsolateList' }}">
379 <isolate-list app="{{ app }}"></isolate-list>
380 </template>
381 <!-- If the message type is a StackTrace -->
382 <template if="{{ messageType == 'StackTrace' }}">
383 <stack-trace app="{{ app }}" trace="{{ message }}"></stack-trace>
384 </template>
385 <!-- If the message type is a RequestError -->
386 <template if="{{ messageType == 'RequestError' }}">
387 <error-view app="{{ app }}" error="{{ message['error'] }}"></error-view>
388 </template>
389 <template if="{{ messageType == 'Library' }}">
390 <library-view app="{{ app }}" library="{{ message }}"></library-view>
391 </template>
392 <template if="{{ messageType == 'Class' }}">
393 <class-view app="{{ app }}" cls="{{ message }}"></class-view>
394 </template>
395 <template if="{{ messageType == 'Field' }}">
396 <field-view app="{{ app }}" field="{{ message }}"></field-view>
397 </template>
398 <template if="{{ messageType == 'Function' }}">
399 <function-view app="{{ app }}" function="{{ message }}"></function-view>
400 </template>
401 <template if="{{ messageType == 'Code' }}">
402 <code-view app="{{ app }}" code="{{ message }}"></code-view>
403 </template>
404 <!-- Add new views and message types in the future here. -->
405 </template>
406
407 </polymer-element><polymer-element name="navigation-bar" extends="observatory-el ement">
408 <template>
409 <nav class="navbar navbar-default" role="navigation">
410 <div class="navbar-header">
411 <a class="navbar-brand" href="">Observatory</a>
412 </div>
413 <div class="collapse navbar-collapse navbar-ex1-collapse">
414 <input class="span2 pull-right navbar-form" placeholder="VM Address" typ e="text" value="{{ app.requestManager.prefix }}">
415 </div>
416 </nav>
417 </template>
418
419 </polymer-element><polymer-element name="response-viewer" extends="observatory-e lement">
420 <template>
421 <template repeat="{{ message in app.requestManager.responses }}">
422 <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer>
423 <collapsible-content>
424 <!-- <json-view json="{{ message }}"></json-view> -->
425 </collapsible-content>
426 </template>
427 </template>
428
429 </polymer-element><polymer-element name="observatory-application" extends="obser vatory-element">
430 <template>
431 <navigation-bar app="{{ app }}"></navigation-bar>
432 <response-viewer app="{{ app }}"></response-viewer>
433 </template>
434
435 </polymer-element>
436 <observatory-application></observatory-application>
437
438 </body></html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698