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

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

Issue 262303002: Observatory grab-bag for 1.4 release. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 years, 7 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 <title>Dart VM Observatory</title> 4 <title>Dart VM Observatory</title>
5 <meta charset="utf-8"> 5 <meta charset="utf-8">
6 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" > 6 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
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 <script src="packages/browser/interop.js"></script> 8 <script src="packages/browser/interop.js"></script>
9 9
10 <script type="application/dart" src="index_devtools.html_bootstrap.dart"></scr ipt> 10 <script src="index_devtools.html_bootstrap.dart.js"></script>
11 <script src="packages/browser/dart.js"></script> 11
12 </head> 12 </head>
13 <body><polymer-element name="observatory-element"> 13 <body><polymer-element name="observatory-element">
14 14
15 </polymer-element> 15 </polymer-element>
16 <polymer-element name="nav-bar" extends="observatory-element"> 16 <polymer-element name="nav-bar" extends="observatory-element">
17 <template> 17 <template>
18 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 18 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
19 <style> 19 <style>
20 nav {
21 position: fixed;
22 width: 100%;
23 z-index: 1000;
24 }
20 nav ul { 25 nav ul {
21 display: inline-table; 26 display: inline-table;
22 position: relative; 27 position: relative;
23 list-style: none; 28 list-style: none;
24 padding-left: 0; 29 padding-left: 0;
25 margin-left: 0; 30 margin-left: 0;
26 width: 100%; 31 width: 100%;
27 z-index: 10; 32 z-index: 1000;
28 font: 400 16px 'Montserrat', sans-serif; 33 font: 400 16px 'Montserrat', sans-serif;
29 color: white; 34 color: white;
30 background-color: #0489c3; 35 background-color: #0489c3;
31 } 36 }
32 nav ul:after { 37 nav ul:after {
33 content: ""; clear: both; display: block; 38 content: ""; clear: both; display: block;
34 } 39 }
40 .vertical-spacer {
41 height: 40px;
42 background-color: #0489c3;
43 }
35 </style> 44 </style>
36 <nav> 45 <nav>
37 <ul> 46 <ul>
38 <content></content> 47 <content></content>
39 </ul> 48 </ul>
40 </nav> 49 </nav>
41 <br> 50 <div class="vertical-spacer">
51 </div>
52 <template if="{{ pad }}">
53 <br>
54 </template>
42 </template> 55 </template>
43 </polymer-element> 56 </polymer-element>
44 57
45 <polymer-element name="nav-menu" extends="observatory-element"> 58 <polymer-element name="nav-menu" extends="observatory-element">
46 <template> 59 <template>
47 <style> 60 <style>
48 .menu, .spacer { 61 .menu, .spacer {
49 float: left; 62 float: left;
50 } 63 }
51 .menu a, .spacer { 64 .menu a, .spacer {
52 display: block; 65 display: block;
53 padding: 12px 8px; 66 padding: 12px 8px;
54 color: White; 67 color: White;
55 text-decoration: none; 68 text-decoration: none;
56 } 69 }
57 .menu:hover { 70 .menu:hover {
58 background: #455; 71 background: #455;
59 } 72 }
60 .menu ul { 73 .menu ul {
61 display: none; 74 display: none;
62 position: absolute; 75 position: absolute;
63 top: 98%; 76 top: 98%;
64 list-style: none; 77 list-style: none;
65 margin: 0; 78 margin: 0;
66 padding: 0; 79 padding: 0;
67 width: auto; 80 width: auto;
68 z-index: 10; 81 z-index: 1000;
69 font: 400 16px 'Montserrat', sans-serif; 82 font: 400 16px 'Montserrat', sans-serif;
70 color: white; 83 color: white;
71 background: #567; 84 background: #567;
72 } 85 }
73 .menu ul:after { 86 .menu ul:after {
74 content: ""; clear: both; display: block; 87 content: ""; clear: both; display: block;
75 } 88 }
76 .menu:hover > ul { 89 .menu:hover > ul {
77 display: block; 90 display: block;
78 } 91 }
(...skipping 22 matching lines...) Expand all
101 } 114 }
102 li ul { 115 li ul {
103 display: none; 116 display: none;
104 position: absolute; 117 position: absolute;
105 top:0; 118 top:0;
106 left: 100%; 119 left: 100%;
107 list-style: none; 120 list-style: none;
108 padding: 0; 121 padding: 0;
109 margin-left: 0; 122 margin-left: 0;
110 width: auto; 123 width: auto;
111 z-index: 10; 124 z-index: 1000;
112 font: 400 16px 'Montserrat', sans-serif; 125 font: 400 16px 'Montserrat', sans-serif;
113 color: white; 126 color: white;
114 background: #567; 127 background: #567;
115 } 128 }
116 li ul:after { 129 li ul:after {
117 content: ""; clear: both; display: block; 130 content: ""; clear: both; display: block;
118 } 131 }
119 li:hover > ul { 132 li:hover > ul {
120 display: block; 133 display: block;
121 } 134 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 <polymer-element name="top-nav-menu"> 178 <polymer-element name="top-nav-menu">
166 <template> 179 <template>
167 <nav-menu link="#/vm" anchor="Observatory" last="{{ last }}"> 180 <nav-menu link="#/vm" anchor="Observatory" last="{{ last }}">
168 <content></content> 181 <content></content>
169 </nav-menu> 182 </nav-menu>
170 </template> 183 </template>
171 </polymer-element> 184 </polymer-element>
172 185
173 <polymer-element name="isolate-nav-menu" extends="observatory-element"> 186 <polymer-element name="isolate-nav-menu" extends="observatory-element">
174 <template> 187 <template>
175 <nav-menu link="{{ isolate.hashLink }}" anchor="{{ isolate.name }}" last="{{ last }}"> 188 <nav-menu link="{{ hashLinkWorkaround }}" anchor="{{ isolate.name }}" last=" {{ last }}">
176 <nav-menu-item link="{{ isolate.relativeHashLink('stacktrace') }}" anchor= "stack trace"></nav-menu-item> 189 <nav-menu-item link="{{ isolate.relativeHashLink('stacktrace') }}" anchor= "stack trace"></nav-menu-item>
177 <nav-menu-item link="{{ isolate.relativeHashLink('profile') }}" anchor="cp u profile"></nav-menu-item> 190 <nav-menu-item link="{{ isolate.relativeHashLink('profile') }}" anchor="cp u profile"></nav-menu-item>
178 <nav-menu-item link="{{ isolate.relativeHashLink('allocationprofile') }}" anchor="allocation profile"></nav-menu-item> 191 <nav-menu-item link="{{ isolate.relativeHashLink('allocationprofile') }}" anchor="allocation profile"></nav-menu-item>
179 <nav-menu-item link="{{ isolate.relativeHashLink('heapmap') }}" anchor="he ap map"></nav-menu-item> 192 <nav-menu-item link="{{ isolate.relativeHashLink('heapmap') }}" anchor="he ap map"></nav-menu-item>
180 <nav-menu-item link="{{ isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item> 193 <nav-menu-item link="{{ isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item>
181 <content></content> 194 <content></content>
182 </nav-menu> 195 </nav-menu>
183 </template> 196 </template>
184 </polymer-element> 197 </polymer-element>
185 198
(...skipping 13 matching lines...) Expand all
199 </template> 212 </template>
200 </polymer-element> 213 </polymer-element>
201 214
202 215
203 <polymer-element name="breakpoint-list" extends="observatory-element"> 216 <polymer-element name="breakpoint-list" extends="observatory-element">
204 <template> 217 <template>
205 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 218 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
206 <nav-bar> 219 <nav-bar>
207 <top-nav-menu></top-nav-menu> 220 <top-nav-menu></top-nav-menu>
208 <isolate-nav-menu isolate="{{ msg.isolate }}"></isolate-nav-menu> 221 <isolate-nav-menu isolate="{{ msg.isolate }}"></isolate-nav-menu>
209 <nav-menu link="." anchor="breakpoints" last="{{ true }}"></nav-menu> 222 <nav-menu link="{{ msg.isolate.relativeHashLink('debug/breakpoints') }}" a nchor="breakpoints" last="{{ true }}"></nav-menu>
210 <nav-refresh callback="{{ refresh }}"></nav-refresh> 223 <nav-refresh callback="{{ refresh }}"></nav-refresh>
211 </nav-bar> 224 </nav-bar>
212 <template if="{{ msg['breakpoints'].isEmpty }}"> 225 <template if="{{ msg['breakpoints'].isEmpty }}">
213 <div> 226 <div>
214 <div>No breakpoints</div> 227 <div>No breakpoints</div>
215 </div> 228 </div>
216 </template> 229 </template>
217 <template if="{{ msg['breakpoints'].isNotEmpty }}"> 230 <template if="{{ msg['breakpoints'].isNotEmpty }}">
218 <ul class="list-group"> 231 <ul class="list-group">
219 <template repeat="{{ bpt in msg['breakpoints'] }}"> 232 <template repeat="{{ bpt in msg['breakpoints'] }}">
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 <template if="{{ cls['error'] != null }}"> 587 <template if="{{ cls['error'] != null }}">
575 <!-- TODO(turnidge): Don't use instance-ref for error display here --> 588 <!-- TODO(turnidge): Don't use instance-ref for error display here -->
576 <instance-ref ref="{{ cls['error'] }}"></instance-ref> 589 <instance-ref ref="{{ cls['error'] }}"></instance-ref>
577 </template> 590 </template>
578 591
579 <hr> 592 <hr>
580 593
581 <div class="content"> 594 <div class="content">
582 <template if="{{ cls['fields'].isNotEmpty }}"> 595 <template if="{{ cls['fields'].isNotEmpty }}">
583 fields ({{ cls['fields'].length }}) 596 fields ({{ cls['fields'].length }})
584 <curly-block> 597 <curly-block expand="{{ cls['fields'].length <= 8 }}">
585 <div class="memberList"> 598 <div class="memberList">
586 <template repeat="{{ field in cls['fields'] }}"> 599 <template repeat="{{ field in cls['fields'] }}">
587 <div class="memberItem"> 600 <div class="memberItem">
588 <div class="memberName"> 601 <div class="memberName">
589 <field-ref ref="{{ field }}"></field-ref> 602 <field-ref ref="{{ field }}"></field-ref>
590 </div> 603 </div>
591 <div class="memberValue"> 604 <div class="memberValue">
592 <template if="{{ field['value'] != null }}"> 605 <template if="{{ field['value'] != null }}">
593 <instance-ref ref="{{ field['value'] }}"></instance-ref> 606 <instance-ref ref="{{ field['value'] }}"></instance-ref>
594 </template> 607 </template>
595 </div> 608 </div>
596 </div> 609 </div>
597 </template> 610 </template>
598 </div> 611 </div>
599 </curly-block><br> 612 </curly-block><br><br>
600 </template> 613 </template>
601 614
602 <template if="{{ cls['functions'].isNotEmpty }}"> 615 <template if="{{ cls['functions'].isNotEmpty }}">
603 functions ({{ cls['functions'].length }}) 616 functions ({{ cls['functions'].length }})
604 <curly-block> 617 <curly-block expand="{{ cls['functions'].length <= 8 }}">
605 <div class="memberList"> 618 <div class="memberList">
606 <template repeat="{{ function in cls['functions'] }}"> 619 <template repeat="{{ function in cls['functions'] }}">
607 <div class="memberItem"> 620 <div class="memberItem">
608 <div class="memberValue"> 621 <div class="memberValue">
609 <function-ref ref="{{ function }}" qualified="{{ false }}"> 622 <function-ref ref="{{ function }}" qualified="{{ false }}">
610 </function-ref> 623 </function-ref>
611 </div> 624 </div>
612 </div> 625 </div>
613 </template> 626 </template>
614 </div> 627 </div>
615 </curly-block><br> 628 </curly-block><br><br>
616 </template> 629 </template>
617 </div> 630 </div>
618 631
619 <hr> 632 <hr>
620 633
621 <div class="content"> 634 <div class="content">
622 <eval-box callback="{{ eval }}"></eval-box> 635 <eval-box callback="{{ eval }}"></eval-box>
623 </div> 636 </div>
624 <br><br><br><br> 637 <br><br><br><br>
625 <br><br><br><br> 638 <br><br><br><br>
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 </div> 811 </div>
799 </div> 812 </div>
800 </template> 813 </template>
801 814
802 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t"> 815 </polymer-element><polymer-element name="error-view" extends="observatory-elemen t">
803 <template> 816 <template>
804 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 817 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
805 <nav-bar> 818 <nav-bar>
806 <top-nav-menu last="{{ true }}"></top-nav-menu> 819 <top-nav-menu last="{{ true }}"></top-nav-menu>
807 </nav-bar> 820 </nav-bar>
808 <div class="content"> 821 <div class="content-centered">
809 <h1>{{ error.kind }}</h1> 822 <h1>{{ error.kind }}</h1>
810 <div class="well">{{ error.message }}</div> 823 <br>
824 <div class="well">{{ error.message }}</div>
811 </div> 825 </div>
812 </template> 826 </template>
813 827
814 </polymer-element> 828 </polymer-element>
815 <polymer-element name="eval-link"> 829 <polymer-element name="eval-link">
816 <template> 830 <template>
817 <style> 831 <style>
818 .idle { 832 .idle {
819 color: #0489c3; 833 color: #0489c3;
820 cursor: pointer; 834 cursor: pointer;
(...skipping 23 matching lines...) Expand all
844 <nav-bar> 858 <nav-bar>
845 <top-nav-menu></top-nav-menu> 859 <top-nav-menu></top-nav-menu>
846 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu> 860 <isolate-nav-menu isolate="{{ field.isolate }}"></isolate-nav-menu>
847 <template if="{{ field['owner'].serviceType == 'Class' }}"> 861 <template if="{{ field['owner'].serviceType == 'Class' }}">
848 <!-- TODO(turnidge): Add library nav menu here. --> 862 <!-- TODO(turnidge): Add library nav menu here. -->
849 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu> 863 <class-nav-menu cls="{{ field['owner'] }}"></class-nav-menu>
850 </template> 864 </template>
851 <template if="{{ field['owner'].serviceType == 'Library' }}"> 865 <template if="{{ field['owner'].serviceType == 'Library' }}">
852 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu> 866 <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu>
853 </template> 867 </template>
854 <nav-menu link="." anchor="{{ field['user_name'] }}" last="{{ true }}"></n av-menu> 868 <nav-menu link="{{ field.hashLink }}" anchor="{{ field['user_name'] }}" la st="{{ true }}"></nav-menu>
855 <nav-refresh callback="{{ refresh }}"></nav-refresh> 869 <nav-refresh callback="{{ refresh }}"></nav-refresh>
856 </nav-bar> 870 </nav-bar>
857 871
858 <div class="content"> 872 <div class="content">
859 <h1> 873 <h1>
860 <template if="{{ field['static'] }}">static</template> 874 <template if="{{ field['static'] }}">static</template>
861 <template if="{{ field['final'] }}">final</template> 875 <template if="{{ field['final'] }}">final</template>
862 <template if="{{ field['const'] }}">const</template> 876 <template if="{{ field['const'] }}">const</template>
863 <template if="{{ (field['declared_type']['name'] == 'dynamic' &amp;&amp; 877 <template if="{{ (field['declared_type']['name'] == 'dynamic' &amp;&amp;
864 !field['final'] &amp;&amp; !field['const']) }}"> 878 !field['final'] &amp;&amp; !field['const']) }}">
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
974 <nav-bar> 988 <nav-bar>
975 <top-nav-menu></top-nav-menu> 989 <top-nav-menu></top-nav-menu>
976 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> 990 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu>
977 <template if="{{ function['owner'].serviceType == 'Class' }}"> 991 <template if="{{ function['owner'].serviceType == 'Class' }}">
978 <!-- TODO(turnidge): Add library nav menu here. --> 992 <!-- TODO(turnidge): Add library nav menu here. -->
979 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> 993 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu>
980 </template> 994 </template>
981 <template if="{{ function['owner'].serviceType == 'Library' }}"> 995 <template if="{{ function['owner'].serviceType == 'Library' }}">
982 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> 996 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu>
983 </template> 997 </template>
984 <nav-menu link="." anchor="{{ function.name }}" last="{{ true }}"></nav-me nu> 998 <nav-menu link="{{ function.hashLink }}" anchor="{{ function.name }}" last ="{{ true }}"></nav-menu>
985 <nav-refresh callback="{{ refresh }}"></nav-refresh> 999 <nav-refresh callback="{{ refresh }}"></nav-refresh>
986 </nav-bar> 1000 </nav-bar>
987 1001
988 <div class="content"> 1002 <div class="content">
989 <h1>function {{ qualifiedName }}</h1> 1003 <h1>function {{ qualifiedName }}</h1>
990 1004
991 <div class="memberList"> 1005 <div class="memberList">
992 <div class="memberItem"> 1006 <div class="memberItem">
993 <div class="memberName">kind</div> 1007 <div class="memberName">kind</div>
994 <div class="memberValue"> 1008 <div class="memberValue">
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
1076 </template> 1090 </template>
1077 1091
1078 </polymer-element> 1092 </polymer-element>
1079 <polymer-element name="heap-map" extends="observatory-element"> 1093 <polymer-element name="heap-map" extends="observatory-element">
1080 <template> 1094 <template>
1081 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" > 1095 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.css" >
1082 <style> 1096 <style>
1083 .hover { 1097 .hover {
1084 position: fixed; 1098 position: fixed;
1085 z-index: 999; 1099 z-index: 999;
1100 height: 16px;
1086 width: 100%; 1101 width: 100%;
1087 background: #ffffff; 1102 background: #ffffff;
1088 } 1103 }
1104 .spacer {
1105 height: 16px;
1106 background-color: red;
1107 }
1089 </style> 1108 </style>
1090 <nav-bar> 1109 <nav-bar pad="{{ false }}">
1091 <top-nav-menu></top-nav-menu> 1110 <top-nav-menu></top-nav-menu>
1092 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu> 1111 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
1093 <nav-menu link="." anchor="heap map" last="{{ true }}"></nav-menu> 1112 <nav-menu link="{{ fragmentation.isolate.relativeHashLink('heapmap') }}" anc hor="heap map" last="{{ true }}"></nav-menu>
1094 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1113 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1095 </nav-bar> 1114 </nav-bar>
1096 <div class="hover"> 1115 <div class="hover">
1097 <p style="text-align:center">{{ status }}</p> 1116 <p style="text-align:center">{{ status }}</p>
1098 </div> 1117 </div>
1118 <div class="spacer">
1119 <!-- Make sure no data is covered by hover bar initially -->
1120 </div>
1099 <div class="flex-row"> 1121 <div class="flex-row">
1100 <canvas id="fragmentation" width="1px" height="1px"></canvas> 1122 <canvas id="fragmentation" width="1px" height="1px"></canvas>
1101 </div> 1123 </div>
1102 </template> 1124 </template>
1103 1125
1104 </polymer-element> 1126 </polymer-element>
1105 <polymer-element name="isolate-ref" extends="service-ref"> 1127 <polymer-element name="isolate-ref" extends="service-ref">
1106 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css"> 1128 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css">
1107 <a href="{{ url }}">{{ ref.name }}</a> 1129 <a href="{{ url }}">{{ ref.name }}</a>
1108 </template> 1130 </template>
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
1343 </div> 1365 </div>
1344 </div> 1366 </div>
1345 1367
1346 </div> <!-- flex row --> 1368 </div> <!-- flex row -->
1347 </div> <!-- content --> 1369 </div> <!-- content -->
1348 1370
1349 <hr> 1371 <hr>
1350 1372
1351 <div class="content"> 1373 <div class="content">
1352 libraries ({{ isolate.libraries.length }}) 1374 libraries ({{ isolate.libraries.length }})
1353 <curly-block> 1375 <curly-block expand="{{ isolate.libraries.length <= 8 }}">
1354 <div class="memberList"> 1376 <div class="memberList">
1355 <template repeat="{{ lib in isolate.libraries }}"> 1377 <template repeat="{{ lib in isolate.libraries }}">
1356 <div class="memberItem"> 1378 <div class="memberItem">
1357 <div class="memberName"> 1379 <div class="memberName">
1358 <library-ref ref="{{ lib }}"></library-ref> 1380 <library-ref ref="{{ lib }}"></library-ref>
1359 </div> 1381 </div>
1360 </div> 1382 </div>
1361 </template> 1383 </template>
1362 </div> 1384 </div>
1363 </curly-block> 1385 </curly-block>
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
1463 </div> 1485 </div>
1464 </div> 1486 </div>
1465 </div> 1487 </div>
1466 </div> 1488 </div>
1467 1489
1468 <hr> 1490 <hr>
1469 1491
1470 <div class="content"> 1492 <div class="content">
1471 <template if="{{ instance['fields'].isNotEmpty }}"> 1493 <template if="{{ instance['fields'].isNotEmpty }}">
1472 fields ({{ instance['fields'].length }}) 1494 fields ({{ instance['fields'].length }})
1473 <curly-block> 1495 <curly-block expand="{{ instance['fields'].length <= 8 }}">
1474 <div class="memberList"> 1496 <div class="memberList">
1475 <template repeat="{{ field in instance['fields'] }}"> 1497 <template repeat="{{ field in instance['fields'] }}">
1476 <div class="memberItem"> 1498 <div class="memberItem">
1477 <div class="memberName"> 1499 <div class="memberName">
1478 <field-ref ref="{{ field['decl'] }}"></field-ref> 1500 <field-ref ref="{{ field['decl'] }}"></field-ref>
1479 </div> 1501 </div>
1480 <div class="memberValue"> 1502 <div class="memberValue">
1481 <instance-ref ref="{{ field['value'] }}"></instance-ref> 1503 <instance-ref ref="{{ field['value'] }}"></instance-ref>
1482 </div> 1504 </div>
1483 </div> 1505 </div>
1484 </template> 1506 </template>
1485 </div> 1507 </div>
1486 </curly-block> 1508 </curly-block><br><br>
1487 </template> 1509 </template>
1488 1510
1489 <template if="{{ instance['nativeFields'].isNotEmpty }}"> 1511 <template if="{{ instance['nativeFields'].isNotEmpty }}">
1490 native fields ({{ instance['nativeFields'].length }}) 1512 native fields ({{ instance['nativeFields'].length }})
1491 <curly-block> 1513 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}">
1492 <div class="memberList"> 1514 <div class="memberList">
1493 <template repeat="{{ field in instance['nativeFields'] }}"> 1515 <template repeat="{{ field in instance['nativeFields'] }}">
1494 <div class="memberItem"> 1516 <div class="memberItem">
1495 <div class="memberName">[{{ field['index']}}]</div> 1517 <div class="memberName">[{{ field['index']}}]</div>
1496 <div class="memberValue">[{{ field['value']}}]</div> 1518 <div class="memberValue">[{{ field['value']}}]</div>
1497 </div> 1519 </div>
1498 </template> 1520 </template>
1499 </div> 1521 </div>
1500 </curly-block><br> 1522 </curly-block><br><br>
1501 </template> 1523 </template>
1502 1524
1503 <template if="{{ instance['elements'].isNotEmpty }}"> 1525 <template if="{{ instance['elements'].isNotEmpty }}">
1504 elements ({{ instance['elements'].length }}) 1526 elements ({{ instance['elements'].length }})
1505 <curly-block> 1527 <curly-block expand="{{ instance['elements'].length <= 8 }}">
1506 <div class="memberList"> 1528 <div class="memberList">
1507 <template repeat="{{ element in instance['elements'] }}"> 1529 <template repeat="{{ element in instance['elements'] }}">
1508 <div class="memberItem"> 1530 <div class="memberItem">
1509 <div class="memberName">[{{ element['index']}}]</div> 1531 <div class="memberName">[{{ element['index']}}]</div>
1510 <div class="memberValue"> 1532 <div class="memberValue">
1511 <instance-ref ref="{{ element['value'] }}"> 1533 <instance-ref ref="{{ element['value'] }}">
1512 </instance-ref> 1534 </instance-ref>
1513 </div> 1535 </div>
1514 </div> 1536 </div>
1515 </template> 1537 </template>
1516 </div> 1538 </div>
1517 </curly-block><br> 1539 </curly-block><br><br>
1518 </template> 1540 </template>
1519 </div> 1541 </div>
1520 1542
1521 <hr> 1543 <hr>
1522 1544
1523 <div class="content"> 1545 <div class="content">
1524 <eval-box callback="{{ eval }}"></eval-box> 1546 <eval-box callback="{{ eval }}"></eval-box>
1525 </div> 1547 </div>
1526 <br><br><br><br> 1548 <br><br><br><br>
1527 <br><br><br><br> 1549 <br><br><br><br>
(...skipping 22 matching lines...) Expand all
1550 </nav-bar> 1572 </nav-bar>
1551 1573
1552 <div class="content"> 1574 <div class="content">
1553 <h1> 1575 <h1>
1554 <!-- TODO(turnidge): Handle unnamed libraries --> 1576 <!-- TODO(turnidge): Handle unnamed libraries -->
1555 library {{ library.name }} 1577 library {{ library.name }}
1556 </h1> 1578 </h1>
1557 <div class="memberList"> 1579 <div class="memberList">
1558 <div class="memberItem"> 1580 <div class="memberItem">
1559 <div class="memberName">url</div> 1581 <div class="memberName">url</div>
1560 <div class="memberValue">{{ library['url'] }}</div> 1582 <div class="memberValue">{{ library.url }}</div>
1561 </div> 1583 </div>
1562 <template if="{{ library['imports'].length > 0 }}">
1563 <div class="memberItem">
1564 <div class="memberName">imports</div>
1565 <div class="memberValue">
1566 <template repeat="{{ import in library['imports'] }}">
1567 <library-ref ref="{{ import }}"></library-ref>
1568 </template>
1569 </div>
1570 </div>
1571 </template>
1572 <template if="{{ library.name != library.vmName }}"> 1584 <template if="{{ library.name != library.vmName }}">
1573 <div class="memberItem"> 1585 <div class="memberItem">
1574 <div class="memberName">vm name</div> 1586 <div class="memberName">vm name</div>
1575 <div class="memberValue">{{ library.vmName }}</div> 1587 <div class="memberValue">{{ library.vmName }}</div>
1576 </div> 1588 </div>
1577 </template> 1589 </template>
1578 </div> 1590 </div>
1579 </div> 1591 </div>
1580 1592
1581 <hr> 1593 <hr>
1582 1594
1583 <div class="content"> 1595 <div class="content">
1584 <template if="{{ library['scripts'].isNotEmpty }}"> 1596 <template if="{{ library.imports.isNotEmpty }}">
1585 scripts ({{ library['scripts'].length }}) 1597 imports ({{ library.imports.length }})
1586 <curly-block> 1598 <curly-block expand="{{ library.imports.length <= 8 }}">
1587 <div class="memberList"> 1599 <div class="memberList">
1588 <template repeat="{{ script in library['scripts'] }}"> 1600 <template repeat="{{ imp in library.imports }}">
1601 <div class="memberItem">
1602 <div class="memberValue">
1603 <library-ref ref="{{ imp }}"></library-ref>
1604 </div>
1605 </div>
1606 </template>
1607 </div>
1608 </curly-block><br>
1609 <br>
1610 </template>
1611
1612 <template if="{{ library.scripts.isNotEmpty }}">
1613 scripts ({{ library.scripts.length }})
1614 <curly-block expand="{{ library.scripts.length <= 8 }}">
1615 <div class="memberList">
1616 <template repeat="{{ script in library.scripts }}">
1589 <div class="memberItem"> 1617 <div class="memberItem">
1590 <div class="memberValue"> 1618 <div class="memberValue">
1591 <script-ref ref="{{ script }}"></script-ref> 1619 <script-ref ref="{{ script }}"></script-ref>
1592 </div> 1620 </div>
1593 </div> 1621 </div>
1594 </template> 1622 </template>
1595 </div> 1623 </div>
1596 </curly-block><br> 1624 </curly-block><br>
1625 <br>
1597 </template> 1626 </template>
1598 1627
1599 <template if="{{ library['classes'].isNotEmpty }}"> 1628 <template if="{{ library.classes.isNotEmpty }}">
1600 classes ({{ library['classes'].length }}) 1629 classes ({{ library.classes.length }})
1601 <curly-block> 1630 <curly-block expand="{{ library.classes.length <= 8 }}">
1602 <div class="memberList"> 1631 <div class="memberList">
1603 <template repeat="{{ cls in library['classes'] }}"> 1632 <template repeat="{{ cls in library.classes }}">
1604 <div class="memberItem"> 1633 <div class="memberItem">
1605 <div class="memberValue"> 1634 <div class="memberValue">
1606 <class-ref ref="{{ cls }}"></class-ref> 1635 <class-ref ref="{{ cls }}"></class-ref>
1607 </div> 1636 </div>
1608 </div> 1637 </div>
1609 </template> 1638 </template>
1610 </div> 1639 </div>
1611 </curly-block><br> 1640 </curly-block><br>
1641 <br>
1612 </template> 1642 </template>
1613 1643
1614 <template if="{{ library['variables'].isNotEmpty }}"> 1644 <template if="{{ library.variables.isNotEmpty }}">
1615 variables ({{ library['variables'].length }}) 1645 variables ({{ library.variables.length }})
1616 <curly-block> 1646 <curly-block expand="{{ library.variables.length <= 8 }}">
1617 <div class="memberList"> 1647 <div class="memberList">
1618 <template repeat="{{ field in library['variables'] }}"> 1648 <template repeat="{{ field in library.variables }}">
1619 <div class="memberItem"> 1649 <div class="memberItem">
1620 <div class="memberName"> 1650 <div class="memberName">
1621 <field-ref ref="{{ field }}"></field-ref> 1651 <field-ref ref="{{ field }}"></field-ref>
1622 </div> 1652 </div>
1623 <div class="memberValue"> 1653 <div class="memberValue">
1624 <template if="{{ field['value'] != null }}"> 1654 <template if="{{ field['value'] != null }}">
1625 <instance-ref ref="{{ field['value'] }}"></instance-ref> 1655 <instance-ref ref="{{ field['value'] }}"></instance-ref>
1626 </template> 1656 </template>
1627 </div> 1657 </div>
1628 </div> 1658 </div>
1629 </template> 1659 </template>
1630 </div> 1660 </div>
1631 </curly-block><br> 1661 </curly-block><br>
1662 <br>
1632 </template> 1663 </template>
1633 1664
1634 <template if="{{ library['functions'].isNotEmpty }}"> 1665 <template if="{{ library.functions.isNotEmpty }}">
1635 functions ({{ library['functions'].length }}) 1666 functions ({{ library.functions.length }})
1636 <curly-block> 1667 <curly-block expand="{{ library.functions.length <= 8 }}">
1637 <div class="memberList"> 1668 <div class="memberList">
1638 <template repeat="{{ function in library['functions'] }}"> 1669 <template repeat="{{ function in library.functions }}">
1639 <div class="memberItem"> 1670 <div class="memberItem">
1640 <div class="memberValue"> 1671 <div class="memberValue">
1641 <function-ref ref="{{ function }}"></function-ref> 1672 <function-ref ref="{{ function }}"></function-ref>
1642 </div> 1673 </div>
1643 </div> 1674 </div>
1644 </template> 1675 </template>
1645 </div> 1676 </div>
1646 </curly-block><br> 1677 </curly-block><br>
1678 <br>
1647 </template> 1679 </template>
1648 </div> 1680 </div>
1649 1681
1650 <hr> 1682 <hr>
1651 1683
1652 <div class="content"> 1684 <div class="content">
1653 <eval-box callback="{{ eval }}"></eval-box> 1685 <eval-box callback="{{ eval }}"></eval-box>
1654 </div> 1686 </div>
1655 <br><br><br><br> 1687 <br><br><br><br>
1656 <br><br><br><br> 1688 <br><br><br><br>
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1740 </div> 1772 </div>
1741 </template> 1773 </template>
1742 1774
1743 </polymer-element> 1775 </polymer-element>
1744 <polymer-element name="isolate-profile" extends="observatory-element"> 1776 <polymer-element name="isolate-profile" extends="observatory-element">
1745 <template> 1777 <template>
1746 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 1778 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
1747 <nav-bar> 1779 <nav-bar>
1748 <top-nav-menu></top-nav-menu> 1780 <top-nav-menu></top-nav-menu>
1749 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 1781 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
1750 <nav-menu link="." anchor="cpu profile" last="{{ true }}"></nav-menu> 1782 <nav-menu link="{{ profile.isolate.relativeHashLink('profile') }}" anchor= "cpu profile" last="{{ true }}"></nav-menu>
1751 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1783 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1752 </nav-bar> 1784 </nav-bar>
1753 <style> 1785 <style>
1754 .table { 1786 .table {
1755 border-collapse: collapse!important; 1787 border-collapse: collapse!important;
1756 width: 100%; 1788 width: 100%;
1757 margin-bottom: 20px 1789 margin-bottom: 20px
1758 } 1790 }
1759 .table thead > tr > th, 1791 .table thead > tr > th,
1760 .table tbody > tr > th, 1792 .table tbody > tr > th,
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
1953 text-decoration: underline; 1985 text-decoration: underline;
1954 cursor: pointer; 1986 cursor: pointer;
1955 } 1987 }
1956 #classtable tr:hover > td { 1988 #classtable tr:hover > td {
1957 background-color: #F4C7C3; 1989 background-color: #F4C7C3;
1958 } 1990 }
1959 </style> 1991 </style>
1960 <nav-bar> 1992 <nav-bar>
1961 <top-nav-menu></top-nav-menu> 1993 <top-nav-menu></top-nav-menu>
1962 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 1994 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
1963 <nav-menu link="." anchor="heap profile" last="{{ true }}"></nav-menu> 1995 <nav-menu link="{{ profile.isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu>
1964 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n av-refresh> 1996 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n av-refresh>
1965 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh> 1997 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh>
1966 <nav-refresh callback="{{ refresh }}"></nav-refresh> 1998 <nav-refresh callback="{{ refresh }}"></nav-refresh>
1967 </nav-bar> 1999 </nav-bar>
1968 2000
1969 <div class="flex-row"> 2001 <div class="flex-row">
1970 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px"> 2002 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px">
1971 </div> 2003 </div>
1972 <div id="newStatus" class="flex-item-fixed-2-12"> 2004 <div id="newStatus" class="flex-item-fixed-2-12">
1973 <div class="memberList"> 2005 <div class="memberList">
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
2088 </div> 2120 </div>
2089 </template> 2121 </template>
2090 2122
2091 </polymer-element> 2123 </polymer-element>
2092 <polymer-element name="stack-trace" extends="observatory-element"> 2124 <polymer-element name="stack-trace" extends="observatory-element">
2093 <template> 2125 <template>
2094 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 2126 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2095 <nav-bar> 2127 <nav-bar>
2096 <top-nav-menu></top-nav-menu> 2128 <top-nav-menu></top-nav-menu>
2097 <isolate-nav-menu isolate="{{ trace.isolate }}"></isolate-nav-menu> 2129 <isolate-nav-menu isolate="{{ trace.isolate }}"></isolate-nav-menu>
2098 <nav-menu link="." anchor="stack trace" last="{{ true }}"></nav-menu> 2130 <nav-menu link="{{ trace.isolate.relativeHashLink('stacktrace') }}" anchor ="stack trace" last="{{ true }}"></nav-menu>
2099 <nav-refresh callback="{{ refresh }}"></nav-refresh> 2131 <nav-refresh callback="{{ refresh }}"></nav-refresh>
2100 </nav-bar> 2132 </nav-bar>
2101 <template if="{{ trace['members'].isEmpty }}"> 2133 <template if="{{ trace['members'].isEmpty }}">
2102 <div class="content"> 2134 <div class="content">
2103 <em>No stack</em> 2135 <em>No stack</em>
2104 </div> 2136 </div>
2105 </template> 2137 </template>
2106 <template if="{{ trace['members'].isNotEmpty }}"> 2138 <template if="{{ trace['members'].isNotEmpty }}">
2107 <ul class="list-group"> 2139 <ul class="list-group">
2108 <template repeat="{{ frame in trace['members'] }}"> 2140 <template repeat="{{ frame in trace['members'] }}">
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2175 <response-viewer app="{{ app }}"></response-viewer> 2207 <response-viewer app="{{ app }}"></response-viewer>
2176 </template> 2208 </template>
2177 2209
2178 </polymer-element> 2210 </polymer-element>
2179 <polymer-element name="service-exception-view" extends="observatory-element"> 2211 <polymer-element name="service-exception-view" extends="observatory-element">
2180 <template> 2212 <template>
2181 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 2213 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2182 <nav-bar> 2214 <nav-bar>
2183 <top-nav-menu last="{{ true }}"></top-nav-menu> 2215 <top-nav-menu last="{{ true }}"></top-nav-menu>
2184 </nav-bar> 2216 </nav-bar>
2185 <div class="content"> 2217 <div class="content-centered">
2186 <h1>{{ exception.kind }}</h1> 2218 <h1>{{ exception.kind }}</h1>
2187 <div class="well">{{ exception.message }}</div> 2219 <br>
2220 <div class="well">{{ exception.message }}</div>
2221 <template if="{{ exception.response != '' }}">
2188 <div class="well">{{ exception.response }}</div> 2222 <div class="well">{{ exception.response }}</div>
2223 </template>
2189 </div> 2224 </div>
2190 </template> 2225 </template>
2191 2226
2192 </polymer-element> 2227 </polymer-element>
2193 <polymer-element name="service-error-view" extends="observatory-element"> 2228 <polymer-element name="service-error-view" extends="observatory-element">
2194 <template> 2229 <template>
2195 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s"> 2230 <link rel="stylesheet" href="packages/observatory/src/elements/css/shared.cs s">
2196 <nav-bar> 2231 <nav-bar>
2197 <top-nav-menu last="{{ true }}"></top-nav-menu> 2232 <top-nav-menu last="{{ true }}"></top-nav-menu>
2198 </nav-bar> 2233 </nav-bar>
2199 <div class="content"> 2234 <div class="content-centered">
2200 <h1>{{ error.kind }}</h1> 2235 <h1>{{ error.kind }}</h1>
2236 <br>
2201 <div class="well">{{ error.message }}</div> 2237 <div class="well">{{ error.message }}</div>
2202 </div> 2238 </div>
2203 </template> 2239 </template>
2204 2240
2205 </polymer-element> 2241 </polymer-element>
2206 <polymer-element name="vm-ref" extends="service-ref"> 2242 <polymer-element name="vm-ref" extends="service-ref">
2207 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css"> 2243 <template><link rel="stylesheet" href="packages/observatory/src/elements/css/sha red.css">
2208 <a href="{{ url }}">{{ ref.name }}</a> 2244 <a href="{{ url }}">{{ ref.name }}</a>
2209 </template> 2245 </template>
2210 2246
2211 </polymer-element> 2247 </polymer-element>
2212 2248
2213 2249
2214 <observatory-application devtools="true"></observatory-application> 2250 <observatory-application devtools="true"></observatory-application>
2215 2251
2216 </body></html> 2252 </body></html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698