| 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 |