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

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

Issue 237683004: Disable applyAuthorStyles (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <!DOCTYPE html><html><head><script src="packages/shadow_dom/shadow_dom.debug.js" ></script> 1 <!DOCTYPE html><html><head><script src="packages/shadow_dom/shadow_dom.debug.js" ></script>
2 <script src="packages/custom_element/custom-elements.debug.js"></script> 2 <script src="packages/custom_element/custom-elements.debug.js"></script>
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">
6
7 <title>Dart VM Observatory</title> 5 <title>Dart VM Observatory</title>
6 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
8 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 7 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
9 <script src="packages/browser/interop.js"></script> 8 <script src="packages/browser/interop.js"></script>
10 9
11 <script src="index.html_bootstrap.dart.js"></script> 10 <script src="index.html_bootstrap.dart.js"></script>
12 11
13 </head> 12 </head>
14 <body><polymer-element name="observatory-element"> 13 <body><polymer-element name="observatory-element">
15 14
16 </polymer-element> 15 </polymer-element>
17 <polymer-element name="nav-bar" extends="observatory-element"> 16 <polymer-element name="nav-bar" extends="observatory-element">
18 <template> 17 <template>
18 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
19 <style> 19 <style>
20 nav ul { 20 nav ul {
21 display: inline-table; 21 display: inline-table;
22 position: relative; 22 position: relative;
23 list-style: none; 23 list-style: none;
24 padding-left: 0; 24 padding-left: 0;
25 margin-left: 0; 25 margin-left: 0;
26 width: 100%; 26 width: 100%;
27 z-index: 10; 27 z-index: 10;
28 font: 400 16px 'Montserrat', sans-serif; 28 font: 400 16px 'Montserrat', sans-serif;
(...skipping 23 matching lines...) Expand all
52 padding: 12px 8px; 52 padding: 12px 8px;
53 color: White; 53 color: White;
54 text-decoration: none; 54 text-decoration: none;
55 } 55 }
56 .menu:hover { 56 .menu:hover {
57 background: #455; 57 background: #455;
58 } 58 }
59 .menu ul { 59 .menu ul {
60 display: none; 60 display: none;
61 position: absolute; 61 position: absolute;
62 top: 100%; 62 top: 98%;
63 list-style: none; 63 list-style: none;
64 margin: 0;
64 padding: 0; 65 padding: 0;
65 margin-left: 0;
66 width: auto; 66 width: auto;
67 z-index: 10; 67 z-index: 10;
68 font: 400 16px 'Montserrat', sans-serif; 68 font: 400 16px 'Montserrat', sans-serif;
69 color: white; 69 color: white;
70 background: #567; 70 background: #567;
71 } 71 }
72 .menu ul:after { 72 .menu ul:after {
73 content: ""; clear: both; display: block; 73 content: ""; clear: both; display: block;
74 } 74 }
75 .menu:hover > ul { 75 .menu:hover > ul {
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 </nav-menu> 168 </nav-menu>
169 </template> 169 </template>
170 </polymer-element> 170 </polymer-element>
171 171
172 <polymer-element name="isolate-nav-menu" extends="observatory-element"> 172 <polymer-element name="isolate-nav-menu" extends="observatory-element">
173 <template> 173 <template>
174 <nav-menu link="{{ isolate.hashLink }}" anchor="{{ isolate.name }}" last="{{ last }}"> 174 <nav-menu link="{{ isolate.hashLink }}" anchor="{{ isolate.name }}" last="{{ last }}">
175 <nav-menu-item link="{{ isolate.relativeHashLink('stacktrace') }}" anchor= "stack trace"></nav-menu-item> 175 <nav-menu-item link="{{ isolate.relativeHashLink('stacktrace') }}" anchor= "stack trace"></nav-menu-item>
176 <nav-menu-item link="{{ isolate.relativeHashLink('profile') }}" anchor="cp u profile"></nav-menu-item> 176 <nav-menu-item link="{{ isolate.relativeHashLink('profile') }}" anchor="cp u profile"></nav-menu-item>
177 <nav-menu-item link="{{ isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile"></nav-menu-item> 177 <nav-menu-item link="{{ isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile"></nav-menu-item>
178 <nav-menu-item link="{{ isolate.relativeHashLink('heapmap') }}" anchor="he ap map"></nav-menu-item> 178 <nav-menu-item link="{{ isolate.relativeHashLink('heapmap') }}" anchor="he ap map"></nav-menu-item>
179 <nav-menu-item link="{{ isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item> 179 <nav-menu-item link="{{ isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item>
180 <content></content> 180 <content></content>
181 </nav-menu> 181 </nav-menu>
182 </template> 182 </template>
183 </polymer-element> 183 </polymer-element>
184 184
185 <polymer-element name="library-nav-menu" extends="observatory-element"> 185 <polymer-element name="library-nav-menu" extends="observatory-element">
186 <template> 186 <template>
187 <nav-menu link="{{ library.hashLink }}" anchor="{{ library.name }}" last="{{ last }}"> 187 <nav-menu link="{{ library.hashLink }}" anchor="{{ library.name }}" last="{{ last }}">
188 <content></content> 188 <content></content>
189 </nav-menu> 189 </nav-menu>
190 </template> 190 </template>
191 </polymer-element> 191 </polymer-element>
192 192
193 <polymer-element name="class-nav-menu" extends="observatory-element"> 193 <polymer-element name="class-nav-menu" extends="observatory-element">
194 <template> 194 <template>
195 <nav-menu link="{{ cls.hashLink }}" anchor="{{ cls.name }}" last="{{ last }} "> 195 <nav-menu link="{{ cls.hashLink }}" anchor="{{ cls.name }}" last="{{ last }} ">
196 <content></content> 196 <content></content>
197 </nav-menu> 197 </nav-menu>
198 </template> 198 </template>
199 </polymer-element> 199 </polymer-element>
200 200
201 201
202 <polymer-element name="breakpoint-list" extends="observatory-element"> 202 <polymer-element name="breakpoint-list" extends="observatory-element">
203 <template> 203 <template>
204 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
204 <nav-bar> 205 <nav-bar>
205 <top-nav-menu></top-nav-menu> 206 <top-nav-menu></top-nav-menu>
206 <isolate-nav-menu isolate="{{ msg.isolate }}"></isolate-nav-menu> 207 <isolate-nav-menu isolate="{{ msg.isolate }}"></isolate-nav-menu>
207 <nav-menu link="." anchor="breakpoints" last="{{ true }}"></nav-menu> 208 <nav-menu link="." anchor="breakpoints" last="{{ true }}"></nav-menu>
208 <nav-refresh callback="{{ refresh }}"></nav-refresh> 209 <nav-refresh callback="{{ refresh }}"></nav-refresh>
209 </nav-bar> 210 </nav-bar>
210
211 <template if="{{ msg['breakpoints'].isEmpty }}"> 211 <template if="{{ msg['breakpoints'].isEmpty }}">
212 <div class="panel panel-warning"> 212 <div>
213 <div class="panel-body">No breakpoints</div> 213 <div>No breakpoints</div>
214 </div> 214 </div>
215 </template> 215 </template>
216 <template if="{{ msg['breakpoints'].isNotEmpty }}"> 216 <template if="{{ msg['breakpoints'].isNotEmpty }}">
217 <ul class="list-group"> 217 <ul class="list-group">
218 <template repeat="{{ bpt in msg['breakpoints'] }}"> 218 <template repeat="{{ bpt in msg['breakpoints'] }}">
219 <li class="list-group-item"> 219 <li class="list-group-item">
220 {{ bpt }} 220 {{ bpt }}
221 </li> 221 </li>
222 </template> 222 </template>
223 </ul> 223 </ul>
224 </template> 224 </template>
225 </template> 225 </template>
226 226
227 </polymer-element> 227 </polymer-element>
228 <polymer-element name="service-ref" extends="observatory-element"> 228 <polymer-element name="service-ref" extends="observatory-element">
229 229
230 </polymer-element><polymer-element name="class-ref" extends="service-ref"> 230 </polymer-element><polymer-element name="class-ref" extends="service-ref">
231 231
232 <template><a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template> 232 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css"><a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template>
233 233
234 234
235 </polymer-element> 235 </polymer-element>
236 <polymer-element name="curly-block"> 236 <polymer-element name="curly-block">
237 <template> 237 <template>
238 <style> 238 <style>
239 .idle { 239 .idle {
240 display: inline-block; 240 display: inline-block;
241 color: #0489c3; 241 color: #0489c3;
242 cursor: pointer; 242 cursor: pointer;
(...skipping 25 matching lines...) Expand all
268 </template> 268 </template>
269 <template if="{{ !busy }}"> 269 <template if="{{ !busy }}">
270 {<a on-click="{{ toggleExpand }}"><div class="idle">&nbsp;&nbsp;⊞&nbsp;& nbsp;</div></a>} 270 {<a on-click="{{ toggleExpand }}"><div class="idle">&nbsp;&nbsp;⊞&nbsp;& nbsp;</div></a>}
271 </template> 271 </template>
272 </template> 272 </template>
273 </template> 273 </template>
274 274
275 </polymer-element> 275 </polymer-element>
276 <polymer-element name="instance-ref" extends="service-ref"> 276 <polymer-element name="instance-ref" extends="service-ref">
277 <template> 277 <template>
278 <style> 278 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
279 .memberList {
280 display: table;
281 }
282 .memberItem {
283 display: table-row;
284 }
285 .memberName, .memberValue {
286 display: table-cell;
287 vertical-align: top;
288 padding: 3px 0 3px 1em;
289 font: 400 14px 'Montserrat', sans-serif;
290 }
291 </style>
292 <span> 279 <span>
293 <template if="{{ isUnexpected(ref.serviceType) }}"> 280 <template if="{{ isUnexpected(ref.serviceType) }}">
294 unexpected reference type &lt;{{ ref.serviceType }}&gt; 281 unexpected reference type &lt;{{ ref.serviceType }}&gt;
295 </template> 282 </template>
296 283
297 <template if="{{ isError(ref.serviceType) }}"> 284 <template if="{{ isError(ref.serviceType) }}">
298 <pre>{{ ref.message }}</pre> 285 <pre>{{ ref.message }}</pre>
299 </template> 286 </template>
300 287
301 <template if="{{ isNull(ref.serviceType) }}"> 288 <template if="{{ isNull(ref.serviceType) }}">
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 </td> 421 </td>
435 </tr> 422 </tr>
436 </tbody></table> 423 </tbody></table>
437 </template> 424 </template>
438 </template> 425 </template>
439 </polymer-element> 426 </polymer-element>
440 427
441 428
442 <polymer-element name="field-ref" extends="service-ref"> 429 <polymer-element name="field-ref" extends="service-ref">
443 <template> 430 <template>
431 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
444 <div> 432 <div>
445 <template if="{{ ref['static'] }}">static</template> 433 <template if="{{ ref['static'] }}">static</template>
446 <template if="{{ ref['final'] }}">final</template> 434 <template if="{{ ref['final'] }}">final</template>
447 <template if="{{ ref['const'] }}">const</template> 435 <template if="{{ ref['const'] }}">const</template>
448 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; 436 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp;
449 !ref['final'] &amp;&amp; !ref['const']) }}"> 437 !ref['final'] &amp;&amp; !ref['const']) }}">
450 var 438 var
451 </template> 439 </template>
452 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}"> 440 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
453 <instance-ref ref="{{ ref['declared_type'] }}"></instance-ref> 441 <instance-ref ref="{{ ref['declared_type'] }}"></instance-ref>
454 </template> 442 </template>
455 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 443 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
456 </div> 444 </div>
457 </template> 445 </template>
458 446
459 </polymer-element> 447 </polymer-element>
460 <polymer-element name="function-ref" extends="service-ref"> 448 <polymer-element name="function-ref" extends="service-ref">
461 <template><!-- These comments are here to allow newlines. 449 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/s hared.css"><!-- These comments are here to allow newlines.
462 --><template if="{{ qualified &amp;&amp; !hasParent &amp;&amp; hasClass }}" ><!-- 450 --><template if="{{ isDart }}"><!--
451 --><template if="{{ qualified &amp;&amp; !hasParent &amp;&amp; hasClass } }"><!--
463 --><class-ref ref="{{ ref['owner'] }}"></class-ref>.</template><!-- 452 --><class-ref ref="{{ ref['owner'] }}"></class-ref>.</template><!--
464 --><template if="{{ qualified &amp;&amp; hasParent }}"><!-- 453 --><template if="{{ qualified &amp;&amp; hasParent }}"><!--
465 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}"> 454 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}">
466 </function-ref>.<!-- 455 </function-ref>.<!--
467 --></template><a href="{{ url }}">{{ name }}</a><!-- 456 --></template><a href="{{ url }}">{{ name }}</a><!--
468 --></template> 457 --></template><template if="{{ !isDart }}"><span> {{ name }}</span></template> </template>
469 458
470 </polymer-element> 459 </polymer-element>
471 <polymer-element name="library-ref" extends="service-ref"> 460 <polymer-element name="library-ref" extends="service-ref">
472 <template> 461 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css">
473 <a href="{{ url }}">{{ name }}</a> 462 <a href="{{ url }}">{{ name }}</a>
474 </template> 463 </template>
475 464
476 </polymer-element><polymer-element name="script-ref" extends="service-ref"> 465 </polymer-element><polymer-element name="script-ref" extends="service-ref">
477 <template> 466 <template>
467 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
478 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 468 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
479 </template> 469 </template>
480 470
481 </polymer-element> 471 </polymer-element>
482 <polymer-element name="class-view" extends="observatory-element"> 472 <polymer-element name="class-view" extends="observatory-element">
483 <template> 473 <template>
484 <style> 474 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
485 .content {
486 padding-left: 10%;
487 font: 400 14px 'Montserrat', sans-serif;
488 }
489 h1 {
490 font: 400 18px 'Montserrat', sans-serif;
491 }
492 .memberList {
493 display: table;
494 }
495 .memberItem {
496 display: table-row;
497 }
498 .memberName, .memberValue {
499 display: table-cell;
500 vertical-align: top;
501 padding: 3px 0 3px 1em;
502 font: 400 14px 'Montserrat', sans-serif;
503 }
504 </style>
505
506 <nav-bar> 475 <nav-bar>
507 <top-nav-menu></top-nav-menu> 476 <top-nav-menu></top-nav-menu>
508 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> 477 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu>
509 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu> 478 <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu>
510 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> 479 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu>
511 <nav-refresh callback="{{ refresh }}"></nav-refresh> 480 <nav-refresh callback="{{ refresh }}"></nav-refresh>
512 </nav-bar> 481 </nav-bar>
513 482
514 <div class="content"> 483 <div class="content">
515 <h1> 484 <h1>
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
628 <div class="content"> 597 <div class="content">
629 <eval-box callback="{{ eval }}"></eval-box> 598 <eval-box callback="{{ eval }}"></eval-box>
630 </div> 599 </div>
631 <br><br><br><br> 600 <br><br><br><br>
632 <br><br><br><br> 601 <br><br><br><br>
633 </template> 602 </template>
634 603
635 </polymer-element> 604 </polymer-element>
636 <polymer-element name="code-ref" extends="service-ref"> 605 <polymer-element name="code-ref" extends="service-ref">
637 <template> 606 <template>
607 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
638 <template if="{{ code.isDartCode }}"> 608 <template if="{{ code.isDartCode }}">
639 <a href="{{ url }}">{{ name }}</a> 609 <a href="{{ url }}">{{ name }}</a>
640 </template> 610 </template>
641 <template if="{{ !code.isDartCode }}"> 611 <template if="{{ !code.isDartCode }}">
642 <span>{{ name }}</span> 612 <span>{{ name }}</span>
643 </template> 613 </template>
644 </template> 614 </template>
645 615
646 </polymer-element><polymer-element name="code-view" extends="observatory-element "> 616 </polymer-element><polymer-element name="code-view" extends="observatory-element ">
647 <template> 617 <template>
618 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
648 <nav-bar> 619 <nav-bar>
649 <top-nav-menu></top-nav-menu> 620 <top-nav-menu></top-nav-menu>
650 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu> 621 <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu>
651 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu> 622 <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu>
652 <nav-refresh callback="{{ refresh }}"></nav-refresh> 623 <nav-refresh callback="{{ refresh }}"></nav-refresh>
653 </nav-bar> 624 </nav-bar>
654 <style>
655 .content {
656 padding-left: 10%;
657 font: 400 14px 'Montserrat', sans-serif;
658 }
659 h1 {
660 font: 400 18px 'Montserrat', sans-serif;
661 }
662 .memberList {
663 display: table;
664 }
665 .memberItem {
666 display: table-row;
667 }
668 .memberName, .memberValue {
669 display: table-cell;
670 vertical-align: top;
671 padding: 3px 0 3px 1em;
672 font: 400 14px 'Montserrat', sans-serif;
673 }
674 .monospace {
675 font-family: consolas, courier, monospace;
676 font-size: 1em;
677 line-height: 1.2em;
678 white-space: nowrap;
679 }
680 </style>
681 <div class="content"> 625 <div class="content">
682 <h1>Code for {{ code.name }}</h1> 626 <h1>Code for {{ code.name }}</h1>
683 <div class="memberList"> 627 <div class="memberList">
684 <div class="memberItem"> 628 <div class="memberItem">
685 <div class="memberName">kind</div> 629 <div class="memberName">kind</div>
686 <div class="memberValue">{{code.kind}}</div> 630 <div class="memberValue">{{code.kind}}</div>
687 </div> 631 </div>
688 <div class="memberItem"> 632 <div class="memberItem">
689 <div class="memberName">function</div> 633 <div class="memberName">function</div>
690 <div class="memberValue"> 634 <div class="memberValue">
(...skipping 13 matching lines...) Expand all
704 <div class="memberName">Constant object pool</div> 648 <div class="memberName">Constant object pool</div>
705 <div class="memberValue"> 649 <div class="memberValue">
706 <instance-ref ref="{{ code.objectPool }}"></instance-ref> 650 <instance-ref ref="{{ code.objectPool }}"></instance-ref>
707 </div> 651 </div>
708 </div> 652 </div>
709 </div> 653 </div>
710 </div> 654 </div>
711 <hr> 655 <hr>
712 <div class="content"> 656 <div class="content">
713 <template if="{{ code.hasDisassembly }}"> 657 <template if="{{ code.hasDisassembly }}">
714 <div class="row"> 658 <div class="flex-row">
715 <div class="col-md-2 memberHeader">Inclusive</div> 659 <div class="flex-item-fixed-2-12 memberHeader">Inclusive</div>
716 <div class="col-md-2 memberHeader">Exclusive</div> 660 <div class="flex-item-fixed-2-12 memberHeader">Exclusive</div>
717 <div class="col-md-2 memberHeader">Address</div> 661 <div class="flex-item-fixed-2-12 memberHeader">Address</div>
718 <div class="col-md-6 memberHeader">Disassembly</div> 662 <div class="flex-item-fixed-6-12 memberHeader">Disassembly</div>
719 </div> 663 </div>
720 </template> 664 </template>
721 <template repeat="{{ instruction in code.instructions }}"> 665 <template repeat="{{ instruction in code.instructions }}">
722 <div class="row"> 666 <div class="flex-row">
723 <div class="col-md-2 monospace">{{ instruction.formattedInclusive(code ) }}</div> 667 <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedIn clusive(code) }}</div>
724 <div class="col-md-2 monospace">{{ instruction.formattedExclusive(code ) }}</div> 668 <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedEx clusive(code) }}</div>
725 <div class="col-md-2 monospace">{{ instruction.formattedAddress() }}</ div> 669 <div class="flex-item-fixed-2-12 monospace">{{ instruction.formattedAd dress() }}</div>
726 <div class="col-md-6 monospace">{{ instruction.human }}</div> 670 <div class="flex-item-fixed-6-12 monospace">{{ instruction.human }}</d iv>
727 </div> 671 </div>
728 </template> 672 </template>
729 </div> 673 </div>
730 </template> 674 </template>
731 675
732 </polymer-element> 676 </polymer-element>
733 <polymer-element name="collapsible-content" extends="observatory-element"> 677 <polymer-element name="collapsible-content" extends="observatory-element">
734 <template> 678 <template>
735 <div class="well row"> 679 <div class="well row">
736 <a on-click="toggleDisplay" class="btn muted unselectable"> 680 <a on-click="toggleDisplay" class="btn muted unselectable">
737 Raw message... <i class="{{ iconClass }}"></i> 681 Raw message... <i class="{{ iconClass }}"></i>
738 </a> 682 </a>
739 <div style="display: {{ displayValue }}" class="well"> 683 <div style="display: {{ displayValue }}" class="well">
740 <content></content> 684 <content></content>
741 </div> 685 </div>
742 </div> 686 </div>
743 </template> 687 </template>
744 688
745 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t"> 689 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t">
746 <template> 690 <template>
691 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
747 <nav-bar> 692 <nav-bar>
748 <top-nav-menu last="{{ true }}"></top-nav-menu> 693 <top-nav-menu last="{{ true }}"></top-nav-menu>
749 </nav-bar> 694 </nav-bar>
750 695 <div class="content">
751 <div class="row"> 696 <h1>{{ error.kind }}</h1>
752 <div class="col-md-8 col-md-offset-2"> 697 <div class="well">{{ error.message }}</div>
753 <div class="panel panel-danger">
754 <div class="panel-heading">{{ error.kind }}</div>
755 <div class="panel-body">
756 <p>{{ error.message }}</p>
757 </div>
758 </div>
759 </div>
760 </div> 698 </div>
761 </template> 699 </template>
762 700
763 </polymer-element> 701 </polymer-element>
764 <polymer-element name="eval-link"> 702 <polymer-element name="eval-link">
765 <template> 703 <template>
766 <style> 704 <style>
767 .idle { 705 .idle {
768 color: #0489c3; 706 color: #0489c3;
769 cursor: pointer; 707 cursor: pointer;
(...skipping 12 matching lines...) Expand all
782 </template> 720 </template>
783 <template if="{{ result != null }}"> 721 <template if="{{ result != null }}">
784 = <instance-ref ref="{{ result }}"></instance-ref> 722 = <instance-ref ref="{{ result }}"></instance-ref>
785 </template> 723 </template>
786 724
787 </template> 725 </template>
788 726
789 </polymer-element> 727 </polymer-element>
790 <polymer-element name="field-view" extends="observatory-element"> 728 <polymer-element name="field-view" extends="observatory-element">
791 <template> 729 <template>
792 <style> 730 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
793 .content {
794 padding-left: 10%;
795 font: 400 14px 'Montserrat', sans-serif;
796 }
797 h1 {
798 font: 400 18px 'Montserrat', sans-serif;
799 }
800 .memberList {
801 display: table;
802 }
803 .memberItem {
804 display: table-row;
805 }
806 .memberName, .memberValue {
807 display: table-cell;
808 vertical-align: top;
809 padding: 3px 0 3px 1em;
810 font: 400 14px 'Montserrat', sans-serif;
811 }
812 </style>
813 731
814 <nav-bar> 732 <nav-bar>
815 <top-nav-menu></top-nav-menu> 733 <top-nav-menu></top-nav-menu>
816 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> 734 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu>
817 <template if="{{ field['owner'].serviceType == 'Class' }}"> 735 <template if="{{ field['owner'].serviceType == 'Class' }}">
818 <!-- TODO(turnidge): Add library nav menu here. --> 736 <!-- TODO(turnidge): Add library nav menu here. -->
819 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> 737 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu>
820 </template> 738 </template>
821 <template if="{{ field['owner'].serviceType == 'Library' }}"> 739 <template if="{{ field['owner'].serviceType == 'Library' }}">
822 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> 740 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu>
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
933 </tbody> 851 </tbody>
934 </table> 852 </table>
935 </template> 853 </template>
936 </div> 854 </div>
937 </div> 855 </div>
938 </template> 856 </template>
939 857
940 </polymer-element> 858 </polymer-element>
941 <polymer-element name="function-view" extends="observatory-element"> 859 <polymer-element name="function-view" extends="observatory-element">
942 <template> 860 <template>
943 <style> 861 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
944 .content {
945 padding-left: 10%;
946 font: 400 14px 'Montserrat', sans-serif;
947 }
948 h1 {
949 font: 400 18px 'Montserrat', sans-serif;
950 }
951 .memberList {
952 display: table;
953 }
954 .memberItem {
955 display: table-row;
956 }
957 .memberName, .memberValue {
958 display: table-cell;
959 vertical-align: top;
960 padding: 3px 0 3px 1em;
961 font: 400 14px 'Montserrat', sans-serif;
962 }
963 </style>
964
965 <nav-bar> 862 <nav-bar>
966 <top-nav-menu></top-nav-menu> 863 <top-nav-menu></top-nav-menu>
967 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> 864 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu>
968 <template if="{{ function['owner'].serviceType == 'Class' }}"> 865 <template if="{{ function['owner'].serviceType == 'Class' }}">
969 <!-- TODO(turnidge): Add library nav menu here. --> 866 <!-- TODO(turnidge): Add library nav menu here. -->
970 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> 867 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu>
971 </template> 868 </template>
972 <template if="{{ function['owner'].serviceType == 'Library' }}"> 869 <template if="{{ function['owner'].serviceType == 'Library' }}">
973 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> 870 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu>
974 </template> 871 </template>
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
1062 <hr> 959 <hr>
1063 <script-inset script="{{ function['script'] }}" pos="{{ function['tokenPos'] }}" endpos="{{ function['endTokenPos'] }}"> 960 <script-inset script="{{ function['script'] }}" pos="{{ function['tokenPos'] }}" endpos="{{ function['endTokenPos'] }}">
1064 </script-inset> 961 </script-inset>
1065 962
1066 <br> 963 <br>
1067 </template> 964 </template>
1068 965
1069 </polymer-element> 966 </polymer-element>
1070 <polymer-element name="heap-map" extends="observatory-element"> 967 <polymer-element name="heap-map" extends="observatory-element">
1071 <template> 968 <template>
969 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
970 <style>
971 .hover {
972 position: fixed;
973 z-index: 999;
974 width: 100%;
975 background: #ffffff;
976 }
977 </style>
1072 <nav-bar> 978 <nav-bar>
1073 <top-nav-menu></top-nav-menu> 979 <top-nav-menu></top-nav-menu>
1074 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu> 980 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
1075 <nav-menu link="." anchor="heap map" last="{{ true }}"></nav-menu> 981 <nav-menu link="." anchor="heap map" last="{{ true }}"></nav-menu>
1076 <nav-refresh callback="{{ refresh }}"></nav-refresh> 982 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1077 </nav-bar> 983 </nav-bar>
1078 <div class="row"> 984 <div class="hover">
1079 <p style="text-align:center">{{ status }}</p> 985 <p style="text-align:center">{{ status }}</p>
1080 </div> 986 </div>
1081 <div class="row"> 987 <div class="flex-row">
1082 <canvas id="fragmentation" width="1px" height="1px"></canvas> 988 <canvas id="fragmentation" width="1px" height="1px"></canvas>
1083 </div> 989 </div>
1084 </template> 990 </template>
1085 991
1086 </polymer-element> 992 </polymer-element>
1087 <polymer-element name="isolate-ref" extends="service-ref"> 993 <polymer-element name="isolate-ref" extends="service-ref">
1088 <template> 994 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css">
1089 <a href="{{ url }}">{{ ref.name }}</a> 995 <a href="{{ url }}">{{ ref.name }}</a>
1090 </template> 996 </template>
1091 997
1092 </polymer-element> 998 </polymer-element>
1093 <polymer-element name="isolate-summary" extends="observatory-element"> 999 <polymer-element name="isolate-summary" extends="observatory-element">
1094 <template> 1000 <template>
1095 <div class="row"> 1001 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1096 <div class="col-md-1"> 1002 <style>
1097 <img src="packages/observatory/src/elements/img/isolate_icon.png" class= "img-polaroid"> 1003 .counters {
1098 </div> 1004 display: flex;
1099 1005 flex-direction: row;
1100 <div class="col-md-1">{{ isolate.mainPort }}</div> 1006 justify-content: center;
1101 1007 }
1102 <div class="col-md-4"> 1008 .counter {
1103 <div class="row"> 1009 margin: 10px;
1010 }
1011 </style>
1012 <div class="flex-row">
1013 <div class="flex-item-fixed-1-12"><img src="packages/observatory/src/eleme nts/img/isolate_icon.png"></div>
1014 <div class="flex-item-fixed-1-12">{{ isolate.mainPort }}</div>
1015 <div class="flex-item-fixed-4-12">
1016 <div class="flex-row">
1104 <isolate-ref ref="{{ isolate }}"></isolate-ref> 1017 <isolate-ref ref="{{ isolate }}"></isolate-ref>
1105 </div> 1018 </div>
1106 1019 <div class="flex-row">
1107 <div class="row">
1108 <small> 1020 <small>
1109 (<a href="{{ isolate.rootLib.hashLink }}">library</a>) 1021 (<a href="{{ isolate.rootLib.hashLink }}">library</a>)
1110 (<a href="{{ isolate.relativeHashLink('debug/breakpoints') }}">break points</a>) 1022 (<a href="{{ isolate.relativeHashLink('debug/breakpoints') }}">break points</a>)
1111 (<a href="{{ isolate.relativeHashLink('profile') }}">profile</a>) 1023 (<a href="{{ isolate.relativeHashLink('profile') }}">profile</a>)
1112 </small> 1024 </small>
1113 </div> 1025 </div>
1114 </div> 1026 </div>
1115 1027
1116 <div class="col-md-2"> 1028 <div class="flex-item-fixed-2-12">
1117 <a href="{{ isolate.relativeHashLink('allocationprofile') }}"> 1029 <a href="{{ isolate.relativeHashLink('allocationprofile') }}">
1118 {{ isolate.newHeapUsed | formatSize }}/{{ isolate.oldHeapUsed | format Size }} 1030 {{ isolate.newHeapUsed | formatSize }}/{{ isolate.oldHeapUsed | format Size }}
1119 </a> 1031 </a>
1120 ( <a href="{{ isolate.relativeHashLink('heapmap') }}">map</a> ) 1032 ( <a href="{{ isolate.relativeHashLink('heapmap') }}">map</a> )
1121 </div> 1033 </div>
1122 <div class="col-md-2"> 1034 <div class="flex-item-fixed-2-12">
1123 <template if="{{ isolate.topFrame == null }}"> 1035 <template if="{{ isolate.topFrame == null }}">
1124 idle 1036 idle
1125 </template> 1037 </template>
1126 <template if="{{ isolate.topFrame != null }}"> 1038 <template if="{{ isolate.topFrame != null }}">
1127 run 1039 run
1128 </template> 1040 </template>
1129 ( <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack trace</a> ) 1041 ( <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack trace</a> )
1130 </div> 1042 </div>
1131 </div> 1043 </div>
1132 1044
1133 <div class="content"> 1045 <div class="counters">
1134 <template repeat="{{ key in isolate.counters.keys }}"> 1046 <template repeat="{{ key in isolate.counters.keys }}">
1135 <div class="memberValue">{{ key }} ({{ isolate.counters[key] }})</div> 1047 <div class="counter">{{ key }} ({{ isolate.counters[key] }})</div>
1136 </template> 1048 </template>
1137 </div> 1049 </div>
1138 1050
1139 <template if="{{ isolate.topFrame != null }}"> 1051 <template if="{{ isolate.topFrame != null }}">
1140 <script-inset script="{{ isolate.topFrame['script'] }}" pos="{{ isolate.to pFrame['tokenPos'] }}"> 1052 <script-inset script="{{ isolate.topFrame['script'] }}" pos="{{ isolate.to pFrame['tokenPos'] }}">
1141 <function-ref ref="{{ isolate.topFrame['function'] }}"></function-ref> 1053 <function-ref ref="{{ isolate.topFrame['function'] }}"></function-ref>
1142 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>) 1054 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>)
1143 </script-inset> 1055 </script-inset>
1144 </template> 1056 </template>
1145 </template> 1057 </template>
1146 1058
1147 </polymer-element> 1059 </polymer-element>
1148 <polymer-element name="isolate-view" extends="observatory-element"> 1060 <polymer-element name="isolate-view" extends="observatory-element">
1149 <template> 1061 <template>
1062 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1150 <style> 1063 <style>
1151 .content {
1152 padding-left: 10%;
1153 font: 400 14px 'Montserrat', sans-serif;
1154 }
1155 h1 {
1156 font: 400 18px 'Montserrat', sans-serif;
1157 }
1158 .memberList {
1159 display: table;
1160 }
1161 .memberItem {
1162 display: table-row;
1163 }
1164 .memberName, .memberValue {
1165 display: table-cell;
1166 vertical-align: top;
1167 padding: 3px 0 3px 1em;
1168 font: 400 14px 'Montserrat', sans-serif;
1169 }
1170 .sourceInset { 1064 .sourceInset {
1171 padding-left: 15%; 1065 padding-left: 15%;
1172 padding-right: 15%; 1066 padding-right: 15%;
1173 } 1067 }
1174 .miniProfileChart { 1068 .miniProfileChart {
1175 width: 80%; 1069 width: 80%;
1176 } 1070 }
1177 </style> 1071 </style>
1178 1072
1179 <nav-bar> 1073 <nav-bar>
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1356 <div class="content"> 1250 <div class="content">
1357 <eval-box callback="{{ eval }}"></eval-box> 1251 <eval-box callback="{{ eval }}"></eval-box>
1358 </div> 1252 </div>
1359 <br><br><br><br> 1253 <br><br><br><br>
1360 <br><br><br><br> 1254 <br><br><br><br>
1361 </template> 1255 </template>
1362 1256
1363 </polymer-element> 1257 </polymer-element>
1364 <polymer-element name="instance-view" extends="observatory-element"> 1258 <polymer-element name="instance-view" extends="observatory-element">
1365 <template> 1259 <template>
1260 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1366 <nav-bar> 1261 <nav-bar>
1367 <top-nav-menu></top-nav-menu> 1262 <top-nav-menu></top-nav-menu>
1368 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> 1263 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu>
1369 <!-- TODO(turnidge): Add library nav menu here. --> 1264 <!-- TODO(turnidge): Add library nav menu here. -->
1370 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu> 1265 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu>
1371 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> 1266 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
1372 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1267 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1373 </nav-bar> 1268 </nav-bar>
1374 1269
1375 <style>
1376 .content {
1377 padding-left: 10%;
1378 font: 400 14px 'Montserrat', sans-serif;
1379 }
1380 h1 {
1381 font: 400 18px 'Montserrat', sans-serif;
1382 }
1383 .memberList {
1384 display: table;
1385 }
1386 .memberItem {
1387 display: table-row;
1388 }
1389 .memberName, .memberValue {
1390 display: table-cell;
1391 vertical-align: top;
1392 padding: 3px 0 3px 1em;
1393 font: 400 14px 'Montserrat', sans-serif;
1394 }
1395 </style>
1396
1397 <template if="{{ instance['error'] != null }}"> 1270 <template if="{{ instance['error'] != null }}">
1398 <error-view error_obj="{{ instance['error'] }}"></error-view> 1271 <error-view error_obj="{{ instance['error'] }}"></error-view>
1399 </template> 1272 </template>
1400 1273
1401 <template if="{{ instance['error'] == null }}"> 1274 <template if="{{ instance['error'] == null }}">
1402 <div class="content"> 1275 <div class="content">
1403 <!-- TODO(turnidge): Handle null instances. --> 1276 <!-- TODO(turnidge): Handle null instances. -->
1404 <template if="{{ isType(instance.serviceType) }}"> 1277 <template if="{{ isType(instance.serviceType) }}">
1405 <h1>type {{ instance['user_name'] }}</h1> 1278 <h1>type {{ instance['user_name'] }}</h1>
1406 </template> 1279 </template>
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1523 <template> 1396 <template>
1524 <nav-bar> 1397 <nav-bar>
1525 <top-nav-menu last="{{ true }}"></top-nav-menu> 1398 <top-nav-menu last="{{ true }}"></top-nav-menu>
1526 </nav-bar> 1399 </nav-bar>
1527 <pre>{{ mapAsString }}</pre> 1400 <pre>{{ mapAsString }}</pre>
1528 </template> 1401 </template>
1529 1402
1530 </polymer-element> 1403 </polymer-element>
1531 <polymer-element name="library-view" extends="observatory-element"> 1404 <polymer-element name="library-view" extends="observatory-element">
1532 <template> 1405 <template>
1533 <style> 1406 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1534 .content {
1535 padding-left: 10%;
1536 font: 400 14px 'Montserrat', sans-serif;
1537 }
1538 h1 {
1539 font: 400 18px 'Montserrat', sans-serif;
1540 }
1541 .memberList {
1542 display: table;
1543 }
1544 .memberItem {
1545 display: table-row;
1546 }
1547 .memberName, .memberValue {
1548 display: table-cell;
1549 vertical-align: top;
1550 padding: 3px 0 3px 1em;
1551 font: 400 14px 'Montserrat', sans-serif;
1552 }
1553 </style>
1554 1407
1555 <nav-bar> 1408 <nav-bar>
1556 <top-nav-menu></top-nav-menu> 1409 <top-nav-menu></top-nav-menu>
1557 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu> 1410 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
1558 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu> 1411 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu>
1559 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1412 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1560 </nav-bar> 1413 </nav-bar>
1561 1414
1562 <div class="content"> 1415 <div class="content">
1563 <h1> 1416 <h1>
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1746 <label class="label" for="slide-switch"> 1599 <label class="label" for="slide-switch">
1747 <div class="content"></div> 1600 <div class="content"></div>
1748 <div class="dot"></div> 1601 <div class="dot"></div>
1749 </label> 1602 </label>
1750 </div> 1603 </div>
1751 </template> 1604 </template>
1752 1605
1753 </polymer-element> 1606 </polymer-element>
1754 <polymer-element name="isolate-profile" extends="observatory-element"> 1607 <polymer-element name="isolate-profile" extends="observatory-element">
1755 <template> 1608 <template>
1609 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1756 <nav-bar> 1610 <nav-bar>
1757 <top-nav-menu></top-nav-menu> 1611 <top-nav-menu></top-nav-menu>
1758 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 1612 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
1759 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu> 1613 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu>
1760 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1614 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1761 </nav-bar> 1615 </nav-bar>
1762 <style> 1616 <style>
1763 .content { 1617 .table {
1764 padding-left: 10%; 1618 border-collapse: collapse!important;
1765 font: 400 14px 'Montserrat', sans-serif; 1619 width: 100%;
1620 margin-bottom: 20px
1766 } 1621 }
1767 h1 { 1622 .table thead > tr > th,
1768 font: 400 18px 'Montserrat', sans-serif; 1623 .table tbody > tr > th,
1624 .table tfoot > tr > th,
1625 .table thead > tr > td,
1626 .table tbody > tr > td,
1627 .table tfoot > tr > td {
1628 padding: 8px;
1629 vertical-align: top;
1769 } 1630 }
1770 .member, .memberHeader { 1631 .table thead > tr > th {
1771 vertical-align: top; 1632 vertical-align: bottom;
1772 padding: 3px 0 3px 1em; 1633 text-align: left;
1773 font: 400 14px 'Montserrat', sans-serif; 1634 border-bottom:2px solid #ddd;
1774 } 1635 }
1775 .monospace { 1636
1776 font-family: consolas, courier, monospace; 1637 tr:hover > td {
1777 font-size: 1em; 1638 background-color: #FFF3E3;
1778 line-height: 1.2em;
1779 white-space: nowrap;
1780 } 1639 }
1640 .rowColor0 {
1641 background-color: #FFE9CC;
1642 }
1643 .rowColor1 {
1644 background-color: #FFDEB2;
1645 }
1646 .rowColor2 {
1647 background-color: #FFD399;
1648 }
1649 .rowColor3 {
1650 background-color: #FFC87F;
1651 }
1652 .rowColor4 {
1653 background-color: #FFBD66;
1654 }
1655 .rowColor5 {
1656 background-color: #FFB24C;
1657 }
1658 .rowColor6 {
1659 background-color: #FFA733;
1660 }
1661 .rowColor7 {
1662 background-color: #FF9C19;
1663 }
1664 .rowColor8 {
1665 background-color: #FF9100;
1666 }
1667
1668 .tooltip {
1669 display: block;
1670 position: absolute;
1671 visibility: hidden;
1672 opacity: 0;
1673 transition: visibility 0s linear 0.5s;
1674 transition: opacity .4s ease-in-out;
1675 }
1676
1677 tr:hover .tooltip {
1678 display: block;
1679 position: absolute;
1680 top: 100%;
1681 right: 100%;
1682 visibility: visible;
1683 z-index: 999;
1684 width: 400px;
1685 color: #ffffff;
1686 background-color: #0489c3;
1687 border-top-right-radius: 8px;
1688 border-top-left-radius: 8px;
1689 border-bottom-right-radius: 8px;
1690 border-bottom-left-radius: 8px;
1691 transition: visibility 0s linear 0.5s;
1692 transition: opacity .4s ease-in-out;
1693 opacity: 1;
1694 }
1695
1696 .white {
1697 color: #ffffff;
1698 }
1699
1781 </style> 1700 </style>
1782 <div class="content"> 1701 <div class="content">
1783 <h1>Sampled CPU profile</h1> 1702 <h1>Sampled CPU profile</h1>
1784 <table> 1703 <div class="memberList">
1785 <tbody><tr> 1704 <div class="memberItem">
1786 <td class="memberHeader">Timestamp</td> 1705 <div class="memberName">Timestamp</div>
1787 <td class="member">{{ refreshTime }}</td> 1706 <div class="memberValue">{{ refreshTime }}</div>
1788 </tr> 1707 </div>
1789 <tr> 1708 <div class="memberItem">
1790 <td class="memberHeader">Sample count</td> 1709 <div class="memberName">Time span</div>
1791 <td class="member">{{ sampleCount }}</td> 1710 <div class="memberValue">{{ timeSpan }}</div>
1792 </tr> 1711 </div>
1793 <tr> 1712 <div class="memberItem">
1794 <td class="memberHeader">Sample rate</td> 1713 <div class="memberName">Sample count</div>
1795 <td class="member">{{ sampleRate }} Hz</td> 1714 <div class="memberValue">{{ sampleCount }}</div>
1796 </tr> 1715 </div>
1797 <tr> 1716 <div class="memberItem">
1798 <td class="memberHeader">Sample depth</td> 1717 <div class="memberName">Sample rate</div>
1799 <td class="member">{{ sampleDepth }} stack frames</td> 1718 <div class="memberValue">{{ sampleRate }} Hz</div>
1800 </tr> 1719 </div>
1801 <tr> 1720 <div class="memberItem">
1802 <td class="memberHeader">Call graph tree</td> 1721 <div class="memberName">Sample depth</div>
1803 <td class="member"> 1722 <div class="memberValue">{{ sampleDepth }} stack frames</div>
1804 <input type="checkbox" checked="{{ callGraphChecked }}"> 1723 </div>
1805 </td> 1724 <div class="memberItem">
1806 </tr><tr> 1725 <div class="memberName">Display cutoff</div>
1807 <td class="memberHeader">Display cutoff</td> 1726 <div class="memberValue">{{ displayCutoff }}</div>
1808 <td class="member">{{ displayCutoff }}</td> 1727 </div>
1809 </tr> 1728 <div class="memberItem">
1810 <tr> 1729 <div class="memberName">Tags</div>
1811 <td class="memberHeader">Hide tags</td> 1730 <div class="memberValue">
1812 <td class="member"> 1731 <select value="{{tagSelector}}">
1813 <input type="checkbox" checked="{{ hideTagsChecked }}"> 1732 <option value="uv">User &gt; VM</option>
1814 </td> 1733 <option value="u">User</option>
1815 </tr> 1734 <option value="vu">VM &gt; User</option>
1816 </tbody></table> 1735 <option value="v">VM</option>
1736 <option value="hide">None</option>
1737 </select>
1738 </div>
1739 </div>
1740 </div>
1817 <hr> 1741 <hr>
1818 <table id="tableTree" class="table table-hover"> 1742 <table id="tableTree" class="table">
1819 <thead> 1743 <thead>
1820 <tr> 1744 <tr>
1821 <th>Method</th> 1745 <th>Method</th>
1822 <th>Caller</th> 1746 <th>Self</th>
1823 <th>Exclusive</th>
1824 </tr> 1747 </tr>
1825 </thead> 1748 </thead>
1826 <tbody> 1749 <tbody>
1827 <tr template="" repeat="{{row in tree.rows }}" style="{{}}"> 1750 <tr template="" repeat="{{row in tree.rows }}" style="{{}}">
1828 <td on-click="{{toggleExpanded}}" class="{{ coloring(row) }}" style= "{{ padding(row) }}"> 1751 <td on-click="{{toggleExpanded}}" class="{{ coloring(row) }}" style= "{{ padding(row) }}">
1829 <span id="expand" style="cursor: pointer;">{{ row.expander }}</spa n> 1752 <span id="expand" style="cursor: pointer;">{{ row.expander }}</spa n>
1830 <code-ref ref="{{ row.code }}"></code-ref> 1753 <div style="position: relative;display: inline">
1754 {{row.columns[0]}}
1755 </div>
1756 <function-ref ref="{{ row.code.function }}"></function-ref>
1831 </td> 1757 </td>
1832 <td class="{{ coloring(row) }}">{{row.columns[0]}}</td> 1758 <td class="{{ coloring(row) }}" style="position: relative">
1833 <td class="{{ coloring(row) }}">{{row.columns[1]}}</td> 1759 {{row.columns[1]}}
1760 <div class="tooltip">
1761 <div class="memberList">
1762 <div class="memberItem">
1763 <div class="memberName white">Kind</div>
1764 <div class="memberValue white">{{ row.tipKind }}</div>
1765 </div>
1766 <div class="memberItem">
1767 <div class="memberName white">Percent of Parent</div>
1768 <div class="memberValue white">{{ row.tipParent }}</div>
1769 </div>
1770 <div class="memberItem">
1771 <div class="memberName white">Sample Count</div>
1772 <div class="memberValue white">{{ row.tipTicks }} ({{ row.tip Exclusive }})</div>
1773 </div>
1774 <div class="memberItem">
1775 <div class="memberName white">Approximate Execution Time</div >
1776 <div class="memberValue white">{{ row.tipTime }}</div>
1777 </div>
1778 </div>
1779 </div>
1780 </td>
1834 </tr> 1781 </tr>
1835 </tbody> 1782 </tbody>
1836 </table> 1783 </table>
1837 </div> 1784 </div>
1838 </template> 1785 </template>
1839 1786
1840 </polymer-element> 1787 </polymer-element>
1841 <polymer-element name="heap-profile" extends="observatory-element"> 1788 <polymer-element name="heap-profile" extends="observatory-element">
1842 <template> 1789 <template>
1790 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
1791 <style>
1792 .table {
1793 border-collapse: collapse!important;
1794 width: 100%;
1795 margin-bottom: 20px
1796 table-layout: fixed;
1797 }
1798 .table td:nth-of-type(1) {
1799 width: 30%;
1800 }
1801 .th, .td {
1802 padding: 8px;
1803 vertical-align: top;
1804 }
1805 .table thead > tr > th {
1806 vertical-align: bottom;
1807 text-align: left;
1808 border-bottom:2px solid #ddd;
1809 }
1810 .clickable {
1811 color: #0489c3;
1812 text-decoration: none;
1813 cursor: pointer;
1814 }
1815 .clickable:hover {
1816 text-decoration: underline;
1817 cursor: pointer;
1818 }
1819 #classtable tr:hover > td {
1820 background-color: #F4C7C3;
1821 }
1822 </style>
1843 <nav-bar> 1823 <nav-bar>
1844 <top-nav-menu></top-nav-menu> 1824 <top-nav-menu></top-nav-menu>
1845 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 1825 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
1846 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu> 1826 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu>
1827 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n av-refresh>
1828 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh>
1847 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1829 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1848 </nav-bar> 1830 </nav-bar>
1849 1831
1850 <button type="button" on-click="{{resetAccumulator}}">Reset Accumulator</butto n> 1832 <div class="flex-row">
1851 <div class="row"> 1833 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px">
1852 <div id="newPieChart" class="col-md-4" style="height: 400px">
1853 </div> 1834 </div>
1854 <div id="newStatus" class="col-md-2"> 1835 <div id="newStatus" class="flex-item-fixed-2-12">
1855 <table class="table"> 1836 <div class="memberList">
1856 <tbody> 1837 <div class="memberItem">
1857 <tr> 1838 <div class="memberName">Collections</div>
1858 <td>Collections</td> 1839 <div class="memberValue">{{ formattedCollections(true) }}</div>
1859 <td>{{ formattedCollections(true) }}</td> 1840 </div>
1860 </tr> 1841 <div class="memberItem">
1861 <tr> 1842 <div class="memberName">Average Collection Time</div>
1862 <td>Average Collection Time</td> 1843 <div class="memberValue">{{ formattedAverage(true) }}</div>
1863 <td>{{ formattedAverage(true) }}</td> 1844 </div>
1864 </tr> 1845 <div class="memberItem">
1865 <tr> 1846 <div class="memberName">Cumulative Collection Time</div>
1866 <td>Cumulative Collection Time</td> 1847 <div class="memberValue">{{ formattedTotalCollectionTime(true) }}</d iv>
1867 <td>{{ formattedTotalCollectionTime(true) }}</td> 1848 </div>
1868 </tr> 1849 </div>
1869 </tbody>
1870 </table>
1871 </div> 1850 </div>
1872 <div id="oldPieChart" class="col-md-4" style="height: 400px"> 1851 <div id="oldPieChart" class="flex-item-fixed-4-12" style="height: 400px">
1873 </div> 1852 </div>
1874 <div id="oldStatus" class="col-md-2"> 1853 <div id="oldStatus" class="flex-item-fixed-2-12">
1875 <table class="table"> 1854 <div class="memberList">
1876 <tbody> 1855 <div class="memberItem">
1877 <tr> 1856 <div class="memberName">Collections</div>
1878 <td>Collections</td> 1857 <div class="memberValue">{{ formattedCollections(false) }}</div>
1879 <td>{{ formattedCollections(false) }}</td> 1858 </div>
1880 </tr> 1859 <div class="memberItem">
1881 <tr> 1860 <div class="memberName">Average Collection Time</div>
1882 <td>Average Collection Time</td> 1861 <div class="memberValue">{{ formattedAverage(false) }}</div>
1883 <td>{{ formattedAverage(false) }}</td> 1862 </div>
1884 </tr> 1863 <div class="memberItem">
1885 <tr> 1864 <div class="memberName">Cumulative Collection Time</div>
1886 <td>Cumulative Collection Time</td> 1865 <div class="memberValue">{{ formattedTotalCollectionTime(false) }}</ div>
1887 <td>{{ formattedTotalCollectionTime(false) }}</td> 1866 </div>
1888 </tr> 1867 </div>
1889 </tbody>
1890 </table>
1891 </div> 1868 </div>
1892 </div> 1869 </div>
1893 <div class="row"> 1870 <div class="flex-row">
1894 <p class="col-md-2">Aggregate heap table</p> 1871 <table id="classtable" class="flex-item-fixed-12-12 table">
1895 </div> 1872 <thead>
1896 <div class="row"> 1873 <tr>
1897 <div id="simpleTable" class="col-md-12" style="height: 800px"></div> 1874 <th on-click="{{changeSort}}" class="clickable" title="Class">{{ class Table.getColumnLabel(0) }}</th>
1898 </div> 1875 <th on-click="{{changeSort}}" class="clickable" title="Total Accumulat ed Size">{{ classTable.getColumnLabel(1) }}</th>
1899 <div class="row"> 1876 <th on-click="{{changeSort}}" class="clickable" title="Total Accumulat ed Instances">{{ classTable.getColumnLabel(2) }}</th>
1900 <p class="col-md-2">Individual heap table</p> 1877 <th on-click="{{changeSort}}" class="clickable" title="Old Space Accum ulated Size">{{ classTable.getColumnLabel(3) }}</th>
1901 </div> 1878 <th on-click="{{changeSort}}" class="clickable" title="Old Space Accum ulated Instances">{{ classTable.getColumnLabel(4) }}</th>
1902 <div class="row"> 1879 <th on-click="{{changeSort}}" class="clickable" title="Total Current S ize">{{ classTable.getColumnLabel(5) }}</th>
1903 <div id="table" class="col-md-12" style="height: 800px"></div> 1880 <th on-click="{{changeSort}}" class="clickable" title="Total Current I nstances">{{ classTable.getColumnLabel(6) }}</th>
1881 </tr>
1882 </thead>
1883 <tbody>
1884 <tr template="" repeat="{{row in classTable.sortedRows }}">
1885 <td><class-ref ref="{{ classTable.getValue(row, 0) }}"></class-ref></t d>
1886 <td title="{{ classTable.getValue(row, 1) }}">{{ classTable.getFormatt edValue(row, 1) }}</td>
1887 <td title="{{ classTable.getValue(row, 2) }}">{{ classTable.getFormatt edValue(row, 2) }}</td>
1888 <td title="{{ classTable.getValue(row, 3) }}">{{ classTable.getFormatt edValue(row, 3) }}</td>
1889 <td title="{{ classTable.getValue(row, 4) }}">{{ classTable.getFormatt edValue(row, 4) }}</td>
1890 <td title="{{ classTable.getValue(row, 5) }}">{{ classTable.getFormatt edValue(row, 5) }}</td>
1891 <td title="{{ classTable.getValue(row, 6) }}">{{ classTable.getFormatt edValue(row, 6) }}</td>
1892 </tr>
1893 </tbody>
1894 </table>
1904 </div> 1895 </div>
1905 </template> 1896 </template>
1906 1897
1907 </polymer-element> 1898 </polymer-element>
1908 <polymer-element name="script-view" extends="observatory-element"> 1899 <polymer-element name="script-view" extends="observatory-element">
1909 <template> 1900 <template>
1910 <nav-bar> 1901 <nav-bar>
1911 <top-nav-menu></top-nav-menu> 1902 <top-nav-menu></top-nav-menu>
1912 <isolate-nav-menu isolate="{{ script.isolate }}"> 1903 <isolate-nav-menu isolate="{{ script.isolate }}">
1913 </isolate-nav-menu> 1904 </isolate-nav-menu>
(...skipping 10 matching lines...) Expand all
1924 </nav-bar> 1915 </nav-bar>
1925 1916
1926 <script-inset id="scriptInset" script="{{ script }}" pos="{{ script.firstToken Pos }}" endpos="{{ script.lastTokenPos }}"> 1917 <script-inset id="scriptInset" script="{{ script }}" pos="{{ script.firstToken Pos }}" endpos="{{ script.lastTokenPos }}">
1927 <h1>script {{ script.name }}</h1> 1918 <h1>script {{ script.name }}</h1>
1928 </script-inset> 1919 </script-inset>
1929 </template> 1920 </template>
1930 1921
1931 </polymer-element> 1922 </polymer-element>
1932 <polymer-element name="stack-frame" extends="observatory-element"> 1923 <polymer-element name="stack-frame" extends="observatory-element">
1933 <template> 1924 <template>
1934 <style> 1925 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1935 .memberList { 1926 <div class="flex-row">
1936 display: table; 1927 <div class="flex-item-fixed-1-12">
1937 } 1928 </div>
1938 .memberItem { 1929 <div class="flex-item-fixed-1-12">
1939 display: table-row;
1940 }
1941 .memberName, .memberValue {
1942 display: table-cell;
1943 vertical-align: top;
1944 padding: 3px 0 3px 1em;
1945 font: 400 14px 'Montserrat', sans-serif;
1946 }
1947 </style>
1948 <div class="row">
1949 <div class="col-md-1"></div>
1950 <div class="col-md-1">
1951 #{{ frame['depth'] }} 1930 #{{ frame['depth'] }}
1952 </div> 1931 </div>
1953 <div class="col-md-9"> 1932 <div class="flex-item-fixed-9-12">
1954 <function-ref ref="{{ frame['function'] }}"></function-ref> 1933 <function-ref ref="{{ frame['function'] }}"></function-ref>
1955 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }}"> 1934 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }} ">
1956 </script-ref> ) 1935 </script-ref> )
1957 1936
1958 <curly-block> 1937 <curly-block>
1959 <div class="memberList"> 1938 <div class="memberList">
1960 <template repeat="{{ v in frame['vars'] }}"> 1939 <template repeat="{{ v in frame['vars'] }}">
1961 <div class="memberItem"> 1940 <div class="memberItem">
1962 <div class="memberName">{{ v['name']}}</div> 1941 <div class="memberName">{{ v['name']}}</div>
1963 <div class="memberValue"> 1942 <div class="memberValue">
1964 <instance-ref ref="{{ v['value'] }}"></instance-ref> 1943 <instance-ref ref="{{ v['value'] }}"></instance-ref>
1944 </div>
1965 </div> 1945 </div>
1966 </div> 1946 </template>
1967 </template> 1947 </div>
1968 </div> 1948 </curly-block>
1969 </curly-block>
1970
1971 </div> 1949 </div>
1972 <div class="col-md-1"></div> 1950 <div class="flex-item-fixed-1-12">
1951 </div>
1973 </div> 1952 </div>
1974
1975
1976 </template> 1953 </template>
1977 1954
1978 </polymer-element> 1955 </polymer-element>
1979 <polymer-element name="stack-trace" extends="observatory-element"> 1956 <polymer-element name="stack-trace" extends="observatory-element">
1980 <template> 1957 <template>
1958 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1981 <nav-bar> 1959 <nav-bar>
1982 <top-nav-menu></top-nav-menu> 1960 <top-nav-menu></top-nav-menu>
1983 <isolate-nav-menu isolate="{{ trace.isolate }}"></isolate-nav-menu> 1961 <isolate-nav-menu isolate="{{ trace.isolate }}"></isolate-nav-menu>
1984 <nav-menu link="." anchor="stack trace" last="{{ true }}"></nav-menu> 1962 <nav-menu link="." anchor="stack trace" last="{{ true }}"></nav-menu>
1985 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1963 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1986 </nav-bar> 1964 </nav-bar>
1987
1988 <template if="{{ trace['members'].isEmpty }}"> 1965 <template if="{{ trace['members'].isEmpty }}">
1989 <div class="col-md-1"></div> 1966 <div class="content">
1990 <div class="col-md-11">
1991 <em>No stack</em> 1967 <em>No stack</em>
1992 </div> 1968 </div>
1993 </template> 1969 </template>
1994 <template if="{{ trace['members'].isNotEmpty }}"> 1970 <template if="{{ trace['members'].isNotEmpty }}">
1995 <ul class="list-group"> 1971 <ul class="list-group">
1996 <template repeat="{{ frame in trace['members'] }}"> 1972 <template repeat="{{ frame in trace['members'] }}">
1997 <li class="list-group-item"> 1973 <li class="list-group-item">
1998 <stack-frame frame="{{ frame }}"></stack-frame> 1974 <stack-frame frame="{{ frame }}"></stack-frame>
1999 </li> 1975 </li>
2000 </template> 1976 </template>
2001 </ul> 1977 </ul>
2002 </template> 1978 </template>
2003 </template> 1979 </template>
2004 1980
2005 </polymer-element> 1981 </polymer-element>
2006 <polymer-element name="vm-view" extends="observatory-element"> 1982 <polymer-element name="vm-view" extends="observatory-element">
2007 <template> 1983 <template>
2008 <style> 1984 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2009 .content {
2010 padding-left: 10%;
2011 font: 400 14px 'Montserrat', sans-serif;
2012 }
2013 h1 {
2014 font: 400 18px 'Montserrat', sans-serif;
2015 }
2016 .memberList {
2017 display: table;
2018 }
2019 .memberItem {
2020 display: table-row;
2021 }
2022 .memberName, .memberValue {
2023 display: table-cell;
2024 vertical-align: top;
2025 padding: 3px 0 3px 1em;
2026 font: 400 14px 'Montserrat', sans-serif;
2027 }
2028 .sourceInset {
2029 padding-left: 15%;
2030 padding-right: 15%;
2031 }
2032 </style>
2033 1985
2034 <nav-bar> 1986 <nav-bar>
2035 <top-nav-menu last="{{ true }}"></top-nav-menu> 1987 <top-nav-menu last="{{ true }}"></top-nav-menu>
2036 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1988 <nav-refresh callback="{{ refresh }}"></nav-refresh>
2037 </nav-bar> 1989 </nav-bar>
2038 1990
2039 <div class="content"> 1991 <div class="content">
2040 <h1>VM</h1> 1992 <h1>VM</h1>
2041 <div class="memberList"> 1993 <div class="memberList">
2042 <div class="memberItem"> 1994 <div class="memberItem">
2043 <div class="memberName">version</div> 1995 <div class="memberName">version</div>
2044 <div class="memberValue">{{ vm.version }}</div> 1996 <div class="memberValue">{{ vm.version }}</div>
2045 </div> 1997 </div>
2046 <div class="memberItem"> 1998 <div class="memberItem">
2047 <div class="memberName">uptime</div> 1999 <div class="memberName">uptime</div>
2048 <div class="memberValue">{{ vm.uptime | formatTime }}</div> 2000 <div class="memberValue">{{ vm.uptime | formatTime }}</div>
2049 </div> 2001 </div>
2002 <div class="memberItem">
2003 <div class="memberName">type checks enabled</div>
2004 <div class="memberValue">{{ vm.typeChecksEnabled }}</div>
2005 </div>
2006 <div class="memberItem">
2007 <div class="memberName">asserts enabled</div>
2008 <div class="memberValue">{{ vm.assertsEnabled }}</div>
2009 </div>
2050 </div> 2010 </div>
2051 </div> 2011 </div>
2052 2012
2053 <br> 2013 <br>
2014 <hr>
2054 2015
2055 <ul class="list-group"> 2016 <ul class="list-group">
2056 <template repeat="{{ isolate in vm.isolates }}"> 2017 <template repeat="{{ isolate in vm.isolates }}">
2057 <li class="list-group-item"> 2018 <li class="list-group-item">
2058 <isolate-summary isolate="{{ isolate }}"></isolate-summary> 2019 <isolate-summary isolate="{{ isolate }}"></isolate-summary>
2059 </li> 2020 </li>
2021 <hr>
2060 </template> 2022 </template>
2061 </ul> 2023 </ul>
2062 </template> 2024 </template>
2063 2025
2064 </polymer-element> 2026 </polymer-element>
2065 <polymer-element name="service-view" extends="observatory-element"> 2027 <polymer-element name="service-view" extends="observatory-element">
2066 <!-- This element explicitly manages the child elements to avoid setting 2028 <!-- This element explicitly manages the child elements to avoid setting
2067 an observable property on the old element to an invalid type. --> 2029 an observable property on the old element to an invalid type. -->
2068 2030
2069 </polymer-element> 2031 </polymer-element>
2070 <polymer-element name="response-viewer" extends="observatory-element"> 2032 <polymer-element name="response-viewer" extends="observatory-element">
2071 <template> 2033 <template>
2072 <service-view object="{{ app.response }}"></service-view> 2034 <service-view object="{{ app.response }}"></service-view>
2073 </template> 2035 </template>
2074 2036
2075 </polymer-element><polymer-element name="observatory-application" extends="obser vatory-element"> 2037 </polymer-element><polymer-element name="observatory-application" extends="obser vatory-element">
2076 <template> 2038 <template>
2077 <response-viewer app="{{ app }}"></response-viewer> 2039 <response-viewer app="{{ app }}"></response-viewer>
2078 </template> 2040 </template>
2079 2041
2080 </polymer-element> 2042 </polymer-element>
2081 <polymer-element name="service-exception-view" extends="observatory-element"> 2043 <polymer-element name="service-exception-view" extends="observatory-element">
2082 <template> 2044 <template>
2045 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2083 <nav-bar> 2046 <nav-bar>
2084 <top-nav-menu last="{{ true }}"></top-nav-menu> 2047 <top-nav-menu last="{{ true }}"></top-nav-menu>
2085 </nav-bar> 2048 </nav-bar>
2086 2049 <div class="content">
2087 <div class="row"> 2050 <h1>{{ exception.kind }}</h1>
2088 <div class="col-md-8 col-md-offset-2"> 2051 <div class="well">{{ exception.message }}</div>
2089 <div class="panel panel-danger"> 2052 <div class="well">{{ exception.response }}</div>
2090 <div class="panel-heading">{{ exception.kind }}</div>
2091 <div class="panel-body">
2092 <p>{{ exception.message }}</p>
2093 </div>
2094 <div class="well">
2095 <p>{{ exception.response }}</p>
2096 </div>
2097 </div>
2098 </div>
2099 </div> 2053 </div>
2100 </template> 2054 </template>
2101 2055
2102 </polymer-element> 2056 </polymer-element>
2103 <polymer-element name="service-error-view" extends="observatory-element"> 2057 <polymer-element name="service-error-view" extends="observatory-element">
2104 <template> 2058 <template>
2059 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2105 <nav-bar> 2060 <nav-bar>
2106 <top-nav-menu last="{{ true }}"></top-nav-menu> 2061 <top-nav-menu last="{{ true }}"></top-nav-menu>
2107 </nav-bar> 2062 </nav-bar>
2108 2063 <div class="content">
2109 <div class="row"> 2064 <h1>{{ error.kind }}</h1>
2110 <div class="col-md-8 col-md-offset-2"> 2065 <div class="well">{{ error.message }}</div>
2111 <div class="panel panel-danger">
2112 <div class="panel-heading">{{ error.kind }}</div>
2113 <div class="panel-body">
2114 <p>{{ error.message }}</p>
2115 </div>
2116 </div>
2117 </div>
2118 </div> 2066 </div>
2119 </template> 2067 </template>
2120 2068
2121 </polymer-element> 2069 </polymer-element>
2122 <polymer-element name="vm-ref" extends="service-ref"> 2070 <polymer-element name="vm-ref" extends="service-ref">
2123 <template> 2071 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css">
2124 <a href="{{ url }}">{{ ref.name }}</a> 2072 <a href="{{ url }}">{{ ref.name }}</a>
2125 </template> 2073 </template>
2126 2074
2127 </polymer-element> 2075 </polymer-element>
2128 2076
2129 2077
2130 <observatory-application></observatory-application> 2078 <observatory-application></observatory-application>
2131 2079
2132 </body></html> 2080 </body></html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698