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

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

Issue 185413015: Update the navbar in the observatory (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: new js Created 6 years, 9 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
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html_bootstrap.dart.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html><html><head> 1 <!DOCTYPE html><html><head>
2 2
3 3
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss"> 5 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss">
6 6
7 <title>Dart VM Observatory</title> 7 <title>Dart VM Observatory</title>
8 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 8 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
9 9
10 10
11 <script src="index.html_bootstrap.dart.js"></script> 11 <script src="index.html_bootstrap.dart.js"></script>
12 12
13 </head> 13 </head>
14 <body><polymer-element name="observatory-element"> 14 <body><polymer-element name="observatory-element">
15 15
16 </polymer-element><polymer-element name="breakpoint-list" extends="observatory-e lement"> 16 </polymer-element>
17 <template> 17 <polymer-element name="nav-bar" extends="observatory-element">
18 <template>
19 <style>
20 nav ul {
21 display: inline-table;
22 position: relative;
23 list-style: none;
24 padding-left: 0;
25 margin-left: 0;
26 width: 100%;
27 z-index: 10;
28 font: 400 16px 'Montserrat', sans-serif;
29 color: white;
30 background-color: #0489c3;
31 }
32 nav ul:after {
33 content: ""; clear: both; display: block;
34 }
35 </style>
36 <nav>
37 <ul>
38 <content></content>
39 </ul>
40 </nav>
41 </template>
42 </polymer-element>
43
44 <polymer-element name="nav-menu" extends="observatory-element">
45 <template>
46 <style>
47 .menu, .spacer {
48 float: left;
49 }
50 .menu a, .spacer {
51 display: block;
52 padding: 12px 8px;
53 color: White;
54 text-decoration: none;
55 }
56 .menu:hover {
57 background: #455;
58 }
59 .menu ul {
60 display: none;
61 position: absolute;
62 top: 100%;
63 list-style: none;
64 padding: 0;
65 margin-left: 0;
66 width: auto;
67 z-index: 10;
68 font: 400 16px 'Montserrat', sans-serif;
69 color: white;
70 background: #567;
71 }
72 .menu ul:after {
73 content: ""; clear: both; display: block;
74 }
75 .menu:hover > ul {
76 display: block;
77 }
78 </style>
79
80 <li class="menu"><a href="{{ link }}">{{ anchor }}</a>
81 <ul><content></content></ul>
82 </li>
83 <template if="{{ !last }}">
84 <li class="spacer">&gt;</li>
85 </template>
86
87 </template>
88 </polymer-element>
89
90 <polymer-element name="nav-menu-item" extends="observatory-element">
91 <template>
92 <style>
93 li {
94 float: none;
95 border-top: 1px solid #677;
96 border-bottom: 1px solid #556; position: relative;
97 }
98 li:hover {
99 background: #455;
100 }
101 li ul {
102 display: none;
103 position: absolute;
104 top:0;
105 left: 100%;
106 list-style: none;
107 padding: 0;
108 margin-left: 0;
109 width: auto;
110 z-index: 10;
111 font: 400 16px 'Montserrat', sans-serif;
112 color: white;
113 background: #567;
114 }
115 li ul:after {
116 content: ""; clear: both; display: block;
117 }
118 li:hover > ul {
119 display: block;
120 }
121 li a {
122 display: block;
123 padding: 12px 12px;
124 color: white;
125 text-decoration: none;
126 }
127 </style>
128 <li><a href="{{ link }}">{{ anchor }}</a>
129 <ul><content></content></ul>
130 </li>
131 </template>
132 </polymer-element>
133
134 <polymer-element name="nav-refresh" extends="observatory-element">
135 <template>
136 <style>
137 .active {
138 color: #aaa;
139 }
140 .idle {
141 color: #000;
142 }
143 li {
144 float: right;
145 margin: 0;
146 }
147 li button {
148 margin: 3px;
149 padding: 8px;
150 }
151 </style>
152 <li>
153 <template if="{{ active }}">
154 <button class="active" on-click="{{ buttonClick }}">Refresh</button>
155 </template>
156 <template if="{{ !active }}">
157 <button class="idle" on-click="{{ buttonClick }}">Refresh</button>
158 </template>
159 </li>
160 </template>
161 </polymer-element>
162
163 <polymer-element name="top-nav-menu">
164 <template>
165 <nav-menu link="#" anchor="Observatory" last="{{ last }}">
166 <content></content>
167 </nav-menu>
168 </template>
169 </polymer-element>
170
171 <polymer-element name="isolate-nav-menu" extends="observatory-element">
172 <template>
173 <nav-menu link="#" anchor="{{ isolate.name }}" last="{{ last }}">
174 <nav-menu-item link="{{ app.locationManager.currentIsolateRelativeLink('st acktrace') }}" anchor="stack trace"></nav-menu-item>
175 <nav-menu-item link="{{ app.locationManager.currentIsolateRelativeLink('pr ofile') }}" anchor="cpu profile"></nav-menu-item>
176 <nav-menu-item link="{{ app.locationManager.currentIsolateRelativeLink('al locationprofile') }}" anchor="heap profile"></nav-menu-item>
177 <nav-menu-item link="{{ app.locationManager.currentIsolateRelativeLink('de bug/breakpoints') }}" anchor="breakpoints"></nav-menu-item>
178 <content></content>
179 </nav-menu>
180 </template>
181 </polymer-element>
182
183 <polymer-element name="library-nav-menu" extends="observatory-element">
184 <template>
185 <nav-menu link="{{ app.locationManager.currentIsolateRelativeLink(library['i d']) }}" anchor="{{ library['name'] }}" last="{{ last }}">
186 <content></content>
187 </nav-menu>
188 </template>
189 </polymer-element>
190
191 <polymer-element name="class-nav-menu" extends="observatory-element">
192 <template>
193 <nav-menu link="{{ app.locationManager.currentIsolateRelativeLink(cls['id']) }}" anchor="{{ cls['user_name'] }}" last="{{ last }}">
194 <content></content>
195 </nav-menu>
196 </template>
197 </polymer-element>
198
199
200 <polymer-element name="breakpoint-list" extends="observatory-element">
201 <template>
202 <nav-bar>
203 <top-nav-menu></top-nav-menu>
204 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
205 </isolate-nav-menu>
206 <nav-menu link="." anchor="breakpoints" last="{{ true }}"></nav-menu>
207 <nav-refresh callback="{{ refresh }}"></nav-refresh>
208 </nav-bar>
209
18 <template if="{{ msg['breakpoints'].isEmpty }}"> 210 <template if="{{ msg['breakpoints'].isEmpty }}">
19 <div class="panel panel-warning"> 211 <div class="panel panel-warning">
20 <div class="panel-body">No breakpoints</div> 212 <div class="panel-body">No breakpoints</div>
21 </div> 213 </div>
22 </template> 214 </template>
23 <template if="{{ msg['breakpoints'].isNotEmpty }}"> 215 <template if="{{ msg['breakpoints'].isNotEmpty }}">
24 <ul class="list-group"> 216 <ul class="list-group">
25 <template repeat="{{ bpt in msg['breakpoints'] }}"> 217 <template repeat="{{ bpt in msg['breakpoints'] }}">
26 <li class="list-group-item"> 218 <li class="list-group-item">
27 {{ bpt }} 219 {{ bpt }}
28 </li> 220 </li>
29 </template> 221 </template>
30 </ul> 222 </ul>
31 </template> 223 </template>
32 </template> 224 </template>
33 225
34 </polymer-element><polymer-element name="service-ref" extends="observatory-eleme nt"> 226 </polymer-element>
227 <polymer-element name="service-ref" extends="observatory-element">
35 228
36 </polymer-element><polymer-element name="class-ref" extends="service-ref"> 229 </polymer-element><polymer-element name="class-ref" extends="service-ref">
37 <template> 230 <template>
38 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 231 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
39 </template> 232 </template>
40 233
41 </polymer-element> 234 </polymer-element>
42 <polymer-element name="error-view" extends="observatory-element"> 235 <polymer-element name="error-view" extends="observatory-element">
43 <template> 236 <template>
44 <div class="row"> 237 <div class="row">
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 </template> 335 </template>
143 336
144 </polymer-element> 337 </polymer-element>
145 <polymer-element name="library-ref" extends="service-ref"> 338 <polymer-element name="library-ref" extends="service-ref">
146 <template> 339 <template>
147 <a href="{{ url }}">{{ name }}</a> 340 <a href="{{ url }}">{{ name }}</a>
148 </template> 341 </template>
149 342
150 </polymer-element><polymer-element name="class-view" extends="observatory-elemen t"> 343 </polymer-element><polymer-element name="class-view" extends="observatory-elemen t">
151 <template> 344 <template>
345 <nav-bar>
346 <top-nav-menu></top-nav-menu>
347 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
348 </isolate-nav-menu>
349 <library-nav-menu app="{{ app }}" library="{{ cls['library'] }}"></library -nav-menu>
350 <class-nav-menu app="{{ app }}" cls="{{ cls }}" last="{{ true }}"></class- nav-menu>
351 <nav-refresh callback="{{ refresh }}"></nav-refresh>
352 </nav-bar>
353
152 <div class="row"> 354 <div class="row">
153 <div class="col-md-8 col-md-offset-2"> 355 <div class="col-md-8 col-md-offset-2">
154 <div class="panel panel-warning"> 356 <div class="panel panel-warning">
155 <div class="panel-heading"> 357 <div class="panel-heading">
156 class <strong>{{ cls['user_name'] }}</strong> 358 class <strong>{{ cls['user_name'] }}</strong>
157 <template if="{{ cls['super']['type'] != 'Null' }}"> 359 <template if="{{ cls['super']['type'] != 'Null' }}">
158 extends 360 extends
159 <class-ref app="{{ app }}" ref="{{ cls['super'] }}"></class-ref> 361 <class-ref app="{{ app }}" ref="{{ cls['super'] }}"></class-ref>
160 </template> 362 </template>
161 <library-ref app="{{ app }}" ref="{{ cls['library'] }}"></library-ref> 363 <library-ref app="{{ app }}" ref="{{ cls['library'] }}"></library-ref>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 <div class="col-md-2">{{ instruction.formattedTicks() }}</div> 432 <div class="col-md-2">{{ instruction.formattedTicks() }}</div>
231 <div class="col-md-2">{{ instruction.formattedAddress() }}</div> 433 <div class="col-md-2">{{ instruction.formattedAddress() }}</div>
232 <div class="col-md-4"> 434 <div class="col-md-4">
233 <code>{{ instruction.machine }} {{ instruction.human }}</code> 435 <code>{{ instruction.machine }} {{ instruction.human }}</code>
234 </div> 436 </div>
235 </div> 437 </div>
236 </template> 438 </template>
237 439
238 </polymer-element><polymer-element name="code-view" extends="observatory-element "> 440 </polymer-element><polymer-element name="code-view" extends="observatory-element ">
239 <template> 441 <template>
442 <nav-bar>
443 <top-nav-menu></top-nav-menu>
444 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
445 </isolate-nav-menu>
446 <nav-menu link="." anchor="{{ code.functionRef['user_name'] }}" last="{{ t rue }}"></nav-menu>
447 <!-- TODO(turnidge): Implement code refresh -->
448 </nav-bar>
449
240 <div class="row"> 450 <div class="row">
241 <div class="col-md-8 col-md-offset-2"> 451 <div class="col-md-8 col-md-offset-2">
242 <div class="{{ cssPanelClass }}"> 452 <div class="{{ cssPanelClass }}">
243 <div class="panel-heading"> 453 <div class="panel-heading">
244 <function-ref app="{{ app }}" ref="{{ code.functionRef }}"></function- ref> 454 <function-ref app="{{ app }}" ref="{{ code.functionRef }}"></function- ref>
245 </div> 455 </div>
246 <div class="panel-body"> 456 <div class="panel-body">
247 <div class="row"> 457 <div class="row">
248 <div class="col-md-2"><strong>Samples</strong></div> 458 <div class="col-md-2"><strong>Samples</strong></div>
249 <div class="col-md-2"><strong>Address</strong></div> 459 <div class="col-md-2"><strong>Address</strong></div>
250 <div><strong>Instruction</strong></div> 460 <div><strong>Instruction</strong></div>
251 </div> 461 </div>
252 <template repeat="{{ instruction in code.instructions }}"> 462 <template repeat="{{ instruction in code.instructions }}">
253 <disassembly-entry instruction="{{ instruction }}"> 463 <disassembly-entry instruction="{{ instruction }}">
254 </disassembly-entry> 464 </disassembly-entry>
255 </template> 465 </template>
256 </div> 466 </div>
257 </div> 467 </div>
258 </div> 468 </div>
259 </div> 469 </div>
260 </template> 470 </template>
261 471
262 </polymer-element><polymer-element name="collapsible-content" extends="observato ry-element"> 472 </polymer-element>
473 <polymer-element name="collapsible-content" extends="observatory-element">
263 <template> 474 <template>
264 <div class="well row"> 475 <div class="well row">
265 <a on-click="toggleDisplay" class="btn muted unselectable"> 476 <a on-click="toggleDisplay" class="btn muted unselectable">
266 Raw message... <i class="{{ iconClass }}"></i> 477 Raw message... <i class="{{ iconClass }}"></i>
267 </a> 478 </a>
268 <div style="display: {{ displayValue }}" class="well"> 479 <div style="display: {{ displayValue }}" class="well">
269 <content></content> 480 <content></content>
270 </div> 481 </div>
271 </div> 482 </div>
272 </template> 483 </template>
273 484
274 </polymer-element><polymer-element name="field-view" extends="observatory-elemen t"> 485 </polymer-element><polymer-element name="field-view" extends="observatory-elemen t">
275 <template> 486 <template>
487 <nav-bar>
488 <top-nav-menu></top-nav-menu>
489 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
490 </isolate-nav-menu>
491 <template if="{{ field['owner']['type'] == '@Class' }}">
492 <!-- TODO(turnidge): Add library nav menu here. -->
493 <class-nav-menu app="{{ app }}" cls="{{ field['owner'] }}"></class-nav-m enu>
494 </template>
495 <template if="{{ field['owner']['type'] == '@Library' }}">
496 <library-nav-menu app="{{ app }}" library="{{ field['owner'] }}"></libra ry-nav-menu>
497 </template>
498 <nav-menu link="." anchor="{{ field['user_name'] }}" last="{{ true }}"></n av-menu>
499 <nav-refresh callback="{{ refresh }}"></nav-refresh>
500 </nav-bar>
501
276 <div class="row"> 502 <div class="row">
277 <div class="col-md-8 col-md-offset-2"> 503 <div class="col-md-8 col-md-offset-2">
278 <div class="panel panel-warning"> 504 <div class="panel panel-warning">
279 <div class="panel-heading"> 505 <div class="panel-heading">
280 <template if="{{ field['static'] }}">static</template> 506 <template if="{{ field['static'] }}">static</template>
281 <template if="{{ field['final'] }}">final</template> 507 <template if="{{ field['final'] }}">final</template>
282 <template if="{{ field['const'] }}">const</template> 508 <template if="{{ field['const'] }}">const</template>
283 {{ field['user_name'] }} ({{ field['name'] }}) 509 {{ field['user_name'] }} ({{ field['name'] }})
284 <class-ref app="{{ app }}" ref="{{ field['class'] }}"></class-ref> 510 <class-ref app="{{ app }}" ref="{{ field['class'] }}"></class-ref>
285 </div> 511 </div>
(...skipping 16 matching lines...) Expand all
302 <blockquote> 528 <blockquote>
303 <class-ref app="{{ app }}" ref="{{ field['guard_class'] }}"></class- ref> 529 <class-ref app="{{ app }}" ref="{{ field['guard_class'] }}"></class- ref>
304 </blockquote> 530 </blockquote>
305 </template> 531 </template>
306 </div> 532 </div>
307 </div> 533 </div>
308 </div> 534 </div>
309 </div> 535 </div>
310 </template> 536 </template>
311 537
312 </polymer-element><polymer-element name="function-view" extends="observatory-ele ment"> 538 </polymer-element>
539 <polymer-element name="function-view" extends="observatory-element">
313 <template> 540 <template>
541 <nav-bar>
542 <top-nav-menu></top-nav-menu>
543 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
544 </isolate-nav-menu>
545 <template if="{{ function['owner']['type'] == '@Class' }}">
546 <!-- TODO(turnidge): Add library nav menu here. -->
547 <class-nav-menu app="{{ app }}" cls="{{ function['owner'] }}"></class-na v-menu>
548 </template>
549 <template if="{{ function['owner']['type'] == '@Library' }}">
550 <library-nav-menu app="{{ app }}" library="{{ function['owner'] }}"></li brary-nav-menu>
551 </template>
552 <nav-menu link="." anchor="{{ function['user_name'] }}" last="{{ true }}"> </nav-menu>
553 <nav-refresh callback="{{ refresh }}"></nav-refresh>
554 </nav-bar>
555
314 <div class="row"> 556 <div class="row">
315 <div class="col-md-8 col-md-offset-2"> 557 <div class="col-md-8 col-md-offset-2">
316 <div class="panel panel-warning"> 558 <div class="panel panel-warning">
317 <div class="panel-heading"> 559 <div class="panel-heading">
318 {{ function['user_name'] }} ({{ function['name'] }}) 560 {{ function['user_name'] }} ({{ function['name'] }})
319 <class-ref app="{{ app }}" ref="{{ function['class'] }}"></class-ref> 561 <class-ref app="{{ app }}" ref="{{ function['class'] }}"></class-ref>
320 </div> 562 </div>
321 <div class="panel-body"> 563 <div class="panel-body">
322 <div> 564 <div>
323 <code-ref app="{{ app }}" ref="{{ function['code'] }}"></code-ref> 565 <code-ref app="{{ app }}" ref="{{ function['code'] }}"></code-ref>
(...skipping 26 matching lines...) Expand all
350 <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</t d> 592 <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</t d>
351 </tr> 593 </tr>
352 </tbody> 594 </tbody>
353 </table> 595 </table>
354 </div> 596 </div>
355 </div> 597 </div>
356 </div> 598 </div>
357 </div> 599 </div>
358 </template> 600 </template>
359 601
360 </polymer-element><polymer-element name="script-ref" extends="service-ref"> 602 </polymer-element>
603 <polymer-element name="script-ref" extends="service-ref">
361 <template> 604 <template>
362 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 605 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
363 </template> 606 </template>
364 607
365 </polymer-element> 608 </polymer-element>
366 <polymer-element name="isolate-summary" extends="observatory-element"> 609 <polymer-element name="isolate-summary" extends="observatory-element">
367 <template> 610 <template>
368 <div class="row"> 611 <div class="row">
369 <div class="col-md-1"> 612 <div class="col-md-1">
370 <img src="img/isolate_icon.png" class="img-polaroid"> 613 <img src="img/isolate_icon.png" class="img-polaroid">
371 </div> 614 </div>
372 615
373 <div class="col-md-1">{{ isolate.name }}</div> 616 <div class="col-md-1">{{ isolate.vmName }}</div>
374 617
375 <!-- TODO(turnidge): Use function-ref when it can take isolate param --> 618 <!-- TODO(turnidge): Use function-ref when it can take isolate param -->
376 <div class="col-md-4"> 619 <div class="col-md-4">
377 620
378 <div class="row"> 621 <div class="row">
379 <template if="{{ isolate.entry['id'] != null }}"> 622 <template if="{{ isolate.entry['id'] != null }}">
380 <a href="{{ app.locationManager.relativeLink(isolate.id, isolate.ent ry['id']) }}"> 623 <a href="{{ app.locationManager.relativeLink(isolate.id, isolate.ent ry['id']) }}">
381 {{ isolate.entry['name'] }} 624 {{ isolate.name }}
382 </a> 625 </a>
383 </template> 626 </template>
384 <template if="{{ isolate.entry['id'] == null }}"> 627 <template if="{{ isolate.entry['id'] == null }}">
385 <!-- fred --> 628 {{ isolate.name }}
386 root isolate
387 </template> 629 </template>
388 </div> 630 </div>
389 631
390 <div class="row"> 632 <div class="row">
391 <small> 633 <small>
392 (<a href="{{ app.locationManager.relativeLink(isolate.id, isolate.ro otLib) }}">library</a>) 634 (<a href="{{ app.locationManager.relativeLink(isolate.id, isolate.ro otLib) }}">library</a>)
393 (<a href="{{ app.locationManager.relativeLink(isolate.id, 'debug/bre akpoints') }}">breakpoints</a>) 635 (<a href="{{ app.locationManager.relativeLink(isolate.id, 'debug/bre akpoints') }}">breakpoints</a>)
394 (<a href="{{ app.locationManager.relativeLink(isolate.id, 'profile') }}">profile</a>) 636 (<a href="{{ app.locationManager.relativeLink(isolate.id, 'profile') }}">profile</a>)
395 </small> 637 </small>
396 </div> 638 </div>
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 </template> 692 </template>
451 </div> 693 </div>
452 <div class="col-md-3"> 694 <div class="col-md-3">
453 </div> 695 </div>
454 </div> 696 </div>
455 </template> 697 </template>
456 698
457 </polymer-element> 699 </polymer-element>
458 <polymer-element name="isolate-list" extends="observatory-element"> 700 <polymer-element name="isolate-list" extends="observatory-element">
459 <template> 701 <template>
460 <button type="button" on-click="{{refresh}}">Refresh</button> 702 <nav-bar>
703 <top-nav-menu last="{{ true }}"></top-nav-menu>
704 <!-- TODO(turnidge): Why doesn't "this.refresh" work? -->
705 <nav-refresh callback="{{ refresh } }}"></nav-refresh>
706 </nav-bar>
461 <ul class="list-group"> 707 <ul class="list-group">
462 <template repeat="{{ isolate in app.isolateManager.isolates.values }}"> 708 <template repeat="{{ isolate in app.isolateManager.isolates.values }}">
463 <li class="list-group-item"> 709 <li class="list-group-item">
464 <isolate-summary app="{{ app }}" isolate="{{ isolate }}"></isolate-summa ry> 710 <isolate-summary app="{{ app }}" isolate="{{ isolate }}"></isolate-summa ry>
465 </li> 711 </li>
466 </template> 712 </template>
467 </ul> 713 </ul>
468 (<a href="{{ app.locationManager.absoluteLink('cpu') }}">cpu</a>) 714 (<a href="{{ app.locationManager.absoluteLink('cpu') }}">cpu</a>)
469 </template> 715 </template>
470 716
471 </polymer-element> 717 </polymer-element>
472 <polymer-element name="instance-view" extends="observatory-element"> 718 <polymer-element name="instance-view" extends="observatory-element">
473 <template> 719 <template>
720 <nav-bar>
721 <top-nav-menu></top-nav-menu>
722 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
723 </isolate-nav-menu>
724 <!-- TODO(turnidge): Add library nav menu here. -->
725 <class-nav-menu app="{{ app }}" cls="{{ instance['class'] }}"></class-nav- menu>
726 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
727 <!-- TODO(turnidge): Add nav refresh here. -->
728 </nav-bar>
729
474 <div class="row"> 730 <div class="row">
475 <div class="col-md-8 col-md-offset-2"> 731 <div class="col-md-8 col-md-offset-2">
476 <div class="panel panel-warning"> 732 <div class="panel panel-warning">
477 <div class="panel-heading"> 733 <div class="panel-heading">
478 Instance of 734 Instance of
479 <class-ref app="{{ app }}" ref="{{ instance['class'] }}"></class-ref> 735 <class-ref app="{{ app }}" ref="{{ instance['class'] }}"></class-ref>
480 </div> 736 </div>
481 <div class="panel-body"> 737 <div class="panel-body">
482 <template if="{{ instance['error'] == null }}"> 738 <template if="{{ instance['error'] == null }}">
483 <table class="table table-hover"> 739 <table class="table table-hover">
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 <td><json-view json="{{value(key)}}"></json-view></td> 788 <td><json-view json="{{value(key)}}"></json-view></td>
533 </tr> 789 </tr>
534 </tbody> 790 </tbody>
535 </table> 791 </table>
536 </template> 792 </template>
537 </template> 793 </template>
538 794
539 </polymer-element> 795 </polymer-element>
540 <polymer-element name="library-view" extends="observatory-element"> 796 <polymer-element name="library-view" extends="observatory-element">
541 <template> 797 <template>
542 <div class="alert alert-success">Library {{ library['name'] }}</div> 798 <nav-bar>
799 <top-nav-menu></top-nav-menu>
800 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
801 </isolate-nav-menu>
802 <library-nav-menu app="{{ app }}" library="{{ library }}" last="{{ true }} "></library-nav-menu>
803 <nav-refresh callback="{{ refresh }}"></nav-refresh>
804 </nav-bar>
805
543 <div class="alert alert-info">Scripts</div> 806 <div class="alert alert-info">Scripts</div>
544 <table class="table table-hover"> 807 <table class="table table-hover">
545 <tbody> 808 <tbody>
546 <tr template="" repeat="{{ script in library['scripts']}}"> 809 <tr template="" repeat="{{ script in library['scripts']}}">
547 <td> 810 <td>
548 {{ script['kind'] }} 811 {{ script['kind'] }}
549 </td> 812 </td>
550 <td> 813 <td>
551 <script-ref app="{{ app }}" ref="{{ script }}"></script-ref> 814 <script-ref app="{{ app }}" ref="{{ script }}"></script-ref>
552 </td> 815 </td>
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
600 </td> 863 </td>
601 </tr> 864 </tr>
602 </tbody> 865 </tbody>
603 </table> 866 </table>
604 867
605 </template> 868 </template>
606 869
607 </polymer-element> 870 </polymer-element>
608 <polymer-element name="heap-profile" extends="observatory-element"> 871 <polymer-element name="heap-profile" extends="observatory-element">
609 <template> 872 <template>
610 <div> 873 <nav-bar>
611 <button type="button" on-click="{{refreshData}}">Refresh</button> 874 <top-nav-menu></top-nav-menu>
875 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentIso late() }}">
876 </isolate-nav-menu>
877 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu>
878 <nav-refresh callback="{{ refresh }}"></nav-refresh>
879 </nav-bar>
880
612 <button type="button" on-click="{{resetAccumulator}}">Reset Accumulator</butto n> 881 <button type="button" on-click="{{resetAccumulator}}">Reset Accumulator</butto n>
613 </div>
614 <div class="row"> 882 <div class="row">
615 <div id="newPieChart" class="col-md-4" style="height: 400px"> 883 <div id="newPieChart" class="col-md-4" style="height: 400px">
616 </div> 884 </div>
617 <div id="newStatus" class="col-md-2"> 885 <div id="newStatus" class="col-md-2">
618 <table class="table"> 886 <table class="table">
619 <tbody> 887 <tbody>
620 <tr> 888 <tr>
621 <td>Collections</td> 889 <td>Collections</td>
622 <td>{{ formattedCollections(true) }}</td> 890 <td>{{ formattedCollections(true) }}</td>
623 </tr> 891 </tr>
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 <p class="col-md-2">Individual heap table</p> 931 <p class="col-md-2">Individual heap table</p>
664 </div> 932 </div>
665 <div class="row"> 933 <div class="row">
666 <div id="table" class="col-md-12" style="height: 800px"></div> 934 <div id="table" class="col-md-12" style="height: 800px"></div>
667 </div> 935 </div>
668 </template> 936 </template>
669 937
670 </polymer-element> 938 </polymer-element>
671 <polymer-element name="script-view" extends="observatory-element"> 939 <polymer-element name="script-view" extends="observatory-element">
672 <template> 940 <template>
941 <nav-bar>
942 <top-nav-menu></top-nav-menu>
943 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentIso late() }}">
944 </isolate-nav-menu>
945 <library-nav-menu app="{{ app }}" library="{{ script.libraryRef }}"></librar y-nav-menu>
946 <nav-menu link="." anchor="{{ script.shortName }}" last="{{ true }}"></nav-m enu>
947 </nav-bar>
948
673 <div class="row"> 949 <div class="row">
674 <div class="col-md-8 col-md-offset-2"> 950 <div class="col-md-8 col-md-offset-2">
675 <div class="panel-heading"> 951 <div class="panel-heading">
676 <button on-click="{{refreshCoverage}}">Refresh Coverage</button> 952 <button on-click="{{refreshCoverage}}">Refresh Coverage</button>
677 {{ script.scriptRef['user_name'] }} 953 {{ script.scriptRef['user_name'] }}
678 {{ script.coveredPercentageFormatted() }} 954 {{ script.coveredPercentageFormatted() }}
679 </div> 955 </div>
680 <div class="panel-body"> 956 <div class="panel-body">
681 <table style="width:100%"> 957 <table style="width:100%">
682 <tbody> 958 <tbody>
683 <tr template="" repeat="{{ line in script.linesForDisplay }}"> 959 <tr template="" repeat="{{ line in script.linesForDisplay }}">
684 <td style="{{ hitsStyle(line) }}"> </td> 960 <td style="{{ hitsStyle(line) }}"> </td>
685 <td style="font-family: consolas, courier, monospace;font-size: 1em; line-height: 1.2em;white-space: nowrap;">{{line.line}}</td> 961 <td style="font-family: consolas, courier, monospace;font-size: 1em; line-height: 1.2em;white-space: nowrap;">{{line.line}}</td>
686 <td width="99%" style="font-family: consolas, courier, monospace;fon t-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td> 962 <td width="99%" style="font-family: consolas, courier, monospace;fon t-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td>
687 </tr> 963 </tr>
688 </tbody> 964 </tbody>
689 </table> 965 </table>
690 </div> 966 </div>
691 </div> 967 </div>
692 </div> 968 </div>
693 </template> 969 </template>
694 970
695 </polymer-element><polymer-element name="stack-frame" extends="observatory-eleme nt"> 971 </polymer-element>
972 <polymer-element name="stack-frame" extends="observatory-element">
696 <template> 973 <template>
697 <style> 974 <style>
698 .memberList { 975 .memberList {
699 margin-left: 3em; 976 margin-left: 3em;
700 border-spacing: 0; 977 border-spacing: 0;
701 border-collapse: collapse; 978 border-collapse: collapse;
702 } 979 }
703 .member { 980 .member {
704 vertical-align: top; 981 vertical-align: top;
705 padding: 0 1em; 982 padding: 0 1em;
(...skipping 25 matching lines...) Expand all
731 </div> 1008 </div>
732 <div class="col-md-1"></div> 1009 <div class="col-md-1"></div>
733 </div> 1010 </div>
734 1011
735 1012
736 </template> 1013 </template>
737 1014
738 </polymer-element> 1015 </polymer-element>
739 <polymer-element name="stack-trace" extends="observatory-element"> 1016 <polymer-element name="stack-trace" extends="observatory-element">
740 <template> 1017 <template>
741 <button type="button" on-click="{{refresh}}">Refresh</button> 1018 <nav-bar>
1019 <top-nav-menu></top-nav-menu>
1020 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
1021 </isolate-nav-menu>
1022 <nav-menu link="." anchor="stack trace" last="{{ true }}"></nav-menu>
1023 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1024 </nav-bar>
1025
742 <template if="{{ trace['members'].isEmpty }}"> 1026 <template if="{{ trace['members'].isEmpty }}">
743 <div class="col-md-1"></div> 1027 <div class="col-md-1"></div>
744 <div class="col-md-11"> 1028 <div class="col-md-11">
745 <em>No stack</em> 1029 <em>No stack</em>
746 </div> 1030 </div>
747 </template> 1031 </template>
748 <template if="{{ trace['members'].isNotEmpty }}"> 1032 <template if="{{ trace['members'].isNotEmpty }}">
749 <ul class="list-group"> 1033 <ul class="list-group">
750 <template repeat="{{ frame in trace['members'] }}"> 1034 <template repeat="{{ frame in trace['members'] }}">
751 <li class="list-group-item"> 1035 <li class="list-group-item">
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 <template if="{{ messageType == 'AllocationProfile' }}"> 1103 <template if="{{ messageType == 'AllocationProfile' }}">
820 <heap-profile app="{{ app }}" profile="{{ message }}"></heap-profile> 1104 <heap-profile app="{{ app }}" profile="{{ message }}"></heap-profile>
821 </template> 1105 </template>
822 <template if="{{ messageType == 'CPU' }}"> 1106 <template if="{{ messageType == 'CPU' }}">
823 <json-view json="{{ message }}"></json-view> 1107 <json-view json="{{ message }}"></json-view>
824 </template> 1108 </template>
825 <!-- Add new views and message types in the future here. --> 1109 <!-- Add new views and message types in the future here. -->
826 </template> 1110 </template>
827 1111
828 </polymer-element> 1112 </polymer-element>
829 <polymer-element name="navigation-bar-isolate" extends="observatory-element"> 1113 <polymer-element name="isolate-profile" extends="observatory-element">
830 <template>
831 <ul class="nav navbar-nav">
832 <li><a href="{{ currentIsolateLink('') }}"> {{currentIsolateName()}}</a> </li>
833 <template repeat="{{link in links}}">
834 <li><a href="{{ currentIsolateLink(link) }}">{{ link }}</a></li>
835 </template>
836 </ul>
837 </template>
838
839 </polymer-element><polymer-element name="navigation-bar" extends="observatory-el ement">
840 <template> 1114 <template>
841 <nav class="navbar navbar-default" role="navigation"> 1115 <nav-bar>
842 <div class="navbar-header"> 1116 <top-nav-menu></top-nav-menu>
843 <a class="navbar-brand" href="#/isolates">Observatory</a> 1117 <isolate-nav-menu app="{{ app }}" isolate="{{ app.locationManager.currentI solate() }}">
844 </div> 1118 </isolate-nav-menu>
845 <template if="{{ app.locationManager.hasCurrentIsolate }}"> 1119 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu>
846 <div class="collapse navbar-collapse navbar-ex1-collapse"> 1120 <nav-refresh callback="{{ refresh }}"></nav-refresh>
847 <navigation-bar-isolate app="{{ app }}"></navigation-bar-isolate> 1121 </nav-bar>
848 </div> 1122
849 </template>
850 </nav>
851 </template>
852
853 </polymer-element><polymer-element name="isolate-profile" extends="observatory-e lement">
854 <template>
855 <div> 1123 <div>
856 <button type="button" on-click="{{refreshData}}">Refresh profile data</but ton>
857 <span>Top</span> 1124 <span>Top</span>
858 <select selectedindex="{{methodCountSelected}}" value="{{methodCounts[meth odCountSelected]}}"> 1125 <select selectedindex="{{methodCountSelected}}" value="{{methodCounts[meth odCountSelected]}}">
859 <option template="" repeat="{{count in methodCounts}}">{{count}}</option > 1126 <option template="" repeat="{{count in methodCounts}}">{{count}}</option >
860 </select> 1127 </select>
861 <span>exclusive methods</span> 1128 <span>exclusive methods</span>
862 </div> 1129 </div>
863 <table id="tableTree" class="table table-hover"> 1130 <table id="tableTree" class="table table-hover">
864 <thead> 1131 <thead>
865 <tr> 1132 <tr>
866 <th>Method</th> 1133 <th>Method</th>
(...skipping 18 matching lines...) Expand all
885 </polymer-element> 1152 </polymer-element>
886 <polymer-element name="response-viewer" extends="observatory-element"> 1153 <polymer-element name="response-viewer" extends="observatory-element">
887 <template> 1154 <template>
888 <template repeat="{{ message in app.requestManager.responses }}"> 1155 <template repeat="{{ message in app.requestManager.responses }}">
889 <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer> 1156 <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer>
890 </template> 1157 </template>
891 </template> 1158 </template>
892 1159
893 </polymer-element><polymer-element name="observatory-application" extends="obser vatory-element"> 1160 </polymer-element><polymer-element name="observatory-application" extends="obser vatory-element">
894 <template> 1161 <template>
895 <navigation-bar app="{{ app }}"></navigation-bar>
896 <template if="{{ app.locationManager.profile }}"> 1162 <template if="{{ app.locationManager.profile }}">
897 <isolate-profile app="{{ app }}"></isolate-profile> 1163 <isolate-profile app="{{ app }}"></isolate-profile>
898 </template> 1164 </template>
899 <template if="{{ app.locationManager.profile == false }}"> 1165 <template if="{{ app.locationManager.profile == false }}">
900 <response-viewer app="{{ app }}"></response-viewer> 1166 <response-viewer app="{{ app }}"></response-viewer>
901 </template> 1167 </template>
902 </template> 1168 </template>
903 1169
904 </polymer-element> 1170 </polymer-element>
1171
1172
905 <observatory-application></observatory-application> 1173 <observatory-application></observatory-application>
906 1174
907 </body></html> 1175 </body></html>
OLDNEW
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html_bootstrap.dart.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698