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