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

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

Issue 560503002: Add support for TokenStream, LocalVarDescriptors, and PcDescriptors to service lib and generic obje… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 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> 1 <!DOCTYPE html><html><head>
2 <title>Dart VM Observatory</title> 2 <title>Dart VM Observatory</title>
3 <meta charset="utf-8"> 3 <meta charset="utf-8">
4 4
5 5
6 6
7 7
8 8
9 9
10 10
11 </head> 11 </head>
12 <body><script src="packages/web_components/platform.js"></script> 12 <body><script src="packages/web_components/platform.js"></script>
13 13
14 14
15 <!-- unminified for debugging: 15 <!-- unminfied for debugging:
16 <link rel="import" href="src/js/polymer/layout.html"> 16 <link rel="import" href="src/js/polymer/layout.html">
17 <script src="src/js/polymer/polymer.concat.js"></script> 17 <script src="src/js/polymer/polymer.concat.js"></script>
18 --> 18 -->
19 19
20 20
21 21
22 <style shim-shadowdom=""> 22 <style shim-shadowdom="">
23 /******************************* 23 /*******************************
24 Flex Layout 24 Flex Layout
25 *******************************/ 25 *******************************/
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 590
591 591
592 592
593 593
594 594
595 595
596 596
597 597
598 598
599 599
600
601
600 <polymer-element name="curly-block"> 602 <polymer-element name="curly-block">
601 <template> 603 <template>
602 <style> 604 <style>
603 .idle { 605 .idle {
604 display: inline-block; 606 display: inline-block;
605 color: #0489c3; 607 color: #0489c3;
606 cursor: pointer; 608 cursor: pointer;
607 } 609 }
608 .busy { 610 .busy {
609 display: inline-block; 611 display: inline-block;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 647
646 648
647 649
648 650
649 <polymer-element name="service-ref" extends="observatory-element"> 651 <polymer-element name="service-ref" extends="observatory-element">
650 </polymer-element> 652 </polymer-element>
651 653
652 <polymer-element name="any-service-ref" extends="observatory-element"> 654 <polymer-element name="any-service-ref" extends="observatory-element">
653 </polymer-element> 655 </polymer-element>
654 656
655 <polymer-element name="instance-ref" extends="service-ref"> 657 <polymer-element name="object-ref" extends="service-ref">
656 <template> 658 <template><style>
657 <style>
658 /* Global styles */ 659 /* Global styles */
659 * { 660 * {
660 margin: 0; 661 margin: 0;
661 padding: 0; 662 padding: 0;
662 font: 400 14px 'Montserrat', sans-serif; 663 font: 400 14px 'Montserrat', sans-serif;
663 color: #333; 664 color: #333;
664 box-sizing: border-box; 665 box-sizing: border-box;
665 } 666 }
666 667
667 .content { 668 .content {
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 background-color: #f5f5f5; 903 background-color: #f5f5f5;
903 border: 1px solid #e3e3e3; 904 border: 1px solid #e3e3e3;
904 border-radius: 4px; 905 border-radius: 4px;
905 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 906 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
906 } 907 }
907 908
908 .break-wrap { 909 .break-wrap {
909 word-wrap: break-word; 910 word-wrap: break-word;
910 } 911 }
911 </style> 912 </style>
912 <style> 913 <template if="{{ nameIsEmpty }}">
913 .errorBox { 914 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.vmType }}</em></a>
914 background-color: #f5f5f5;
915 border: 1px solid #ccc;
916 padding: 10px;
917 font-family: consolas, courier, monospace;
918 font-size: 1em;
919 line-height: 1.2em;
920 white-space: pre;
921 }
922 </style>
923 <span>
924 <template if="{{ ref.isSentinel }}">
925 <div title="{{ hoverText }}">{{ ref.valueAsString }}</div>
926 </template>
927
928 <template if="{{ ref.isBool || ref.isInt ||
929 ref.isDouble || ref.isNull }}">
930 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.valueAsString }}</a>
931 </template>
932
933 <template if="{{ ref.isString }}">
934 <a on-click="{{ goto }}" _href="{{ url }}">{{ asStringLiteral(ref.valueA sString, ref.valueAsStringIsTruncated) }}</a>
935 </template>
936
937
938 <template if="{{ ref.isAbstractType }}">
939 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a>
940 </template>
941
942 <template if="{{ ref.isClosure }}">
943 <a on-click="{{ goto }}" _href="{{ url }}">
944 <!-- TODO(turnidge): Switch this to fully-qualified function -->
945 {{ ref.closureFunc.name }}
946 </a>
947 </template>
948
949 <template if="{{ ref.isPlainInstance }}">
950 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
951 <curly-block callback="{{ expander() }}">
952 <div class="memberList">
953 <template repeat="{{ field in ref.fields }}">
954 <div class="memberItem">
955 <div class="memberName">
956 {{ field['decl'].name }}
957 </div>
958 <div class="memberValue">
959 <any-service-ref ref="{{ field['value'] }}"></any-service-ref>
960 </div>
961 </div>
962 </template>
963 </div>
964 </curly-block>
965 </template>
966
967 <template if="{{ ref.isList }}">
968 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> ({{ ref.length }})</a>
969 <curly-block callback="{{ expander() }}">
970 <div class="memberList">
971 <template repeat="{{ element in ref.elements }}">
972 <div class="memberItem">
973 <div class="memberName">[{{ element['index']}}]</div>
974 <div class="memberValue">
975 <any-service-ref ref="{{ element['value'] }}"></any-service-re f>
976 </div>
977 </div>
978 </template>
979 </div>
980 </curly-block>
981 </template>
982
983 <template if="{{ ref.isMirrorReference }}">
984 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
985 <curly-block callback="{{ expander() }}">
986 <div class="memberList">
987 <div class="memberItem">
988 <div class="memberName">referent</div>
989 <div class="memberValue">
990 <any-service-ref ref="{{ ref.referent }}"></any-service-ref>
991 </div>
992 </div>
993 </div>
994 </curly-block>
995 </template>
996
997 <template if="{{ ref.isWeakProperty }}">
998 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
999 <curly-block callback="{{ expander() }}">
1000 <div class="memberList">
1001 <div class="memberItem">
1002 <div class="memberName">key</div>
1003 <div class="memberValue">
1004 <any-service-ref ref="{{ ref.key }}"></any-service-ref>
1005 </div>
1006 </div>
1007 <div class="memberItem">
1008 <div class="memberName">value</div>
1009 <div class="memberValue">
1010 <any-service-ref ref="{{ ref.value }}"></any-service-ref>
1011 </div>
1012 </div>
1013 </div>
1014 </curly-block>
1015 </template>
1016 </span>
1017 </template>
1018 </polymer-element>
1019
1020
1021 <polymer-element name="action-link">
1022 <template>
1023 <style>
1024 .idle {
1025 color: #0489c3;
1026 cursor: pointer;
1027 text-decoration: none;
1028 }
1029 .idle:hover {
1030 text-decoration: underline;
1031 }
1032 .busy {
1033 color: #aaa;
1034 cursor: wait;
1035 text-decoration: none;
1036 }
1037 </style>
1038
1039 <template if="{{ busy }}">
1040 <span class="busy">[{{ label }}]</span>
1041 </template> 915 </template>
1042 <template if="{{ !busy }}"> 916 <template if="{{ !nameIsEmpty }}">
1043 <template if="{{ color == null }}"> 917 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ name }}</em></a>
1044 <span class="idle"><a on-click="{{ doAction }}">[{{ label }}]</a></span>
1045 </template>
1046 <template if="{{ color != null }}">
1047 <span class="idle" style="color:{{ color }}"><a on-click="{{ doAction }} ">[{{ label }}]</a></span>
1048 </template>
1049 </template> 918 </template>
1050 </template> 919 </template>
1051 </polymer-element> 920 </polymer-element>
1052 921
1053 922 <polymer-element name="instance-ref" extends="service-ref">
1054
1055
1056
1057
1058
1059
1060
1061
1062 <polymer-element name="nav-bar" extends="observatory-element">
1063 <template> 923 <template>
1064 <style> 924 <style>
1065 /* Global styles */ 925 /* Global styles */
1066 * { 926 * {
1067 margin: 0; 927 margin: 0;
1068 padding: 0; 928 padding: 0;
1069 font: 400 14px 'Montserrat', sans-serif; 929 font: 400 14px 'Montserrat', sans-serif;
1070 color: #333; 930 color: #333;
1071 box-sizing: border-box; 931 box-sizing: border-box;
1072 } 932 }
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1310 border: 1px solid #e3e3e3; 1170 border: 1px solid #e3e3e3;
1311 border-radius: 4px; 1171 border-radius: 4px;
1312 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 1172 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
1313 } 1173 }
1314 1174
1315 .break-wrap { 1175 .break-wrap {
1316 word-wrap: break-word; 1176 word-wrap: break-word;
1317 } 1177 }
1318 </style> 1178 </style>
1319 <style> 1179 <style>
1180 .errorBox {
1181 background-color: #f5f5f5;
1182 border: 1px solid #ccc;
1183 padding: 10px;
1184 font-family: consolas, courier, monospace;
1185 font-size: 1em;
1186 line-height: 1.2em;
1187 white-space: pre;
1188 }
1189 </style>
1190 <span>
1191 <template if="{{ ref.isSentinel }}">
1192 <div title="{{ hoverText }}">{{ ref.valueAsString }}</div>
1193 </template>
1194
1195 <template if="{{ ref.isBool || ref.isInt ||
1196 ref.isDouble || ref.isNull }}">
1197 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.valueAsString }}</a>
1198 </template>
1199
1200 <template if="{{ ref.isString }}">
1201 <a on-click="{{ goto }}" _href="{{ url }}">{{ asStringLiteral(ref.valueA sString, ref.valueAsStringIsTruncated) }}</a>
1202 </template>
1203
1204
1205 <template if="{{ ref.isAbstractType }}">
1206 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a>
1207 </template>
1208
1209 <template if="{{ ref.isClosure }}">
1210 <a on-click="{{ goto }}" _href="{{ url }}">
1211 <!-- TODO(turnidge): Switch this to fully-qualified function -->
1212 {{ ref.closureFunc.name }}
1213 </a>
1214 </template>
1215
1216 <template if="{{ ref.isPlainInstance }}">
1217 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
1218 <curly-block callback="{{ expander() }}">
1219 <div class="memberList">
1220 <template repeat="{{ field in ref.fields }}">
1221 <div class="memberItem">
1222 <div class="memberName">
1223 {{ field['decl'].name }}
1224 </div>
1225 <div class="memberValue">
1226 <any-service-ref ref="{{ field['value'] }}"></any-service-ref>
1227 </div>
1228 </div>
1229 </template>
1230 </div>
1231 </curly-block>
1232 </template>
1233
1234 <template if="{{ ref.isList }}">
1235 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> ({{ ref.length }})</a>
1236 <curly-block callback="{{ expander() }}">
1237 <div class="memberList">
1238 <template repeat="{{ element in ref.elements }}">
1239 <div class="memberItem">
1240 <div class="memberName">[{{ element['index']}}]</div>
1241 <div class="memberValue">
1242 <any-service-ref ref="{{ element['value'] }}"></any-service-re f>
1243 </div>
1244 </div>
1245 </template>
1246 </div>
1247 </curly-block>
1248 </template>
1249
1250 <template if="{{ ref.isMirrorReference }}">
1251 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
1252 <curly-block callback="{{ expander() }}">
1253 <div class="memberList">
1254 <div class="memberItem">
1255 <div class="memberName">referent</div>
1256 <div class="memberValue">
1257 <any-service-ref ref="{{ ref.referent }}"></any-service-ref>
1258 </div>
1259 </div>
1260 </div>
1261 </curly-block>
1262 </template>
1263
1264 <template if="{{ ref.isWeakProperty }}">
1265 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
1266 <curly-block callback="{{ expander() }}">
1267 <div class="memberList">
1268 <div class="memberItem">
1269 <div class="memberName">key</div>
1270 <div class="memberValue">
1271 <any-service-ref ref="{{ ref.key }}"></any-service-ref>
1272 </div>
1273 </div>
1274 <div class="memberItem">
1275 <div class="memberName">value</div>
1276 <div class="memberValue">
1277 <any-service-ref ref="{{ ref.value }}"></any-service-ref>
1278 </div>
1279 </div>
1280 </div>
1281 </curly-block>
1282 </template>
1283 </span>
1284 </template>
1285 </polymer-element>
1286
1287
1288 <polymer-element name="action-link">
1289 <template>
1290 <style>
1291 .idle {
1292 color: #0489c3;
1293 cursor: pointer;
1294 text-decoration: none;
1295 }
1296 .idle:hover {
1297 text-decoration: underline;
1298 }
1299 .busy {
1300 color: #aaa;
1301 cursor: wait;
1302 text-decoration: none;
1303 }
1304 </style>
1305
1306 <template if="{{ busy }}">
1307 <span class="busy">[{{ label }}]</span>
1308 </template>
1309 <template if="{{ !busy }}">
1310 <template if="{{ color == null }}">
1311 <span class="idle"><a on-click="{{ doAction }}">[{{ label }}]</a></span>
1312 </template>
1313 <template if="{{ color != null }}">
1314 <span class="idle" style="color:{{ color }}"><a on-click="{{ doAction }} ">[{{ label }}]</a></span>
1315 </template>
1316 </template>
1317 </template>
1318 </polymer-element>
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329 <polymer-element name="nav-bar" extends="observatory-element">
1330 <template>
1331 <style>
1332 /* Global styles */
1333 * {
1334 margin: 0;
1335 padding: 0;
1336 font: 400 14px 'Montserrat', sans-serif;
1337 color: #333;
1338 box-sizing: border-box;
1339 }
1340
1341 .content {
1342 padding-left: 10%;
1343 font: 400 14px 'Montserrat', sans-serif;
1344 }
1345
1346 .content-centered {
1347 padding-left: 10%;
1348 padding-right: 10%;
1349 font: 400 14px 'Montserrat', sans-serif;
1350 }
1351
1352 .content-centered-big {
1353 padding-left: 5%;
1354 padding-right: 5%;
1355 font: 400 14px 'Montserrat', sans-serif;
1356 }
1357
1358 h1 {
1359 font: 400 18px 'Montserrat', sans-serif;
1360 }
1361
1362 .memberList {
1363 display: table;
1364 }
1365
1366 .memberItem {
1367 display: table-row;
1368 }
1369
1370 .memberName, .memberValue {
1371 display: table-cell;
1372 vertical-align: top;
1373 padding: 3px 0 3px 1em;
1374 font: 400 14px 'Montserrat', sans-serif;
1375 }
1376
1377 .memberSmall {
1378 display: table-cell;
1379 vertical-align: top;
1380 padding: 3px 0 3px 1em;
1381 font: 400 12px 'Montserrat', sans-serif;
1382 }
1383
1384 .monospace {
1385 font-family: consolas, courier, monospace;
1386 font-size: 1em;
1387 line-height: 1.2em;
1388 white-space: nowrap;
1389 }
1390
1391 a {
1392 color: #0489c3;
1393 text-decoration: none;
1394 }
1395
1396 a:hover {
1397 text-decoration: underline;
1398 }
1399
1400 em {
1401 color: inherit;
1402 font-style: italic;
1403 }
1404
1405 b {
1406 color: inherit;
1407 font-weight: bold;
1408 }
1409
1410 hr {
1411 margin-top: 20px;
1412 margin-bottom: 20px;
1413 border: 0;
1414 border-top: 1px solid #eee;
1415 height: 0;
1416 box-sizing: content-box;
1417 }
1418
1419 .list-group {
1420 padding-left: 0;
1421 margin-bottom: 20px;
1422 }
1423
1424 .list-group-item {
1425 position: relative;
1426 display: block;
1427 padding: 10px 15px;
1428 margin-bottom: -1px;
1429 background-color: #fff;
1430 }
1431
1432 .list-group-item:first-child {
1433 /* rounded top corners */
1434 border-top-right-radius:4px;
1435 border-top-left-radius:4px;
1436 }
1437
1438 .list-group-item:last-child {
1439 margin-bottom: 0;
1440 /* rounded bottom corners */
1441 border-bottom-right-radius: 4px;
1442 border-bottom-left-radius:4px;
1443 }
1444
1445 /* Flex row container */
1446 .flex-row {
1447 display: flex;
1448 flex-direction: row;
1449 }
1450
1451 /* Flex column container */
1452 .flex-column {
1453 display: flex;
1454 flex-direction: column;
1455 }
1456
1457 .flex-item-fit {
1458 flex-grow: 1;
1459 flex-shrink: 1;
1460 flex-basis: auto;
1461 }
1462
1463 .flex-item-no-shrink {
1464 flex-grow: 0;
1465 flex-shrink: 0;
1466 flex-basis: auto;
1467 }
1468
1469 .flex-item-fill {
1470 flex-grow: 0;
1471 flex-shrink: 1; /* shrink when pressured */
1472 flex-basis: 100%; /* try and take 100% */
1473 }
1474
1475 .flex-item-fixed-1-12 {
1476 flex-grow: 0;
1477 flex-shrink: 0;
1478 flex-basis: 8.3%;
1479 }
1480
1481 .flex-item-fixed-2-12 {
1482 flex-grow: 0;
1483 flex-shrink: 0;
1484 flex-basis: 16.6%;
1485 }
1486
1487 .flex-item-fixed-4-12 {
1488 flex-grow: 0;
1489 flex-shrink: 0;
1490 flex-basis: 33.3333%;
1491 }
1492
1493 .flex-item-fixed-6-12, .flex-item-50-percent {
1494 flex-grow: 0;
1495 flex-shrink: 0;
1496 flex-basis: 50%;
1497 }
1498
1499 .flex-item-fixed-8-12 {
1500 flex-grow: 0;
1501 flex-shrink: 0;
1502 flex-basis: 66.6666%;
1503 }
1504
1505 .flex-item-fixed-9-12 {
1506 flex-grow: 0;
1507 flex-shrink: 0;
1508 flex-basis: 75%;
1509 }
1510
1511
1512 .flex-item-fixed-12-12 {
1513 flex-grow: 0;
1514 flex-shrink: 0;
1515 flex-basis: 100%;
1516 }
1517
1518 .flex-item-10-percent {
1519 flex-grow: 0;
1520 flex-shrink: 0;
1521 flex-basis: 10%;
1522 }
1523
1524 .flex-item-15-percent {
1525 flex-grow: 0;
1526 flex-shrink: 0;
1527 flex-basis: 15%;
1528 }
1529
1530 .flex-item-20-percent {
1531 flex-grow: 0;
1532 flex-shrink: 0;
1533 flex-basis: 20%;
1534 }
1535
1536 .flex-item-30-percent {
1537 flex-grow: 0;
1538 flex-shrink: 0;
1539 flex-basis: 30%;
1540 }
1541
1542 .flex-item-40-percent {
1543 flex-grow: 0;
1544 flex-shrink: 0;
1545 flex-basis: 40%;
1546 }
1547
1548 .flex-item-50-percent {
1549 flex-grow: 0;
1550 flex-shrink: 0;
1551 flex-basis: 50%;
1552 }
1553
1554 .flex-item-60-percent {
1555 flex-grow: 0;
1556 flex-shrink: 0;
1557 flex-basis: 60%;
1558 }
1559
1560 .flex-item-70-percent {
1561 flex-grow: 0;
1562 flex-shrink: 0;
1563 flex-basis: 70%;
1564 }
1565
1566 .flex-item-80-percent {
1567 flex-grow: 0;
1568 flex-shrink: 0;
1569 flex-basis: 80%;
1570 }
1571
1572 .well {
1573 min-height: 20px;
1574 padding: 19px;
1575 margin-bottom: 20px;
1576 background-color: #f5f5f5;
1577 border: 1px solid #e3e3e3;
1578 border-radius: 4px;
1579 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
1580 }
1581
1582 .break-wrap {
1583 word-wrap: break-word;
1584 }
1585 </style>
1586 <style>
1320 nav { 1587 nav {
1321 position: fixed; 1588 position: fixed;
1322 width: 100%; 1589 width: 100%;
1323 z-index: 1000; 1590 z-index: 1000;
1324 } 1591 }
1325 nav ul { 1592 nav ul {
1326 display: inline-table; 1593 display: inline-table;
1327 position: relative; 1594 position: relative;
1328 list-style: none; 1595 list-style: none;
1329 padding-left: 0; 1596 padding-left: 0;
(...skipping 13517 matching lines...) Expand 10 before | Expand all | Expand 10 after
14847 </style> 15114 </style>
14848 <div class="memberList"> 15115 <div class="memberList">
14849 15116
14850 <div class="memberItem"> 15117 <div class="memberItem">
14851 <div class="memberName">class</div> 15118 <div class="memberName">class</div>
14852 <div class="memberValue"> 15119 <div class="memberValue">
14853 <class-ref ref="{{ object.clazz }}"></class-ref> 15120 <class-ref ref="{{ object.clazz }}"></class-ref>
14854 </div> 15121 </div>
14855 </div> 15122 </div>
14856 15123
14857 <div class="memberItem" title="Space for this object in memory"> 15124 <template if="{{ object.size != null }}">
14858 <div class="memberName">size</div> 15125 <div class="memberItem" title="Space for this object in memory">
14859 <div class="memberValue">{{ object.size | formatSize }}</div> 15126 <div class="memberName">size</div>
14860 </div> 15127 <div class="memberValue">{{ object.size | formatSize }}</div>
15128 </div>
15129 </template>
15130
15131 <template if="{{ object.size == null }}">
15132 <div class="memberItem" title="Space for this object in memory">
15133 <div class="memberName">size</div>
15134 <div class="memberValue">0</div>
15135 </div>
15136 </template>
14861 15137
14862 <div class="memberItem" title="Space that would be reclaimed if references to this object were replaced with null"> 15138 <div class="memberItem" title="Space that would be reclaimed if references to this object were replaced with null">
14863 <div class="memberName">retained size</div> 15139 <div class="memberName">retained size</div>
14864 <div class="memberValue"> 15140 <div class="memberValue">
14865 <template if="{{ retainedBytes == null }}"> 15141 <template if="{{ retainedBytes == null }}">
14866 <eval-link callback="{{ retainedSize }}" label="[calculate]"> 15142 <eval-link callback="{{ retainedSize }}" label="[calculate]">
14867 </eval-link> 15143 </eval-link>
14868 </template> 15144 </template>
14869 <template if="{{ retainedBytes != null }}"> 15145 <template if="{{ retainedBytes != null }}">
14870 {{ retainedBytes | formatSize }} 15146 {{ retainedBytes | formatSize }}
(...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after
15662 15938
15663 15939
15664 15940
15665 15941
15666 15942
15667 15943
15668 <polymer-element name="library-view" extends="observatory-element"> 15944 <polymer-element name="library-view" extends="observatory-element">
15669 <template> 15945 <template>
15670 <style> 15946 <style>
15671 /* Global styles */ 15947 /* Global styles */
15948 * {
15949 margin: 0;
15950 padding: 0;
15951 font: 400 14px 'Montserrat', sans-serif;
15952 color: #333;
15953 box-sizing: border-box;
15954 }
15955
15956 .content {
15957 padding-left: 10%;
15958 font: 400 14px 'Montserrat', sans-serif;
15959 }
15960
15961 .content-centered {
15962 padding-left: 10%;
15963 padding-right: 10%;
15964 font: 400 14px 'Montserrat', sans-serif;
15965 }
15966
15967 .content-centered-big {
15968 padding-left: 5%;
15969 padding-right: 5%;
15970 font: 400 14px 'Montserrat', sans-serif;
15971 }
15972
15973 h1 {
15974 font: 400 18px 'Montserrat', sans-serif;
15975 }
15976
15977 .memberList {
15978 display: table;
15979 }
15980
15981 .memberItem {
15982 display: table-row;
15983 }
15984
15985 .memberName, .memberValue {
15986 display: table-cell;
15987 vertical-align: top;
15988 padding: 3px 0 3px 1em;
15989 font: 400 14px 'Montserrat', sans-serif;
15990 }
15991
15992 .memberSmall {
15993 display: table-cell;
15994 vertical-align: top;
15995 padding: 3px 0 3px 1em;
15996 font: 400 12px 'Montserrat', sans-serif;
15997 }
15998
15999 .monospace {
16000 font-family: consolas, courier, monospace;
16001 font-size: 1em;
16002 line-height: 1.2em;
16003 white-space: nowrap;
16004 }
16005
16006 a {
16007 color: #0489c3;
16008 text-decoration: none;
16009 }
16010
16011 a:hover {
16012 text-decoration: underline;
16013 }
16014
16015 em {
16016 color: inherit;
16017 font-style: italic;
16018 }
16019
16020 b {
16021 color: inherit;
16022 font-weight: bold;
16023 }
16024
16025 hr {
16026 margin-top: 20px;
16027 margin-bottom: 20px;
16028 border: 0;
16029 border-top: 1px solid #eee;
16030 height: 0;
16031 box-sizing: content-box;
16032 }
16033
16034 .list-group {
16035 padding-left: 0;
16036 margin-bottom: 20px;
16037 }
16038
16039 .list-group-item {
16040 position: relative;
16041 display: block;
16042 padding: 10px 15px;
16043 margin-bottom: -1px;
16044 background-color: #fff;
16045 }
16046
16047 .list-group-item:first-child {
16048 /* rounded top corners */
16049 border-top-right-radius:4px;
16050 border-top-left-radius:4px;
16051 }
16052
16053 .list-group-item:last-child {
16054 margin-bottom: 0;
16055 /* rounded bottom corners */
16056 border-bottom-right-radius: 4px;
16057 border-bottom-left-radius:4px;
16058 }
16059
16060 /* Flex row container */
16061 .flex-row {
16062 display: flex;
16063 flex-direction: row;
16064 }
16065
16066 /* Flex column container */
16067 .flex-column {
16068 display: flex;
16069 flex-direction: column;
16070 }
16071
16072 .flex-item-fit {
16073 flex-grow: 1;
16074 flex-shrink: 1;
16075 flex-basis: auto;
16076 }
16077
16078 .flex-item-no-shrink {
16079 flex-grow: 0;
16080 flex-shrink: 0;
16081 flex-basis: auto;
16082 }
16083
16084 .flex-item-fill {
16085 flex-grow: 0;
16086 flex-shrink: 1; /* shrink when pressured */
16087 flex-basis: 100%; /* try and take 100% */
16088 }
16089
16090 .flex-item-fixed-1-12 {
16091 flex-grow: 0;
16092 flex-shrink: 0;
16093 flex-basis: 8.3%;
16094 }
16095
16096 .flex-item-fixed-2-12 {
16097 flex-grow: 0;
16098 flex-shrink: 0;
16099 flex-basis: 16.6%;
16100 }
16101
16102 .flex-item-fixed-4-12 {
16103 flex-grow: 0;
16104 flex-shrink: 0;
16105 flex-basis: 33.3333%;
16106 }
16107
16108 .flex-item-fixed-6-12, .flex-item-50-percent {
16109 flex-grow: 0;
16110 flex-shrink: 0;
16111 flex-basis: 50%;
16112 }
16113
16114 .flex-item-fixed-8-12 {
16115 flex-grow: 0;
16116 flex-shrink: 0;
16117 flex-basis: 66.6666%;
16118 }
16119
16120 .flex-item-fixed-9-12 {
16121 flex-grow: 0;
16122 flex-shrink: 0;
16123 flex-basis: 75%;
16124 }
16125
16126
16127 .flex-item-fixed-12-12 {
16128 flex-grow: 0;
16129 flex-shrink: 0;
16130 flex-basis: 100%;
16131 }
16132
16133 .flex-item-10-percent {
16134 flex-grow: 0;
16135 flex-shrink: 0;
16136 flex-basis: 10%;
16137 }
16138
16139 .flex-item-15-percent {
16140 flex-grow: 0;
16141 flex-shrink: 0;
16142 flex-basis: 15%;
16143 }
16144
16145 .flex-item-20-percent {
16146 flex-grow: 0;
16147 flex-shrink: 0;
16148 flex-basis: 20%;
16149 }
16150
16151 .flex-item-30-percent {
16152 flex-grow: 0;
16153 flex-shrink: 0;
16154 flex-basis: 30%;
16155 }
16156
16157 .flex-item-40-percent {
16158 flex-grow: 0;
16159 flex-shrink: 0;
16160 flex-basis: 40%;
16161 }
16162
16163 .flex-item-50-percent {
16164 flex-grow: 0;
16165 flex-shrink: 0;
16166 flex-basis: 50%;
16167 }
16168
16169 .flex-item-60-percent {
16170 flex-grow: 0;
16171 flex-shrink: 0;
16172 flex-basis: 60%;
16173 }
16174
16175 .flex-item-70-percent {
16176 flex-grow: 0;
16177 flex-shrink: 0;
16178 flex-basis: 70%;
16179 }
16180
16181 .flex-item-80-percent {
16182 flex-grow: 0;
16183 flex-shrink: 0;
16184 flex-basis: 80%;
16185 }
16186
16187 .well {
16188 min-height: 20px;
16189 padding: 19px;
16190 margin-bottom: 20px;
16191 background-color: #f5f5f5;
16192 border: 1px solid #e3e3e3;
16193 border-radius: 4px;
16194 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
16195 }
16196
16197 .break-wrap {
16198 word-wrap: break-word;
16199 }
16200 </style>
16201
16202 <nav-bar>
16203 <top-nav-menu></top-nav-menu>
16204 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
16205 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu>
16206 <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></n av-refresh>
16207 <nav-refresh callback="{{ refresh }}"></nav-refresh>
16208 <nav-control></nav-control>
16209 </nav-bar>
16210
16211 <div class="content">
16212 <h1>
16213 <!-- TODO(turnidge): Handle unnamed libraries -->
16214 library {{ library.name }}
16215 </h1>
16216 <div class="memberList">
16217 <div class="memberItem">
16218 <div class="memberName">url</div>
16219 <div class="memberValue">{{ library.url }}</div>
16220 </div>
16221 <template if="{{ library.name != library.vmName }}">
16222 <div class="memberItem">
16223 <div class="memberName">vm name</div>
16224 <div class="memberValue">{{ library.vmName }}</div>
16225 </div>
16226 </template>
16227 </div>
16228 </div>
16229
16230 <hr>
16231
16232 <div class="content">
16233 <template if="{{ library.imports.isNotEmpty }}">
16234 imports ({{ library.imports.length }})
16235 <curly-block expand="{{ library.imports.length <= 8 }}">
16236 <div class="memberList">
16237 <template repeat="{{ imp in library.imports }}">
16238 <div class="memberItem">
16239 <div class="memberValue">
16240 <library-ref ref="{{ imp }}"></library-ref>
16241 </div>
16242 </div>
16243 </template>
16244 </div>
16245 </curly-block><br>
16246 <br>
16247 </template>
16248
16249 <template if="{{ library.scripts.isNotEmpty }}">
16250 scripts ({{ library.scripts.length }})
16251 <curly-block expand="{{ library.scripts.length <= 8 }}">
16252 <div class="memberList">
16253 <template repeat="{{ script in library.scripts }}">
16254 <div class="memberItem">
16255 <div class="memberValue">
16256 <script-ref ref="{{ script }}"></script-ref>
16257 </div>
16258 </div>
16259 </template>
16260 </div>
16261 </curly-block><br>
16262 <br>
16263 </template>
16264
16265 <template if="{{ library.classes.isNotEmpty }}">
16266 classes ({{ library.classes.length }})
16267 <curly-block expand="{{ library.classes.length <= 8 }}">
16268 <div class="memberList">
16269 <template repeat="{{ cls in library.classes }}">
16270 <div class="memberItem">
16271 <div class="memberValue">
16272 <class-ref ref="{{ cls }}"></class-ref>
16273 </div>
16274 </div>
16275 </template>
16276 </div>
16277 </curly-block><br>
16278 <br>
16279 </template>
16280
16281 <template if="{{ library.variables.isNotEmpty }}">
16282 variables ({{ library.variables.length }})
16283 <curly-block expand="{{ library.variables.length <= 8 }}">
16284 <div class="memberList">
16285 <template repeat="{{ field in library.variables }}">
16286 <div class="memberItem">
16287 <div class="memberName">
16288 <field-ref ref="{{ field }}"></field-ref>
16289 </div>
16290 <div class="memberValue">
16291 <template if="{{ field['value'] != null }}">
16292 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
16293 </template>
16294 </div>
16295 </div>
16296 </template>
16297 </div>
16298 </curly-block><br>
16299 <br>
16300 </template>
16301
16302 <template if="{{ library.functions.isNotEmpty }}">
16303 functions ({{ library.functions.length }})
16304 <curly-block expand="{{ library.functions.length <= 8 }}">
16305 <div class="memberList">
16306 <template repeat="{{ function in library.functions }}">
16307 <div class="memberItem">
16308 <div class="memberValue">
16309 <function-ref ref="{{ function }}"></function-ref>
16310 </div>
16311 </div>
16312 </template>
16313 </div>
16314 </curly-block><br>
16315 <br>
16316 </template>
16317 </div>
16318
16319 <hr>
16320
16321 <div class="content">
16322 <eval-box callback="{{ eval }}"></eval-box>
16323 </div>
16324 <br><br><br><br>
16325 <br><br><br><br>
16326 </template>
16327 </polymer-element>
16328
16329
16330
16331
16332
16333
16334 <polymer-element name="metrics-page" extends="observatory-element">
16335 <template>
16336 <style>
16337 /* Global styles */
15672 * { 16338 * {
15673 margin: 0; 16339 margin: 0;
15674 padding: 0; 16340 padding: 0;
15675 font: 400 14px 'Montserrat', sans-serif; 16341 font: 400 14px 'Montserrat', sans-serif;
15676 color: #333; 16342 color: #333;
15677 box-sizing: border-box; 16343 box-sizing: border-box;
15678 } 16344 }
15679 16345
15680 .content { 16346 .content {
15681 padding-left: 10%; 16347 padding-left: 10%;
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
15915 background-color: #f5f5f5; 16581 background-color: #f5f5f5;
15916 border: 1px solid #e3e3e3; 16582 border: 1px solid #e3e3e3;
15917 border-radius: 4px; 16583 border-radius: 4px;
15918 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 16584 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
15919 } 16585 }
15920 16586
15921 .break-wrap { 16587 .break-wrap {
15922 word-wrap: break-word; 16588 word-wrap: break-word;
15923 } 16589 }
15924 </style> 16590 </style>
15925 16591 <style>
16592 ul li:hover:not(.selected) {
16593 background-color: #FFF3E3;
16594 }
16595 .selected {
16596 background-color: #0489c3;
16597 }
16598 .graph {
16599 min-height: 600px;
16600 }
16601 </style>
15926 <nav-bar> 16602 <nav-bar>
15927 <top-nav-menu></top-nav-menu> 16603 <top-nav-menu last="{{ true }}"></top-nav-menu>
15928 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
15929 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu>
15930 <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></n av-refresh>
15931 <nav-refresh callback="{{ refresh }}"></nav-refresh> 16604 <nav-refresh callback="{{ refresh }}"></nav-refresh>
15932 <nav-control></nav-control> 16605 <nav-control></nav-control>
15933 </nav-bar> 16606 </nav-bar>
15934 16607 <div class="flex-row">
15935 <div class="content"> 16608 <div class="flex-item-20-percent">
15936 <h1> 16609 <ul>
15937 <!-- TODO(turnidge): Handle unnamed libraries --> 16610 <template repeat="{{ metric in isolate.dartMetrics.values }}">
15938 library {{ library.name }} 16611 <template if="{{ metric == selectedMetric }}">
15939 </h1> 16612 <li class="selected">
15940 <div class="memberList"> 16613 {{ metric.name }}
15941 <div class="memberItem"> 16614 </li>
15942 <div class="memberName">url</div> 16615 </template>
15943 <div class="memberValue">{{ library.url }}</div> 16616 <template if="{{ metric != selectedMetric }}">
16617 <li on-click="{{ selectMetric }}" data-id="{{ metric.id }}">
16618 {{ metric.name }}
16619 </li>
16620 </template>
16621 </template>
16622 <template repeat="{{ metric in isolate.vmMetrics.values }}">
16623 <template if="{{ metric == selectedMetric }}">
16624 <li class="selected">
16625 {{ metric.name }}
16626 </li>
16627 </template>
16628 <template if="{{ metric != selectedMetric }}">
16629 <li on-click="{{ selectMetric }}" data-id="{{ metric.id }}">
16630 {{ metric.name }}
16631 </li>
16632 </template>
16633 </template>
16634 </ul>
16635 </div>
16636 <div class="flex-item-80-percent">
16637 <metrics-graph isolate="{{ isolate }}" metric="{{ selectedMetric }}">
16638 </metrics-graph>
16639 <div>
16640 <metric-details page="{{ page }}" metric="{{ selectedMetric }}">
16641 </metric-details>
15944 </div> 16642 </div>
15945 <template if="{{ library.name != library.vmName }}">
15946 <div class="memberItem">
15947 <div class="memberName">vm name</div>
15948 <div class="memberValue">{{ library.vmName }}</div>
15949 </div>
15950 </template>
15951 </div> 16643 </div>
15952 </div> 16644 </div>
15953
15954 <hr>
15955
15956 <div class="content">
15957 <template if="{{ library.imports.isNotEmpty }}">
15958 imports ({{ library.imports.length }})
15959 <curly-block expand="{{ library.imports.length <= 8 }}">
15960 <div class="memberList">
15961 <template repeat="{{ imp in library.imports }}">
15962 <div class="memberItem">
15963 <div class="memberValue">
15964 <library-ref ref="{{ imp }}"></library-ref>
15965 </div>
15966 </div>
15967 </template>
15968 </div>
15969 </curly-block><br>
15970 <br>
15971 </template>
15972
15973 <template if="{{ library.scripts.isNotEmpty }}">
15974 scripts ({{ library.scripts.length }})
15975 <curly-block expand="{{ library.scripts.length <= 8 }}">
15976 <div class="memberList">
15977 <template repeat="{{ script in library.scripts }}">
15978 <div class="memberItem">
15979 <div class="memberValue">
15980 <script-ref ref="{{ script }}"></script-ref>
15981 </div>
15982 </div>
15983 </template>
15984 </div>
15985 </curly-block><br>
15986 <br>
15987 </template>
15988
15989 <template if="{{ library.classes.isNotEmpty }}">
15990 classes ({{ library.classes.length }})
15991 <curly-block expand="{{ library.classes.length <= 8 }}">
15992 <div class="memberList">
15993 <template repeat="{{ cls in library.classes }}">
15994 <div class="memberItem">
15995 <div class="memberValue">
15996 <class-ref ref="{{ cls }}"></class-ref>
15997 </div>
15998 </div>
15999 </template>
16000 </div>
16001 </curly-block><br>
16002 <br>
16003 </template>
16004
16005 <template if="{{ library.variables.isNotEmpty }}">
16006 variables ({{ library.variables.length }})
16007 <curly-block expand="{{ library.variables.length <= 8 }}">
16008 <div class="memberList">
16009 <template repeat="{{ field in library.variables }}">
16010 <div class="memberItem">
16011 <div class="memberName">
16012 <field-ref ref="{{ field }}"></field-ref>
16013 </div>
16014 <div class="memberValue">
16015 <template if="{{ field['value'] != null }}">
16016 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
16017 </template>
16018 </div>
16019 </div>
16020 </template>
16021 </div>
16022 </curly-block><br>
16023 <br>
16024 </template>
16025
16026 <template if="{{ library.functions.isNotEmpty }}">
16027 functions ({{ library.functions.length }})
16028 <curly-block expand="{{ library.functions.length <= 8 }}">
16029 <div class="memberList">
16030 <template repeat="{{ function in library.functions }}">
16031 <div class="memberItem">
16032 <div class="memberValue">
16033 <function-ref ref="{{ function }}"></function-ref>
16034 </div>
16035 </div>
16036 </template>
16037 </div>
16038 </curly-block><br>
16039 <br>
16040 </template>
16041 </div>
16042
16043 <hr>
16044
16045 <div class="content">
16046 <eval-box callback="{{ eval }}"></eval-box>
16047 </div>
16048 <br><br><br><br>
16049 <br><br><br><br>
16050 </template> 16645 </template>
16051 </polymer-element> 16646 </polymer-element>
16052 16647
16053 16648 <polymer-element name="metric-details" extends="observatory-element">
16054
16055
16056
16057
16058 <polymer-element name="metrics-page" extends="observatory-element">
16059 <template> 16649 <template>
16060 <style> 16650 <style>
16061 /* Global styles */ 16651 /* Global styles */
16062 * { 16652 * {
16063 margin: 0; 16653 margin: 0;
16064 padding: 0; 16654 padding: 0;
16065 font: 400 14px 'Montserrat', sans-serif; 16655 font: 400 14px 'Montserrat', sans-serif;
16066 color: #333; 16656 color: #333;
16067 box-sizing: border-box; 16657 box-sizing: border-box;
16068 } 16658 }
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
16305 background-color: #f5f5f5; 16895 background-color: #f5f5f5;
16306 border: 1px solid #e3e3e3; 16896 border: 1px solid #e3e3e3;
16307 border-radius: 4px; 16897 border-radius: 4px;
16308 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 16898 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
16309 } 16899 }
16310 16900
16311 .break-wrap { 16901 .break-wrap {
16312 word-wrap: break-word; 16902 word-wrap: break-word;
16313 } 16903 }
16314 </style> 16904 </style>
16315 <style> 16905 <div class="content-centered">
16316 ul li:hover:not(.selected) { 16906 <div class="memberList">
16317 background-color: #FFF3E3; 16907 <div class="memberItem">
16318 } 16908 <div class="memberName">name</div>
16319 .selected { 16909 <div class="memberValue">{{ metric.name }}</div>
16320 background-color: #0489c3; 16910 </div>
16321 } 16911 <div class="memberItem">
16322 .graph { 16912 <div class="memberName">description</div>
16323 min-height: 600px; 16913 <div class="memberValue">{{ metric.description }}</div>
16324 } 16914 </div>
16325 </style> 16915 <div class="memberItem">
16326 <nav-bar> 16916 <div class="memberName">current value</div>
16327 <top-nav-menu last="{{ true }}"></top-nav-menu> 16917 <div class="memberValue">{{ metric.value }}</div>
16328 <nav-refresh callback="{{ refresh }}"></nav-refresh> 16918 </div>
16329 <nav-control></nav-control> 16919 <template if="{{ (metric != null) &amp;&amp; (metric.min != null) }}">
16330 </nav-bar> 16920 <div class="memberItem">
16331 <div class="flex-row"> 16921 <div class="memberName">minimum</div>
16332 <div class="flex-item-20-percent"> 16922 <div class="memberValue">{{ metric.min }}</div>
16333 <ul> 16923 </div>
16334 <template repeat="{{ metric in isolate.dartMetrics.values }}"> 16924 </template>
16335 <template if="{{ metric == selectedMetric }}"> 16925 <template if="{{ (metric != null) &amp;&amp; (metric.max != null) }}">
16336 <li class="selected"> 16926 <div class="memberItem">
16337 {{ metric.name }} 16927 <div class="memberName">maximum</div>
16338 </li> 16928 <div class="memberValue">{{ metric.max }}</div>
16339 </template> 16929 </div>
16340 <template if="{{ metric != selectedMetric }}"> 16930 </template>
16341 <li on-click="{{ selectMetric }}" data-id="{{ metric.id }}"> 16931 <div class="memberItem">
16342 {{ metric.name }} 16932 <div class="memberName">refresh rate</div>
16343 </li> 16933 <div class="memberValue">
16344 </template> 16934 <select id="refreshrate" on-change="{{ refreshRateChange }}">
16345 </template> 16935 <!-- These must be kept in sync with POLL_PERIODS in MetricsPage
16346 <template repeat="{{ metric in isolate.vmMetrics.values }}"> 16936 in object.dart -->
16347 <template if="{{ metric == selectedMetric }}"> 16937 <option value="8000">Every eight seconds</option>
16348 <li class="selected"> 16938 <option value="4000">Every four seconds</option>
16349 {{ metric.name }} 16939 <option value="2000">Every two seconds</option>
16350 </li> 16940 <option value="1000">Once a second</option>
16351 </template> 16941 <option value="100">Ten times per second</option>
16352 <template if="{{ metric != selectedMetric }}"> 16942 <option value="0" selected="selected">Never</option>
16353 <li on-click="{{ selectMetric }}" data-id="{{ metric.id }}"> 16943 </select>
16354 {{ metric.name }} 16944 </div>
16355 </li> 16945 </div>
16356 </template> 16946 <div class="memberItem">
16357 </template> 16947 <div class="memberName">sample buffer size</div>
16358 </ul> 16948 <div class="memberValue">
16359 </div> 16949 <select id="buffersize" on-change="{{ sampleBufferSizeChange }}">
16360 <div class="flex-item-80-percent"> 16950 <option value="10">10</option>
16361 <metrics-graph isolate="{{ isolate }}" metric="{{ selectedMetric }}"> 16951 <option value="100" selected="selected">100</option>
16362 </metrics-graph> 16952 <option value="1000">1000</option>
16363 <div> 16953 </select>
16364 <metric-details page="{{ page }}" metric="{{ selectedMetric }}"> 16954 </div>
16365 </metric-details>
16366 </div> 16955 </div>
16367 </div> 16956 </div>
16368 </div> 16957 </div>
16369 </template> 16958 </template>
16370 </polymer-element> 16959 </polymer-element>
16371 16960
16372 <polymer-element name="metric-details" extends="observatory-element"> 16961 <polymer-element name="metrics-graph" extends="observatory-element">
16373 <template> 16962 <template>
16374 <style> 16963 <style>
16375 /* Global styles */ 16964 /* Global styles */
16376 * { 16965 * {
16377 margin: 0; 16966 margin: 0;
16378 padding: 0; 16967 padding: 0;
16379 font: 400 14px 'Montserrat', sans-serif; 16968 font: 400 14px 'Montserrat', sans-serif;
16380 color: #333; 16969 color: #333;
16381 box-sizing: border-box; 16970 box-sizing: border-box;
16382 } 16971 }
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
16619 background-color: #f5f5f5; 17208 background-color: #f5f5f5;
16620 border: 1px solid #e3e3e3; 17209 border: 1px solid #e3e3e3;
16621 border-radius: 4px; 17210 border-radius: 4px;
16622 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 17211 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
16623 } 17212 }
16624 17213
16625 .break-wrap { 17214 .break-wrap {
16626 word-wrap: break-word; 17215 word-wrap: break-word;
16627 } 17216 }
16628 </style> 17217 </style>
16629 <div class="content-centered"> 17218 <style>
16630 <div class="memberList"> 17219 .graph {
16631 <div class="memberItem"> 17220 min-height: 600px;
16632 <div class="memberName">name</div> 17221 }
16633 <div class="memberValue">{{ metric.name }}</div> 17222 </style>
16634 </div> 17223 <div id="graph" class="graph">
16635 <div class="memberItem">
16636 <div class="memberName">description</div>
16637 <div class="memberValue">{{ metric.description }}</div>
16638 </div>
16639 <div class="memberItem">
16640 <div class="memberName">current value</div>
16641 <div class="memberValue">{{ metric.value }}</div>
16642 </div>
16643 <template if="{{ (metric != null) &amp;&amp; (metric.min != null) }}">
16644 <div class="memberItem">
16645 <div class="memberName">minimum</div>
16646 <div class="memberValue">{{ metric.min }}</div>
16647 </div>
16648 </template>
16649 <template if="{{ (metric != null) &amp;&amp; (metric.max != null) }}">
16650 <div class="memberItem">
16651 <div class="memberName">maximum</div>
16652 <div class="memberValue">{{ metric.max }}</div>
16653 </div>
16654 </template>
16655 <div class="memberItem">
16656 <div class="memberName">refresh rate</div>
16657 <div class="memberValue">
16658 <select id="refreshrate" on-change="{{ refreshRateChange }}">
16659 <!-- These must be kept in sync with POLL_PERIODS in MetricsPage
16660 in object.dart -->
16661 <option value="8000">Every eight seconds</option>
16662 <option value="4000">Every four seconds</option>
16663 <option value="2000">Every two seconds</option>
16664 <option value="1000">Once a second</option>
16665 <option value="100">Ten times per second</option>
16666 <option value="0" selected="selected">Never</option>
16667 </select>
16668 </div>
16669 </div>
16670 <div class="memberItem">
16671 <div class="memberName">sample buffer size</div>
16672 <div class="memberValue">
16673 <select id="buffersize" on-change="{{ sampleBufferSizeChange }}">
16674 <option value="10">10</option>
16675 <option value="100" selected="selected">100</option>
16676 <option value="1000">1000</option>
16677 </select>
16678 </div>
16679 </div>
16680 </div>
16681 </div> 17224 </div>
16682 </template> 17225 </template>
16683 </polymer-element> 17226 </polymer-element>
16684 17227
16685 <polymer-element name="metrics-graph" extends="observatory-element"> 17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241 <polymer-element name="object-view" extends="observatory-element">
16686 <template> 17242 <template>
16687 <style> 17243 <style>
16688 /* Global styles */ 17244 /* Global styles */
16689 * { 17245 * {
16690 margin: 0; 17246 margin: 0;
16691 padding: 0; 17247 padding: 0;
16692 font: 400 14px 'Montserrat', sans-serif; 17248 font: 400 14px 'Montserrat', sans-serif;
16693 color: #333; 17249 color: #333;
16694 box-sizing: border-box; 17250 box-sizing: border-box;
16695 } 17251 }
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
16932 background-color: #f5f5f5; 17488 background-color: #f5f5f5;
16933 border: 1px solid #e3e3e3; 17489 border: 1px solid #e3e3e3;
16934 border-radius: 4px; 17490 border-radius: 4px;
16935 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 17491 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
16936 } 17492 }
16937 17493
16938 .break-wrap { 17494 .break-wrap {
16939 word-wrap: break-word; 17495 word-wrap: break-word;
16940 } 17496 }
16941 </style> 17497 </style>
16942 <style> 17498 <nav-bar>
16943 .graph { 17499 <top-nav-menu></top-nav-menu>
16944 min-height: 600px; 17500 <isolate-nav-menu isolate="{{ object.isolate }}"></isolate-nav-menu>
16945 } 17501 <nav-menu link="." anchor="object" last="{{ true }}"></nav-menu>
16946 </style> 17502 <nav-refresh callback="{{ refresh }}"></nav-refresh>
16947 <div id="graph" class="graph"> 17503 <nav-control></nav-control>
17504 </nav-bar>
17505
17506 <div class="content">
17507 <object-common object="{{ object }}"></object-common>
16948 </div> 17508 </div>
17509
17510 <hr>
16949 </template> 17511 </template>
16950 </polymer-element> 17512 </polymer-element>
16951 17513
16952 17514
16953 17515
16954 17516
16955 17517
16956 17518
16957 17519
16958 17520
(...skipping 4471 matching lines...) Expand 10 before | Expand all | Expand 10 after
21430 </style> 21992 </style>
21431 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a> 21993 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a>
21432 </template> 21994 </template>
21433 </polymer-element> 21995 </polymer-element>
21434 21996
21435 21997
21436 21998
21437 <observatory-application devtools="true"></observatory-application> 21999 <observatory-application devtools="true"></observatory-application>
21438 22000
21439 <script src="index_devtools.html_bootstrap.dart.js" async=""></script></body></h tml> 22001 <script src="index_devtools.html_bootstrap.dart.js" async=""></script></body></h tml>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698