OLD | NEW |
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">></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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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> |
OLD | NEW |