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

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

Powered by Google App Engine
This is Rietveld 408576698