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

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

Issue 299143007: Show flags in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js + code review Created 6 years, 6 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
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html._data » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html><html><head> 1 <!DOCTYPE html><html><head>
2 <meta charset="utf-8"> 2 <meta charset="utf-8">
3 <title>Dart VM Observatory</title> 3 <title>Dart VM Observatory</title>
4 4
5 5
6 6
7 7
8 8
9 9
10 </head> 10 </head>
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 color: #0489c3; 114 color: #0489c3;
115 text-decoration: none; 115 text-decoration: none;
116 } 116 }
117 117
118 a:hover { 118 a:hover {
119 text-decoration: underline; 119 text-decoration: underline;
120 } 120 }
121 121
122 em { 122 em {
123 color: inherit; 123 color: inherit;
124 font-style:italic; 124 font-style: italic;
125 }
126
127 b {
128 color: inherit;
129 font-weight: bold;
125 } 130 }
126 131
127 hr { 132 hr {
128 margin-top: 20px; 133 margin-top: 20px;
129 margin-bottom: 20px; 134 margin-bottom: 20px;
130 border: 0; 135 border: 0;
131 border-top: 1px solid #eee; 136 border-top: 1px solid #eee;
132 height: 0; 137 height: 0;
133 box-sizing: content-box; 138 box-sizing: content-box;
134 } 139 }
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 332
328 333
329 334
330 335
331 336
332 337
333 338
334 339
335 340
336 341
342
337 343
338 344
339 345
340 346
341 347
342 348
343 <polymer-element name="curly-block"> 349 <polymer-element name="curly-block">
344 <template> 350 <template>
345 <style> 351 <style>
346 .idle { 352 .idle {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 color: #0489c3; 446 color: #0489c3;
441 text-decoration: none; 447 text-decoration: none;
442 } 448 }
443 449
444 a:hover { 450 a:hover {
445 text-decoration: underline; 451 text-decoration: underline;
446 } 452 }
447 453
448 em { 454 em {
449 color: inherit; 455 color: inherit;
450 font-style:italic; 456 font-style: italic;
457 }
458
459 b {
460 color: inherit;
461 font-weight: bold;
451 } 462 }
452 463
453 hr { 464 hr {
454 margin-top: 20px; 465 margin-top: 20px;
455 margin-bottom: 20px; 466 margin-bottom: 20px;
456 border: 0; 467 border: 0;
457 border-top: 1px solid #eee; 468 border-top: 1px solid #eee;
458 height: 0; 469 height: 0;
459 box-sizing: content-box; 470 box-sizing: content-box;
460 } 471 }
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 color: #0489c3; 793 color: #0489c3;
783 text-decoration: none; 794 text-decoration: none;
784 } 795 }
785 796
786 a:hover { 797 a:hover {
787 text-decoration: underline; 798 text-decoration: underline;
788 } 799 }
789 800
790 em { 801 em {
791 color: inherit; 802 color: inherit;
792 font-style:italic; 803 font-style: italic;
804 }
805
806 b {
807 color: inherit;
808 font-weight: bold;
793 } 809 }
794 810
795 hr { 811 hr {
796 margin-top: 20px; 812 margin-top: 20px;
797 margin-bottom: 20px; 813 margin-bottom: 20px;
798 border: 0; 814 border: 0;
799 border-top: 1px solid #eee; 815 border-top: 1px solid #eee;
800 height: 0; 816 height: 0;
801 box-sizing: content-box; 817 box-sizing: content-box;
802 } 818 }
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
1213 color: #0489c3; 1229 color: #0489c3;
1214 text-decoration: none; 1230 text-decoration: none;
1215 } 1231 }
1216 1232
1217 a:hover { 1233 a:hover {
1218 text-decoration: underline; 1234 text-decoration: underline;
1219 } 1235 }
1220 1236
1221 em { 1237 em {
1222 color: inherit; 1238 color: inherit;
1223 font-style:italic; 1239 font-style: italic;
1240 }
1241
1242 b {
1243 color: inherit;
1244 font-weight: bold;
1224 } 1245 }
1225 1246
1226 hr { 1247 hr {
1227 margin-top: 20px; 1248 margin-top: 20px;
1228 margin-bottom: 20px; 1249 margin-bottom: 20px;
1229 border: 0; 1250 border: 0;
1230 border-top: 1px solid #eee; 1251 border-top: 1px solid #eee;
1231 height: 0; 1252 height: 0;
1232 box-sizing: content-box; 1253 box-sizing: content-box;
1233 } 1254 }
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1471 color: #0489c3; 1492 color: #0489c3;
1472 text-decoration: none; 1493 text-decoration: none;
1473 } 1494 }
1474 1495
1475 a:hover { 1496 a:hover {
1476 text-decoration: underline; 1497 text-decoration: underline;
1477 } 1498 }
1478 1499
1479 em { 1500 em {
1480 color: inherit; 1501 color: inherit;
1481 font-style:italic; 1502 font-style: italic;
1503 }
1504
1505 b {
1506 color: inherit;
1507 font-weight: bold;
1482 } 1508 }
1483 1509
1484 hr { 1510 hr {
1485 margin-top: 20px; 1511 margin-top: 20px;
1486 margin-bottom: 20px; 1512 margin-bottom: 20px;
1487 border: 0; 1513 border: 0;
1488 border-top: 1px solid #eee; 1514 border-top: 1px solid #eee;
1489 height: 0; 1515 height: 0;
1490 box-sizing: content-box; 1516 box-sizing: content-box;
1491 } 1517 }
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
1833 color: #0489c3; 1859 color: #0489c3;
1834 text-decoration: none; 1860 text-decoration: none;
1835 } 1861 }
1836 1862
1837 a:hover { 1863 a:hover {
1838 text-decoration: underline; 1864 text-decoration: underline;
1839 } 1865 }
1840 1866
1841 em { 1867 em {
1842 color: inherit; 1868 color: inherit;
1843 font-style:italic; 1869 font-style: italic;
1870 }
1871
1872 b {
1873 color: inherit;
1874 font-weight: bold;
1844 } 1875 }
1845 1876
1846 hr { 1877 hr {
1847 margin-top: 20px; 1878 margin-top: 20px;
1848 margin-bottom: 20px; 1879 margin-bottom: 20px;
1849 border: 0; 1880 border: 0;
1850 border-top: 1px solid #eee; 1881 border-top: 1px solid #eee;
1851 height: 0; 1882 height: 0;
1852 box-sizing: content-box; 1883 box-sizing: content-box;
1853 } 1884 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
2084 color: #0489c3; 2115 color: #0489c3;
2085 text-decoration: none; 2116 text-decoration: none;
2086 } 2117 }
2087 2118
2088 a:hover { 2119 a:hover {
2089 text-decoration: underline; 2120 text-decoration: underline;
2090 } 2121 }
2091 2122
2092 em { 2123 em {
2093 color: inherit; 2124 color: inherit;
2094 font-style:italic; 2125 font-style: italic;
2126 }
2127
2128 b {
2129 color: inherit;
2130 font-weight: bold;
2095 } 2131 }
2096 2132
2097 hr { 2133 hr {
2098 margin-top: 20px; 2134 margin-top: 20px;
2099 margin-bottom: 20px; 2135 margin-bottom: 20px;
2100 border: 0; 2136 border: 0;
2101 border-top: 1px solid #eee; 2137 border-top: 1px solid #eee;
2102 height: 0; 2138 height: 0;
2103 box-sizing: content-box; 2139 box-sizing: content-box;
2104 } 2140 }
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
2328 color: #0489c3; 2364 color: #0489c3;
2329 text-decoration: none; 2365 text-decoration: none;
2330 } 2366 }
2331 2367
2332 a:hover { 2368 a:hover {
2333 text-decoration: underline; 2369 text-decoration: underline;
2334 } 2370 }
2335 2371
2336 em { 2372 em {
2337 color: inherit; 2373 color: inherit;
2338 font-style:italic; 2374 font-style: italic;
2375 }
2376
2377 b {
2378 color: inherit;
2379 font-weight: bold;
2339 } 2380 }
2340 2381
2341 hr { 2382 hr {
2342 margin-top: 20px; 2383 margin-top: 20px;
2343 margin-bottom: 20px; 2384 margin-bottom: 20px;
2344 border: 0; 2385 border: 0;
2345 border-top: 1px solid #eee; 2386 border-top: 1px solid #eee;
2346 height: 0; 2387 height: 0;
2347 box-sizing: content-box; 2388 box-sizing: content-box;
2348 } 2389 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
2573 color: #0489c3; 2614 color: #0489c3;
2574 text-decoration: none; 2615 text-decoration: none;
2575 } 2616 }
2576 2617
2577 a:hover { 2618 a:hover {
2578 text-decoration: underline; 2619 text-decoration: underline;
2579 } 2620 }
2580 2621
2581 em { 2622 em {
2582 color: inherit; 2623 color: inherit;
2583 font-style:italic; 2624 font-style: italic;
2625 }
2626
2627 b {
2628 color: inherit;
2629 font-weight: bold;
2584 } 2630 }
2585 2631
2586 hr { 2632 hr {
2587 margin-top: 20px; 2633 margin-top: 20px;
2588 margin-bottom: 20px; 2634 margin-bottom: 20px;
2589 border: 0; 2635 border: 0;
2590 border-top: 1px solid #eee; 2636 border-top: 1px solid #eee;
2591 height: 0; 2637 height: 0;
2592 box-sizing: content-box; 2638 box-sizing: content-box;
2593 } 2639 }
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
2810 color: #0489c3; 2856 color: #0489c3;
2811 text-decoration: none; 2857 text-decoration: none;
2812 } 2858 }
2813 2859
2814 a:hover { 2860 a:hover {
2815 text-decoration: underline; 2861 text-decoration: underline;
2816 } 2862 }
2817 2863
2818 em { 2864 em {
2819 color: inherit; 2865 color: inherit;
2820 font-style:italic; 2866 font-style: italic;
2867 }
2868
2869 b {
2870 color: inherit;
2871 font-weight: bold;
2821 } 2872 }
2822 2873
2823 hr { 2874 hr {
2824 margin-top: 20px; 2875 margin-top: 20px;
2825 margin-bottom: 20px; 2876 margin-bottom: 20px;
2826 border: 0; 2877 border: 0;
2827 border-top: 1px solid #eee; 2878 border-top: 1px solid #eee;
2828 height: 0; 2879 height: 0;
2829 box-sizing: content-box; 2880 box-sizing: content-box;
2830 } 2881 }
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
3181 color: #0489c3; 3232 color: #0489c3;
3182 text-decoration: none; 3233 text-decoration: none;
3183 } 3234 }
3184 3235
3185 a:hover { 3236 a:hover {
3186 text-decoration: underline; 3237 text-decoration: underline;
3187 } 3238 }
3188 3239
3189 em { 3240 em {
3190 color: inherit; 3241 color: inherit;
3191 font-style:italic; 3242 font-style: italic;
3243 }
3244
3245 b {
3246 color: inherit;
3247 font-weight: bold;
3192 } 3248 }
3193 3249
3194 hr { 3250 hr {
3195 margin-top: 20px; 3251 margin-top: 20px;
3196 margin-bottom: 20px; 3252 margin-bottom: 20px;
3197 border: 0; 3253 border: 0;
3198 border-top: 1px solid #eee; 3254 border-top: 1px solid #eee;
3199 height: 0; 3255 height: 0;
3200 box-sizing: content-box; 3256 box-sizing: content-box;
3201 } 3257 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
3432 color: #0489c3; 3488 color: #0489c3;
3433 text-decoration: none; 3489 text-decoration: none;
3434 } 3490 }
3435 3491
3436 a:hover { 3492 a:hover {
3437 text-decoration: underline; 3493 text-decoration: underline;
3438 } 3494 }
3439 3495
3440 em { 3496 em {
3441 color: inherit; 3497 color: inherit;
3442 font-style:italic; 3498 font-style: italic;
3499 }
3500
3501 b {
3502 color: inherit;
3503 font-weight: bold;
3443 } 3504 }
3444 3505
3445 hr { 3506 hr {
3446 margin-top: 20px; 3507 margin-top: 20px;
3447 margin-bottom: 20px; 3508 margin-bottom: 20px;
3448 border: 0; 3509 border: 0;
3449 border-top: 1px solid #eee; 3510 border-top: 1px solid #eee;
3450 height: 0; 3511 height: 0;
3451 box-sizing: content-box; 3512 box-sizing: content-box;
3452 } 3513 }
(...skipping 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
3840 color: #0489c3; 3901 color: #0489c3;
3841 text-decoration: none; 3902 text-decoration: none;
3842 } 3903 }
3843 3904
3844 a:hover { 3905 a:hover {
3845 text-decoration: underline; 3906 text-decoration: underline;
3846 } 3907 }
3847 3908
3848 em { 3909 em {
3849 color: inherit; 3910 color: inherit;
3850 font-style:italic; 3911 font-style: italic;
3912 }
3913
3914 b {
3915 color: inherit;
3916 font-weight: bold;
3851 } 3917 }
3852 3918
3853 hr { 3919 hr {
3854 margin-top: 20px; 3920 margin-top: 20px;
3855 margin-bottom: 20px; 3921 margin-bottom: 20px;
3856 border: 0; 3922 border: 0;
3857 border-top: 1px solid #eee; 3923 border-top: 1px solid #eee;
3858 height: 0; 3924 height: 0;
3859 box-sizing: content-box; 3925 box-sizing: content-box;
3860 } 3926 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
4091 color: #0489c3; 4157 color: #0489c3;
4092 text-decoration: none; 4158 text-decoration: none;
4093 } 4159 }
4094 4160
4095 a:hover { 4161 a:hover {
4096 text-decoration: underline; 4162 text-decoration: underline;
4097 } 4163 }
4098 4164
4099 em { 4165 em {
4100 color: inherit; 4166 color: inherit;
4101 font-style:italic; 4167 font-style: italic;
4168 }
4169
4170 b {
4171 color: inherit;
4172 font-weight: bold;
4102 } 4173 }
4103 4174
4104 hr { 4175 hr {
4105 margin-top: 20px; 4176 margin-top: 20px;
4106 margin-bottom: 20px; 4177 margin-bottom: 20px;
4107 border: 0; 4178 border: 0;
4108 border-top: 1px solid #eee; 4179 border-top: 1px solid #eee;
4109 height: 0; 4180 height: 0;
4110 box-sizing: content-box; 4181 box-sizing: content-box;
4111 } 4182 }
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
4350 </template> 4421 </template>
4351 </div> 4422 </div>
4352 </div> 4423 </div>
4353 </template> 4424 </template>
4354 4425
4355 </polymer-element> 4426 </polymer-element>
4356 4427
4357 4428
4358 4429
4359 4430
4431
4432
4433
4434
4360 4435
4361 4436
4362 4437 <polymer-element name="stack-frame" extends="observatory-element">
4363
4364
4365
4366
4367 <polymer-element name="script-inset" extends="observatory-element">
4368 <template>
4369 <style>
4370 .sourceInset {
4371 padding-left: 15%;
4372 padding-right: 15%;
4373 }
4374 .grayBox {
4375 width: 100%;
4376 background-color: #f5f5f5;
4377 border: 1px solid #ccc;
4378 padding: 10px;
4379 }
4380 </style>
4381 <div class="sourceInset">
4382 <content></content>
4383 <div class="grayBox">
4384 <template if="{{ coverage == true }}">
4385 <table>
4386 <tbody>
4387 <tr template="" repeat="{{ line in lines }}">
4388 <td style="{{ hitStyle(line) }}"><span> </span></td>
4389 <td style="font-family: consolas, courier, monospace;font-size: 1em;line-height: 1.2em;white-space: nowrap;">{{line.line}}</td>
4390 <td>&nbsp;</td>
4391 <td width="99%" style="font-family: consolas, courier, monospace ;font-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td>
4392 </tr>
4393 </tbody>
4394 </table>
4395 </template>
4396 <template if="{{ coverage == false }}">
4397 <table>
4398 <tbody>
4399 <tr template="" repeat="{{ line in lines }}">
4400 <td style="font-family: consolas, courier, monospace;font-size: 1em;line-height: 1.2em;white-space: nowrap;">{{line.line}}</td>
4401 <td>&nbsp;</td>
4402 <td width="99%" style="font-family: consolas, courier, monospace ;font-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td>
4403 </tr>
4404 </tbody>
4405 </table>
4406 </template>
4407 </div>
4408 </div>
4409 </template>
4410
4411 </polymer-element>
4412 <polymer-element name="function-view" extends="observatory-element">
4413 <template> 4438 <template>
4414 <style> 4439 <style>
4415 /* Global styles */ 4440 /* Global styles */
4416 * { 4441 * {
4417 margin: 0; 4442 margin: 0;
4418 padding: 0; 4443 padding: 0;
4419 font: 400 14px 'Montserrat', sans-serif; 4444 font: 400 14px 'Montserrat', sans-serif;
4420 color: #333; 4445 color: #333;
4421 box-sizing: border-box; 4446 box-sizing: border-box;
4422 } 4447 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
4462 color: #0489c3; 4487 color: #0489c3;
4463 text-decoration: none; 4488 text-decoration: none;
4464 } 4489 }
4465 4490
4466 a:hover { 4491 a:hover {
4467 text-decoration: underline; 4492 text-decoration: underline;
4468 } 4493 }
4469 4494
4470 em { 4495 em {
4471 color: inherit; 4496 color: inherit;
4472 font-style:italic; 4497 font-style: italic;
4498 }
4499
4500 b {
4501 color: inherit;
4502 font-weight: bold;
4473 } 4503 }
4474 4504
4475 hr { 4505 hr {
4476 margin-top: 20px; 4506 margin-top: 20px;
4477 margin-bottom: 20px; 4507 margin-bottom: 20px;
4478 border: 0; 4508 border: 0;
4479 border-top: 1px solid #eee; 4509 border-top: 1px solid #eee;
4480 height: 0; 4510 height: 0;
4481 box-sizing: content-box; 4511 box-sizing: content-box;
4482 } 4512 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
4635 background-color: #f5f5f5; 4665 background-color: #f5f5f5;
4636 border: 1px solid #e3e3e3; 4666 border: 1px solid #e3e3e3;
4637 border-radius: 4px; 4667 border-radius: 4px;
4638 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 4668 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
4639 } 4669 }
4640 4670
4641 .break-wrap { 4671 .break-wrap {
4642 word-wrap: break-word; 4672 word-wrap: break-word;
4643 } 4673 }
4644 </style> 4674 </style>
4645 <nav-bar> 4675 <div class="flex-row">
4646 <top-nav-menu></top-nav-menu> 4676 <div class="flex-item-fixed-1-12">
4647 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> 4677 </div>
4648 <template if="{{ function['owner'].serviceType == 'Class' }}"> 4678 <div class="flex-item-fixed-1-12">
4649 <!-- TODO(turnidge): Add library nav menu here. --> 4679 #{{ frame['depth'] }}
4650 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> 4680 </div>
4651 </template> 4681 <div class="flex-item-fixed-9-12">
4652 <template if="{{ function['owner'].serviceType == 'Library' }}"> 4682 <function-ref ref="{{ frame['function'] }}"></function-ref>
4653 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> 4683 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }} ">
4654 </template> 4684 </script-ref> )
4655 <nav-menu link="{{ function.hashLink }}" anchor="{{ function.name }}" last ="{{ true }}"></nav-menu>
4656 <nav-refresh callback="{{ refresh }}"></nav-refresh>
4657 </nav-bar>
4658 4685
4659 <div class="content"> 4686 <curly-block>
4660 <h1>function {{ qualifiedName }}</h1> 4687 <div class="memberList">
4661 4688 <template repeat="{{ v in frame['vars'] }}">
4662 <div class="memberList"> 4689 <div class="memberItem">
4663 <div class="memberItem"> 4690 <div class="memberName">{{ v['name']}}</div>
4664 <div class="memberName">kind</div> 4691 <div class="memberValue">
4665 <div class="memberValue"> 4692 <instance-ref ref="{{ v['value'] }}"></instance-ref>
4666 <template if="{{ function['is_static'] }}">static</template> 4693 </div>
4667 <template if="{{ function['is_const'] }}">const</template> 4694 </div>
4668 {{ kind }} 4695 </template>
4669 </div>
4670 </div>
4671 <template if="{{ function['parent'] != null }}">
4672 <div class="memberItem">
4673 <div class="memberName">parent function</div>
4674 <div class="memberValue">
4675 <function-ref ref="{{ function['parent'] }}"></function-ref>
4676 </div> 4696 </div>
4677 </div> 4697 </curly-block>
4678 </template> 4698 </div>
4679 <div class="memberItem"> 4699 <div class="flex-item-fixed-1-12">
4680 <div class="memberName">owner</div> 4700 </div>
4681 <div class="memberValue">
4682 <template if="{{ function['owner'].serviceType == 'Class' }}">
4683 <class-ref ref="{{ function['owner'] }}"></class-ref>
4684 </template>
4685 <template if="{{ function['owner'].serviceType != 'Class' }}">
4686 <library-ref ref="{{ function['owner'] }}"></library-ref>
4687 </template>
4688 </div>
4689 </div>
4690 <div class="memberItem">
4691 <div class="memberName">script</div>
4692 <div class="memberValue">
4693 <script-ref ref="{{ function['script'] }}" pos="{{ function['tokenPo s'] }}">
4694 </script-ref>
4695 </div>
4696 </div>
4697
4698 <div class="memberItem">&nbsp;</div>
4699
4700 <template if="{{ function['code'] != null }}">
4701 <div class="memberItem">
4702 <div class="memberName">optimized code</div>
4703 <div class="memberValue">
4704 <code-ref ref="{{ function['code'] }}"></code-ref>
4705 </div>
4706 </div>
4707 </template>
4708 <template if="{{ function['unoptimized_code'] != null }}">
4709 <div class="memberItem">
4710 <div class="memberName">unoptimized code</div>
4711 <div class="memberValue">
4712 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref>
4713 </div>
4714 <div class="memberValue">
4715 <span title="This count is used to determine when a function wil l be optimized. It is a combination of call counts and other factors.">
4716 (usage count: {{ function['usage_counter'] }})
4717 </span>
4718 </div>
4719 </div>
4720 </template>
4721 <div class="memberItem">
4722 <div class="memberName">deoptimizations</div>
4723 <div class="memberValue">{{ function['deoptimizations'] }}</div>
4724 </div>
4725 <div class="memberItem">
4726 <div class="memberName">optimizable</div>
4727 <div class="memberValue">{{ function['is_optimizable'] }}</div>
4728 </div>
4729 <div class="memberItem">
4730 <div class="memberName">inlinable</div>
4731 <div class="memberValue">{{ function['is_inlinable'] }}</div>
4732 </div>
4733 <template if="{{ function.name != function.vmName }}">
4734 <div class="memberItem">
4735 <div class="memberName">vm name</div>
4736 <div class="memberValue">{{ function.vmName }}</div>
4737 </div>
4738 </template>
4739 </div>
4740 </div> 4701 </div>
4741
4742 <hr>
4743 <script-inset script="{{ function['script'] }}" pos="{{ function['tokenPos'] }}" endpos="{{ function['endTokenPos'] }}">
4744 </script-inset>
4745
4746 <br>
4747 </template> 4702 </template>
4748 4703
4749 </polymer-element> 4704 </polymer-element>
4750 4705 <polymer-element name="flag-list" extends="observatory-element">
4751 4706 <template>
4752 4707 <style>
4753
4754 <polymer-element name="heap-map" extends="observatory-element">
4755 <template>
4756 <style>
4757 /* Global styles */ 4708 /* Global styles */
4758 * { 4709 * {
4759 margin: 0; 4710 margin: 0;
4760 padding: 0; 4711 padding: 0;
4761 font: 400 14px 'Montserrat', sans-serif; 4712 font: 400 14px 'Montserrat', sans-serif;
4762 color: #333; 4713 color: #333;
4763 box-sizing: border-box; 4714 box-sizing: border-box;
4764 } 4715 }
4765 4716
4766 .content { 4717 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
4804 color: #0489c3; 4755 color: #0489c3;
4805 text-decoration: none; 4756 text-decoration: none;
4806 } 4757 }
4807 4758
4808 a:hover { 4759 a:hover {
4809 text-decoration: underline; 4760 text-decoration: underline;
4810 } 4761 }
4811 4762
4812 em { 4763 em {
4813 color: inherit; 4764 color: inherit;
4814 font-style:italic; 4765 font-style: italic;
4766 }
4767
4768 b {
4769 color: inherit;
4770 font-weight: bold;
4815 } 4771 }
4816 4772
4817 hr { 4773 hr {
4818 margin-top: 20px; 4774 margin-top: 20px;
4819 margin-bottom: 20px; 4775 margin-bottom: 20px;
4820 border: 0; 4776 border: 0;
4821 border-top: 1px solid #eee; 4777 border-top: 1px solid #eee;
4822 height: 0; 4778 height: 0;
4823 box-sizing: content-box; 4779 box-sizing: content-box;
4824 } 4780 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
4977 background-color: #f5f5f5; 4933 background-color: #f5f5f5;
4978 border: 1px solid #e3e3e3; 4934 border: 1px solid #e3e3e3;
4979 border-radius: 4px; 4935 border-radius: 4px;
4980 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 4936 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
4981 } 4937 }
4982 4938
4983 .break-wrap { 4939 .break-wrap {
4984 word-wrap: break-word; 4940 word-wrap: break-word;
4985 } 4941 }
4986 </style> 4942 </style>
4987 <style> 4943 <nav-bar>
4988 .hover { 4944 <top-nav-menu></top-nav-menu>
4989 position: fixed; 4945 <nav-menu link="{{ flagList.isolate.relativeHashLink('flags') }}" anchor=" flags" last="{{ true }}"></nav-menu>
4990 z-index: 999; 4946 <nav-refresh callback="{{ refresh }}"></nav-refresh>
4991 height: 16px; 4947 </nav-bar>
4992 width: 100%;
4993 background: #ffffff;
4994 }
4995 .spacer {
4996 height: 16px;
4997 background-color: red;
4998 }
4999 </style>
5000 <nav-bar pad="{{ false }}">
5001 <top-nav-menu></top-nav-menu>
5002 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
5003 <nav-menu link="{{ fragmentation.isolate.relativeHashLink('heapmap') }}" anc hor="heap map" last="{{ true }}"></nav-menu>
5004 <nav-refresh callback="{{ refresh }}"></nav-refresh>
5005 </nav-bar>
5006 <div class="hover">
5007 <p style="text-align:center">{{ status }}</p>
5008 </div>
5009 <div class="spacer">
5010 <!-- Make sure no data is covered by hover bar initially -->
5011 </div>
5012 <div class="flex-row">
5013 <canvas id="fragmentation" width="1px" height="1px"></canvas>
5014 </div>
5015 </template>
5016 4948
4949 <div class="content-centered">
4950 <template if="{{ flagList['modifiedFlags'].isNotEmpty }}">
4951 <h1>Modified Flags</h1>
4952 <br>
4953 <template repeat="{{ flag in flagList['modifiedFlags'] }}">
4954 <flag-item flag="{{ flag }}"></flag-item>
4955 <br>
4956 </template>
4957 <hr>
4958 </template>
4959
4960 <h1>Unmodified Flags</h1>
4961 <br>
4962 <template if="{{ flagList['unmodifiedFlags'].isEmpty }}">
4963 <em>None</em>
4964 </template>
4965 <template if="{{ flagList['unmodifiedFlags'].isNotEmpty }}">
4966 <template repeat="{{ flag in flagList['unmodifiedFlags'] }}">
4967 <flag-item flag="{{ flag }}"></flag-item>
4968 <br>
4969 </template>
4970 </template>
4971 </div>
4972
4973 </template>
5017 </polymer-element> 4974 </polymer-element>
5018 4975
5019 4976 <polymer-element name="flag-item" extends="observatory-element">
5020
5021
5022 <polymer-element name="io-view" extends="observatory-element">
5023 <template> 4977 <template>
5024 <style> 4978 <style>
5025 /* Global styles */ 4979 /* Global styles */
5026 * { 4980 * {
5027 margin: 0; 4981 margin: 0;
5028 padding: 0; 4982 padding: 0;
5029 font: 400 14px 'Montserrat', sans-serif; 4983 font: 400 14px 'Montserrat', sans-serif;
5030 color: #333; 4984 color: #333;
5031 box-sizing: border-box; 4985 box-sizing: border-box;
5032 } 4986 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
5072 color: #0489c3; 5026 color: #0489c3;
5073 text-decoration: none; 5027 text-decoration: none;
5074 } 5028 }
5075 5029
5076 a:hover { 5030 a:hover {
5077 text-decoration: underline; 5031 text-decoration: underline;
5078 } 5032 }
5079 5033
5080 em { 5034 em {
5081 color: inherit; 5035 color: inherit;
5082 font-style:italic; 5036 font-style: italic;
5037 }
5038
5039 b {
5040 color: inherit;
5041 font-weight: bold;
5083 } 5042 }
5084 5043
5085 hr { 5044 hr {
5086 margin-top: 20px; 5045 margin-top: 20px;
5087 margin-bottom: 20px; 5046 margin-bottom: 20px;
5088 border: 0; 5047 border: 0;
5089 border-top: 1px solid #eee; 5048 border-top: 1px solid #eee;
5090 height: 0; 5049 height: 0;
5091 box-sizing: content-box; 5050 box-sizing: content-box;
5092 } 5051 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
5245 background-color: #f5f5f5; 5204 background-color: #f5f5f5;
5246 border: 1px solid #e3e3e3; 5205 border: 1px solid #e3e3e3;
5247 border-radius: 4px; 5206 border-radius: 4px;
5248 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 5207 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
5249 } 5208 }
5250 5209
5251 .break-wrap { 5210 .break-wrap {
5252 word-wrap: break-word; 5211 word-wrap: break-word;
5253 } 5212 }
5254 </style> 5213 </style>
5255 5214 <span style="color:#aaa">// {{ flag['comment'] }}</span>
5256 <nav-bar> 5215 <div style="padding: 3px 0">
5257 <top-nav-menu last="{{ true }}"></top-nav-menu> 5216 <b>{{ flag['name'] }}</b>
5258 <nav-refresh callback="{{ refresh }}"></nav-refresh> 5217 &nbsp;=&nbsp;
5259 </nav-bar> 5218 {{ flag['valueAsString'] }}
5260
5261 <div class="content">
5262 <h1>dart:io</h1>
5263
5264 <br>
5265
5266 <ul class="list-group">
5267 <li class="list-group-item">
5268 <a href="{{io.isolate.relativeHashLink('io/http/servers')}}">HTTP Serv ers</a>
5269 </li>
5270 </ul>
5271
5272 <br>
5273
5274 <ul class="list-group">
5275 <li class="list-group-item">
5276 <a href="{{io.isolate.relativeHashLink('io/sockets')}}">Sockets</a>
5277 </li>
5278 </ul>
5279
5280 <br>
5281
5282 <ul class="list-group">
5283 <li class="list-group-item">
5284 <a href="{{io.isolate.relativeHashLink('io/websockets')}}">WebSockets< /a>
5285 </li>
5286 </ul>
5287
5288 <br>
5289
5290 <ul class="list-group">
5291 <li class="list-group-item">
5292 <a href="{{io.isolate.relativeHashLink('io/file/randomaccessfiles')}}" >Random Access Files</a>
5293 </li>
5294 </ul>
5295
5296 <br>
5297
5298 <ul class="list-group">
5299 <li class="list-group-item">
5300 <a href="{{io.isolate.relativeHashLink('io/processes')}}">Processess</ a>
5301 </li>
5302 </ul>
5303
5304 </div> 5219 </div>
5305 <br>
5306 <hr>
5307 </template> 5220 </template>
5308 </polymer-element> 5221 </polymer-element>
5309 5222
5310 <polymer-element name="io-http-server-list-view" extends="observatory-element"> 5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235 <polymer-element name="script-inset" extends="observatory-element">
5236 <template>
5237 <style>
5238 .sourceInset {
5239 padding-left: 15%;
5240 padding-right: 15%;
5241 }
5242 .grayBox {
5243 width: 100%;
5244 background-color: #f5f5f5;
5245 border: 1px solid #ccc;
5246 padding: 10px;
5247 }
5248 </style>
5249 <div class="sourceInset">
5250 <content></content>
5251 <div class="grayBox">
5252 <template if="{{ coverage == true }}">
5253 <table>
5254 <tbody>
5255 <tr template="" repeat="{{ line in lines }}">
5256 <td style="{{ hitStyle(line) }}"><span> </span></td>
5257 <td style="font-family: consolas, courier, monospace;font-size: 1em;line-height: 1.2em;white-space: nowrap;">{{line.line}}</td>
5258 <td>&nbsp;</td>
5259 <td width="99%" style="font-family: consolas, courier, monospace ;font-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td>
5260 </tr>
5261 </tbody>
5262 </table>
5263 </template>
5264 <template if="{{ coverage == false }}">
5265 <table>
5266 <tbody>
5267 <tr template="" repeat="{{ line in lines }}">
5268 <td style="font-family: consolas, courier, monospace;font-size: 1em;line-height: 1.2em;white-space: nowrap;">{{line.line}}</td>
5269 <td>&nbsp;</td>
5270 <td width="99%" style="font-family: consolas, courier, monospace ;font-size: 1em;line-height: 1.2em;white-space: pre;">{{line.text}}</td>
5271 </tr>
5272 </tbody>
5273 </table>
5274 </template>
5275 </div>
5276 </div>
5277 </template>
5278
5279 </polymer-element>
5280 <polymer-element name="function-view" extends="observatory-element">
5311 <template> 5281 <template>
5312 <style> 5282 <style>
5313 /* Global styles */ 5283 /* Global styles */
5314 * { 5284 * {
5315 margin: 0; 5285 margin: 0;
5316 padding: 0; 5286 padding: 0;
5317 font: 400 14px 'Montserrat', sans-serif; 5287 font: 400 14px 'Montserrat', sans-serif;
5318 color: #333; 5288 color: #333;
5319 box-sizing: border-box; 5289 box-sizing: border-box;
5320 } 5290 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
5360 color: #0489c3; 5330 color: #0489c3;
5361 text-decoration: none; 5331 text-decoration: none;
5362 } 5332 }
5363 5333
5364 a:hover { 5334 a:hover {
5365 text-decoration: underline; 5335 text-decoration: underline;
5366 } 5336 }
5367 5337
5368 em { 5338 em {
5369 color: inherit; 5339 color: inherit;
5370 font-style:italic; 5340 font-style: italic;
5341 }
5342
5343 b {
5344 color: inherit;
5345 font-weight: bold;
5371 } 5346 }
5372 5347
5373 hr { 5348 hr {
5374 margin-top: 20px; 5349 margin-top: 20px;
5375 margin-bottom: 20px; 5350 margin-bottom: 20px;
5376 border: 0; 5351 border: 0;
5377 border-top: 1px solid #eee; 5352 border-top: 1px solid #eee;
5378 height: 0; 5353 height: 0;
5379 box-sizing: content-box; 5354 box-sizing: content-box;
5380 } 5355 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
5533 background-color: #f5f5f5; 5508 background-color: #f5f5f5;
5534 border: 1px solid #e3e3e3; 5509 border: 1px solid #e3e3e3;
5535 border-radius: 4px; 5510 border-radius: 4px;
5536 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 5511 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
5537 } 5512 }
5538 5513
5539 .break-wrap { 5514 .break-wrap {
5540 word-wrap: break-word; 5515 word-wrap: break-word;
5541 } 5516 }
5542 </style> 5517 </style>
5543
5544 <nav-bar> 5518 <nav-bar>
5545 <top-nav-menu last="{{ true }}"></top-nav-menu> 5519 <top-nav-menu></top-nav-menu>
5520 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu>
5521 <template if="{{ function['owner'].serviceType == 'Class' }}">
5522 <!-- TODO(turnidge): Add library nav menu here. -->
5523 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu>
5524 </template>
5525 <template if="{{ function['owner'].serviceType == 'Library' }}">
5526 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu>
5527 </template>
5528 <nav-menu link="{{ function.hashLink }}" anchor="{{ function.name }}" last ="{{ true }}"></nav-menu>
5546 <nav-refresh callback="{{ refresh }}"></nav-refresh> 5529 <nav-refresh callback="{{ refresh }}"></nav-refresh>
5547 </nav-bar> 5530 </nav-bar>
5548 5531
5549 <div class="content"> 5532 <div class="content">
5550 <h1>HttpServers</h1> 5533 <h1>function {{ qualifiedName }}</h1>
5551 5534
5552 <br> 5535 <div class="memberList">
5536 <div class="memberItem">
5537 <div class="memberName">kind</div>
5538 <div class="memberValue">
5539 <template if="{{ function['is_static'] }}">static</template>
5540 <template if="{{ function['is_const'] }}">const</template>
5541 {{ kind }}
5542 </div>
5543 </div>
5544 <template if="{{ function['parent'] != null }}">
5545 <div class="memberItem">
5546 <div class="memberName">parent function</div>
5547 <div class="memberValue">
5548 <function-ref ref="{{ function['parent'] }}"></function-ref>
5549 </div>
5550 </div>
5551 </template>
5552 <div class="memberItem">
5553 <div class="memberName">owner</div>
5554 <div class="memberValue">
5555 <template if="{{ function['owner'].serviceType == 'Class' }}">
5556 <class-ref ref="{{ function['owner'] }}"></class-ref>
5557 </template>
5558 <template if="{{ function['owner'].serviceType != 'Class' }}">
5559 <library-ref ref="{{ function['owner'] }}"></library-ref>
5560 </template>
5561 </div>
5562 </div>
5563 <div class="memberItem">
5564 <div class="memberName">script</div>
5565 <div class="memberValue">
5566 <script-ref ref="{{ function['script'] }}" pos="{{ function['tokenPo s'] }}">
5567 </script-ref>
5568 </div>
5569 </div>
5553 5570
5554 <ul class="list-group"> 5571 <div class="memberItem">&nbsp;</div>
5555 <template repeat="{{ httpServer in list['members'] }}"> 5572
5556 <li class="list-group-item"> 5573 <template if="{{ function['code'] != null }}">
5557 <io-http-server-ref ref="{{ httpServer }}"></io-http-server-ref> 5574 <div class="memberItem">
5558 </li> 5575 <div class="memberName">optimized code</div>
5576 <div class="memberValue">
5577 <code-ref ref="{{ function['code'] }}"></code-ref>
5578 </div>
5579 </div>
5559 </template> 5580 </template>
5560 </ul> 5581 <template if="{{ function['unoptimized_code'] != null }}">
5582 <div class="memberItem">
5583 <div class="memberName">unoptimized code</div>
5584 <div class="memberValue">
5585 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref>
5586 </div>
5587 <div class="memberValue">
5588 <span title="This count is used to determine when a function wil l be optimized. It is a combination of call counts and other factors.">
5589 (usage count: {{ function['usage_counter'] }})
5590 </span>
5591 </div>
5592 </div>
5593 </template>
5594 <div class="memberItem">
5595 <div class="memberName">deoptimizations</div>
5596 <div class="memberValue">{{ function['deoptimizations'] }}</div>
5597 </div>
5598 <div class="memberItem">
5599 <div class="memberName">optimizable</div>
5600 <div class="memberValue">{{ function['is_optimizable'] }}</div>
5601 </div>
5602 <div class="memberItem">
5603 <div class="memberName">inlinable</div>
5604 <div class="memberValue">{{ function['is_inlinable'] }}</div>
5605 </div>
5606 <template if="{{ function.name != function.vmName }}">
5607 <div class="memberItem">
5608 <div class="memberName">vm name</div>
5609 <div class="memberValue">{{ function.vmName }}</div>
5610 </div>
5611 </template>
5612 </div>
5561 </div> 5613 </div>
5614
5615 <hr>
5616 <script-inset script="{{ function['script'] }}" pos="{{ function['tokenPos'] }}" endpos="{{ function['endTokenPos'] }}">
5617 </script-inset>
5618
5562 <br> 5619 <br>
5563 <hr>
5564 </template> 5620 </template>
5621
5565 </polymer-element> 5622 </polymer-element>
5566 5623
5567 <polymer-element name="io-http-server-ref" extends="service-ref"> 5624
5568 <template> 5625
5569 <style> 5626
5627 <polymer-element name="heap-map" extends="observatory-element">
5628 <template>
5629 <style>
5570 /* Global styles */ 5630 /* Global styles */
5571 * { 5631 * {
5572 margin: 0; 5632 margin: 0;
5573 padding: 0; 5633 padding: 0;
5574 font: 400 14px 'Montserrat', sans-serif; 5634 font: 400 14px 'Montserrat', sans-serif;
5575 color: #333; 5635 color: #333;
5576 box-sizing: border-box; 5636 box-sizing: border-box;
5577 } 5637 }
5578 5638
5579 .content { 5639 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
5617 color: #0489c3; 5677 color: #0489c3;
5618 text-decoration: none; 5678 text-decoration: none;
5619 } 5679 }
5620 5680
5621 a:hover { 5681 a:hover {
5622 text-decoration: underline; 5682 text-decoration: underline;
5623 } 5683 }
5624 5684
5625 em { 5685 em {
5626 color: inherit; 5686 color: inherit;
5627 font-style:italic; 5687 font-style: italic;
5688 }
5689
5690 b {
5691 color: inherit;
5692 font-weight: bold;
5628 } 5693 }
5629 5694
5630 hr { 5695 hr {
5631 margin-top: 20px; 5696 margin-top: 20px;
5632 margin-bottom: 20px; 5697 margin-bottom: 20px;
5633 border: 0; 5698 border: 0;
5634 border-top: 1px solid #eee; 5699 border-top: 1px solid #eee;
5635 height: 0; 5700 height: 0;
5636 box-sizing: content-box; 5701 box-sizing: content-box;
5637 } 5702 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
5790 background-color: #f5f5f5; 5855 background-color: #f5f5f5;
5791 border: 1px solid #e3e3e3; 5856 border: 1px solid #e3e3e3;
5792 border-radius: 4px; 5857 border-radius: 4px;
5793 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 5858 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
5794 } 5859 }
5795 5860
5796 .break-wrap { 5861 .break-wrap {
5797 word-wrap: break-word; 5862 word-wrap: break-word;
5798 } 5863 }
5799 </style> 5864 </style>
5800 <a href="{{ url }}">{{ name }}</a> 5865 <style>
5801 </template> 5866 .hover {
5867 position: fixed;
5868 z-index: 999;
5869 height: 16px;
5870 width: 100%;
5871 background: #ffffff;
5872 }
5873 .spacer {
5874 height: 16px;
5875 background-color: red;
5876 }
5877 </style>
5878 <nav-bar pad="{{ false }}">
5879 <top-nav-menu></top-nav-menu>
5880 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
5881 <nav-menu link="{{ fragmentation.isolate.relativeHashLink('heapmap') }}" anc hor="heap map" last="{{ true }}"></nav-menu>
5882 <nav-refresh callback="{{ refresh }}"></nav-refresh>
5883 </nav-bar>
5884 <div class="hover">
5885 <p style="text-align:center">{{ status }}</p>
5886 </div>
5887 <div class="spacer">
5888 <!-- Make sure no data is covered by hover bar initially -->
5889 </div>
5890 <div class="flex-row">
5891 <canvas id="fragmentation" width="1px" height="1px"></canvas>
5892 </div>
5893 </template>
5894
5802 </polymer-element> 5895 </polymer-element>
5803 5896
5804 <polymer-element name="io-http-server-view" extends="observatory-element"> 5897
5898
5899
5900 <polymer-element name="io-view" extends="observatory-element">
5805 <template> 5901 <template>
5806 <style> 5902 <style>
5807 /* Global styles */ 5903 /* Global styles */
5808 * { 5904 * {
5809 margin: 0; 5905 margin: 0;
5810 padding: 0; 5906 padding: 0;
5811 font: 400 14px 'Montserrat', sans-serif; 5907 font: 400 14px 'Montserrat', sans-serif;
5812 color: #333; 5908 color: #333;
5813 box-sizing: border-box; 5909 box-sizing: border-box;
5814 } 5910 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
5854 color: #0489c3; 5950 color: #0489c3;
5855 text-decoration: none; 5951 text-decoration: none;
5856 } 5952 }
5857 5953
5858 a:hover { 5954 a:hover {
5859 text-decoration: underline; 5955 text-decoration: underline;
5860 } 5956 }
5861 5957
5862 em { 5958 em {
5863 color: inherit; 5959 color: inherit;
5864 font-style:italic; 5960 font-style: italic;
5961 }
5962
5963 b {
5964 color: inherit;
5965 font-weight: bold;
5865 } 5966 }
5866 5967
5867 hr { 5968 hr {
5868 margin-top: 20px; 5969 margin-top: 20px;
5869 margin-bottom: 20px; 5970 margin-bottom: 20px;
5870 border: 0; 5971 border: 0;
5871 border-top: 1px solid #eee; 5972 border-top: 1px solid #eee;
5872 height: 0; 5973 height: 0;
5873 box-sizing: content-box; 5974 box-sizing: content-box;
5874 } 5975 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
6034 word-wrap: break-word; 6135 word-wrap: break-word;
6035 } 6136 }
6036 </style> 6137 </style>
6037 6138
6038 <nav-bar> 6139 <nav-bar>
6039 <top-nav-menu last="{{ true }}"></top-nav-menu> 6140 <top-nav-menu last="{{ true }}"></top-nav-menu>
6040 <nav-refresh callback="{{ refresh }}"></nav-refresh> 6141 <nav-refresh callback="{{ refresh }}"></nav-refresh>
6041 </nav-bar> 6142 </nav-bar>
6042 6143
6043 <div class="content"> 6144 <div class="content">
6044 <h1>HttpServer</h1> 6145 <h1>dart:io</h1>
6045 6146
6046 <br> 6147 <br>
6047 6148
6048 <div class="memberList"> 6149 <ul class="list-group">
6049 <div class="memberItem"> 6150 <li class="list-group-item">
6050 <div class="memberName">Socket</div> 6151 <a href="{{io.isolate.relativeHashLink('io/http/servers')}}">HTTP Serv ers</a>
6051 <div class="memberValue"><io-socket-ref ref="{{ httpServer['socket'] } }"></io-socket-ref></div> 6152 </li>
6052 </div> 6153 </ul>
6053 <div class="memberItem"> 6154
6054 <div class="memberName">Address</div> 6155 <br>
6055 <div class="memberValue">{{ httpServer['address'] }}</div> 6156
6056 </div> 6157 <ul class="list-group">
6057 <div class="memberItem"> 6158 <li class="list-group-item">
6058 <div class="memberName">Port</div> 6159 <a href="{{io.isolate.relativeHashLink('io/sockets')}}">Sockets</a>
6059 <div class="memberValue">{{ httpServer['port'] }}</div> 6160 </li>
6060 </div> 6161 </ul>
6061 <div class="memberItem"> 6162
6062 <div class="memberName">Active connections</div> 6163 <br>
6063 <div class="memberValue">{{ httpServer['active'] }}</div> 6164
6064 </div> 6165 <ul class="list-group">
6065 <div class="memberItem"> 6166 <li class="list-group-item">
6066 <div class="memberName">Idle connections</div> 6167 <a href="{{io.isolate.relativeHashLink('io/websockets')}}">WebSockets< /a>
6067 <div class="memberValue">{{ httpServer['idle'] }}</div> 6168 </li>
6068 </div> 6169 </ul>
6069 </div> 6170
6171 <br>
6172
6173 <ul class="list-group">
6174 <li class="list-group-item">
6175 <a href="{{io.isolate.relativeHashLink('io/file/randomaccessfiles')}}" >Random Access Files</a>
6176 </li>
6177 </ul>
6178
6179 <br>
6180
6181 <ul class="list-group">
6182 <li class="list-group-item">
6183 <a href="{{io.isolate.relativeHashLink('io/processes')}}">Processess</ a>
6184 </li>
6185 </ul>
6186
6070 </div> 6187 </div>
6071 <br> 6188 <br>
6072 <hr> 6189 <hr>
6073 </template> 6190 </template>
6074 </polymer-element> 6191 </polymer-element>
6075 6192
6076 <polymer-element name="io-socket-ref" extends="service-ref"> 6193 <polymer-element name="io-ref" extends="service-ref">
6077 <template> 6194 <template>
6078 <style> 6195 <style>
6079 /* Global styles */ 6196 /* Global styles */
6080 * { 6197 * {
6081 margin: 0; 6198 margin: 0;
6082 padding: 0; 6199 padding: 0;
6083 font: 400 14px 'Montserrat', sans-serif; 6200 font: 400 14px 'Montserrat', sans-serif;
6084 color: #333; 6201 color: #333;
6085 box-sizing: border-box; 6202 box-sizing: border-box;
6086 } 6203 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
6126 color: #0489c3; 6243 color: #0489c3;
6127 text-decoration: none; 6244 text-decoration: none;
6128 } 6245 }
6129 6246
6130 a:hover { 6247 a:hover {
6131 text-decoration: underline; 6248 text-decoration: underline;
6132 } 6249 }
6133 6250
6134 em { 6251 em {
6135 color: inherit; 6252 color: inherit;
6136 font-style:italic; 6253 font-style: italic;
6254 }
6255
6256 b {
6257 color: inherit;
6258 font-weight: bold;
6137 } 6259 }
6138 6260
6139 hr { 6261 hr {
6140 margin-top: 20px; 6262 margin-top: 20px;
6141 margin-bottom: 20px; 6263 margin-bottom: 20px;
6142 border: 0; 6264 border: 0;
6143 border-top: 1px solid #eee; 6265 border-top: 1px solid #eee;
6144 height: 0; 6266 height: 0;
6145 box-sizing: content-box; 6267 box-sizing: content-box;
6146 } 6268 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
6299 background-color: #f5f5f5; 6421 background-color: #f5f5f5;
6300 border: 1px solid #e3e3e3; 6422 border: 1px solid #e3e3e3;
6301 border-radius: 4px; 6423 border-radius: 4px;
6302 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 6424 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
6303 } 6425 }
6304 6426
6305 .break-wrap { 6427 .break-wrap {
6306 word-wrap: break-word; 6428 word-wrap: break-word;
6307 } 6429 }
6308 </style> 6430 </style>
6309 <a href="{{ url }}">{{ name }}</a> 6431 <template if="{{ ref.serviceType == 'Socket' }}">
6432 <io-socket-ref ref="{{ ref }}"></io-socket-ref>
6433 </template>
6434 <template if="{{ ref.serviceType == 'HttpServer' }}">
6435 <io-http-server-ref ref="{{ ref }}"></io-http-server-ref>
6436 </template>
6437 <template if="{{ ref.serviceType == 'WebSocket' }}">
6438 <io-web-socket-ref ref="{{ ref }}"></io-web-socket-ref>
6439 </template>
6310 </template> 6440 </template>
6311 </polymer-element> 6441 </polymer-element>
6312 6442
6313 <polymer-element name="io-socket-list-view" extends="observatory-element"> 6443 <polymer-element name="io-http-server-list-view" extends="observatory-element">
6314 <template> 6444 <template>
6315 <style> 6445 <style>
6316 /* Global styles */ 6446 /* Global styles */
6317 * { 6447 * {
6318 margin: 0; 6448 margin: 0;
6319 padding: 0; 6449 padding: 0;
6320 font: 400 14px 'Montserrat', sans-serif; 6450 font: 400 14px 'Montserrat', sans-serif;
6321 color: #333; 6451 color: #333;
6322 box-sizing: border-box; 6452 box-sizing: border-box;
6323 } 6453 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
6363 color: #0489c3; 6493 color: #0489c3;
6364 text-decoration: none; 6494 text-decoration: none;
6365 } 6495 }
6366 6496
6367 a:hover { 6497 a:hover {
6368 text-decoration: underline; 6498 text-decoration: underline;
6369 } 6499 }
6370 6500
6371 em { 6501 em {
6372 color: inherit; 6502 color: inherit;
6373 font-style:italic; 6503 font-style: italic;
6504 }
6505
6506 b {
6507 color: inherit;
6508 font-weight: bold;
6374 } 6509 }
6375 6510
6376 hr { 6511 hr {
6377 margin-top: 20px; 6512 margin-top: 20px;
6378 margin-bottom: 20px; 6513 margin-bottom: 20px;
6379 border: 0; 6514 border: 0;
6380 border-top: 1px solid #eee; 6515 border-top: 1px solid #eee;
6381 height: 0; 6516 height: 0;
6382 box-sizing: content-box; 6517 box-sizing: content-box;
6383 } 6518 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
6543 word-wrap: break-word; 6678 word-wrap: break-word;
6544 } 6679 }
6545 </style> 6680 </style>
6546 6681
6547 <nav-bar> 6682 <nav-bar>
6548 <top-nav-menu last="{{ true }}"></top-nav-menu> 6683 <top-nav-menu last="{{ true }}"></top-nav-menu>
6549 <nav-refresh callback="{{ refresh }}"></nav-refresh> 6684 <nav-refresh callback="{{ refresh }}"></nav-refresh>
6550 </nav-bar> 6685 </nav-bar>
6551 6686
6552 <div class="content"> 6687 <div class="content">
6553 <h1>Sockets</h1> 6688 <h1>HttpServers</h1>
6554 6689
6555 <br> 6690 <br>
6556 6691
6557 <ul class="list-group"> 6692 <ul class="list-group">
6558 <template repeat="{{ socket in list['members'] }}"> 6693 <template repeat="{{ httpServer in list['members'] }}">
6559 <li class="list-group-item"> 6694 <li class="list-group-item">
6560 <io-socket-ref ref="{{ socket }}"></io-socket-ref> 6695 <io-http-server-ref ref="{{ httpServer }}"></io-http-server-ref>
6561 </li> 6696 </li>
6562 </template> 6697 </template>
6563 </ul> 6698 </ul>
6564 </div> 6699 </div>
6565 <br> 6700 <br>
6566 <hr> 6701 <hr>
6567 </template> 6702 </template>
6568 </polymer-element> 6703 </polymer-element>
6569 6704
6570 <polymer-element name="io-socket-view" extends="observatory-element"> 6705 <polymer-element name="io-http-server-ref" extends="service-ref">
6571 <template> 6706 <template>
6572 <style> 6707 <style>
6573 /* Global styles */ 6708 /* Global styles */
6574 * { 6709 * {
6575 margin: 0; 6710 margin: 0;
6576 padding: 0; 6711 padding: 0;
6577 font: 400 14px 'Montserrat', sans-serif; 6712 font: 400 14px 'Montserrat', sans-serif;
6578 color: #333; 6713 color: #333;
6579 box-sizing: border-box; 6714 box-sizing: border-box;
6580 } 6715 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
6620 color: #0489c3; 6755 color: #0489c3;
6621 text-decoration: none; 6756 text-decoration: none;
6622 } 6757 }
6623 6758
6624 a:hover { 6759 a:hover {
6625 text-decoration: underline; 6760 text-decoration: underline;
6626 } 6761 }
6627 6762
6628 em { 6763 em {
6629 color: inherit; 6764 color: inherit;
6630 font-style:italic; 6765 font-style: italic;
6766 }
6767
6768 b {
6769 color: inherit;
6770 font-weight: bold;
6631 } 6771 }
6632 6772
6633 hr { 6773 hr {
6634 margin-top: 20px; 6774 margin-top: 20px;
6635 margin-bottom: 20px; 6775 margin-bottom: 20px;
6636 border: 0; 6776 border: 0;
6637 border-top: 1px solid #eee; 6777 border-top: 1px solid #eee;
6638 height: 0; 6778 height: 0;
6639 box-sizing: content-box; 6779 box-sizing: content-box;
6640 } 6780 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
6793 background-color: #f5f5f5; 6933 background-color: #f5f5f5;
6794 border: 1px solid #e3e3e3; 6934 border: 1px solid #e3e3e3;
6795 border-radius: 4px; 6935 border-radius: 4px;
6796 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 6936 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
6797 } 6937 }
6798 6938
6799 .break-wrap { 6939 .break-wrap {
6800 word-wrap: break-word; 6940 word-wrap: break-word;
6801 } 6941 }
6802 </style> 6942 </style>
6803 6943 <a href="{{ url }}">{{ name }}</a>
6804 <nav-bar>
6805 <top-nav-menu last="{{ true }}"></top-nav-menu>
6806 <nav-refresh callback="{{ refresh }}"></nav-refresh>
6807 </nav-bar>
6808
6809 <div class="content">
6810 <h1>Socket</h1>
6811
6812 <br>
6813
6814 <div class="memberList">
6815 <div class="memberItem">
6816 <div class="memberName">Address</div>
6817 <div class="memberValue">{{ socket['address'] }}</div>
6818 </div>
6819 <div class="memberItem">
6820 <div class="memberName">Port</div>
6821 <div class="memberValue">{{ socket['port'] }}</div>
6822 </div>
6823 <div class="memberItem">
6824 <div class="memberName">File descriptor</div>
6825 <div class="memberValue">{{ socket['fd'] }}</div>
6826 </div>
6827 </div>
6828 </div>
6829 <br>
6830 <hr>
6831 </template> 6944 </template>
6832 </polymer-element> 6945 </polymer-element>
6833 6946
6834 <polymer-element name="io-web-socket-ref" extends="service-ref"> 6947 <polymer-element name="io-http-server-view" extends="observatory-element">
6835 <template> 6948 <template>
6836 <style> 6949 <style>
6837 /* Global styles */ 6950 /* Global styles */
6838 * { 6951 * {
6839 margin: 0; 6952 margin: 0;
6840 padding: 0; 6953 padding: 0;
6841 font: 400 14px 'Montserrat', sans-serif; 6954 font: 400 14px 'Montserrat', sans-serif;
6842 color: #333; 6955 color: #333;
6843 box-sizing: border-box; 6956 box-sizing: border-box;
6844 } 6957 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
6884 color: #0489c3; 6997 color: #0489c3;
6885 text-decoration: none; 6998 text-decoration: none;
6886 } 6999 }
6887 7000
6888 a:hover { 7001 a:hover {
6889 text-decoration: underline; 7002 text-decoration: underline;
6890 } 7003 }
6891 7004
6892 em { 7005 em {
6893 color: inherit; 7006 color: inherit;
6894 font-style:italic; 7007 font-style: italic;
7008 }
7009
7010 b {
7011 color: inherit;
7012 font-weight: bold;
6895 } 7013 }
6896 7014
6897 hr { 7015 hr {
6898 margin-top: 20px; 7016 margin-top: 20px;
6899 margin-bottom: 20px; 7017 margin-bottom: 20px;
6900 border: 0; 7018 border: 0;
6901 border-top: 1px solid #eee; 7019 border-top: 1px solid #eee;
6902 height: 0; 7020 height: 0;
6903 box-sizing: content-box; 7021 box-sizing: content-box;
6904 } 7022 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
7057 background-color: #f5f5f5; 7175 background-color: #f5f5f5;
7058 border: 1px solid #e3e3e3; 7176 border: 1px solid #e3e3e3;
7059 border-radius: 4px; 7177 border-radius: 4px;
7060 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 7178 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
7061 } 7179 }
7062 7180
7063 .break-wrap { 7181 .break-wrap {
7064 word-wrap: break-word; 7182 word-wrap: break-word;
7065 } 7183 }
7066 </style> 7184 </style>
7067 <a href="{{ url }}">{{ name }}</a> 7185
7186 <nav-bar>
7187 <top-nav-menu last="{{ true }}"></top-nav-menu>
7188 <nav-refresh callback="{{ refresh }}"></nav-refresh>
7189 </nav-bar>
7190
7191 <div class="content">
7192 <h1>HttpServer</h1>
7193
7194 <br>
7195
7196 <div class="memberList">
7197 <div class="memberItem">
7198 <div class="memberName">Socket</div>
7199 <div class="memberValue"><io-socket-ref ref="{{ httpServer['socket'] } }"></io-socket-ref></div>
7200 </div>
7201 <div class="memberItem">
7202 <div class="memberName">Address</div>
7203 <div class="memberValue">{{ httpServer['address'] }}</div>
7204 </div>
7205 <div class="memberItem">
7206 <div class="memberName">Port</div>
7207 <div class="memberValue">{{ httpServer['port'] }}</div>
7208 </div>
7209 <div class="memberItem">
7210 <div class="memberName">Active connections</div>
7211 <div class="memberValue">{{ httpServer['active'] }}</div>
7212 </div>
7213 <div class="memberItem">
7214 <div class="memberName">Idle connections</div>
7215 <div class="memberValue">{{ httpServer['idle'] }}</div>
7216 </div>
7217 </div>
7218 </div>
7219 <br>
7220 <hr>
7068 </template> 7221 </template>
7069 </polymer-element> 7222 </polymer-element>
7070 7223
7071 <polymer-element name="io-web-socket-list-view" extends="observatory-element"> 7224 <polymer-element name="io-socket-ref" extends="service-ref">
7072 <template> 7225 <template>
7073 <style> 7226 <style>
7074 /* Global styles */ 7227 /* Global styles */
7075 * { 7228 * {
7076 margin: 0; 7229 margin: 0;
7077 padding: 0; 7230 padding: 0;
7078 font: 400 14px 'Montserrat', sans-serif; 7231 font: 400 14px 'Montserrat', sans-serif;
7079 color: #333; 7232 color: #333;
7080 box-sizing: border-box; 7233 box-sizing: border-box;
7081 } 7234 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
7121 color: #0489c3; 7274 color: #0489c3;
7122 text-decoration: none; 7275 text-decoration: none;
7123 } 7276 }
7124 7277
7125 a:hover { 7278 a:hover {
7126 text-decoration: underline; 7279 text-decoration: underline;
7127 } 7280 }
7128 7281
7129 em { 7282 em {
7130 color: inherit; 7283 color: inherit;
7131 font-style:italic; 7284 font-style: italic;
7285 }
7286
7287 b {
7288 color: inherit;
7289 font-weight: bold;
7132 } 7290 }
7133 7291
7134 hr { 7292 hr {
7135 margin-top: 20px; 7293 margin-top: 20px;
7136 margin-bottom: 20px; 7294 margin-bottom: 20px;
7137 border: 0; 7295 border: 0;
7138 border-top: 1px solid #eee; 7296 border-top: 1px solid #eee;
7139 height: 0; 7297 height: 0;
7140 box-sizing: content-box; 7298 box-sizing: content-box;
7141 } 7299 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
7294 background-color: #f5f5f5; 7452 background-color: #f5f5f5;
7295 border: 1px solid #e3e3e3; 7453 border: 1px solid #e3e3e3;
7296 border-radius: 4px; 7454 border-radius: 4px;
7297 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 7455 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
7298 } 7456 }
7299 7457
7300 .break-wrap { 7458 .break-wrap {
7301 word-wrap: break-word; 7459 word-wrap: break-word;
7302 } 7460 }
7303 </style> 7461 </style>
7304 7462 <a href="{{ url }}">{{ name }}</a>
7305 <nav-bar>
7306 <top-nav-menu last="{{ true }}"></top-nav-menu>
7307 <nav-refresh callback="{{ refresh }}"></nav-refresh>
7308 </nav-bar>
7309
7310 <div class="content">
7311 <h1>WebSockets</h1>
7312
7313 <br>
7314
7315 <ul class="list-group">
7316 <template repeat="{{ webSocket in list['members'] }}">
7317 <li class="list-group-item">
7318 <io-web-socket-ref ref="{{ webSocket }}"></io-web-socket-ref>
7319 </li>
7320 </template>
7321 </ul>
7322 </div>
7323 <br>
7324 <hr>
7325 </template> 7463 </template>
7326 </polymer-element> 7464 </polymer-element>
7327 7465
7328 <polymer-element name="io-web-socket-view" extends="observatory-element"> 7466 <polymer-element name="io-socket-list-view" extends="observatory-element">
7329 <template> 7467 <template>
7330 <style> 7468 <style>
7331 /* Global styles */ 7469 /* Global styles */
7332 * { 7470 * {
7333 margin: 0; 7471 margin: 0;
7334 padding: 0; 7472 padding: 0;
7335 font: 400 14px 'Montserrat', sans-serif; 7473 font: 400 14px 'Montserrat', sans-serif;
7336 color: #333; 7474 color: #333;
7337 box-sizing: border-box; 7475 box-sizing: border-box;
7338 } 7476 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
7378 color: #0489c3; 7516 color: #0489c3;
7379 text-decoration: none; 7517 text-decoration: none;
7380 } 7518 }
7381 7519
7382 a:hover { 7520 a:hover {
7383 text-decoration: underline; 7521 text-decoration: underline;
7384 } 7522 }
7385 7523
7386 em { 7524 em {
7387 color: inherit; 7525 color: inherit;
7388 font-style:italic; 7526 font-style: italic;
7527 }
7528
7529 b {
7530 color: inherit;
7531 font-weight: bold;
7389 } 7532 }
7390 7533
7391 hr { 7534 hr {
7392 margin-top: 20px; 7535 margin-top: 20px;
7393 margin-bottom: 20px; 7536 margin-bottom: 20px;
7394 border: 0; 7537 border: 0;
7395 border-top: 1px solid #eee; 7538 border-top: 1px solid #eee;
7396 height: 0; 7539 height: 0;
7397 box-sizing: content-box; 7540 box-sizing: content-box;
7398 } 7541 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
7558 word-wrap: break-word; 7701 word-wrap: break-word;
7559 } 7702 }
7560 </style> 7703 </style>
7561 7704
7562 <nav-bar> 7705 <nav-bar>
7563 <top-nav-menu last="{{ true }}"></top-nav-menu> 7706 <top-nav-menu last="{{ true }}"></top-nav-menu>
7564 <nav-refresh callback="{{ refresh }}"></nav-refresh> 7707 <nav-refresh callback="{{ refresh }}"></nav-refresh>
7565 </nav-bar> 7708 </nav-bar>
7566 7709
7567 <div class="content"> 7710 <div class="content">
7568 <h1>WebSocket</h1> 7711 <h1>Sockets</h1>
7569 7712
7570 <br> 7713 <br>
7571 7714
7572 <div class="memberList"> 7715 <ul class="list-group">
7573 <div class="memberItem"> 7716 <template repeat="{{ socket in list['members'] }}">
7574 <div class="memberName">Socket</div> 7717 <li class="list-group-item">
7575 <div class="memberValue"><io-socket-ref ref="{{ webSocket['socket'] }} "></io-socket-ref></div> 7718 <io-socket-ref ref="{{ socket }}"></io-socket-ref>
7576 </div> 7719 </li>
7577 </div> 7720 </template>
7721 </ul>
7578 </div> 7722 </div>
7579 <br> 7723 <br>
7580 <hr> 7724 <hr>
7581 </template> 7725 </template>
7582 </polymer-element> 7726 </polymer-element>
7583 7727
7584 <polymer-element name="io-random-access-file-ref" extends="service-ref"> 7728 <polymer-element name="io-socket-view" extends="observatory-element">
7585 <template> 7729 <template>
7586 <style> 7730 <style>
7587 /* Global styles */ 7731 /* Global styles */
7588 * { 7732 * {
7589 margin: 0; 7733 margin: 0;
7590 padding: 0; 7734 padding: 0;
7591 font: 400 14px 'Montserrat', sans-serif; 7735 font: 400 14px 'Montserrat', sans-serif;
7592 color: #333; 7736 color: #333;
7593 box-sizing: border-box; 7737 box-sizing: border-box;
7594 } 7738 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
7634 color: #0489c3; 7778 color: #0489c3;
7635 text-decoration: none; 7779 text-decoration: none;
7636 } 7780 }
7637 7781
7638 a:hover { 7782 a:hover {
7639 text-decoration: underline; 7783 text-decoration: underline;
7640 } 7784 }
7641 7785
7642 em { 7786 em {
7643 color: inherit; 7787 color: inherit;
7644 font-style:italic; 7788 font-style: italic;
7789 }
7790
7791 b {
7792 color: inherit;
7793 font-weight: bold;
7645 } 7794 }
7646 7795
7647 hr { 7796 hr {
7648 margin-top: 20px; 7797 margin-top: 20px;
7649 margin-bottom: 20px; 7798 margin-bottom: 20px;
7650 border: 0; 7799 border: 0;
7651 border-top: 1px solid #eee; 7800 border-top: 1px solid #eee;
7652 height: 0; 7801 height: 0;
7653 box-sizing: content-box; 7802 box-sizing: content-box;
7654 } 7803 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
7807 background-color: #f5f5f5; 7956 background-color: #f5f5f5;
7808 border: 1px solid #e3e3e3; 7957 border: 1px solid #e3e3e3;
7809 border-radius: 4px; 7958 border-radius: 4px;
7810 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 7959 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
7811 } 7960 }
7812 7961
7813 .break-wrap { 7962 .break-wrap {
7814 word-wrap: break-word; 7963 word-wrap: break-word;
7815 } 7964 }
7816 </style> 7965 </style>
7817 <a href="{{ url }}">{{ name }}</a> 7966
7967 <nav-bar>
7968 <top-nav-menu last="{{ true }}"></top-nav-menu>
7969 <nav-refresh callback="{{ refresh }}"></nav-refresh>
7970 </nav-bar>
7971
7972 <div class="content">
7973 <h1>Socket</h1>
7974
7975 <br>
7976
7977 <div class="memberList">
7978 <template if="{{ socket['owner'] != null }}">
7979 <div class="memberItem">
7980 <div class="memberName">Owner</div>
7981 <div class="memberValue"><io-ref ref="{{ socket['owner'] }}"></io-re f></div>
7982 </div>
7983 </template>
7984 <div class="memberItem">
7985 <div class="memberName">Address</div>
7986 <div class="memberValue">{{ socket['address'] }}</div>
7987 </div>
7988 <div class="memberItem">
7989 <div class="memberName">Port</div>
7990 <div class="memberValue">{{ socket['port'] }}</div>
7991 </div>
7992 <div class="memberItem">
7993 <div class="memberName">File descriptor</div>
7994 <div class="memberValue">{{ socket['fd'] }}</div>
7995 </div>
7996 </div>
7997 </div>
7998 <br>
7999 <hr>
7818 </template> 8000 </template>
7819 </polymer-element> 8001 </polymer-element>
7820 8002
7821 <polymer-element name="io-random-access-file-list-view" extends="observatory-ele ment"> 8003 <polymer-element name="io-web-socket-ref" extends="service-ref">
7822 <template> 8004 <template>
7823 <style> 8005 <style>
7824 /* Global styles */ 8006 /* Global styles */
7825 * { 8007 * {
7826 margin: 0; 8008 margin: 0;
7827 padding: 0; 8009 padding: 0;
7828 font: 400 14px 'Montserrat', sans-serif; 8010 font: 400 14px 'Montserrat', sans-serif;
7829 color: #333; 8011 color: #333;
7830 box-sizing: border-box; 8012 box-sizing: border-box;
7831 } 8013 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
7871 color: #0489c3; 8053 color: #0489c3;
7872 text-decoration: none; 8054 text-decoration: none;
7873 } 8055 }
7874 8056
7875 a:hover { 8057 a:hover {
7876 text-decoration: underline; 8058 text-decoration: underline;
7877 } 8059 }
7878 8060
7879 em { 8061 em {
7880 color: inherit; 8062 color: inherit;
7881 font-style:italic; 8063 font-style: italic;
8064 }
8065
8066 b {
8067 color: inherit;
8068 font-weight: bold;
7882 } 8069 }
7883 8070
7884 hr { 8071 hr {
7885 margin-top: 20px; 8072 margin-top: 20px;
7886 margin-bottom: 20px; 8073 margin-bottom: 20px;
7887 border: 0; 8074 border: 0;
7888 border-top: 1px solid #eee; 8075 border-top: 1px solid #eee;
7889 height: 0; 8076 height: 0;
7890 box-sizing: content-box; 8077 box-sizing: content-box;
7891 } 8078 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
8044 background-color: #f5f5f5; 8231 background-color: #f5f5f5;
8045 border: 1px solid #e3e3e3; 8232 border: 1px solid #e3e3e3;
8046 border-radius: 4px; 8233 border-radius: 4px;
8047 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 8234 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
8048 } 8235 }
8049 8236
8050 .break-wrap { 8237 .break-wrap {
8051 word-wrap: break-word; 8238 word-wrap: break-word;
8052 } 8239 }
8053 </style> 8240 </style>
8054 8241 <a href="{{ url }}">{{ name }}</a>
8055 <nav-bar>
8056 <top-nav-menu last="{{ true }}"></top-nav-menu>
8057 <nav-refresh callback="{{ refresh }}"></nav-refresh>
8058 </nav-bar>
8059
8060 <div class="content">
8061 <h1>Random Access Files</h1>
8062
8063 <br>
8064
8065 <ul class="list-group">
8066 <template repeat="{{ file in list['members'] }}">
8067 <li class="list-group-item">
8068 <io-random-access-file-ref ref="{{ file }}"></io-random-access-file- ref>
8069 </li>
8070 </template>
8071 </ul>
8072 </div>
8073 <br>
8074 <hr>
8075 </template> 8242 </template>
8076 </polymer-element> 8243 </polymer-element>
8077 8244
8078 <polymer-element name="io-random-access-file-view" extends="observatory-element" > 8245 <polymer-element name="io-web-socket-list-view" extends="observatory-element">
8079 <template> 8246 <template>
8080 <style> 8247 <style>
8081 /* Global styles */ 8248 /* Global styles */
8082 * { 8249 * {
8083 margin: 0; 8250 margin: 0;
8084 padding: 0; 8251 padding: 0;
8085 font: 400 14px 'Montserrat', sans-serif; 8252 font: 400 14px 'Montserrat', sans-serif;
8086 color: #333; 8253 color: #333;
8087 box-sizing: border-box; 8254 box-sizing: border-box;
8088 } 8255 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
8128 color: #0489c3; 8295 color: #0489c3;
8129 text-decoration: none; 8296 text-decoration: none;
8130 } 8297 }
8131 8298
8132 a:hover { 8299 a:hover {
8133 text-decoration: underline; 8300 text-decoration: underline;
8134 } 8301 }
8135 8302
8136 em { 8303 em {
8137 color: inherit; 8304 color: inherit;
8138 font-style:italic; 8305 font-style: italic;
8306 }
8307
8308 b {
8309 color: inherit;
8310 font-weight: bold;
8139 } 8311 }
8140 8312
8141 hr { 8313 hr {
8142 margin-top: 20px; 8314 margin-top: 20px;
8143 margin-bottom: 20px; 8315 margin-bottom: 20px;
8144 border: 0; 8316 border: 0;
8145 border-top: 1px solid #eee; 8317 border-top: 1px solid #eee;
8146 height: 0; 8318 height: 0;
8147 box-sizing: content-box; 8319 box-sizing: content-box;
8148 } 8320 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
8308 word-wrap: break-word; 8480 word-wrap: break-word;
8309 } 8481 }
8310 </style> 8482 </style>
8311 8483
8312 <nav-bar> 8484 <nav-bar>
8313 <top-nav-menu last="{{ true }}"></top-nav-menu> 8485 <top-nav-menu last="{{ true }}"></top-nav-menu>
8314 <nav-refresh callback="{{ refresh }}"></nav-refresh> 8486 <nav-refresh callback="{{ refresh }}"></nav-refresh>
8315 </nav-bar> 8487 </nav-bar>
8316 8488
8317 <div class="content"> 8489 <div class="content">
8318 <h1>Random Access File</h1> 8490 <h1>WebSockets</h1>
8319 8491
8320 <br> 8492 <br>
8321 8493
8322 <div class="memberList"> 8494 <ul class="list-group">
8323 <div class="memberItem"> 8495 <template repeat="{{ webSocket in list['members'] }}">
8324 <div class="memberName">Path</div> 8496 <li class="list-group-item">
8325 <div class="memberValue">{{ file['name'] }}</div> 8497 <io-web-socket-ref ref="{{ webSocket }}"></io-web-socket-ref>
8326 </div> 8498 </li>
8327 <div class="memberItem"> 8499 </template>
8328 <div class="memberName">Pending Operation</div> 8500 </ul>
8329 <div class="memberValue">{{ file['asyncDispatched'] }}</div>
8330 </div>
8331 <div class="memberItem">
8332 <div class="memberName">File Descriptor</div>
8333 <div class="memberValue">{{ file['fd'] }}</div>
8334 </div>
8335 </div>
8336 </div> 8501 </div>
8337 <br> 8502 <br>
8338 <hr> 8503 <hr>
8339 </template> 8504 </template>
8340 </polymer-element> 8505 </polymer-element>
8341 8506
8342 <polymer-element name="io-process-list-view" extends="observatory-element"> 8507 <polymer-element name="io-web-socket-view" extends="observatory-element">
8343 <template> 8508 <template>
8344 <style> 8509 <style>
8345 /* Global styles */ 8510 /* Global styles */
8346 * { 8511 * {
8347 margin: 0; 8512 margin: 0;
8348 padding: 0; 8513 padding: 0;
8349 font: 400 14px 'Montserrat', sans-serif; 8514 font: 400 14px 'Montserrat', sans-serif;
8350 color: #333; 8515 color: #333;
8351 box-sizing: border-box; 8516 box-sizing: border-box;
8352 } 8517 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
8392 color: #0489c3; 8557 color: #0489c3;
8393 text-decoration: none; 8558 text-decoration: none;
8394 } 8559 }
8395 8560
8396 a:hover { 8561 a:hover {
8397 text-decoration: underline; 8562 text-decoration: underline;
8398 } 8563 }
8399 8564
8400 em { 8565 em {
8401 color: inherit; 8566 color: inherit;
8402 font-style:italic; 8567 font-style: italic;
8568 }
8569
8570 b {
8571 color: inherit;
8572 font-weight: bold;
8403 } 8573 }
8404 8574
8405 hr { 8575 hr {
8406 margin-top: 20px; 8576 margin-top: 20px;
8407 margin-bottom: 20px; 8577 margin-bottom: 20px;
8408 border: 0; 8578 border: 0;
8409 border-top: 1px solid #eee; 8579 border-top: 1px solid #eee;
8410 height: 0; 8580 height: 0;
8411 box-sizing: content-box; 8581 box-sizing: content-box;
8412 } 8582 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
8572 word-wrap: break-word; 8742 word-wrap: break-word;
8573 } 8743 }
8574 </style> 8744 </style>
8575 8745
8576 <nav-bar> 8746 <nav-bar>
8577 <top-nav-menu last="{{ true }}"></top-nav-menu> 8747 <top-nav-menu last="{{ true }}"></top-nav-menu>
8578 <nav-refresh callback="{{ refresh }}"></nav-refresh> 8748 <nav-refresh callback="{{ refresh }}"></nav-refresh>
8579 </nav-bar> 8749 </nav-bar>
8580 8750
8581 <div class="content"> 8751 <div class="content">
8582 <h1>Processes</h1> 8752 <h1>WebSocket</h1>
8583 8753
8584 <br> 8754 <br>
8585 8755
8586 <ul class="list-group"> 8756 <div class="memberList">
8587 <template repeat="{{ process in list['members'] }}"> 8757 <div class="memberItem">
8588 <li class="list-group-item"> 8758 <div class="memberName">Socket</div>
8589 <io-process-ref ref="{{ process }}"></io-process-ref> 8759 <div class="memberValue"><io-socket-ref ref="{{ webSocket['socket'] }} "></io-socket-ref></div>
8590 </li> 8760 </div>
8591 </template> 8761 </div>
8592 </ul>
8593 </div> 8762 </div>
8594 <br> 8763 <br>
8595 <hr> 8764 <hr>
8596 </template> 8765 </template>
8597 </polymer-element> 8766 </polymer-element>
8598 8767
8599 <polymer-element name="io-process-ref" extends="service-ref"> 8768 <polymer-element name="io-random-access-file-ref" extends="service-ref">
8600 <template> 8769 <template>
8601 <style> 8770 <style>
8602 /* Global styles */ 8771 /* Global styles */
8603 * { 8772 * {
8604 margin: 0; 8773 margin: 0;
8605 padding: 0; 8774 padding: 0;
8606 font: 400 14px 'Montserrat', sans-serif; 8775 font: 400 14px 'Montserrat', sans-serif;
8607 color: #333; 8776 color: #333;
8608 box-sizing: border-box; 8777 box-sizing: border-box;
8609 } 8778 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
8649 color: #0489c3; 8818 color: #0489c3;
8650 text-decoration: none; 8819 text-decoration: none;
8651 } 8820 }
8652 8821
8653 a:hover { 8822 a:hover {
8654 text-decoration: underline; 8823 text-decoration: underline;
8655 } 8824 }
8656 8825
8657 em { 8826 em {
8658 color: inherit; 8827 color: inherit;
8659 font-style:italic; 8828 font-style: italic;
8829 }
8830
8831 b {
8832 color: inherit;
8833 font-weight: bold;
8660 } 8834 }
8661 8835
8662 hr { 8836 hr {
8663 margin-top: 20px; 8837 margin-top: 20px;
8664 margin-bottom: 20px; 8838 margin-bottom: 20px;
8665 border: 0; 8839 border: 0;
8666 border-top: 1px solid #eee; 8840 border-top: 1px solid #eee;
8667 height: 0; 8841 height: 0;
8668 box-sizing: content-box; 8842 box-sizing: content-box;
8669 } 8843 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
8822 background-color: #f5f5f5; 8996 background-color: #f5f5f5;
8823 border: 1px solid #e3e3e3; 8997 border: 1px solid #e3e3e3;
8824 border-radius: 4px; 8998 border-radius: 4px;
8825 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 8999 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
8826 } 9000 }
8827 9001
8828 .break-wrap { 9002 .break-wrap {
8829 word-wrap: break-word; 9003 word-wrap: break-word;
8830 } 9004 }
8831 </style> 9005 </style>
8832 <template if="{{ small }}"> 9006 <a href="{{ url }}">{{ name }}</a>
8833 <a href="{{ url }}">{{ name }}</a>
8834 </template>
8835 <template if="{{ !small }}">
8836 <a href="{{ url }}">({{ ref['pid'] }}) {{ name }} {{ ref['arguments'] }}</ a>
8837 </template>
8838 </template> 9007 </template>
8839 </polymer-element> 9008 </polymer-element>
8840 9009
8841 <polymer-element name="io-process-view" extends="observatory-element"> 9010 <polymer-element name="io-random-access-file-list-view" extends="observatory-ele ment">
8842 <template> 9011 <template>
8843 <style> 9012 <style>
8844 /* Global styles */ 9013 /* Global styles */
8845 * { 9014 * {
8846 margin: 0; 9015 margin: 0;
8847 padding: 0; 9016 padding: 0;
8848 font: 400 14px 'Montserrat', sans-serif; 9017 font: 400 14px 'Montserrat', sans-serif;
8849 color: #333; 9018 color: #333;
8850 box-sizing: border-box; 9019 box-sizing: border-box;
8851 } 9020 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
8891 color: #0489c3; 9060 color: #0489c3;
8892 text-decoration: none; 9061 text-decoration: none;
8893 } 9062 }
8894 9063
8895 a:hover { 9064 a:hover {
8896 text-decoration: underline; 9065 text-decoration: underline;
8897 } 9066 }
8898 9067
8899 em { 9068 em {
8900 color: inherit; 9069 color: inherit;
8901 font-style:italic; 9070 font-style: italic;
9071 }
9072
9073 b {
9074 color: inherit;
9075 font-weight: bold;
8902 } 9076 }
8903 9077
8904 hr { 9078 hr {
8905 margin-top: 20px; 9079 margin-top: 20px;
8906 margin-bottom: 20px; 9080 margin-bottom: 20px;
8907 border: 0; 9081 border: 0;
8908 border-top: 1px solid #eee; 9082 border-top: 1px solid #eee;
8909 height: 0; 9083 height: 0;
8910 box-sizing: content-box; 9084 box-sizing: content-box;
8911 } 9085 }
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
9071 word-wrap: break-word; 9245 word-wrap: break-word;
9072 } 9246 }
9073 </style> 9247 </style>
9074 9248
9075 <nav-bar> 9249 <nav-bar>
9076 <top-nav-menu last="{{ true }}"></top-nav-menu> 9250 <top-nav-menu last="{{ true }}"></top-nav-menu>
9077 <nav-refresh callback="{{ refresh }}"></nav-refresh> 9251 <nav-refresh callback="{{ refresh }}"></nav-refresh>
9078 </nav-bar> 9252 </nav-bar>
9079 9253
9080 <div class="content"> 9254 <div class="content">
9081 <h1>Process</h1> 9255 <h1>Random Access Files</h1>
9082 9256
9083 <br> 9257 <br>
9084 9258
9085 <div class="memberList"> 9259 <ul class="list-group">
9086 <div class="memberItem"> 9260 <template repeat="{{ file in list['members'] }}">
9087 <div class="memberName">Path</div> 9261 <li class="list-group-item">
9088 <div class="memberValue">{{ process['name'] }}</div> 9262 <io-random-access-file-ref ref="{{ file }}"></io-random-access-file- ref>
9089 </div> 9263 </li>
9090 <div class="memberItem"> 9264 </template>
9091 <div class="memberName">Pid</div> 9265 </ul>
9092 <div class="memberValue">{{ process['pid'] }}</div>
9093 </div>
9094 <div class="memberItem">
9095 <div class="memberName">Arguments</div>
9096 <div class="memberValue">{{ process['arguments'] }}</div>
9097 </div>
9098 <div class="memberItem">
9099 <div class="memberName">Started</div>
9100 <div class="memberValue">{{ process['started'] }}</div>
9101 </div>
9102 <div class="memberItem">
9103 <div class="memberName">Working Directory</div>
9104 <div class="memberValue">{{ process['workingDirectory'] }}</div>
9105 </div>
9106 </div>
9107
9108 <br>
9109
9110 <h2>Environment</h2>
9111 <div class="well">
9112 <div class="monospace break-wrap">
9113 <template repeat="{{ variable in process['environment'] }}">
9114 {{ variable }}
9115 <br>
9116 </template>
9117 </div>
9118 </div>
9119 </div> 9266 </div>
9120 <br> 9267 <br>
9121 <hr> 9268 <hr>
9122 </template> 9269 </template>
9123 </polymer-element> 9270 </polymer-element>
9124 9271
9125 9272 <polymer-element name="io-random-access-file-view" extends="observatory-element" >
9126 9273 <template>
9127 9274 <style>
9128 <polymer-element name="isolate-ref" extends="service-ref">
9129 <template><style>
9130 /* Global styles */ 9275 /* Global styles */
9131 * { 9276 * {
9132 margin: 0; 9277 margin: 0;
9133 padding: 0; 9278 padding: 0;
9134 font: 400 14px 'Montserrat', sans-serif; 9279 font: 400 14px 'Montserrat', sans-serif;
9135 color: #333; 9280 color: #333;
9136 box-sizing: border-box; 9281 box-sizing: border-box;
9137 } 9282 }
9138 9283
9139 .content { 9284 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
9177 color: #0489c3; 9322 color: #0489c3;
9178 text-decoration: none; 9323 text-decoration: none;
9179 } 9324 }
9180 9325
9181 a:hover { 9326 a:hover {
9182 text-decoration: underline; 9327 text-decoration: underline;
9183 } 9328 }
9184 9329
9185 em { 9330 em {
9186 color: inherit; 9331 color: inherit;
9187 font-style:italic; 9332 font-style: italic;
9333 }
9334
9335 b {
9336 color: inherit;
9337 font-weight: bold;
9188 } 9338 }
9189 9339
9190 hr { 9340 hr {
9191 margin-top: 20px; 9341 margin-top: 20px;
9192 margin-bottom: 20px; 9342 margin-bottom: 20px;
9193 border: 0; 9343 border: 0;
9194 border-top: 1px solid #eee; 9344 border-top: 1px solid #eee;
9195 height: 0; 9345 height: 0;
9196 box-sizing: content-box; 9346 box-sizing: content-box;
9197 } 9347 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
9350 background-color: #f5f5f5; 9500 background-color: #f5f5f5;
9351 border: 1px solid #e3e3e3; 9501 border: 1px solid #e3e3e3;
9352 border-radius: 4px; 9502 border-radius: 4px;
9353 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 9503 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
9354 } 9504 }
9355 9505
9356 .break-wrap { 9506 .break-wrap {
9357 word-wrap: break-word; 9507 word-wrap: break-word;
9358 } 9508 }
9359 </style> 9509 </style>
9360 <a href="{{ url }}">{{ ref.name }}</a>
9361 </template>
9362 9510
9511 <nav-bar>
9512 <top-nav-menu last="{{ true }}"></top-nav-menu>
9513 <nav-refresh callback="{{ refresh }}"></nav-refresh>
9514 </nav-bar>
9515
9516 <div class="content">
9517 <h1>Random Access File</h1>
9518
9519 <br>
9520
9521 <div class="memberList">
9522 <div class="memberItem">
9523 <div class="memberName">Path</div>
9524 <div class="memberValue">{{ file['name'] }}</div>
9525 </div>
9526 <div class="memberItem">
9527 <div class="memberName">Pending Operation</div>
9528 <div class="memberValue">{{ file['asyncDispatched'] }}</div>
9529 </div>
9530 <div class="memberItem">
9531 <div class="memberName">File Descriptor</div>
9532 <div class="memberValue">{{ file['fd'] }}</div>
9533 </div>
9534 </div>
9535 </div>
9536 <br>
9537 <hr>
9538 </template>
9363 </polymer-element> 9539 </polymer-element>
9364 9540
9365 9541 <polymer-element name="io-process-list-view" extends="observatory-element">
9366
9367
9368
9369
9370
9371 <polymer-element name="isolate-summary" extends="observatory-element">
9372 <template> 9542 <template>
9373 <style> 9543 <style>
9374 /* Global styles */ 9544 /* Global styles */
9375 * { 9545 * {
9376 margin: 0; 9546 margin: 0;
9377 padding: 0; 9547 padding: 0;
9378 font: 400 14px 'Montserrat', sans-serif; 9548 font: 400 14px 'Montserrat', sans-serif;
9379 color: #333; 9549 color: #333;
9380 box-sizing: border-box; 9550 box-sizing: border-box;
9381 } 9551 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
9421 color: #0489c3; 9591 color: #0489c3;
9422 text-decoration: none; 9592 text-decoration: none;
9423 } 9593 }
9424 9594
9425 a:hover { 9595 a:hover {
9426 text-decoration: underline; 9596 text-decoration: underline;
9427 } 9597 }
9428 9598
9429 em { 9599 em {
9430 color: inherit; 9600 color: inherit;
9431 font-style:italic; 9601 font-style: italic;
9602 }
9603
9604 b {
9605 color: inherit;
9606 font-weight: bold;
9432 } 9607 }
9433 9608
9434 hr { 9609 hr {
9435 margin-top: 20px; 9610 margin-top: 20px;
9436 margin-bottom: 20px; 9611 margin-bottom: 20px;
9437 border: 0; 9612 border: 0;
9438 border-top: 1px solid #eee; 9613 border-top: 1px solid #eee;
9439 height: 0; 9614 height: 0;
9440 box-sizing: content-box; 9615 box-sizing: content-box;
9441 } 9616 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
9594 background-color: #f5f5f5; 9769 background-color: #f5f5f5;
9595 border: 1px solid #e3e3e3; 9770 border: 1px solid #e3e3e3;
9596 border-radius: 4px; 9771 border-radius: 4px;
9597 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 9772 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
9598 } 9773 }
9599 9774
9600 .break-wrap { 9775 .break-wrap {
9601 word-wrap: break-word; 9776 word-wrap: break-word;
9602 } 9777 }
9603 </style> 9778 </style>
9604 <div class="flex-row"> 9779
9605 <div class="flex-item-10-percent"> 9780 <nav-bar>
9606 <img src="packages/observatory/src/elements/img/isolate_icon.png"> 9781 <top-nav-menu last="{{ true }}"></top-nav-menu>
9607 </div> 9782 <nav-refresh callback="{{ refresh }}"></nav-refresh>
9608 <div class="flex-item-10-percent"> 9783 </nav-bar>
9609 <isolate-ref ref="{{ isolate }}"></isolate-ref> 9784
9610 </div> 9785 <div class="content">
9611 <div class="flex-item-20-percent"> 9786 <h1>Processes</h1>
9612 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state> 9787
9613 </div> 9788 <br>
9614 <div class="flex-item-50-percent"> 9789
9615 <isolate-location isolate="{{ isolate }}"></isolate-location> 9790 <ul class="list-group">
9616 </div> 9791 <template repeat="{{ process in list['members'] }}">
9617 <div class="flex-item-10-percent"> 9792 <li class="list-group-item">
9618 </div> 9793 <io-process-ref ref="{{ process }}"></io-process-ref>
9794 </li>
9795 </template>
9796 </ul>
9619 </div> 9797 </div>
9620 9798 <br>
9621 <div class="flex-row"> 9799 <hr>
9622 <div class="flex-item-20-percent"></div>
9623 <div class="flex-item-60-percent">
9624 <hr>
9625 </div>
9626 <div class="flex-item-20-percent"></div>
9627 </div>
9628
9629 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary>
9630
9631 </template> 9800 </template>
9632 </polymer-element> 9801 </polymer-element>
9633 9802
9634 <polymer-element name="isolate-run-state" extends="observatory-element"> 9803 <polymer-element name="io-process-ref" extends="service-ref">
9635 <template> 9804 <template>
9636 <template if="{{ isolate.pauseEvent != null }}">
9637 <strong>paused</strong>
9638 <action-link callback="{{ resume }}" label="resume"></action-link>
9639 </template>
9640
9641 <template if="{{ isolate.running }}">
9642 <strong>running</strong>
9643 <action-link callback="{{ pause }}" label="pause"></action-link>
9644 </template>
9645
9646 <template if="{{ isolate.idle }}">
9647 <strong>idle</strong>
9648 </template>
9649
9650 <template if="{{ isolate.loading }}">
9651 <strong>loading...</strong>
9652 </template>
9653 </template>
9654 </polymer-element>
9655
9656 <polymer-element name="isolate-location" extends="observatory-element">
9657 <template>
9658 <template if="{{ isolate.pauseEvent != null }}">
9659 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateCreated' }}">
9660 at isolate start
9661 </template>
9662 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateShutdown' }}">
9663 at isolate exit
9664 </template>
9665 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateInterrupted' } }">
9666 at
9667 <function-ref ref="{{ isolate.topFrame['function'] }}">
9668 </function-ref>
9669 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>)
9670 </template>
9671 <template if="{{ isolate.pauseEvent['eventType'] == 'BreakpointReached' }} ">
9672 at breakpoint {{ isolate.pauseEvent['breakpoint']['id'] }}
9673 <function-ref ref="{{ isolate.topFrame['function'] }}">
9674 </function-ref>
9675 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>)
9676 </template>
9677 </template>
9678
9679 <template if="{{ isolate.running }}">
9680 at
9681 <function-ref ref="{{ isolate.topFrame['function'] }}">
9682 </function-ref>
9683 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topFra me['tokenPos'] }}"></script-ref>)
9684 </template>
9685
9686 </template>
9687 </polymer-element>
9688
9689 <polymer-element name="isolate-shared-summary" extends="observatory-element">
9690 <template>
9691 <style>
9692 .errorBox {
9693 background-color: #f5f5f5;
9694 border: 1px solid #ccc;
9695 padding: 10px;
9696 font-family: consolas, courier, monospace;
9697 font-size: 1em;
9698 line-height: 1.2em;
9699 white-space: pre;
9700 }
9701 </style>
9702 <style> 9805 <style>
9703 /* Global styles */ 9806 /* Global styles */
9704 * { 9807 * {
9705 margin: 0; 9808 margin: 0;
9706 padding: 0; 9809 padding: 0;
9707 font: 400 14px 'Montserrat', sans-serif; 9810 font: 400 14px 'Montserrat', sans-serif;
9708 color: #333; 9811 color: #333;
9709 box-sizing: border-box; 9812 box-sizing: border-box;
9710 } 9813 }
9711 9814
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
9750 color: #0489c3; 9853 color: #0489c3;
9751 text-decoration: none; 9854 text-decoration: none;
9752 } 9855 }
9753 9856
9754 a:hover { 9857 a:hover {
9755 text-decoration: underline; 9858 text-decoration: underline;
9756 } 9859 }
9757 9860
9758 em { 9861 em {
9759 color: inherit; 9862 color: inherit;
9760 font-style:italic; 9863 font-style: italic;
9864 }
9865
9866 b {
9867 color: inherit;
9868 font-weight: bold;
9761 } 9869 }
9762 9870
9763 hr { 9871 hr {
9764 margin-top: 20px; 9872 margin-top: 20px;
9765 margin-bottom: 20px; 9873 margin-bottom: 20px;
9766 border: 0; 9874 border: 0;
9767 border-top: 1px solid #eee; 9875 border-top: 1px solid #eee;
9768 height: 0; 9876 height: 0;
9769 box-sizing: content-box; 9877 box-sizing: content-box;
9770 } 9878 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
9923 background-color: #f5f5f5; 10031 background-color: #f5f5f5;
9924 border: 1px solid #e3e3e3; 10032 border: 1px solid #e3e3e3;
9925 border-radius: 4px; 10033 border-radius: 4px;
9926 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 10034 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
9927 } 10035 }
9928 10036
9929 .break-wrap { 10037 .break-wrap {
9930 word-wrap: break-word; 10038 word-wrap: break-word;
9931 } 10039 }
9932 </style> 10040 </style>
9933 <template if="{{ isolate.error != null }}"> 10041 <template if="{{ small }}">
9934 <div class="content-centered"> 10042 <a href="{{ url }}">{{ name }}</a>
9935 <pre class="errorBox">{{ isolate.error.message }}</pre>
9936 <br>
9937 </div>
9938 </template> 10043 </template>
9939 <div class="flex-row"> 10044 <template if="{{ !small }}">
9940 <div class="flex-item-10-percent"> 10045 <a href="{{ url }}">({{ ref['pid'] }}) {{ name }} {{ ref['arguments'] }}</ a>
9941 </div> 10046 </template>
9942 <div class="flex-item-40-percent">
9943 <isolate-counter-chart counters="{{ isolate.counters }}"></isolate-count er-chart>
9944 </div>
9945 <div class="flex-item-40-percent">
9946 <div class="memberList">
9947 <div class="memberItem">
9948 <div class="memberName">new heap</div>
9949 <div class="memberValue">
9950 {{ isolate.newHeapUsed | formatSize }}
9951 of
9952 {{ isolate.newHeapCapacity | formatSize }}
9953 </div>
9954 </div>
9955 <div class="memberItem">
9956 <div class="memberName">old heap</div>
9957 <div class="memberValue">
9958 {{ isolate.oldHeapUsed | formatSize }}
9959 of
9960 {{ isolate.oldHeapCapacity | formatSize }}
9961 </div>
9962 </div>
9963 </div>
9964 <br>
9965 <div class="memberItem">
9966 <div class="memberValue">
9967 See <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack tra ce</a>
9968 </div>
9969 </div>
9970 <div class="memberItem">
9971 <div class="memberValue">
9972 See <a href="{{ isolate.relativeHashLink('profile') }}">cpu profile< /a>
9973 </div>
9974 </div>
9975 <div class="memberItem">
9976 <div class="memberValue">
9977 See <a href="{{ isolate.relativeHashLink('allocationprofile') }}">al location profile</a>
9978 </div>
9979 </div>
9980 <div class="memberItem">
9981 <div class="memberValue">
9982 See <a href="{{ isolate.relativeHashLink('heapmap') }}">heap map</a>
9983 </div>
9984 </div>
9985 <template if="{{ isolate.ioEnabled }}">
9986 <div class="memberItem">
9987 <div class="memberValue">
9988 See <a href="{{ isolate.relativeHashLink('io') }}">dart:io</a>
9989 </div>
9990 </div>
9991 </template>
9992 </div>
9993 <div class="flex-item-10-percent">
9994 </div>
9995 </div>
9996 </template> 10047 </template>
9997 </polymer-element> 10048 </polymer-element>
9998 10049
9999 <polymer-element name="isolate-counter-chart" extends="observatory-element"> 10050 <polymer-element name="io-process-view" extends="observatory-element">
10000 <template>
10001 <div id="counterPieChart" style="height: 200px"></div>
10002 </template>
10003 </polymer-element>
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017 <polymer-element name="isolate-view" extends="observatory-element">
10018 <template> 10051 <template>
10019 <style> 10052 <style>
10020 /* Global styles */ 10053 /* Global styles */
10021 * { 10054 * {
10022 margin: 0; 10055 margin: 0;
10023 padding: 0; 10056 padding: 0;
10024 font: 400 14px 'Montserrat', sans-serif; 10057 font: 400 14px 'Montserrat', sans-serif;
10025 color: #333; 10058 color: #333;
10026 box-sizing: border-box; 10059 box-sizing: border-box;
10027 } 10060 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10067 color: #0489c3; 10100 color: #0489c3;
10068 text-decoration: none; 10101 text-decoration: none;
10069 } 10102 }
10070 10103
10071 a:hover { 10104 a:hover {
10072 text-decoration: underline; 10105 text-decoration: underline;
10073 } 10106 }
10074 10107
10075 em { 10108 em {
10076 color: inherit; 10109 color: inherit;
10077 font-style:italic; 10110 font-style: italic;
10111 }
10112
10113 b {
10114 color: inherit;
10115 font-weight: bold;
10078 } 10116 }
10079 10117
10080 hr { 10118 hr {
10081 margin-top: 20px; 10119 margin-top: 20px;
10082 margin-bottom: 20px; 10120 margin-bottom: 20px;
10083 border: 0; 10121 border: 0;
10084 border-top: 1px solid #eee; 10122 border-top: 1px solid #eee;
10085 height: 0; 10123 height: 0;
10086 box-sizing: content-box; 10124 box-sizing: content-box;
10087 } 10125 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
10240 background-color: #f5f5f5; 10278 background-color: #f5f5f5;
10241 border: 1px solid #e3e3e3; 10279 border: 1px solid #e3e3e3;
10242 border-radius: 4px; 10280 border-radius: 4px;
10243 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 10281 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
10244 } 10282 }
10245 10283
10246 .break-wrap { 10284 .break-wrap {
10247 word-wrap: break-word; 10285 word-wrap: break-word;
10248 } 10286 }
10249 </style> 10287 </style>
10250 <style>
10251 .sourceInset {
10252 padding-left: 15%;
10253 padding-right: 15%;
10254 }
10255 .miniProfileChart {
10256 width: 80%;
10257 }
10258 </style>
10259 10288
10260 <nav-bar> 10289 <nav-bar>
10261 <top-nav-menu></top-nav-menu> 10290 <top-nav-menu last="{{ true }}"></top-nav-menu>
10262 <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}">
10263 </isolate-nav-menu>
10264 <nav-refresh callback="{{ refresh }}"></nav-refresh> 10291 <nav-refresh callback="{{ refresh }}"></nav-refresh>
10265 </nav-bar> 10292 </nav-bar>
10266 10293
10267 <div class="content"> 10294 <div class="content">
10268 <h1>isolate '{{ isolate.name }}'</h1> 10295 <h1>Process</h1>
10269 </div>
10270 10296
10271 <br> 10297 <br>
10272 <div class="flex-row"> 10298
10273 <div class="flex-item-10-percent"> 10299 <div class="memberList">
10300 <div class="memberItem">
10301 <div class="memberName">Path</div>
10302 <div class="memberValue">{{ process['name'] }}</div>
10303 </div>
10304 <div class="memberItem">
10305 <div class="memberName">Pid</div>
10306 <div class="memberValue">{{ process['pid'] }}</div>
10307 </div>
10308 <div class="memberItem">
10309 <div class="memberName">Arguments</div>
10310 <div class="memberValue">{{ process['arguments'] }}</div>
10311 </div>
10312 <div class="memberItem">
10313 <div class="memberName">Started</div>
10314 <div class="memberValue">{{ process['started'] }}</div>
10315 </div>
10316 <div class="memberItem">
10317 <div class="memberName">Working Directory</div>
10318 <div class="memberValue">{{ process['workingDirectory'] }}</div>
10319 </div>
10274 </div> 10320 </div>
10275 <div class="flex-item-20-percent"> 10321
10276 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state> 10322 <br>
10277 </div> 10323
10278 <div class="flex-item-60-percent"> 10324 <h2>Environment</h2>
10279 <isolate-location isolate="{{ isolate }}"></isolate-location> 10325 <div class="well">
10280 </div> 10326 <div class="monospace break-wrap">
10281 <div class="flex-item-10-percent"> 10327 <template repeat="{{ variable in process['environment'] }}">
10328 {{ variable }}
10329 <br>
10330 </template>
10331 </div>
10282 </div> 10332 </div>
10283 </div> 10333 </div>
10284 <br> 10334 <br>
10285
10286 <template if="{{ isolate.topFrame != null }}">
10287 <br>
10288 <script-inset script="{{ isolate.topFrame['script'] }}" pos="{{ isolate.to pFrame['tokenPos'] }}">
10289 </script-inset>
10290 </template>
10291
10292 <div class="flex-row">
10293 <div class="flex-item-20-percent"></div>
10294 <div class="flex-item-60-percent"><hr></div>
10295 <div class="flex-item-20-percent"></div>
10296 </div>
10297
10298 <br>
10299
10300 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary>
10301
10302 <div class="flex-row">
10303 <div class="flex-item-20-percent"></div>
10304 <div class="flex-item-60-percent"><hr></div>
10305 <div class="flex-item-20-percent"></div>
10306 </div>
10307
10308 <div class="content-centered">
10309 <div class="flex-row">
10310 <div class="flex-item-50-percent">
10311 <div class="memberList">
10312 <div class="memberItem">
10313 <div class="memberName">root library</div>
10314 <div class="memberValue">
10315 <library-ref ref="{{ isolate.rootLib }}"></library-ref>
10316 </div>
10317 </div>
10318 <div class="memberItem">
10319 <template if="{{ isolate.entry != null }}">
10320 <div class="memberName">entry</div>
10321 <div class="memberValue">
10322 <function-ref ref="{{ isolate.entry }}"></function-ref>
10323 </div>
10324 </template>
10325 </div>
10326 <div class="memberItem">
10327 <div class="memberName">isolate id</div>
10328 <div class="memberValue">{{ isolate.mainPort }}</div>
10329 </div>
10330 </div>
10331 </div>
10332 <div class="flex-item-50-percent">
10333 <div class="memberItem">
10334 <div class="memberValue">
10335 See <a href="{{ isolate.relativeHashLink('debug/breakpoints') }}"> breakpoints</a>
10336 </div>
10337 </div>
10338 </div>
10339 </div>
10340 </div>
10341
10342 <hr> 10335 <hr>
10343
10344 <div class="content">
10345 libraries ({{ isolate.libraries.length }})
10346 <curly-block expand="{{ isolate.libraries.length <= 8 }}">
10347 <div class="memberList">
10348 <template repeat="{{ lib in isolate.libraries }}">
10349 <div class="memberItem">
10350 <div class="memberName">
10351 <library-ref ref="{{ lib }}"></library-ref>
10352 </div>
10353 </div>
10354 </template>
10355 </div>
10356 </curly-block>
10357 </div>
10358
10359 <hr>
10360
10361 <div class="content">
10362 <div id="tagProfileChart" class="miniProfileChart" style="height: 600px">< /div>
10363 </div>
10364
10365 <hr>
10366
10367 <div class="content">
10368 <eval-box callback="{{ eval }}"></eval-box>
10369 </div>
10370 <br><br><br><br>
10371 <br><br><br><br>
10372 </template> 10336 </template>
10373
10374 </polymer-element> 10337 </polymer-element>
10375 10338
10376 10339
10377 10340
10378 10341
10379 10342 <polymer-element name="isolate-ref" extends="service-ref">
10380 10343 <template><style>
10381
10382
10383
10384
10385 <polymer-element name="instance-view" extends="observatory-element">
10386 <template>
10387 <style>
10388 /* Global styles */ 10344 /* Global styles */
10389 * { 10345 * {
10390 margin: 0; 10346 margin: 0;
10391 padding: 0; 10347 padding: 0;
10392 font: 400 14px 'Montserrat', sans-serif; 10348 font: 400 14px 'Montserrat', sans-serif;
10393 color: #333; 10349 color: #333;
10394 box-sizing: border-box; 10350 box-sizing: border-box;
10395 } 10351 }
10396 10352
10397 .content { 10353 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
10435 color: #0489c3; 10391 color: #0489c3;
10436 text-decoration: none; 10392 text-decoration: none;
10437 } 10393 }
10438 10394
10439 a:hover { 10395 a:hover {
10440 text-decoration: underline; 10396 text-decoration: underline;
10441 } 10397 }
10442 10398
10443 em { 10399 em {
10444 color: inherit; 10400 color: inherit;
10445 font-style:italic; 10401 font-style: italic;
10402 }
10403
10404 b {
10405 color: inherit;
10406 font-weight: bold;
10446 } 10407 }
10447 10408
10448 hr { 10409 hr {
10449 margin-top: 20px; 10410 margin-top: 20px;
10450 margin-bottom: 20px; 10411 margin-bottom: 20px;
10451 border: 0; 10412 border: 0;
10452 border-top: 1px solid #eee; 10413 border-top: 1px solid #eee;
10453 height: 0; 10414 height: 0;
10454 box-sizing: content-box; 10415 box-sizing: content-box;
10455 } 10416 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
10608 background-color: #f5f5f5; 10569 background-color: #f5f5f5;
10609 border: 1px solid #e3e3e3; 10570 border: 1px solid #e3e3e3;
10610 border-radius: 4px; 10571 border-radius: 4px;
10611 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 10572 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
10612 } 10573 }
10613 10574
10614 .break-wrap { 10575 .break-wrap {
10615 word-wrap: break-word; 10576 word-wrap: break-word;
10616 } 10577 }
10617 </style> 10578 </style>
10618 <nav-bar> 10579 <a href="{{ url }}">{{ ref.name }}</a>
10619 <top-nav-menu></top-nav-menu> 10580 </template>
10620 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu>
10621 <!-- TODO(turnidge): Add library nav menu here. -->
10622 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu>
10623 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
10624 <nav-refresh callback="{{ refresh }}"></nav-refresh>
10625 </nav-bar>
10626 10581
10627 <template if="{{ instance['error'] != null }}">
10628 <error-view error_obj="{{ instance['error'] }}"></error-view>
10629 </template>
10630
10631 <template if="{{ instance['error'] == null }}">
10632 <div class="content">
10633 <!-- TODO(turnidge): Handle null instances. -->
10634 <template if="{{ isType(instance.serviceType) }}">
10635 <h1>type {{ instance['user_name'] }}</h1>
10636 </template>
10637 <template if="{{ !isType(instance.serviceType) }}">
10638 <h1>instance of {{ instance['class']['user_name'] }}</h1>
10639 </template>
10640 <div class="memberList">
10641 <div class="memberItem">
10642 <div class="memberName">class</div>
10643 <div class="memberValue">
10644 <class-ref ref="{{ instance['class'] }}">
10645 </class-ref>
10646 </div>
10647 </div>
10648 <template if="{{ instance['valueAsString'] != null }}">
10649 <div class="memberItem">
10650 <div class="memberName">value</div>
10651 <div class="memberValue">{{ instance['valueAsString'] }}</div>
10652 </div>
10653 </template>
10654 <div class="memberItem">
10655 <div class="memberName">size</div>
10656 <div class="memberValue">{{ instance['size'] | formatSize }}</div>
10657 </div>
10658 <div class="memberItem">
10659 <div class="memberName">retained size</div>
10660 <div class="memberValue">
10661 <eval-link callback="{{ retainedSize }}" label="[calculate]">
10662 </eval-link>
10663 </div>
10664 </div>
10665 <div class="memberItem">
10666 <div class="memberName">retaining path</div>
10667 <div class="memberValue">
10668 <template if="{{ path == null }}">
10669 <eval-link callback="{{ retainingPath }}" label="[find]" expr="1 0">
10670 </eval-link>
10671 </template>
10672 <template if="{{ path != null }}">
10673 <template repeat="{{ element in path['elements'] }}">
10674 <div class="memberItem">
10675 <div class="memberName">[{{ element['index']}}]</div>
10676 <div class="memberValue">
10677 <instance-ref ref="{{ element['value'] }}"></instance-ref>
10678 </div>
10679 </div>
10680 </template>
10681 <template if="{{ path['length'] > path['elements'].length }}">
10682 showing {{ path['elements'].length }} of {{ path['length'] }}
10683 <eval-link callback="{{ retainingPath }}" label="[find more]" expr="{{ path['elements'].length * 2 }}">
10684 </eval-link>
10685 </template>
10686 </template>
10687 </div>
10688 </div>
10689 <template if="{{ instance['type_class'] != null }}">
10690 <div class="memberItem">
10691 <div class="memberName">type class</div>
10692 <div class="memberValue">
10693 <class-ref ref="{{ instance['type_class'] }}">
10694 </class-ref>
10695 </div>
10696 </div>
10697 </template>
10698 <template if="{{ instance['closureFunc'] != null }}">
10699 <div class="memberItem">
10700 <div class="memberName">closure function</div>
10701 <div class="memberValue">
10702 <function-ref ref="{{ instance['closureFunc'] }}">
10703 </function-ref>
10704 </div>
10705 </div>
10706 </template>
10707
10708 <div class="memberItem">&nbsp;</div>
10709
10710 <div class="memberItem">
10711 <div class="memberName">toString()</div>
10712 <div class="memberValue">
10713 <eval-link callback="{{ eval }}" expr="toString()"></eval-link>
10714 </div>
10715 </div>
10716 </div>
10717 </div>
10718
10719 <hr>
10720
10721 <div class="content">
10722 <template if="{{ instance['fields'].isNotEmpty }}">
10723 fields ({{ instance['fields'].length }})
10724 <curly-block expand="{{ instance['fields'].length <= 8 }}">
10725 <div class="memberList">
10726 <template repeat="{{ field in instance['fields'] }}">
10727 <div class="memberItem">
10728 <div class="memberName">
10729 <field-ref ref="{{ field['decl'] }}"></field-ref>
10730 </div>
10731 <div class="memberValue">
10732 <instance-ref ref="{{ field['value'] }}"></instance-ref>
10733 </div>
10734 </div>
10735 </template>
10736 </div>
10737 </curly-block><br><br>
10738 </template>
10739
10740 <template if="{{ instance['nativeFields'].isNotEmpty }}">
10741 native fields ({{ instance['nativeFields'].length }})
10742 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}">
10743 <div class="memberList">
10744 <template repeat="{{ field in instance['nativeFields'] }}">
10745 <div class="memberItem">
10746 <div class="memberName">[{{ field['index']}}]</div>
10747 <div class="memberValue">[{{ field['value']}}]</div>
10748 </div>
10749 </template>
10750 </div>
10751 </curly-block><br><br>
10752 </template>
10753
10754 <template if="{{ instance['elements'].isNotEmpty }}">
10755 elements ({{ instance['elements'].length }})
10756 <curly-block expand="{{ instance['elements'].length <= 8 }}">
10757 <div class="memberList">
10758 <template repeat="{{ element in instance['elements'] }}">
10759 <div class="memberItem">
10760 <div class="memberName">[{{ element['index']}}]</div>
10761 <div class="memberValue">
10762 <instance-ref ref="{{ element['value'] }}">
10763 </instance-ref>
10764 </div>
10765 </div>
10766 </template>
10767 </div>
10768 </curly-block><br><br>
10769 </template>
10770 </div>
10771
10772 <hr>
10773
10774 <div class="content">
10775 <eval-box callback="{{ eval }}"></eval-box>
10776 </div>
10777 <br><br><br><br>
10778 <br><br><br><br>
10779
10780 </template>
10781 </template>
10782
10783 </polymer-element>
10784
10785
10786 <polymer-element name="json-view" extends="observatory-element">
10787 <template>
10788 <nav-bar>
10789 <top-nav-menu last="{{ true }}"></top-nav-menu>
10790 </nav-bar>
10791 <pre>{{ mapAsString }}</pre>
10792 </template>
10793
10794 </polymer-element> 10582 </polymer-element>
10795 10583
10796 10584
10797 10585
10798 10586
10799 10587
10800 10588
10801 10589
10802 10590 <polymer-element name="isolate-summary" extends="observatory-element">
10803
10804
10805
10806 <polymer-element name="library-view" extends="observatory-element">
10807 <template> 10591 <template>
10808 <style> 10592 <style>
10809 /* Global styles */ 10593 /* Global styles */
10810 * { 10594 * {
10811 margin: 0; 10595 margin: 0;
10812 padding: 0; 10596 padding: 0;
10813 font: 400 14px 'Montserrat', sans-serif; 10597 font: 400 14px 'Montserrat', sans-serif;
10814 color: #333; 10598 color: #333;
10815 box-sizing: border-box; 10599 box-sizing: border-box;
10816 } 10600 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
10856 color: #0489c3; 10640 color: #0489c3;
10857 text-decoration: none; 10641 text-decoration: none;
10858 } 10642 }
10859 10643
10860 a:hover { 10644 a:hover {
10861 text-decoration: underline; 10645 text-decoration: underline;
10862 } 10646 }
10863 10647
10864 em { 10648 em {
10865 color: inherit; 10649 color: inherit;
10866 font-style:italic; 10650 font-style: italic;
10651 }
10652
10653 b {
10654 color: inherit;
10655 font-weight: bold;
10867 } 10656 }
10868 10657
10869 hr { 10658 hr {
10870 margin-top: 20px; 10659 margin-top: 20px;
10871 margin-bottom: 20px; 10660 margin-bottom: 20px;
10872 border: 0; 10661 border: 0;
10873 border-top: 1px solid #eee; 10662 border-top: 1px solid #eee;
10874 height: 0; 10663 height: 0;
10875 box-sizing: content-box; 10664 box-sizing: content-box;
10876 } 10665 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
11029 background-color: #f5f5f5; 10818 background-color: #f5f5f5;
11030 border: 1px solid #e3e3e3; 10819 border: 1px solid #e3e3e3;
11031 border-radius: 4px; 10820 border-radius: 4px;
11032 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 10821 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
11033 } 10822 }
11034 10823
11035 .break-wrap { 10824 .break-wrap {
11036 word-wrap: break-word; 10825 word-wrap: break-word;
11037 } 10826 }
11038 </style> 10827 </style>
11039 10828 <div class="flex-row">
11040 <nav-bar> 10829 <div class="flex-item-10-percent">
11041 <top-nav-menu></top-nav-menu> 10830 <img src="packages/observatory/src/elements/img/isolate_icon.png">
11042 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu> 10831 </div>
11043 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu> 10832 <div class="flex-item-10-percent">
11044 <nav-refresh callback="{{ refresh }}"></nav-refresh> 10833 <isolate-ref ref="{{ isolate }}"></isolate-ref>
11045 </nav-bar> 10834 </div>
11046 10835 <div class="flex-item-20-percent">
11047 <div class="content"> 10836 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state>
11048 <h1> 10837 </div>
11049 <!-- TODO(turnidge): Handle unnamed libraries --> 10838 <div class="flex-item-50-percent">
11050 library {{ library.name }} 10839 <isolate-location isolate="{{ isolate }}"></isolate-location>
11051 </h1> 10840 </div>
11052 <div class="memberList"> 10841 <div class="flex-item-10-percent">
11053 <div class="memberItem">
11054 <div class="memberName">url</div>
11055 <div class="memberValue">{{ library.url }}</div>
11056 </div>
11057 <template if="{{ library.name != library.vmName }}">
11058 <div class="memberItem">
11059 <div class="memberName">vm name</div>
11060 <div class="memberValue">{{ library.vmName }}</div>
11061 </div>
11062 </template>
11063 </div> 10842 </div>
11064 </div> 10843 </div>
11065 10844
11066 <hr> 10845 <div class="flex-row">
11067 10846 <div class="flex-item-20-percent"></div>
11068 <div class="content"> 10847 <div class="flex-item-60-percent">
11069 <template if="{{ library.imports.isNotEmpty }}"> 10848 <hr>
11070 imports ({{ library.imports.length }}) 10849 </div>
11071 <curly-block expand="{{ library.imports.length <= 8 }}"> 10850 <div class="flex-item-20-percent"></div>
11072 <div class="memberList">
11073 <template repeat="{{ imp in library.imports }}">
11074 <div class="memberItem">
11075 <div class="memberValue">
11076 <library-ref ref="{{ imp }}"></library-ref>
11077 </div>
11078 </div>
11079 </template>
11080 </div>
11081 </curly-block><br>
11082 <br>
11083 </template>
11084
11085 <template if="{{ library.scripts.isNotEmpty }}">
11086 scripts ({{ library.scripts.length }})
11087 <curly-block expand="{{ library.scripts.length <= 8 }}">
11088 <div class="memberList">
11089 <template repeat="{{ script in library.scripts }}">
11090 <div class="memberItem">
11091 <div class="memberValue">
11092 <script-ref ref="{{ script }}"></script-ref>
11093 </div>
11094 </div>
11095 </template>
11096 </div>
11097 </curly-block><br>
11098 <br>
11099 </template>
11100
11101 <template if="{{ library.classes.isNotEmpty }}">
11102 classes ({{ library.classes.length }})
11103 <curly-block expand="{{ library.classes.length <= 8 }}">
11104 <div class="memberList">
11105 <template repeat="{{ cls in library.classes }}">
11106 <div class="memberItem">
11107 <div class="memberValue">
11108 <class-ref ref="{{ cls }}"></class-ref>
11109 </div>
11110 </div>
11111 </template>
11112 </div>
11113 </curly-block><br>
11114 <br>
11115 </template>
11116
11117 <template if="{{ library.variables.isNotEmpty }}">
11118 variables ({{ library.variables.length }})
11119 <curly-block expand="{{ library.variables.length <= 8 }}">
11120 <div class="memberList">
11121 <template repeat="{{ field in library.variables }}">
11122 <div class="memberItem">
11123 <div class="memberName">
11124 <field-ref ref="{{ field }}"></field-ref>
11125 </div>
11126 <div class="memberValue">
11127 <template if="{{ field['value'] != null }}">
11128 <instance-ref ref="{{ field['value'] }}"></instance-ref>
11129 </template>
11130 </div>
11131 </div>
11132 </template>
11133 </div>
11134 </curly-block><br>
11135 <br>
11136 </template>
11137
11138 <template if="{{ library.functions.isNotEmpty }}">
11139 functions ({{ library.functions.length }})
11140 <curly-block expand="{{ library.functions.length <= 8 }}">
11141 <div class="memberList">
11142 <template repeat="{{ function in library.functions }}">
11143 <div class="memberItem">
11144 <div class="memberValue">
11145 <function-ref ref="{{ function }}"></function-ref>
11146 </div>
11147 </div>
11148 </template>
11149 </div>
11150 </curly-block><br>
11151 <br>
11152 </template>
11153 </div> 10851 </div>
11154 10852
11155 <hr> 10853 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary>
11156 10854
11157 <div class="content">
11158 <eval-box callback="{{ eval }}"></eval-box>
11159 </div>
11160 <br><br><br><br>
11161 <br><br><br><br>
11162 </template> 10855 </template>
11163
11164 </polymer-element> 10856 </polymer-element>
11165 10857
11166 10858 <polymer-element name="isolate-run-state" extends="observatory-element">
11167 10859 <template>
10860 <template if="{{ isolate.pauseEvent != null }}">
10861 <strong>paused</strong>
10862 <action-link callback="{{ resume }}" label="resume"></action-link>
10863 </template>
11168 10864
11169 10865 <template if="{{ isolate.running }}">
11170 10866 <strong>running</strong>
10867 <action-link callback="{{ pause }}" label="pause"></action-link>
10868 </template>
11171 10869
11172 10870 <template if="{{ isolate.idle }}">
11173 10871 <strong>idle</strong>
11174 10872 </template>
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187 10873
11188 10874 <template if="{{ isolate.loading }}">
11189 10875 <strong>loading...</strong>
11190 10876 </template>
11191 <polymer-element name="heap-profile" extends="observatory-element"> 10877 </template>
11192 <template> 10878 </polymer-element>
11193 <style> 10879
10880 <polymer-element name="isolate-location" extends="observatory-element">
10881 <template>
10882 <template if="{{ isolate.pauseEvent != null }}">
10883 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateCreated' }}">
10884 at isolate start
10885 </template>
10886 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateShutdown' }}">
10887 at isolate exit
10888 </template>
10889 <template if="{{ isolate.pauseEvent['eventType'] == 'IsolateInterrupted' } }">
10890 at
10891 <function-ref ref="{{ isolate.topFrame['function'] }}">
10892 </function-ref>
10893 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>)
10894 </template>
10895 <template if="{{ isolate.pauseEvent['eventType'] == 'BreakpointReached' }} ">
10896 at breakpoint {{ isolate.pauseEvent['breakpoint']['id'] }}
10897 <function-ref ref="{{ isolate.topFrame['function'] }}">
10898 </function-ref>
10899 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topF rame['tokenPos'] }}"></script-ref>)
10900 </template>
10901 </template>
10902
10903 <template if="{{ isolate.running }}">
10904 at
10905 <function-ref ref="{{ isolate.topFrame['function'] }}">
10906 </function-ref>
10907 (<script-ref ref="{{ isolate.topFrame['script'] }}" pos="{{ isolate.topFra me['tokenPos'] }}"></script-ref>)
10908 </template>
10909
10910 </template>
10911 </polymer-element>
10912
10913 <polymer-element name="isolate-shared-summary" extends="observatory-element">
10914 <template>
10915 <style>
10916 .errorBox {
10917 background-color: #f5f5f5;
10918 border: 1px solid #ccc;
10919 padding: 10px;
10920 font-family: consolas, courier, monospace;
10921 font-size: 1em;
10922 line-height: 1.2em;
10923 white-space: pre;
10924 }
10925 </style>
10926 <style>
11194 /* Global styles */ 10927 /* Global styles */
11195 * { 10928 * {
11196 margin: 0; 10929 margin: 0;
11197 padding: 0; 10930 padding: 0;
11198 font: 400 14px 'Montserrat', sans-serif; 10931 font: 400 14px 'Montserrat', sans-serif;
11199 color: #333; 10932 color: #333;
11200 box-sizing: border-box; 10933 box-sizing: border-box;
11201 } 10934 }
11202 10935
11203 .content { 10936 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
11241 color: #0489c3; 10974 color: #0489c3;
11242 text-decoration: none; 10975 text-decoration: none;
11243 } 10976 }
11244 10977
11245 a:hover { 10978 a:hover {
11246 text-decoration: underline; 10979 text-decoration: underline;
11247 } 10980 }
11248 10981
11249 em { 10982 em {
11250 color: inherit; 10983 color: inherit;
11251 font-style:italic; 10984 font-style: italic;
10985 }
10986
10987 b {
10988 color: inherit;
10989 font-weight: bold;
11252 } 10990 }
11253 10991
11254 hr { 10992 hr {
11255 margin-top: 20px; 10993 margin-top: 20px;
11256 margin-bottom: 20px; 10994 margin-bottom: 20px;
11257 border: 0; 10995 border: 0;
11258 border-top: 1px solid #eee; 10996 border-top: 1px solid #eee;
11259 height: 0; 10997 height: 0;
11260 box-sizing: content-box; 10998 box-sizing: content-box;
11261 } 10999 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
11414 background-color: #f5f5f5; 11152 background-color: #f5f5f5;
11415 border: 1px solid #e3e3e3; 11153 border: 1px solid #e3e3e3;
11416 border-radius: 4px; 11154 border-radius: 4px;
11417 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 11155 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
11418 } 11156 }
11419 11157
11420 .break-wrap { 11158 .break-wrap {
11421 word-wrap: break-word; 11159 word-wrap: break-word;
11422 } 11160 }
11423 </style> 11161 </style>
11424 <style> 11162 <template if="{{ isolate.error != null }}">
11425 .table { 11163 <div class="content-centered">
11426 border-collapse: collapse!important; 11164 <pre class="errorBox">{{ isolate.error.message }}</pre>
11427 width: 100%; 11165 <br>
11428 margin-bottom: 20px 11166 </div>
11429 table-layout: fixed; 11167 </template>
11430 } 11168 <div class="flex-row">
11431 .table td:nth-of-type(1) { 11169 <div class="flex-item-10-percent">
11432 width: 30%; 11170 </div>
11433 } 11171 <div class="flex-item-40-percent">
11434 .th, .td { 11172 <isolate-counter-chart counters="{{ isolate.counters }}"></isolate-count er-chart>
11435 padding: 8px; 11173 </div>
11436 vertical-align: top; 11174 <div class="flex-item-40-percent">
11437 } 11175 <div class="memberList">
11438 .table thead > tr > th {
11439 vertical-align: bottom;
11440 text-align: left;
11441 border-bottom:2px solid #ddd;
11442 }
11443 .clickable {
11444 color: #0489c3;
11445 text-decoration: none;
11446 cursor: pointer;
11447 }
11448 .clickable:hover {
11449 text-decoration: underline;
11450 cursor: pointer;
11451 }
11452 #classtable tr:hover > td {
11453 background-color: #F4C7C3;
11454 }
11455 </style>
11456 <nav-bar>
11457 <top-nav-menu></top-nav-menu>
11458 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
11459 <nav-menu link="{{ profile.isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu>
11460 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n av-refresh>
11461 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh>
11462 <nav-refresh callback="{{ refresh }}"></nav-refresh>
11463 </nav-bar>
11464
11465 <div class="flex-row">
11466 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px">
11467 </div>
11468 <div id="newStatus" class="flex-item-fixed-2-12">
11469 <div class="memberList">
11470 <div class="memberItem"> 11176 <div class="memberItem">
11471 <div class="memberName">Collections</div> 11177 <div class="memberName">new heap</div>
11472 <div class="memberValue">{{ formattedCollections(true) }}</div> 11178 <div class="memberValue">
11179 {{ isolate.newHeapUsed | formatSize }}
11180 of
11181 {{ isolate.newHeapCapacity | formatSize }}
11182 </div>
11473 </div> 11183 </div>
11474 <div class="memberItem"> 11184 <div class="memberItem">
11475 <div class="memberName">Average Collection Time</div> 11185 <div class="memberName">old heap</div>
11476 <div class="memberValue">{{ formattedAverage(true) }}</div> 11186 <div class="memberValue">
11187 {{ isolate.oldHeapUsed | formatSize }}
11188 of
11189 {{ isolate.oldHeapCapacity | formatSize }}
11190 </div>
11477 </div> 11191 </div>
11192 </div>
11193 <br>
11194 <div class="memberItem">
11195 <div class="memberValue">
11196 See <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack tra ce</a>
11197 </div>
11198 </div>
11199 <div class="memberItem">
11200 <div class="memberValue">
11201 See <a href="{{ isolate.relativeHashLink('profile') }}">cpu profile< /a>
11202 </div>
11203 </div>
11204 <div class="memberItem">
11205 <div class="memberValue">
11206 See <a href="{{ isolate.relativeHashLink('allocationprofile') }}">al location profile</a>
11207 </div>
11208 </div>
11209 <div class="memberItem">
11210 <div class="memberValue">
11211 See <a href="{{ isolate.relativeHashLink('heapmap') }}">heap map</a>
11212 </div>
11213 </div>
11214 <template if="{{ isolate.ioEnabled }}">
11478 <div class="memberItem"> 11215 <div class="memberItem">
11479 <div class="memberName">Cumulative Collection Time</div> 11216 <div class="memberValue">
11480 <div class="memberValue">{{ formattedTotalCollectionTime(true) }}</d iv> 11217 See <a href="{{ isolate.relativeHashLink('io') }}">dart:io</a>
11218 </div>
11481 </div> 11219 </div>
11220 </template>
11221 </div>
11222 <div class="flex-item-10-percent">
11482 </div> 11223 </div>
11483 </div> 11224 </div>
11484 <div id="oldPieChart" class="flex-item-fixed-4-12" style="height: 400px"> 11225 </template>
11485 </div> 11226 </polymer-element>
11486 <div id="oldStatus" class="flex-item-fixed-2-12">
11487 <div class="memberList">
11488 <div class="memberItem">
11489 <div class="memberName">Collections</div>
11490 <div class="memberValue">{{ formattedCollections(false) }}</div>
11491 </div>
11492 <div class="memberItem">
11493 <div class="memberName">Average Collection Time</div>
11494 <div class="memberValue">{{ formattedAverage(false) }}</div>
11495 </div>
11496 <div class="memberItem">
11497 <div class="memberName">Cumulative Collection Time</div>
11498 <div class="memberValue">{{ formattedTotalCollectionTime(false) }}</ div>
11499 </div>
11500 </div>
11501 </div>
11502 </div>
11503 <div class="flex-row">
11504 <table id="classtable" class="flex-item-fixed-12-12 table">
11505 <thead>
11506 <tr>
11507 <th on-click="{{changeSort}}" class="clickable" title="Class">{{ class Table.getColumnLabel(0) }}</th>
11508 <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Size">{{ classTable.getColumnLabel(1) }}</th>
11509 <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Instances">{{ classTable.getColumnLabel(2) }}</th>
11510 <th on-click="{{changeSort}}" class="clickable" title="New Current Siz e">{{ classTable.getColumnLabel(3) }}</th>
11511 <th on-click="{{changeSort}}" class="clickable" title="New Current Ins tances">{{ classTable.getColumnLabel(4) }}</th>
11512 <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Size">{{ classTable.getColumnLabel(5) }}</th>
11513 <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Instances">{{ classTable.getColumnLabel(6) }}</th>
11514 <th on-click="{{changeSort}}" class="clickable" title="Old Current Siz e">{{ classTable.getColumnLabel(7) }}</th>
11515 <th on-click="{{changeSort}}" class="clickable" title="Old Current Ins tances">{{ classTable.getColumnLabel(8) }}</th>
11516 </tr>
11517 </thead>
11518 <tbody>
11519 <tr template="" repeat="{{row in classTable.sortedRows }}">
11520 <td><class-ref ref="{{ classTable.getValue(row, 0) }}"></class-ref></t d>
11521 <td title="{{ classTable.getValue(row, 1) }}">{{ classTable.getFormatt edValue(row, 1) }}</td>
11522 <td title="{{ classTable.getValue(row, 2) }}">{{ classTable.getFormatt edValue(row, 2) }}</td>
11523 <td title="{{ classTable.getValue(row, 3) }}">{{ classTable.getFormatt edValue(row, 3) }}</td>
11524 <td title="{{ classTable.getValue(row, 4) }}">{{ classTable.getFormatt edValue(row, 4) }}</td>
11525 <td title="{{ classTable.getValue(row, 5) }}">{{ classTable.getFormatt edValue(row, 5) }}</td>
11526 <td title="{{ classTable.getValue(row, 6) }}">{{ classTable.getFormatt edValue(row, 6) }}</td>
11527 <td title="{{ classTable.getValue(row, 7) }}">{{ classTable.getFormatt edValue(row, 7) }}</td>
11528 <td title="{{ classTable.getValue(row, 8) }}">{{ classTable.getFormatt edValue(row, 8) }}</td>
11529 </tr>
11530 </tbody>
11531 </table>
11532 </div>
11533 </template>
11534 11227
11228 <polymer-element name="isolate-counter-chart" extends="observatory-element">
11229 <template>
11230 <div id="counterPieChart" style="height: 200px"></div>
11231 </template>
11535 </polymer-element> 11232 </polymer-element>
11536 11233
11234
11235
11537 11236
11538 11237
11539 11238
11540 11239
11541 11240
11542 <polymer-element name="sliding-checkbox">
11543 <template>
11544 <style>
11545 .switch {
11546 position: relative;
11547 width: 121px;
11548 -webkit-user-select: none;
11549 -moz-user-select: none;
11550 -ms-user-select: none;
11551 }
11552 .hide {
11553 display: none;
11554 }
11555 .label {
11556 display: block;
11557 overflow: hidden;
11558 cursor: pointer;
11559 border: 2px solid #999999;
11560 border-radius: 15px;
11561 }
11562 .content {
11563 width: 200%;
11564 margin-left: -100%;
11565 -moz-transition: margin 0.3s ease-in 0s;
11566 -webkit-transition: margin 0.3s ease-in 0s;
11567 -o-transition: margin 0.3s ease-in 0s;
11568 transition: margin 0.3s ease-in 0s;
11569 }
11570 .content:before, .content:after {
11571 float: left;
11572 width: 50%;
11573 height: 30px;
11574 padding: 0;
11575 line-height: 30px;
11576 color: white;
11577 font: 400 14px 'Montserrat', sans-serif;
11578 -moz-box-sizing: border-box;
11579 -webkit-box-sizing: border-box;
11580 box-sizing: border-box;
11581 }
11582 .content:before {
11583 content: {{ checkedText }};
11584 padding-left: 10px;
11585 background-color: #0489C3;
11586 }
11587 .content:after {
11588 content: {{ uncheckedText }};
11589 padding-right: 10px;
11590 background-color: #EEEEEE;
11591 color: #999999;
11592 text-align: right;
11593 }
11594 .dot {
11595 width: 14px;
11596 margin: 8px;
11597 background: #FFFFFF;
11598 border: 2px solid #999999;
11599 border-radius: 15px;
11600 position: absolute;
11601 top: 0;
11602 bottom: 0;
11603 right: 87px;
11604 -moz-transition: all 0.3s ease-in 0s;
11605 -webkit-transition: all 0.3s ease-in 0s;
11606 -o-transition: all 0.3s ease-in 0s;
11607 transition: all 0.3s ease-in 0s;
11608 }
11609 :checked + .label .content {
11610 margin-left: 0;
11611 }
11612 :checked + .label .dot {
11613 right: 0px;
11614 }
11615 </style>
11616 <div class="switch">
11617 <input type="checkbox" class="hide" id="slide-switch" on-change="{{ change }}">
11618 <label class="label" for="slide-switch">
11619 <div class="content"></div>
11620 <div class="dot"></div>
11621 </label>
11622 </div>
11623 </template>
11624 11241
11625 </polymer-element> 11242
11626 <polymer-element name="isolate-profile" extends="observatory-element"> 11243
11244
11245
11246 <polymer-element name="isolate-view" extends="observatory-element">
11627 <template> 11247 <template>
11628 <style> 11248 <style>
11629 /* Global styles */ 11249 /* Global styles */
11630 * { 11250 * {
11631 margin: 0; 11251 margin: 0;
11632 padding: 0; 11252 padding: 0;
11633 font: 400 14px 'Montserrat', sans-serif; 11253 font: 400 14px 'Montserrat', sans-serif;
11634 color: #333; 11254 color: #333;
11635 box-sizing: border-box; 11255 box-sizing: border-box;
11636 } 11256 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
11676 color: #0489c3; 11296 color: #0489c3;
11677 text-decoration: none; 11297 text-decoration: none;
11678 } 11298 }
11679 11299
11680 a:hover { 11300 a:hover {
11681 text-decoration: underline; 11301 text-decoration: underline;
11682 } 11302 }
11683 11303
11684 em { 11304 em {
11685 color: inherit; 11305 color: inherit;
11686 font-style:italic; 11306 font-style: italic;
11307 }
11308
11309 b {
11310 color: inherit;
11311 font-weight: bold;
11687 } 11312 }
11688 11313
11689 hr { 11314 hr {
11690 margin-top: 20px; 11315 margin-top: 20px;
11691 margin-bottom: 20px; 11316 margin-bottom: 20px;
11692 border: 0; 11317 border: 0;
11693 border-top: 1px solid #eee; 11318 border-top: 1px solid #eee;
11694 height: 0; 11319 height: 0;
11695 box-sizing: content-box; 11320 box-sizing: content-box;
11696 } 11321 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
11849 background-color: #f5f5f5; 11474 background-color: #f5f5f5;
11850 border: 1px solid #e3e3e3; 11475 border: 1px solid #e3e3e3;
11851 border-radius: 4px; 11476 border-radius: 4px;
11852 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 11477 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
11853 } 11478 }
11854 11479
11855 .break-wrap { 11480 .break-wrap {
11856 word-wrap: break-word; 11481 word-wrap: break-word;
11857 } 11482 }
11858 </style> 11483 </style>
11484 <style>
11485 .sourceInset {
11486 padding-left: 15%;
11487 padding-right: 15%;
11488 }
11489 .miniProfileChart {
11490 width: 80%;
11491 }
11492 </style>
11493
11494 <nav-bar>
11495 <top-nav-menu></top-nav-menu>
11496 <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}">
11497 </isolate-nav-menu>
11498 <nav-refresh callback="{{ refresh }}"></nav-refresh>
11499 </nav-bar>
11500
11501 <div class="content">
11502 <h1>isolate '{{ isolate.name }}'</h1>
11503 </div>
11504
11505 <br>
11506 <div class="flex-row">
11507 <div class="flex-item-10-percent">
11508 </div>
11509 <div class="flex-item-20-percent">
11510 <isolate-run-state isolate="{{ isolate }}"></isolate-run-state>
11511 </div>
11512 <div class="flex-item-60-percent">
11513 <isolate-location isolate="{{ isolate }}"></isolate-location>
11514 </div>
11515 <div class="flex-item-10-percent">
11516 </div>
11517 </div>
11518 <br>
11519
11520 <template if="{{ isolate.topFrame != null }}">
11521 <br>
11522 <script-inset script="{{ isolate.topFrame['script'] }}" pos="{{ isolate.to pFrame['tokenPos'] }}">
11523 </script-inset>
11524 </template>
11525
11526 <div class="flex-row">
11527 <div class="flex-item-20-percent"></div>
11528 <div class="flex-item-60-percent"><hr></div>
11529 <div class="flex-item-20-percent"></div>
11530 </div>
11531
11532 <br>
11533
11534 <isolate-shared-summary isolate="{{ isolate }}"></isolate-shared-summary>
11535
11536 <div class="flex-row">
11537 <div class="flex-item-20-percent"></div>
11538 <div class="flex-item-60-percent"><hr></div>
11539 <div class="flex-item-20-percent"></div>
11540 </div>
11541
11542 <div class="content-centered">
11543 <div class="flex-row">
11544 <div class="flex-item-50-percent">
11545 <div class="memberList">
11546 <div class="memberItem">
11547 <div class="memberName">root library</div>
11548 <div class="memberValue">
11549 <library-ref ref="{{ isolate.rootLib }}"></library-ref>
11550 </div>
11551 </div>
11552 <div class="memberItem">
11553 <template if="{{ isolate.entry != null }}">
11554 <div class="memberName">entry</div>
11555 <div class="memberValue">
11556 <function-ref ref="{{ isolate.entry }}"></function-ref>
11557 </div>
11558 </template>
11559 </div>
11560 <div class="memberItem">
11561 <div class="memberName">isolate id</div>
11562 <div class="memberValue">{{ isolate.mainPort }}</div>
11563 </div>
11564 </div>
11565 </div>
11566 <div class="flex-item-50-percent">
11567 <div class="memberItem">
11568 <div class="memberValue">
11569 See <a href="{{ isolate.relativeHashLink('debug/breakpoints') }}"> breakpoints</a>
11570 </div>
11571 </div>
11572 </div>
11573 </div>
11574 </div>
11575
11576 <hr>
11577
11578 <div class="content">
11579 libraries ({{ isolate.libraries.length }})
11580 <curly-block expand="{{ isolate.libraries.length <= 8 }}">
11581 <div class="memberList">
11582 <template repeat="{{ lib in isolate.libraries }}">
11583 <div class="memberItem">
11584 <div class="memberName">
11585 <library-ref ref="{{ lib }}"></library-ref>
11586 </div>
11587 </div>
11588 </template>
11589 </div>
11590 </curly-block>
11591 </div>
11592
11593 <hr>
11594
11595 <div class="content">
11596 <div id="tagProfileChart" class="miniProfileChart" style="height: 600px">< /div>
11597 </div>
11598
11599 <hr>
11600
11601 <div class="content">
11602 <eval-box callback="{{ eval }}"></eval-box>
11603 </div>
11604 <br><br><br><br>
11605 <br><br><br><br>
11606 </template>
11607
11608 </polymer-element>
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619 <polymer-element name="instance-view" extends="observatory-element">
11620 <template>
11621 <style>
11622 /* Global styles */
11623 * {
11624 margin: 0;
11625 padding: 0;
11626 font: 400 14px 'Montserrat', sans-serif;
11627 color: #333;
11628 box-sizing: border-box;
11629 }
11630
11631 .content {
11632 padding-left: 10%;
11633 font: 400 14px 'Montserrat', sans-serif;
11634 }
11635
11636 .content-centered {
11637 padding-left: 10%;
11638 padding-right: 10%;
11639 font: 400 14px 'Montserrat', sans-serif;
11640 }
11641
11642 h1 {
11643 font: 400 18px 'Montserrat', sans-serif;
11644 }
11645
11646 .memberList {
11647 display: table;
11648 }
11649
11650 .memberItem {
11651 display: table-row;
11652 }
11653
11654 .memberName, .memberValue {
11655 display: table-cell;
11656 vertical-align: top;
11657 padding: 3px 0 3px 1em;
11658 font: 400 14px 'Montserrat', sans-serif;
11659 }
11660
11661 .monospace {
11662 font-family: consolas, courier, monospace;
11663 font-size: 1em;
11664 line-height: 1.2em;
11665 white-space: nowrap;
11666 }
11667
11668 a {
11669 color: #0489c3;
11670 text-decoration: none;
11671 }
11672
11673 a:hover {
11674 text-decoration: underline;
11675 }
11676
11677 em {
11678 color: inherit;
11679 font-style: italic;
11680 }
11681
11682 b {
11683 color: inherit;
11684 font-weight: bold;
11685 }
11686
11687 hr {
11688 margin-top: 20px;
11689 margin-bottom: 20px;
11690 border: 0;
11691 border-top: 1px solid #eee;
11692 height: 0;
11693 box-sizing: content-box;
11694 }
11695
11696 .list-group {
11697 padding-left: 0;
11698 margin-bottom: 20px;
11699 }
11700
11701 .list-group-item {
11702 position: relative;
11703 display: block;
11704 padding: 10px 15px;
11705 margin-bottom: -1px;
11706 background-color: #fff;
11707 }
11708
11709 .list-group-item:first-child {
11710 /* rounded top corners */
11711 border-top-right-radius:4px;
11712 border-top-left-radius:4px;
11713 }
11714
11715 .list-group-item:last-child {
11716 margin-bottom: 0;
11717 /* rounded bottom corners */
11718 border-bottom-right-radius: 4px;
11719 border-bottom-left-radius:4px;
11720 }
11721
11722 /* Flex row container */
11723 .flex-row {
11724 display: flex;
11725 flex-direction: row;
11726 }
11727
11728 /* Flex column container */
11729 .flex-column {
11730 display: flex;
11731 flex-direction: column;
11732 }
11733
11734 .flex-item-fit {
11735 flex-grow: 1;
11736 flex-shrink: 1;
11737 flex-basis: auto;
11738 }
11739
11740 .flex-item-no-shrink {
11741 flex-grow: 0;
11742 flex-shrink: 0;
11743 flex-basis: auto;
11744 }
11745
11746 .flex-item-fill {
11747 flex-grow: 0;
11748 flex-shrink: 1; /* shrink when pressured */
11749 flex-basis: 100%; /* try and take 100% */
11750 }
11751
11752 .flex-item-fixed-1-12 {
11753 flex-grow: 0;
11754 flex-shrink: 0;
11755 flex-basis: 8.3%;
11756 }
11757
11758 .flex-item-fixed-2-12 {
11759 flex-grow: 0;
11760 flex-shrink: 0;
11761 flex-basis: 16.6%;
11762 }
11763
11764 .flex-item-fixed-4-12 {
11765 flex-grow: 0;
11766 flex-shrink: 0;
11767 flex-basis: 33.3333%;
11768 }
11769
11770 .flex-item-fixed-6-12, .flex-item-50-percent {
11771 flex-grow: 0;
11772 flex-shrink: 0;
11773 flex-basis: 50%;
11774 }
11775
11776 .flex-item-fixed-8-12 {
11777 flex-grow: 0;
11778 flex-shrink: 0;
11779 flex-basis: 66.6666%;
11780 }
11781
11782 .flex-item-fixed-9-12 {
11783 flex-grow: 0;
11784 flex-shrink: 0;
11785 flex-basis: 75%;
11786 }
11787
11788
11789 .flex-item-fixed-12-12 {
11790 flex-grow: 0;
11791 flex-shrink: 0;
11792 flex-basis: 100%;
11793 }
11794
11795 .flex-item-10-percent {
11796 flex-grow: 0;
11797 flex-shrink: 0;
11798 flex-basis: 10%;
11799 }
11800
11801 .flex-item-15-percent {
11802 flex-grow: 0;
11803 flex-shrink: 0;
11804 flex-basis: 15%;
11805 }
11806
11807 .flex-item-20-percent {
11808 flex-grow: 0;
11809 flex-shrink: 0;
11810 flex-basis: 20%;
11811 }
11812
11813 .flex-item-30-percent {
11814 flex-grow: 0;
11815 flex-shrink: 0;
11816 flex-basis: 30%;
11817 }
11818
11819 .flex-item-40-percent {
11820 flex-grow: 0;
11821 flex-shrink: 0;
11822 flex-basis: 40%;
11823 }
11824
11825 .flex-item-60-percent {
11826 flex-grow: 0;
11827 flex-shrink: 0;
11828 flex-basis: 60%;
11829 }
11830
11831 .flex-item-70-percent {
11832 flex-grow: 0;
11833 flex-shrink: 0;
11834 flex-basis: 70%;
11835 }
11836
11837 .flex-item-80-percent {
11838 flex-grow: 0;
11839 flex-shrink: 0;
11840 flex-basis: 80%;
11841 }
11842
11843 .well {
11844 min-height: 20px;
11845 padding: 19px;
11846 margin-bottom: 20px;
11847 background-color: #f5f5f5;
11848 border: 1px solid #e3e3e3;
11849 border-radius: 4px;
11850 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
11851 }
11852
11853 .break-wrap {
11854 word-wrap: break-word;
11855 }
11856 </style>
11859 <nav-bar> 11857 <nav-bar>
11860 <top-nav-menu></top-nav-menu> 11858 <top-nav-menu></top-nav-menu>
11861 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu> 11859 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu>
11862 <nav-menu link="{{ profile.isolate.relativeHashLink('profile') }}" anchor= "cpu profile" last="{{ true }}"></nav-menu> 11860 <!-- TODO(turnidge): Add library nav menu here. -->
11861 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu>
11862 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
11863 <nav-refresh callback="{{ refresh }}"></nav-refresh> 11863 <nav-refresh callback="{{ refresh }}"></nav-refresh>
11864 </nav-bar> 11864 </nav-bar>
11865
11866 <template if="{{ instance['error'] != null }}">
11867 <error-view error_obj="{{ instance['error'] }}"></error-view>
11868 </template>
11869
11870 <template if="{{ instance['error'] == null }}">
11871 <div class="content">
11872 <!-- TODO(turnidge): Handle null instances. -->
11873 <template if="{{ isType(instance.serviceType) }}">
11874 <h1>type {{ instance['user_name'] }}</h1>
11875 </template>
11876 <template if="{{ !isType(instance.serviceType) }}">
11877 <h1>instance of {{ instance['class']['user_name'] }}</h1>
11878 </template>
11879 <div class="memberList">
11880 <div class="memberItem">
11881 <div class="memberName">class</div>
11882 <div class="memberValue">
11883 <class-ref ref="{{ instance['class'] }}">
11884 </class-ref>
11885 </div>
11886 </div>
11887 <template if="{{ instance['valueAsString'] != null }}">
11888 <div class="memberItem">
11889 <div class="memberName">value</div>
11890 <div class="memberValue">{{ instance['valueAsString'] }}</div>
11891 </div>
11892 </template>
11893 <div class="memberItem">
11894 <div class="memberName">size</div>
11895 <div class="memberValue">{{ instance['size'] | formatSize }}</div>
11896 </div>
11897 <div class="memberItem">
11898 <div class="memberName">retained size</div>
11899 <div class="memberValue">
11900 <eval-link callback="{{ retainedSize }}" label="[calculate]">
11901 </eval-link>
11902 </div>
11903 </div>
11904 <div class="memberItem">
11905 <div class="memberName">retaining path</div>
11906 <div class="memberValue">
11907 <template if="{{ path == null }}">
11908 <eval-link callback="{{ retainingPath }}" label="[find]" expr="1 0">
11909 </eval-link>
11910 </template>
11911 <template if="{{ path != null }}">
11912 <template repeat="{{ element in path['elements'] }}">
11913 <div class="memberItem">
11914 <div class="memberName">[{{ element['index']}}]</div>
11915 <div class="memberValue">
11916 <instance-ref ref="{{ element['value'] }}"></instance-ref>
11917 </div>
11918 </div>
11919 </template>
11920 <template if="{{ path['length'] > path['elements'].length }}">
11921 showing {{ path['elements'].length }} of {{ path['length'] }}
11922 <eval-link callback="{{ retainingPath }}" label="[find more]" expr="{{ path['elements'].length * 2 }}">
11923 </eval-link>
11924 </template>
11925 </template>
11926 </div>
11927 </div>
11928 <template if="{{ instance['type_class'] != null }}">
11929 <div class="memberItem">
11930 <div class="memberName">type class</div>
11931 <div class="memberValue">
11932 <class-ref ref="{{ instance['type_class'] }}">
11933 </class-ref>
11934 </div>
11935 </div>
11936 </template>
11937 <template if="{{ instance['closureFunc'] != null }}">
11938 <div class="memberItem">
11939 <div class="memberName">closure function</div>
11940 <div class="memberValue">
11941 <function-ref ref="{{ instance['closureFunc'] }}">
11942 </function-ref>
11943 </div>
11944 </div>
11945 </template>
11946
11947 <div class="memberItem">&nbsp;</div>
11948
11949 <div class="memberItem">
11950 <div class="memberName">toString()</div>
11951 <div class="memberValue">
11952 <eval-link callback="{{ eval }}" expr="toString()"></eval-link>
11953 </div>
11954 </div>
11955 </div>
11956 </div>
11957
11958 <hr>
11959
11960 <div class="content">
11961 <template if="{{ instance['fields'].isNotEmpty }}">
11962 fields ({{ instance['fields'].length }})
11963 <curly-block expand="{{ instance['fields'].length <= 8 }}">
11964 <div class="memberList">
11965 <template repeat="{{ field in instance['fields'] }}">
11966 <div class="memberItem">
11967 <div class="memberName">
11968 <field-ref ref="{{ field['decl'] }}"></field-ref>
11969 </div>
11970 <div class="memberValue">
11971 <instance-ref ref="{{ field['value'] }}"></instance-ref>
11972 </div>
11973 </div>
11974 </template>
11975 </div>
11976 </curly-block><br><br>
11977 </template>
11978
11979 <template if="{{ instance['nativeFields'].isNotEmpty }}">
11980 native fields ({{ instance['nativeFields'].length }})
11981 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}">
11982 <div class="memberList">
11983 <template repeat="{{ field in instance['nativeFields'] }}">
11984 <div class="memberItem">
11985 <div class="memberName">[{{ field['index']}}]</div>
11986 <div class="memberValue">[{{ field['value']}}]</div>
11987 </div>
11988 </template>
11989 </div>
11990 </curly-block><br><br>
11991 </template>
11992
11993 <template if="{{ instance['elements'].isNotEmpty }}">
11994 elements ({{ instance['elements'].length }})
11995 <curly-block expand="{{ instance['elements'].length <= 8 }}">
11996 <div class="memberList">
11997 <template repeat="{{ element in instance['elements'] }}">
11998 <div class="memberItem">
11999 <div class="memberName">[{{ element['index']}}]</div>
12000 <div class="memberValue">
12001 <instance-ref ref="{{ element['value'] }}">
12002 </instance-ref>
12003 </div>
12004 </div>
12005 </template>
12006 </div>
12007 </curly-block><br><br>
12008 </template>
12009 </div>
12010
12011 <hr>
12012
12013 <div class="content">
12014 <eval-box callback="{{ eval }}"></eval-box>
12015 </div>
12016 <br><br><br><br>
12017 <br><br><br><br>
12018
12019 </template>
12020 </template>
12021
12022 </polymer-element>
12023
12024
12025 <polymer-element name="json-view" extends="observatory-element">
12026 <template>
12027 <nav-bar>
12028 <top-nav-menu last="{{ true }}"></top-nav-menu>
12029 </nav-bar>
12030 <pre>{{ mapAsString }}</pre>
12031 </template>
12032
12033 </polymer-element>
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045 <polymer-element name="library-view" extends="observatory-element">
12046 <template>
11865 <style> 12047 <style>
11866 .table { 12048 /* Global styles */
11867 border-collapse: collapse!important; 12049 * {
11868 width: 100%; 12050 margin: 0;
11869 margin-bottom: 20px 12051 padding: 0;
11870 } 12052 font: 400 14px 'Montserrat', sans-serif;
11871 .table thead > tr > th, 12053 color: #333;
11872 .table tbody > tr > th, 12054 box-sizing: border-box;
11873 .table tfoot > tr > th, 12055 }
11874 .table thead > tr > td, 12056
11875 .table tbody > tr > td, 12057 .content {
11876 .table tfoot > tr > td { 12058 padding-left: 10%;
11877 padding: 8px; 12059 font: 400 14px 'Montserrat', sans-serif;
11878 vertical-align: top; 12060 }
11879 } 12061
11880 .table thead > tr > th { 12062 .content-centered {
11881 vertical-align: bottom; 12063 padding-left: 10%;
11882 text-align: left; 12064 padding-right: 10%;
11883 border-bottom:2px solid #ddd; 12065 font: 400 14px 'Montserrat', sans-serif;
11884 } 12066 }
11885 12067
11886 tr:hover > td { 12068 h1 {
11887 background-color: #FFF3E3; 12069 font: 400 18px 'Montserrat', sans-serif;
11888 } 12070 }
11889 .rowColor0 { 12071
11890 background-color: #FFE9CC; 12072 .memberList {
11891 } 12073 display: table;
11892 .rowColor1 { 12074 }
11893 background-color: #FFDEB2; 12075
11894 } 12076 .memberItem {
11895 .rowColor2 { 12077 display: table-row;
11896 background-color: #FFD399; 12078 }
11897 } 12079
11898 .rowColor3 { 12080 .memberName, .memberValue {
11899 background-color: #FFC87F; 12081 display: table-cell;
11900 } 12082 vertical-align: top;
11901 .rowColor4 { 12083 padding: 3px 0 3px 1em;
11902 background-color: #FFBD66; 12084 font: 400 14px 'Montserrat', sans-serif;
11903 } 12085 }
11904 .rowColor5 { 12086
11905 background-color: #FFB24C; 12087 .monospace {
11906 } 12088 font-family: consolas, courier, monospace;
11907 .rowColor6 { 12089 font-size: 1em;
11908 background-color: #FFA733; 12090 line-height: 1.2em;
11909 } 12091 white-space: nowrap;
11910 .rowColor7 { 12092 }
11911 background-color: #FF9C19; 12093
11912 } 12094 a {
11913 .rowColor8 { 12095 color: #0489c3;
11914 background-color: #FF9100; 12096 text-decoration: none;
11915 } 12097 }
11916 12098
11917 .tooltip { 12099 a:hover {
11918 display: block; 12100 text-decoration: underline;
11919 position: absolute; 12101 }
11920 visibility: hidden; 12102
11921 opacity: 0; 12103 em {
11922 transition: visibility 0s linear 0.5s; 12104 color: inherit;
11923 transition: opacity .4s ease-in-out; 12105 font-style: italic;
11924 } 12106 }
11925 12107
11926 tr:hover .tooltip { 12108 b {
11927 display: block; 12109 color: inherit;
11928 position: absolute; 12110 font-weight: bold;
11929 top: 100%; 12111 }
11930 right: 100%; 12112
11931 visibility: visible; 12113 hr {
11932 z-index: 999; 12114 margin-top: 20px;
11933 width: 400px; 12115 margin-bottom: 20px;
11934 color: #ffffff; 12116 border: 0;
11935 background-color: #0489c3; 12117 border-top: 1px solid #eee;
11936 border-top-right-radius: 8px; 12118 height: 0;
11937 border-top-left-radius: 8px; 12119 box-sizing: content-box;
11938 border-bottom-right-radius: 8px; 12120 }
11939 border-bottom-left-radius: 8px; 12121
11940 transition: visibility 0s linear 0.5s; 12122 .list-group {
11941 transition: opacity .4s ease-in-out; 12123 padding-left: 0;
11942 opacity: 1; 12124 margin-bottom: 20px;
11943 } 12125 }
11944 12126
11945 .white { 12127 .list-group-item {
11946 color: #ffffff; 12128 position: relative;
11947 } 12129 display: block;
11948 12130 padding: 10px 15px;
11949 </style> 12131 margin-bottom: -1px;
12132 background-color: #fff;
12133 }
12134
12135 .list-group-item:first-child {
12136 /* rounded top corners */
12137 border-top-right-radius:4px;
12138 border-top-left-radius:4px;
12139 }
12140
12141 .list-group-item:last-child {
12142 margin-bottom: 0;
12143 /* rounded bottom corners */
12144 border-bottom-right-radius: 4px;
12145 border-bottom-left-radius:4px;
12146 }
12147
12148 /* Flex row container */
12149 .flex-row {
12150 display: flex;
12151 flex-direction: row;
12152 }
12153
12154 /* Flex column container */
12155 .flex-column {
12156 display: flex;
12157 flex-direction: column;
12158 }
12159
12160 .flex-item-fit {
12161 flex-grow: 1;
12162 flex-shrink: 1;
12163 flex-basis: auto;
12164 }
12165
12166 .flex-item-no-shrink {
12167 flex-grow: 0;
12168 flex-shrink: 0;
12169 flex-basis: auto;
12170 }
12171
12172 .flex-item-fill {
12173 flex-grow: 0;
12174 flex-shrink: 1; /* shrink when pressured */
12175 flex-basis: 100%; /* try and take 100% */
12176 }
12177
12178 .flex-item-fixed-1-12 {
12179 flex-grow: 0;
12180 flex-shrink: 0;
12181 flex-basis: 8.3%;
12182 }
12183
12184 .flex-item-fixed-2-12 {
12185 flex-grow: 0;
12186 flex-shrink: 0;
12187 flex-basis: 16.6%;
12188 }
12189
12190 .flex-item-fixed-4-12 {
12191 flex-grow: 0;
12192 flex-shrink: 0;
12193 flex-basis: 33.3333%;
12194 }
12195
12196 .flex-item-fixed-6-12, .flex-item-50-percent {
12197 flex-grow: 0;
12198 flex-shrink: 0;
12199 flex-basis: 50%;
12200 }
12201
12202 .flex-item-fixed-8-12 {
12203 flex-grow: 0;
12204 flex-shrink: 0;
12205 flex-basis: 66.6666%;
12206 }
12207
12208 .flex-item-fixed-9-12 {
12209 flex-grow: 0;
12210 flex-shrink: 0;
12211 flex-basis: 75%;
12212 }
12213
12214
12215 .flex-item-fixed-12-12 {
12216 flex-grow: 0;
12217 flex-shrink: 0;
12218 flex-basis: 100%;
12219 }
12220
12221 .flex-item-10-percent {
12222 flex-grow: 0;
12223 flex-shrink: 0;
12224 flex-basis: 10%;
12225 }
12226
12227 .flex-item-15-percent {
12228 flex-grow: 0;
12229 flex-shrink: 0;
12230 flex-basis: 15%;
12231 }
12232
12233 .flex-item-20-percent {
12234 flex-grow: 0;
12235 flex-shrink: 0;
12236 flex-basis: 20%;
12237 }
12238
12239 .flex-item-30-percent {
12240 flex-grow: 0;
12241 flex-shrink: 0;
12242 flex-basis: 30%;
12243 }
12244
12245 .flex-item-40-percent {
12246 flex-grow: 0;
12247 flex-shrink: 0;
12248 flex-basis: 40%;
12249 }
12250
12251 .flex-item-60-percent {
12252 flex-grow: 0;
12253 flex-shrink: 0;
12254 flex-basis: 60%;
12255 }
12256
12257 .flex-item-70-percent {
12258 flex-grow: 0;
12259 flex-shrink: 0;
12260 flex-basis: 70%;
12261 }
12262
12263 .flex-item-80-percent {
12264 flex-grow: 0;
12265 flex-shrink: 0;
12266 flex-basis: 80%;
12267 }
12268
12269 .well {
12270 min-height: 20px;
12271 padding: 19px;
12272 margin-bottom: 20px;
12273 background-color: #f5f5f5;
12274 border: 1px solid #e3e3e3;
12275 border-radius: 4px;
12276 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
12277 }
12278
12279 .break-wrap {
12280 word-wrap: break-word;
12281 }
12282 </style>
12283
12284 <nav-bar>
12285 <top-nav-menu></top-nav-menu>
12286 <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
12287 <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav- menu>
12288 <nav-refresh callback="{{ refresh }}"></nav-refresh>
12289 </nav-bar>
12290
11950 <div class="content"> 12291 <div class="content">
11951 <h1>Sampled CPU profile</h1> 12292 <h1>
12293 <!-- TODO(turnidge): Handle unnamed libraries -->
12294 library {{ library.name }}
12295 </h1>
11952 <div class="memberList"> 12296 <div class="memberList">
11953 <div class="memberItem"> 12297 <div class="memberItem">
11954 <div class="memberName">Timestamp</div> 12298 <div class="memberName">url</div>
11955 <div class="memberValue">{{ refreshTime }}</div> 12299 <div class="memberValue">{{ library.url }}</div>
11956 </div> 12300 </div>
11957 <div class="memberItem"> 12301 <template if="{{ library.name != library.vmName }}">
11958 <div class="memberName">Time span</div> 12302 <div class="memberItem">
11959 <div class="memberValue">{{ timeSpan }}</div> 12303 <div class="memberName">vm name</div>
11960 </div> 12304 <div class="memberValue">{{ library.vmName }}</div>
11961 <div class="memberItem"> 12305 </div>
11962 <div class="memberName">Sample count</div> 12306 </template>
11963 <div class="memberValue">{{ sampleCount }}</div>
11964 </div>
11965 <div class="memberItem">
11966 <div class="memberName">Sample rate</div>
11967 <div class="memberValue">{{ sampleRate }} Hz</div>
11968 </div>
11969 <div class="memberItem">
11970 <div class="memberName">Sample depth</div>
11971 <div class="memberValue">{{ sampleDepth }} stack frames</div>
11972 </div>
11973 <div class="memberItem">
11974 <div class="memberName">Display cutoff</div>
11975 <div class="memberValue">{{ displayCutoff }}</div>
11976 </div>
11977 <div class="memberItem">
11978 <div class="memberName">Tags</div>
11979 <div class="memberValue">
11980 <select value="{{tagSelector}}">
11981 <option value="uv">User &gt; VM</option>
11982 <option value="u">User</option>
11983 <option value="vu">VM &gt; User</option>
11984 <option value="v">VM</option>
11985 <option value="hide">None</option>
11986 </select>
11987 </div>
11988 </div>
11989 </div> 12307 </div>
11990 <hr> 12308 </div>
11991 <table id="tableTree" class="table"> 12309
11992 <thead> 12310 <hr>
11993 <tr> 12311
11994 <th>Method</th> 12312 <div class="content">
11995 <th>Self</th> 12313 <template if="{{ library.imports.isNotEmpty }}">
11996 </tr> 12314 imports ({{ library.imports.length }})
11997 </thead> 12315 <curly-block expand="{{ library.imports.length <= 8 }}">
11998 <tbody> 12316 <div class="memberList">
11999 <tr template="" repeat="{{row in tree.rows }}" style="{{}}"> 12317 <template repeat="{{ imp in library.imports }}">
12000 <td on-click="{{toggleExpanded}}" class="{{ coloring(row) }}" style= "{{ padding(row) }}"> 12318 <div class="memberItem">
12001 <span id="expand" style="{{ row.expanderStyle }}">{{ row.expander }}</span> 12319 <div class="memberValue">
12002 <div style="position: relative;display: inline"> 12320 <library-ref ref="{{ imp }}"></library-ref>
12003 {{row.columns[0]}}
12004 </div>
12005 <code-ref ref="{{ row.code }}"></code-ref>
12006 </td>
12007 <td class="{{ coloring(row) }}" style="position: relative">
12008 {{row.columns[1]}}
12009 <div class="tooltip">
12010 <div class="memberList">
12011 <div class="memberItem">
12012 <div class="memberName white">Kind</div>
12013 <div class="memberValue white">{{ row.tipKind }}</div>
12014 </div>
12015 <div class="memberItem">
12016 <div class="memberName white">Percent of Parent</div>
12017 <div class="memberValue white">{{ row.tipParent }}</div>
12018 </div>
12019 <div class="memberItem">
12020 <div class="memberName white">Sample Count</div>
12021 <div class="memberValue white">{{ row.tipTicks }} ({{ row.tip Exclusive }})</div>
12022 </div>
12023 <div class="memberItem">
12024 <div class="memberName white">Approximate Execution Time</div >
12025 <div class="memberValue white">{{ row.tipTime }}</div>
12026 </div>
12027 </div> 12321 </div>
12028 </div> 12322 </div>
12029 </td> 12323 </template>
12030 </tr> 12324 </div>
12031 </tbody> 12325 </curly-block><br>
12032 </table> 12326 <br>
12033 </div> 12327 </template>
12328
12329 <template if="{{ library.scripts.isNotEmpty }}">
12330 scripts ({{ library.scripts.length }})
12331 <curly-block expand="{{ library.scripts.length <= 8 }}">
12332 <div class="memberList">
12333 <template repeat="{{ script in library.scripts }}">
12334 <div class="memberItem">
12335 <div class="memberValue">
12336 <script-ref ref="{{ script }}"></script-ref>
12337 </div>
12338 </div>
12339 </template>
12340 </div>
12341 </curly-block><br>
12342 <br>
12343 </template>
12344
12345 <template if="{{ library.classes.isNotEmpty }}">
12346 classes ({{ library.classes.length }})
12347 <curly-block expand="{{ library.classes.length <= 8 }}">
12348 <div class="memberList">
12349 <template repeat="{{ cls in library.classes }}">
12350 <div class="memberItem">
12351 <div class="memberValue">
12352 <class-ref ref="{{ cls }}"></class-ref>
12353 </div>
12354 </div>
12355 </template>
12356 </div>
12357 </curly-block><br>
12358 <br>
12359 </template>
12360
12361 <template if="{{ library.variables.isNotEmpty }}">
12362 variables ({{ library.variables.length }})
12363 <curly-block expand="{{ library.variables.length <= 8 }}">
12364 <div class="memberList">
12365 <template repeat="{{ field in library.variables }}">
12366 <div class="memberItem">
12367 <div class="memberName">
12368 <field-ref ref="{{ field }}"></field-ref>
12369 </div>
12370 <div class="memberValue">
12371 <template if="{{ field['value'] != null }}">
12372 <instance-ref ref="{{ field['value'] }}"></instance-ref>
12373 </template>
12374 </div>
12375 </div>
12376 </template>
12377 </div>
12378 </curly-block><br>
12379 <br>
12380 </template>
12381
12382 <template if="{{ library.functions.isNotEmpty }}">
12383 functions ({{ library.functions.length }})
12384 <curly-block expand="{{ library.functions.length <= 8 }}">
12385 <div class="memberList">
12386 <template repeat="{{ function in library.functions }}">
12387 <div class="memberItem">
12388 <div class="memberValue">
12389 <function-ref ref="{{ function }}"></function-ref>
12390 </div>
12391 </div>
12392 </template>
12393 </div>
12394 </curly-block><br>
12395 <br>
12396 </template>
12397 </div>
12398
12399 <hr>
12400
12401 <div class="content">
12402 <eval-box callback="{{ eval }}"></eval-box>
12403 </div>
12404 <br><br><br><br>
12405 <br><br><br><br>
12034 </template> 12406 </template>
12035 12407
12036 </polymer-element> 12408 </polymer-element>
12037 12409
12038 12410
12039 12411
12040 12412
12041 <polymer-element name="script-view" extends="observatory-element"> 12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435 <polymer-element name="heap-profile" extends="observatory-element">
12042 <template> 12436 <template>
12043 <style> 12437 <style>
12044 /* Global styles */ 12438 /* Global styles */
12045 * { 12439 * {
12046 margin: 0; 12440 margin: 0;
12441 padding: 0;
12442 font: 400 14px 'Montserrat', sans-serif;
12443 color: #333;
12444 box-sizing: border-box;
12445 }
12446
12447 .content {
12448 padding-left: 10%;
12449 font: 400 14px 'Montserrat', sans-serif;
12450 }
12451
12452 .content-centered {
12453 padding-left: 10%;
12454 padding-right: 10%;
12455 font: 400 14px 'Montserrat', sans-serif;
12456 }
12457
12458 h1 {
12459 font: 400 18px 'Montserrat', sans-serif;
12460 }
12461
12462 .memberList {
12463 display: table;
12464 }
12465
12466 .memberItem {
12467 display: table-row;
12468 }
12469
12470 .memberName, .memberValue {
12471 display: table-cell;
12472 vertical-align: top;
12473 padding: 3px 0 3px 1em;
12474 font: 400 14px 'Montserrat', sans-serif;
12475 }
12476
12477 .monospace {
12478 font-family: consolas, courier, monospace;
12479 font-size: 1em;
12480 line-height: 1.2em;
12481 white-space: nowrap;
12482 }
12483
12484 a {
12485 color: #0489c3;
12486 text-decoration: none;
12487 }
12488
12489 a:hover {
12490 text-decoration: underline;
12491 }
12492
12493 em {
12494 color: inherit;
12495 font-style: italic;
12496 }
12497
12498 b {
12499 color: inherit;
12500 font-weight: bold;
12501 }
12502
12503 hr {
12504 margin-top: 20px;
12505 margin-bottom: 20px;
12506 border: 0;
12507 border-top: 1px solid #eee;
12508 height: 0;
12509 box-sizing: content-box;
12510 }
12511
12512 .list-group {
12513 padding-left: 0;
12514 margin-bottom: 20px;
12515 }
12516
12517 .list-group-item {
12518 position: relative;
12519 display: block;
12520 padding: 10px 15px;
12521 margin-bottom: -1px;
12522 background-color: #fff;
12523 }
12524
12525 .list-group-item:first-child {
12526 /* rounded top corners */
12527 border-top-right-radius:4px;
12528 border-top-left-radius:4px;
12529 }
12530
12531 .list-group-item:last-child {
12532 margin-bottom: 0;
12533 /* rounded bottom corners */
12534 border-bottom-right-radius: 4px;
12535 border-bottom-left-radius:4px;
12536 }
12537
12538 /* Flex row container */
12539 .flex-row {
12540 display: flex;
12541 flex-direction: row;
12542 }
12543
12544 /* Flex column container */
12545 .flex-column {
12546 display: flex;
12547 flex-direction: column;
12548 }
12549
12550 .flex-item-fit {
12551 flex-grow: 1;
12552 flex-shrink: 1;
12553 flex-basis: auto;
12554 }
12555
12556 .flex-item-no-shrink {
12557 flex-grow: 0;
12558 flex-shrink: 0;
12559 flex-basis: auto;
12560 }
12561
12562 .flex-item-fill {
12563 flex-grow: 0;
12564 flex-shrink: 1; /* shrink when pressured */
12565 flex-basis: 100%; /* try and take 100% */
12566 }
12567
12568 .flex-item-fixed-1-12 {
12569 flex-grow: 0;
12570 flex-shrink: 0;
12571 flex-basis: 8.3%;
12572 }
12573
12574 .flex-item-fixed-2-12 {
12575 flex-grow: 0;
12576 flex-shrink: 0;
12577 flex-basis: 16.6%;
12578 }
12579
12580 .flex-item-fixed-4-12 {
12581 flex-grow: 0;
12582 flex-shrink: 0;
12583 flex-basis: 33.3333%;
12584 }
12585
12586 .flex-item-fixed-6-12, .flex-item-50-percent {
12587 flex-grow: 0;
12588 flex-shrink: 0;
12589 flex-basis: 50%;
12590 }
12591
12592 .flex-item-fixed-8-12 {
12593 flex-grow: 0;
12594 flex-shrink: 0;
12595 flex-basis: 66.6666%;
12596 }
12597
12598 .flex-item-fixed-9-12 {
12599 flex-grow: 0;
12600 flex-shrink: 0;
12601 flex-basis: 75%;
12602 }
12603
12604
12605 .flex-item-fixed-12-12 {
12606 flex-grow: 0;
12607 flex-shrink: 0;
12608 flex-basis: 100%;
12609 }
12610
12611 .flex-item-10-percent {
12612 flex-grow: 0;
12613 flex-shrink: 0;
12614 flex-basis: 10%;
12615 }
12616
12617 .flex-item-15-percent {
12618 flex-grow: 0;
12619 flex-shrink: 0;
12620 flex-basis: 15%;
12621 }
12622
12623 .flex-item-20-percent {
12624 flex-grow: 0;
12625 flex-shrink: 0;
12626 flex-basis: 20%;
12627 }
12628
12629 .flex-item-30-percent {
12630 flex-grow: 0;
12631 flex-shrink: 0;
12632 flex-basis: 30%;
12633 }
12634
12635 .flex-item-40-percent {
12636 flex-grow: 0;
12637 flex-shrink: 0;
12638 flex-basis: 40%;
12639 }
12640
12641 .flex-item-60-percent {
12642 flex-grow: 0;
12643 flex-shrink: 0;
12644 flex-basis: 60%;
12645 }
12646
12647 .flex-item-70-percent {
12648 flex-grow: 0;
12649 flex-shrink: 0;
12650 flex-basis: 70%;
12651 }
12652
12653 .flex-item-80-percent {
12654 flex-grow: 0;
12655 flex-shrink: 0;
12656 flex-basis: 80%;
12657 }
12658
12659 .well {
12660 min-height: 20px;
12661 padding: 19px;
12662 margin-bottom: 20px;
12663 background-color: #f5f5f5;
12664 border: 1px solid #e3e3e3;
12665 border-radius: 4px;
12666 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
12667 }
12668
12669 .break-wrap {
12670 word-wrap: break-word;
12671 }
12672 </style>
12673 <style>
12674 .table {
12675 border-collapse: collapse!important;
12676 width: 100%;
12677 margin-bottom: 20px
12678 table-layout: fixed;
12679 }
12680 .table td:nth-of-type(1) {
12681 width: 30%;
12682 }
12683 .th, .td {
12684 padding: 8px;
12685 vertical-align: top;
12686 }
12687 .table thead > tr > th {
12688 vertical-align: bottom;
12689 text-align: left;
12690 border-bottom:2px solid #ddd;
12691 }
12692 .clickable {
12693 color: #0489c3;
12694 text-decoration: none;
12695 cursor: pointer;
12696 }
12697 .clickable:hover {
12698 text-decoration: underline;
12699 cursor: pointer;
12700 }
12701 #classtable tr:hover > td {
12702 background-color: #F4C7C3;
12703 }
12704 </style>
12705 <nav-bar>
12706 <top-nav-menu></top-nav-menu>
12707 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
12708 <nav-menu link="{{ profile.isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu>
12709 <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></n av-refresh>
12710 <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh>
12711 <nav-refresh callback="{{ refresh }}"></nav-refresh>
12712 </nav-bar>
12713
12714 <div class="flex-row">
12715 <div id="newPieChart" class="flex-item-fixed-4-12" style="height: 400px">
12716 </div>
12717 <div id="newStatus" class="flex-item-fixed-2-12">
12718 <div class="memberList">
12719 <div class="memberItem">
12720 <div class="memberName">Collections</div>
12721 <div class="memberValue">{{ formattedCollections(true) }}</div>
12722 </div>
12723 <div class="memberItem">
12724 <div class="memberName">Average Collection Time</div>
12725 <div class="memberValue">{{ formattedAverage(true) }}</div>
12726 </div>
12727 <div class="memberItem">
12728 <div class="memberName">Cumulative Collection Time</div>
12729 <div class="memberValue">{{ formattedTotalCollectionTime(true) }}</d iv>
12730 </div>
12731 </div>
12732 </div>
12733 <div id="oldPieChart" class="flex-item-fixed-4-12" style="height: 400px">
12734 </div>
12735 <div id="oldStatus" class="flex-item-fixed-2-12">
12736 <div class="memberList">
12737 <div class="memberItem">
12738 <div class="memberName">Collections</div>
12739 <div class="memberValue">{{ formattedCollections(false) }}</div>
12740 </div>
12741 <div class="memberItem">
12742 <div class="memberName">Average Collection Time</div>
12743 <div class="memberValue">{{ formattedAverage(false) }}</div>
12744 </div>
12745 <div class="memberItem">
12746 <div class="memberName">Cumulative Collection Time</div>
12747 <div class="memberValue">{{ formattedTotalCollectionTime(false) }}</ div>
12748 </div>
12749 </div>
12750 </div>
12751 </div>
12752 <div class="flex-row">
12753 <table id="classtable" class="flex-item-fixed-12-12 table">
12754 <thead>
12755 <tr>
12756 <th on-click="{{changeSort}}" class="clickable" title="Class">{{ class Table.getColumnLabel(0) }}</th>
12757 <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Size">{{ classTable.getColumnLabel(1) }}</th>
12758 <th on-click="{{changeSort}}" class="clickable" title="New Accumulated Instances">{{ classTable.getColumnLabel(2) }}</th>
12759 <th on-click="{{changeSort}}" class="clickable" title="New Current Siz e">{{ classTable.getColumnLabel(3) }}</th>
12760 <th on-click="{{changeSort}}" class="clickable" title="New Current Ins tances">{{ classTable.getColumnLabel(4) }}</th>
12761 <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Size">{{ classTable.getColumnLabel(5) }}</th>
12762 <th on-click="{{changeSort}}" class="clickable" title="Old Accumulated Instances">{{ classTable.getColumnLabel(6) }}</th>
12763 <th on-click="{{changeSort}}" class="clickable" title="Old Current Siz e">{{ classTable.getColumnLabel(7) }}</th>
12764 <th on-click="{{changeSort}}" class="clickable" title="Old Current Ins tances">{{ classTable.getColumnLabel(8) }}</th>
12765 </tr>
12766 </thead>
12767 <tbody>
12768 <tr template="" repeat="{{row in classTable.sortedRows }}">
12769 <td><class-ref ref="{{ classTable.getValue(row, 0) }}"></class-ref></t d>
12770 <td title="{{ classTable.getValue(row, 1) }}">{{ classTable.getFormatt edValue(row, 1) }}</td>
12771 <td title="{{ classTable.getValue(row, 2) }}">{{ classTable.getFormatt edValue(row, 2) }}</td>
12772 <td title="{{ classTable.getValue(row, 3) }}">{{ classTable.getFormatt edValue(row, 3) }}</td>
12773 <td title="{{ classTable.getValue(row, 4) }}">{{ classTable.getFormatt edValue(row, 4) }}</td>
12774 <td title="{{ classTable.getValue(row, 5) }}">{{ classTable.getFormatt edValue(row, 5) }}</td>
12775 <td title="{{ classTable.getValue(row, 6) }}">{{ classTable.getFormatt edValue(row, 6) }}</td>
12776 <td title="{{ classTable.getValue(row, 7) }}">{{ classTable.getFormatt edValue(row, 7) }}</td>
12777 <td title="{{ classTable.getValue(row, 8) }}">{{ classTable.getFormatt edValue(row, 8) }}</td>
12778 </tr>
12779 </tbody>
12780 </table>
12781 </div>
12782 </template>
12783
12784 </polymer-element>
12785
12786
12787
12788
12789
12790
12791 <polymer-element name="sliding-checkbox">
12792 <template>
12793 <style>
12794 .switch {
12795 position: relative;
12796 width: 121px;
12797 -webkit-user-select: none;
12798 -moz-user-select: none;
12799 -ms-user-select: none;
12800 }
12801 .hide {
12802 display: none;
12803 }
12804 .label {
12805 display: block;
12806 overflow: hidden;
12807 cursor: pointer;
12808 border: 2px solid #999999;
12809 border-radius: 15px;
12810 }
12811 .content {
12812 width: 200%;
12813 margin-left: -100%;
12814 -moz-transition: margin 0.3s ease-in 0s;
12815 -webkit-transition: margin 0.3s ease-in 0s;
12816 -o-transition: margin 0.3s ease-in 0s;
12817 transition: margin 0.3s ease-in 0s;
12818 }
12819 .content:before, .content:after {
12820 float: left;
12821 width: 50%;
12822 height: 30px;
12823 padding: 0;
12824 line-height: 30px;
12825 color: white;
12826 font: 400 14px 'Montserrat', sans-serif;
12827 -moz-box-sizing: border-box;
12828 -webkit-box-sizing: border-box;
12829 box-sizing: border-box;
12830 }
12831 .content:before {
12832 content: {{ checkedText }};
12833 padding-left: 10px;
12834 background-color: #0489C3;
12835 }
12836 .content:after {
12837 content: {{ uncheckedText }};
12838 padding-right: 10px;
12839 background-color: #EEEEEE;
12840 color: #999999;
12841 text-align: right;
12842 }
12843 .dot {
12844 width: 14px;
12845 margin: 8px;
12846 background: #FFFFFF;
12847 border: 2px solid #999999;
12848 border-radius: 15px;
12849 position: absolute;
12850 top: 0;
12851 bottom: 0;
12852 right: 87px;
12853 -moz-transition: all 0.3s ease-in 0s;
12854 -webkit-transition: all 0.3s ease-in 0s;
12855 -o-transition: all 0.3s ease-in 0s;
12856 transition: all 0.3s ease-in 0s;
12857 }
12858 :checked + .label .content {
12859 margin-left: 0;
12860 }
12861 :checked + .label .dot {
12862 right: 0px;
12863 }
12864 </style>
12865 <div class="switch">
12866 <input type="checkbox" class="hide" id="slide-switch" on-change="{{ change }}">
12867 <label class="label" for="slide-switch">
12868 <div class="content"></div>
12869 <div class="dot"></div>
12870 </label>
12871 </div>
12872 </template>
12873
12874 </polymer-element>
12875 <polymer-element name="isolate-profile" extends="observatory-element">
12876 <template>
12877 <style>
12878 /* Global styles */
12879 * {
12880 margin: 0;
12047 padding: 0; 12881 padding: 0;
12048 font: 400 14px 'Montserrat', sans-serif; 12882 font: 400 14px 'Montserrat', sans-serif;
12049 color: #333; 12883 color: #333;
12050 box-sizing: border-box; 12884 box-sizing: border-box;
12051 } 12885 }
12052 12886
12053 .content { 12887 .content {
12054 padding-left: 10%; 12888 padding-left: 10%;
12055 font: 400 14px 'Montserrat', sans-serif; 12889 font: 400 14px 'Montserrat', sans-serif;
12056 } 12890 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
12091 color: #0489c3; 12925 color: #0489c3;
12092 text-decoration: none; 12926 text-decoration: none;
12093 } 12927 }
12094 12928
12095 a:hover { 12929 a:hover {
12096 text-decoration: underline; 12930 text-decoration: underline;
12097 } 12931 }
12098 12932
12099 em { 12933 em {
12100 color: inherit; 12934 color: inherit;
12101 font-style:italic; 12935 font-style: italic;
12936 }
12937
12938 b {
12939 color: inherit;
12940 font-weight: bold;
12102 } 12941 }
12103 12942
12104 hr { 12943 hr {
12105 margin-top: 20px; 12944 margin-top: 20px;
12106 margin-bottom: 20px; 12945 margin-bottom: 20px;
12107 border: 0; 12946 border: 0;
12108 border-top: 1px solid #eee; 12947 border-top: 1px solid #eee;
12109 height: 0; 12948 height: 0;
12110 box-sizing: content-box; 12949 box-sizing: content-box;
12111 } 12950 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
12264 background-color: #f5f5f5; 13103 background-color: #f5f5f5;
12265 border: 1px solid #e3e3e3; 13104 border: 1px solid #e3e3e3;
12266 border-radius: 4px; 13105 border-radius: 4px;
12267 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 13106 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
12268 } 13107 }
12269 13108
12270 .break-wrap { 13109 .break-wrap {
12271 word-wrap: break-word; 13110 word-wrap: break-word;
12272 } 13111 }
12273 </style> 13112 </style>
12274 <nav-bar> 13113 <nav-bar>
12275 <top-nav-menu></top-nav-menu> 13114 <top-nav-menu></top-nav-menu>
12276 <isolate-nav-menu isolate="{{ script.isolate }}"> 13115 <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
12277 </isolate-nav-menu> 13116 <nav-menu link="{{ profile.isolate.relativeHashLink('profile') }}" anchor= "cpu profile" last="{{ true }}"></nav-menu>
12278 <nav-menu link="." anchor="{{ script.name }}" last="{{ true }}"> 13117 <nav-refresh callback="{{ refresh }}"></nav-refresh>
12279 <li> 13118 </nav-bar>
12280 <input type="checkbox" checked="{{ showCoverage }}"> 13119 <style>
12281 <label>Show Coverage Data</label> 13120 .table {
12282 </li> 13121 border-collapse: collapse!important;
12283 </nav-menu> 13122 width: 100%;
12284 <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></nav -refresh> 13123 margin-bottom: 20px
12285 <nav-refresh callback="{{ refresh }}"> 13124 }
12286 </nav-refresh> 13125 .table thead > tr > th,
12287 </nav-bar> 13126 .table tbody > tr > th,
13127 .table tfoot > tr > th,
13128 .table thead > tr > td,
13129 .table tbody > tr > td,
13130 .table tfoot > tr > td {
13131 padding: 8px;
13132 vertical-align: top;
13133 }
13134 .table thead > tr > th {
13135 vertical-align: bottom;
13136 text-align: left;
13137 border-bottom:2px solid #ddd;
13138 }
12288 13139
12289 <script-inset id="scriptInset" script="{{ script }}" pos="{{ script.firstToken Pos }}" endpos="{{ script.lastTokenPos }}"> 13140 tr:hover > td {
12290 <h1>script {{ script.name }}</h1> 13141 background-color: #FFF3E3;
12291 </script-inset> 13142 }
12292 </template> 13143 .rowColor0 {
13144 background-color: #FFE9CC;
13145 }
13146 .rowColor1 {
13147 background-color: #FFDEB2;
13148 }
13149 .rowColor2 {
13150 background-color: #FFD399;
13151 }
13152 .rowColor3 {
13153 background-color: #FFC87F;
13154 }
13155 .rowColor4 {
13156 background-color: #FFBD66;
13157 }
13158 .rowColor5 {
13159 background-color: #FFB24C;
13160 }
13161 .rowColor6 {
13162 background-color: #FFA733;
13163 }
13164 .rowColor7 {
13165 background-color: #FF9C19;
13166 }
13167 .rowColor8 {
13168 background-color: #FF9100;
13169 }
12293 13170
13171 .tooltip {
13172 display: block;
13173 position: absolute;
13174 visibility: hidden;
13175 opacity: 0;
13176 transition: visibility 0s linear 0.5s;
13177 transition: opacity .4s ease-in-out;
13178 }
13179
13180 tr:hover .tooltip {
13181 display: block;
13182 position: absolute;
13183 top: 100%;
13184 right: 100%;
13185 visibility: visible;
13186 z-index: 999;
13187 width: 400px;
13188 color: #ffffff;
13189 background-color: #0489c3;
13190 border-top-right-radius: 8px;
13191 border-top-left-radius: 8px;
13192 border-bottom-right-radius: 8px;
13193 border-bottom-left-radius: 8px;
13194 transition: visibility 0s linear 0.5s;
13195 transition: opacity .4s ease-in-out;
13196 opacity: 1;
13197 }
13198
13199 .white {
13200 color: #ffffff;
13201 }
13202
13203 </style>
13204 <div class="content">
13205 <h1>Sampled CPU profile</h1>
13206 <div class="memberList">
13207 <div class="memberItem">
13208 <div class="memberName">Timestamp</div>
13209 <div class="memberValue">{{ refreshTime }}</div>
13210 </div>
13211 <div class="memberItem">
13212 <div class="memberName">Time span</div>
13213 <div class="memberValue">{{ timeSpan }}</div>
13214 </div>
13215 <div class="memberItem">
13216 <div class="memberName">Sample count</div>
13217 <div class="memberValue">{{ sampleCount }}</div>
13218 </div>
13219 <div class="memberItem">
13220 <div class="memberName">Sample rate</div>
13221 <div class="memberValue">{{ sampleRate }} Hz</div>
13222 </div>
13223 <div class="memberItem">
13224 <div class="memberName">Sample depth</div>
13225 <div class="memberValue">{{ sampleDepth }} stack frames</div>
13226 </div>
13227 <div class="memberItem">
13228 <div class="memberName">Display cutoff</div>
13229 <div class="memberValue">{{ displayCutoff }}</div>
13230 </div>
13231 <div class="memberItem">
13232 <div class="memberName">Tags</div>
13233 <div class="memberValue">
13234 <select value="{{tagSelector}}">
13235 <option value="uv">User &gt; VM</option>
13236 <option value="u">User</option>
13237 <option value="vu">VM &gt; User</option>
13238 <option value="v">VM</option>
13239 <option value="hide">None</option>
13240 </select>
13241 </div>
13242 </div>
13243 </div>
13244 <hr>
13245 <table id="tableTree" class="table">
13246 <thead>
13247 <tr>
13248 <th>Method</th>
13249 <th>Self</th>
13250 </tr>
13251 </thead>
13252 <tbody>
13253 <tr template="" repeat="{{row in tree.rows }}" style="{{}}">
13254 <td on-click="{{toggleExpanded}}" class="{{ coloring(row) }}" style= "{{ padding(row) }}">
13255 <span id="expand" style="{{ row.expanderStyle }}">{{ row.expander }}</span>
13256 <div style="position: relative;display: inline">
13257 {{row.columns[0]}}
13258 </div>
13259 <code-ref ref="{{ row.code }}"></code-ref>
13260 </td>
13261 <td class="{{ coloring(row) }}" style="position: relative">
13262 {{row.columns[1]}}
13263 <div class="tooltip">
13264 <div class="memberList">
13265 <div class="memberItem">
13266 <div class="memberName white">Kind</div>
13267 <div class="memberValue white">{{ row.tipKind }}</div>
13268 </div>
13269 <div class="memberItem">
13270 <div class="memberName white">Percent of Parent</div>
13271 <div class="memberValue white">{{ row.tipParent }}</div>
13272 </div>
13273 <div class="memberItem">
13274 <div class="memberName white">Sample Count</div>
13275 <div class="memberValue white">{{ row.tipTicks }} ({{ row.tip Exclusive }})</div>
13276 </div>
13277 <div class="memberItem">
13278 <div class="memberName white">Approximate Execution Time</div >
13279 <div class="memberValue white">{{ row.tipTime }}</div>
13280 </div>
13281 </div>
13282 </div>
13283 </td>
13284 </tr>
13285 </tbody>
13286 </table>
13287 </div>
13288 </template>
13289
12294 </polymer-element> 13290 </polymer-element>
12295 13291
12296 13292
12297 13293
12298 13294
12299 13295 <polymer-element name="script-view" extends="observatory-element">
12300 13296 <template>
12301 13297 <style>
12302
12303
12304
12305 <polymer-element name="stack-frame" extends="observatory-element">
12306 <template>
12307 <style>
12308 /* Global styles */ 13298 /* Global styles */
12309 * { 13299 * {
12310 margin: 0; 13300 margin: 0;
12311 padding: 0; 13301 padding: 0;
12312 font: 400 14px 'Montserrat', sans-serif; 13302 font: 400 14px 'Montserrat', sans-serif;
12313 color: #333; 13303 color: #333;
12314 box-sizing: border-box; 13304 box-sizing: border-box;
12315 } 13305 }
12316 13306
12317 .content { 13307 .content {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
12355 color: #0489c3; 13345 color: #0489c3;
12356 text-decoration: none; 13346 text-decoration: none;
12357 } 13347 }
12358 13348
12359 a:hover { 13349 a:hover {
12360 text-decoration: underline; 13350 text-decoration: underline;
12361 } 13351 }
12362 13352
12363 em { 13353 em {
12364 color: inherit; 13354 color: inherit;
12365 font-style:italic; 13355 font-style: italic;
13356 }
13357
13358 b {
13359 color: inherit;
13360 font-weight: bold;
12366 } 13361 }
12367 13362
12368 hr { 13363 hr {
12369 margin-top: 20px; 13364 margin-top: 20px;
12370 margin-bottom: 20px; 13365 margin-bottom: 20px;
12371 border: 0; 13366 border: 0;
12372 border-top: 1px solid #eee; 13367 border-top: 1px solid #eee;
12373 height: 0; 13368 height: 0;
12374 box-sizing: content-box; 13369 box-sizing: content-box;
12375 } 13370 }
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
12528 background-color: #f5f5f5; 13523 background-color: #f5f5f5;
12529 border: 1px solid #e3e3e3; 13524 border: 1px solid #e3e3e3;
12530 border-radius: 4px; 13525 border-radius: 4px;
12531 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05); 13526 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
12532 } 13527 }
12533 13528
12534 .break-wrap { 13529 .break-wrap {
12535 word-wrap: break-word; 13530 word-wrap: break-word;
12536 } 13531 }
12537 </style> 13532 </style>
12538 <div class="flex-row"> 13533 <nav-bar>
12539 <div class="flex-item-fixed-1-12"> 13534 <top-nav-menu></top-nav-menu>
12540 </div> 13535 <isolate-nav-menu isolate="{{ script.isolate }}">
12541 <div class="flex-item-fixed-1-12"> 13536 </isolate-nav-menu>
12542 #{{ frame['depth'] }} 13537 <nav-menu link="." anchor="{{ script.name }}" last="{{ true }}">
12543 </div> 13538 <li>
12544 <div class="flex-item-fixed-9-12"> 13539 <input type="checkbox" checked="{{ showCoverage }}">
12545 <function-ref ref="{{ frame['function'] }}"></function-ref> 13540 <label>Show Coverage Data</label>
12546 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }} "> 13541 </li>
12547 </script-ref> ) 13542 </nav-menu>
13543 <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></nav -refresh>
13544 <nav-refresh callback="{{ refresh }}">
13545 </nav-refresh>
13546 </nav-bar>
12548 13547
12549 <curly-block> 13548 <script-inset id="scriptInset" script="{{ script }}" pos="{{ script.firstToken Pos }}" endpos="{{ script.lastTokenPos }}">
12550 <div class="memberList"> 13549 <h1>script {{ script.name }}</h1>
12551 <template repeat="{{ v in frame['vars'] }}"> 13550 </script-inset>
12552 <div class="memberItem"> 13551 </template>
12553 <div class="memberName">{{ v['name']}}</div> 13552
12554 <div class="memberValue"> 13553 </polymer-element>
12555 <instance-ref ref="{{ v['value'] }}"></instance-ref> 13554
12556 </div>
12557 </div>
12558 </template>
12559 </div>
12560 </curly-block>
12561 </div>
12562 <div class="flex-item-fixed-1-12">
12563 </div>
12564 </div>
12565 </template>
12566 13555
12567 </polymer-element> 13556
13557
12568 <polymer-element name="stack-trace" extends="observatory-element"> 13558 <polymer-element name="stack-trace" extends="observatory-element">
12569 <template> 13559 <template>
12570 <style> 13560 <style>
12571 /* Global styles */ 13561 /* Global styles */
12572 * { 13562 * {
12573 margin: 0; 13563 margin: 0;
12574 padding: 0; 13564 padding: 0;
12575 font: 400 14px 'Montserrat', sans-serif; 13565 font: 400 14px 'Montserrat', sans-serif;
12576 color: #333; 13566 color: #333;
12577 box-sizing: border-box; 13567 box-sizing: border-box;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
12618 color: #0489c3; 13608 color: #0489c3;
12619 text-decoration: none; 13609 text-decoration: none;
12620 } 13610 }
12621 13611
12622 a:hover { 13612 a:hover {
12623 text-decoration: underline; 13613 text-decoration: underline;
12624 } 13614 }
12625 13615
12626 em { 13616 em {
12627 color: inherit; 13617 color: inherit;
12628 font-style:italic; 13618 font-style: italic;
13619 }
13620
13621 b {
13622 color: inherit;
13623 font-weight: bold;
12629 } 13624 }
12630 13625
12631 hr { 13626 hr {
12632 margin-top: 20px; 13627 margin-top: 20px;
12633 margin-bottom: 20px; 13628 margin-bottom: 20px;
12634 border: 0; 13629 border: 0;
12635 border-top: 1px solid #eee; 13630 border-top: 1px solid #eee;
12636 height: 0; 13631 height: 0;
12637 box-sizing: content-box; 13632 box-sizing: content-box;
12638 } 13633 }
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
12883 color: #0489c3; 13878 color: #0489c3;
12884 text-decoration: none; 13879 text-decoration: none;
12885 } 13880 }
12886 13881
12887 a:hover { 13882 a:hover {
12888 text-decoration: underline; 13883 text-decoration: underline;
12889 } 13884 }
12890 13885
12891 em { 13886 em {
12892 color: inherit; 13887 color: inherit;
12893 font-style:italic; 13888 font-style: italic;
13889 }
13890
13891 b {
13892 color: inherit;
13893 font-weight: bold;
12894 } 13894 }
12895 13895
12896 hr { 13896 hr {
12897 margin-top: 20px; 13897 margin-top: 20px;
12898 margin-bottom: 20px; 13898 margin-bottom: 20px;
12899 border: 0; 13899 border: 0;
12900 border-top: 1px solid #eee; 13900 border-top: 1px solid #eee;
12901 height: 0; 13901 height: 0;
12902 box-sizing: content-box; 13902 box-sizing: content-box;
12903 } 13903 }
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
13081 <div class="memberValue">{{ vm.uptime | formatTime }}</div> 14081 <div class="memberValue">{{ vm.uptime | formatTime }}</div>
13082 </div> 14082 </div>
13083 <div class="memberItem"> 14083 <div class="memberItem">
13084 <div class="memberName">type checks enabled</div> 14084 <div class="memberName">type checks enabled</div>
13085 <div class="memberValue">{{ vm.typeChecksEnabled }}</div> 14085 <div class="memberValue">{{ vm.typeChecksEnabled }}</div>
13086 </div> 14086 </div>
13087 <div class="memberItem"> 14087 <div class="memberItem">
13088 <div class="memberName">asserts enabled</div> 14088 <div class="memberName">asserts enabled</div>
13089 <div class="memberValue">{{ vm.assertsEnabled }}</div> 14089 <div class="memberValue">{{ vm.assertsEnabled }}</div>
13090 </div> 14090 </div>
14091 <br>
14092 <div class="memberItem">
14093 <div class="memberValue">
14094 See <a href="#/flags">flags</a>
14095 </div>
14096 </div>
13091 </div> 14097 </div>
13092 </div> 14098 </div>
13093 14099
13094 <br> 14100 <br>
13095 <hr> 14101 <hr>
13096 14102
13097 <ul class="list-group"> 14103 <ul class="list-group">
13098 <template repeat="{{ isolate in vm.isolates }}"> 14104 <template repeat="{{ isolate in vm.isolates }}">
13099 <li class="list-group-item"> 14105 <li class="list-group-item">
13100 <isolate-summary isolate="{{ isolate }}"></isolate-summary> 14106 <isolate-summary isolate="{{ isolate }}"></isolate-summary>
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
13177 color: #0489c3; 14183 color: #0489c3;
13178 text-decoration: none; 14184 text-decoration: none;
13179 } 14185 }
13180 14186
13181 a:hover { 14187 a:hover {
13182 text-decoration: underline; 14188 text-decoration: underline;
13183 } 14189 }
13184 14190
13185 em { 14191 em {
13186 color: inherit; 14192 color: inherit;
13187 font-style:italic; 14193 font-style: italic;
14194 }
14195
14196 b {
14197 color: inherit;
14198 font-weight: bold;
13188 } 14199 }
13189 14200
13190 hr { 14201 hr {
13191 margin-top: 20px; 14202 margin-top: 20px;
13192 margin-bottom: 20px; 14203 margin-bottom: 20px;
13193 border: 0; 14204 border: 0;
13194 border-top: 1px solid #eee; 14205 border-top: 1px solid #eee;
13195 height: 0; 14206 height: 0;
13196 box-sizing: content-box; 14207 box-sizing: content-box;
13197 } 14208 }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
13427 color: #0489c3; 14438 color: #0489c3;
13428 text-decoration: none; 14439 text-decoration: none;
13429 } 14440 }
13430 14441
13431 a:hover { 14442 a:hover {
13432 text-decoration: underline; 14443 text-decoration: underline;
13433 } 14444 }
13434 14445
13435 em { 14446 em {
13436 color: inherit; 14447 color: inherit;
13437 font-style:italic; 14448 font-style: italic;
14449 }
14450
14451 b {
14452 color: inherit;
14453 font-weight: bold;
13438 } 14454 }
13439 14455
13440 hr { 14456 hr {
13441 margin-top: 20px; 14457 margin-top: 20px;
13442 margin-bottom: 20px; 14458 margin-bottom: 20px;
13443 border: 0; 14459 border: 0;
13444 border-top: 1px solid #eee; 14460 border-top: 1px solid #eee;
13445 height: 0; 14461 height: 0;
13446 box-sizing: content-box; 14462 box-sizing: content-box;
13447 } 14463 }
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
13672 color: #0489c3; 14688 color: #0489c3;
13673 text-decoration: none; 14689 text-decoration: none;
13674 } 14690 }
13675 14691
13676 a:hover { 14692 a:hover {
13677 text-decoration: underline; 14693 text-decoration: underline;
13678 } 14694 }
13679 14695
13680 em { 14696 em {
13681 color: inherit; 14697 color: inherit;
13682 font-style:italic; 14698 font-style: italic;
14699 }
14700
14701 b {
14702 color: inherit;
14703 font-weight: bold;
13683 } 14704 }
13684 14705
13685 hr { 14706 hr {
13686 margin-top: 20px; 14707 margin-top: 20px;
13687 margin-bottom: 20px; 14708 margin-bottom: 20px;
13688 border: 0; 14709 border: 0;
13689 border-top: 1px solid #eee; 14710 border-top: 1px solid #eee;
13690 height: 0; 14711 height: 0;
13691 box-sizing: content-box; 14712 box-sizing: content-box;
13692 } 14713 }
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
13854 </style> 14875 </style>
13855 <a href="{{ url }}">{{ ref.name }}</a> 14876 <a href="{{ url }}">{{ ref.name }}</a>
13856 </template> 14877 </template>
13857 14878
13858 </polymer-element> 14879 </polymer-element>
13859 14880
13860 14881
13861 <observatory-application></observatory-application> 14882 <observatory-application></observatory-application>
13862 14883
13863 <script src="index.html_bootstrap.dart.js"></script></body></html> 14884 <script src="index.html_bootstrap.dart.js"></script></body></html>
OLDNEW
« no previous file with comments | « no previous file | runtime/bin/vmservice/client/deployed/web/index.html._data » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698