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

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

Issue 509563004: Give instances their own model class; move DartErrors out of instance-ref into their own error-ref. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebase and build Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/bin/vmservice/observatory/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 10
(...skipping 903 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 background-color: #f5f5f5; 914 background-color: #f5f5f5;
915 border: 1px solid #ccc; 915 border: 1px solid #ccc;
916 padding: 10px; 916 padding: 10px;
917 font-family: consolas, courier, monospace; 917 font-family: consolas, courier, monospace;
918 font-size: 1em; 918 font-size: 1em;
919 line-height: 1.2em; 919 line-height: 1.2em;
920 white-space: pre; 920 white-space: pre;
921 } 921 }
922 </style> 922 </style>
923 <span> 923 <span>
924 <template if="{{ isError(ref) }}"> 924 <template if="{{ ref.isSentinel }}">
925 <pre class="errorBox">{{ ref.message }}</pre> 925 <div title="{{ hoverText }}">{{ ref.valueAsString }}</div>
926 </template> 926 </template>
927 927
928 <template if="{{ isUnexpected(ref) }}"> 928 <template if="{{ ref.isString || ref.isBool || ref.isInt || ref.isDouble | | ref.isNull }}">
929 unexpected reference type &lt;{{ ref.serviceType }}&gt; 929 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.valueAsString }}</a>
930 </template> 930 </template>
931 931
932 <template if="{{ isSentinel(ref) }}"> 932 <template if="{{ ref.isType }}">
933 <div title="{{ hoverText }}">{{ ref['valueAsString'] }}</div> 933 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a>
934 </template> 934 </template>
935 935
936 <template if="{{ (isString(ref) || 936 <template if="{{ ref.isClosure }}">
937 isBool(ref) ||
938 isNull(ref) ||
939 isInt(ref)) ||
940 isDouble(ref)) }}">
941 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref['valueAsString'] }}</a >
942 </template>
943
944 <template if="{{ (isType(ref)) }}">
945 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref['user_name'] }}</a>
946 </template>
947
948 <template if="{{ isInstance(ref) &amp;&amp;
949 ref['closureFunc'] != null}}">
950 <a on-click="{{ goto }}" _href="{{ url }}"> 937 <a on-click="{{ goto }}" _href="{{ url }}">
951 <!-- TODO(turnidge): Switch this to fully-qualified function --> 938 <!-- TODO(turnidge): Switch this to fully-qualified function -->
952 {{ ref['closureFunc'].name }} 939 {{ ref.closureFunc.name }}
953 </a> 940 </a>
954 </template> 941 </template>
955 942
956 <template if="{{ isInstance(ref) &amp;&amp; 943 <template if="{{ ref.isInstance &amp;&amp; !ref.isClosure }}">
957 ref['closureFunc'] == null}}"> 944 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> </a>
958 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref['class'].name }}</ em></a>
959 <curly-block callback="{{ expander() }}"> 945 <curly-block callback="{{ expander() }}">
960 <div class="memberList"> 946 <div class="memberList">
961 <template repeat="{{ field in ref['fields'] }}"> 947 <template repeat="{{ field in ref.fields }}">
962 <div class="memberItem"> 948 <div class="memberItem">
963 <div class="memberName"> 949 <div class="memberName">
964 {{ field['decl']['user_name'] }} 950 {{ field['decl']['user_name'] }}
965 </div> 951 </div>
966 <div class="memberValue"> 952 <div class="memberValue">
967 <instance-ref ref="{{ field['value'] }}"></instance-ref> 953 <any-service-ref ref="{{ field['value'] }}"></any-service-ref>
968 </div> 954 </div>
969 </div> 955 </div>
970 </template> 956 </template>
971 </div> 957 </div>
972 </curly-block> 958 </curly-block>
973 </template> 959 </template>
974 960
975 <template if="{{ isList(ref) }}"> 961 <template if="{{ ref.isList }}">
976 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref['class'].name }}</ em> ({{ ref['length']}})</a> 962 <a on-click="{{ goto }}" _href="{{ url }}"><em>{{ ref.clazz.name }}</em> ({{ ref.length }})</a>
977 <curly-block callback="{{ expander() }}"> 963 <curly-block callback="{{ expander() }}">
978 <div class="memberList"> 964 <div class="memberList">
979 <template repeat="{{ element in ref['elements'] }}"> 965 <template repeat="{{ element in ref.elements }}">
980 <div class="memberItem"> 966 <div class="memberItem">
981 <div class="memberName">[{{ element['index']}}]</div> 967 <div class="memberName">[{{ element['index']}}]</div>
982 <div class="memberValue"> 968 <div class="memberValue">
983 <instance-ref ref="{{ element['value'] }}"></instance-ref> 969 <any-service-ref ref="{{ element['value'] }}">
984 </div> 970 </any-service-ref></div>
985 </div> 971 </div>
986 </template> 972 </template>
987 </div> 973 </div>
988 </curly-block> 974 </curly-block>
989 </template> 975 </template>
990 </span> 976 </span>
991 </template> 977 </template>
992 </polymer-element> 978 </polymer-element>
993 979
994 980
(...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after
2549 2535
2550 2536
2551 2537
2552 2538
2553 2539
2554 2540
2555 2541
2556 2542
2557 2543
2558 2544
2545
2546
2547
2548
2549
2550
2551 <polymer-element name="error-ref" extends="service-ref">
2552 <template>
2553 <style>
2554 /* Global styles */
2555 * {
2556 margin: 0;
2557 padding: 0;
2558 font: 400 14px 'Montserrat', sans-serif;
2559 color: #333;
2560 box-sizing: border-box;
2561 }
2562
2563 .content {
2564 padding-left: 10%;
2565 font: 400 14px 'Montserrat', sans-serif;
2566 }
2567
2568 .content-centered {
2569 padding-left: 10%;
2570 padding-right: 10%;
2571 font: 400 14px 'Montserrat', sans-serif;
2572 }
2573
2574 .content-centered-big {
2575 padding-left: 5%;
2576 padding-right: 5%;
2577 font: 400 14px 'Montserrat', sans-serif;
2578 }
2579
2580 h1 {
2581 font: 400 18px 'Montserrat', sans-serif;
2582 }
2583
2584 .memberList {
2585 display: table;
2586 }
2587
2588 .memberItem {
2589 display: table-row;
2590 }
2591
2592 .memberName, .memberValue {
2593 display: table-cell;
2594 vertical-align: top;
2595 padding: 3px 0 3px 1em;
2596 font: 400 14px 'Montserrat', sans-serif;
2597 }
2598
2599 .memberSmall {
2600 display: table-cell;
2601 vertical-align: top;
2602 padding: 3px 0 3px 1em;
2603 font: 400 12px 'Montserrat', sans-serif;
2604 }
2605
2606 .monospace {
2607 font-family: consolas, courier, monospace;
2608 font-size: 1em;
2609 line-height: 1.2em;
2610 white-space: nowrap;
2611 }
2612
2613 a {
2614 color: #0489c3;
2615 text-decoration: none;
2616 }
2617
2618 a:hover {
2619 text-decoration: underline;
2620 }
2621
2622 em {
2623 color: inherit;
2624 font-style: italic;
2625 }
2626
2627 b {
2628 color: inherit;
2629 font-weight: bold;
2630 }
2631
2632 hr {
2633 margin-top: 20px;
2634 margin-bottom: 20px;
2635 border: 0;
2636 border-top: 1px solid #eee;
2637 height: 0;
2638 box-sizing: content-box;
2639 }
2640
2641 .list-group {
2642 padding-left: 0;
2643 margin-bottom: 20px;
2644 }
2645
2646 .list-group-item {
2647 position: relative;
2648 display: block;
2649 padding: 10px 15px;
2650 margin-bottom: -1px;
2651 background-color: #fff;
2652 }
2653
2654 .list-group-item:first-child {
2655 /* rounded top corners */
2656 border-top-right-radius:4px;
2657 border-top-left-radius:4px;
2658 }
2659
2660 .list-group-item:last-child {
2661 margin-bottom: 0;
2662 /* rounded bottom corners */
2663 border-bottom-right-radius: 4px;
2664 border-bottom-left-radius:4px;
2665 }
2666
2667 /* Flex row container */
2668 .flex-row {
2669 display: flex;
2670 flex-direction: row;
2671 }
2672
2673 /* Flex column container */
2674 .flex-column {
2675 display: flex;
2676 flex-direction: column;
2677 }
2678
2679 .flex-item-fit {
2680 flex-grow: 1;
2681 flex-shrink: 1;
2682 flex-basis: auto;
2683 }
2684
2685 .flex-item-no-shrink {
2686 flex-grow: 0;
2687 flex-shrink: 0;
2688 flex-basis: auto;
2689 }
2690
2691 .flex-item-fill {
2692 flex-grow: 0;
2693 flex-shrink: 1; /* shrink when pressured */
2694 flex-basis: 100%; /* try and take 100% */
2695 }
2696
2697 .flex-item-fixed-1-12 {
2698 flex-grow: 0;
2699 flex-shrink: 0;
2700 flex-basis: 8.3%;
2701 }
2702
2703 .flex-item-fixed-2-12 {
2704 flex-grow: 0;
2705 flex-shrink: 0;
2706 flex-basis: 16.6%;
2707 }
2708
2709 .flex-item-fixed-4-12 {
2710 flex-grow: 0;
2711 flex-shrink: 0;
2712 flex-basis: 33.3333%;
2713 }
2714
2715 .flex-item-fixed-6-12, .flex-item-50-percent {
2716 flex-grow: 0;
2717 flex-shrink: 0;
2718 flex-basis: 50%;
2719 }
2720
2721 .flex-item-fixed-8-12 {
2722 flex-grow: 0;
2723 flex-shrink: 0;
2724 flex-basis: 66.6666%;
2725 }
2726
2727 .flex-item-fixed-9-12 {
2728 flex-grow: 0;
2729 flex-shrink: 0;
2730 flex-basis: 75%;
2731 }
2732
2733
2734 .flex-item-fixed-12-12 {
2735 flex-grow: 0;
2736 flex-shrink: 0;
2737 flex-basis: 100%;
2738 }
2739
2740 .flex-item-10-percent {
2741 flex-grow: 0;
2742 flex-shrink: 0;
2743 flex-basis: 10%;
2744 }
2745
2746 .flex-item-15-percent {
2747 flex-grow: 0;
2748 flex-shrink: 0;
2749 flex-basis: 15%;
2750 }
2751
2752 .flex-item-20-percent {
2753 flex-grow: 0;
2754 flex-shrink: 0;
2755 flex-basis: 20%;
2756 }
2757
2758 .flex-item-30-percent {
2759 flex-grow: 0;
2760 flex-shrink: 0;
2761 flex-basis: 30%;
2762 }
2763
2764 .flex-item-40-percent {
2765 flex-grow: 0;
2766 flex-shrink: 0;
2767 flex-basis: 40%;
2768 }
2769
2770 .flex-item-50-percent {
2771 flex-grow: 0;
2772 flex-shrink: 0;
2773 flex-basis: 50%;
2774 }
2775
2776 .flex-item-60-percent {
2777 flex-grow: 0;
2778 flex-shrink: 0;
2779 flex-basis: 60%;
2780 }
2781
2782 .flex-item-70-percent {
2783 flex-grow: 0;
2784 flex-shrink: 0;
2785 flex-basis: 70%;
2786 }
2787
2788 .flex-item-80-percent {
2789 flex-grow: 0;
2790 flex-shrink: 0;
2791 flex-basis: 80%;
2792 }
2793
2794 .well {
2795 min-height: 20px;
2796 padding: 19px;
2797 margin-bottom: 20px;
2798 background-color: #f5f5f5;
2799 border: 1px solid #e3e3e3;
2800 border-radius: 4px;
2801 box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
2802 }
2803
2804 .break-wrap {
2805 word-wrap: break-word;
2806 }
2807 </style>
2808 <style>
2809 .errorBox {
2810 background-color: #f5f5f5;
2811 border: 1px solid #ccc;
2812 padding: 10px;
2813 font-family: consolas, courier, monospace;
2814 font-size: 1em;
2815 line-height: 1.2em;
2816 white-space: pre;
2817 }
2818 </style>
2819 <span>
2820 <pre class="errorBox">{{ ref.kind }}: {{ ref.message }}</pre>
2821 </span>
2822 </template>
2823 </polymer-element>
2824
2559 <polymer-element name="eval-box" extends="observatory-element"> 2825 <polymer-element name="eval-box" extends="observatory-element">
2560 <template> 2826 <template>
2561 <style> 2827 <style>
2562 .textbox { 2828 .textbox {
2563 width: 80ex; 2829 width: 80ex;
2564 font: 400 16px 'Montserrat', sans-serif; 2830 font: 400 16px 'Montserrat', sans-serif;
2565 } 2831 }
2566 .bigtextbox { 2832 .bigtextbox {
2567 font: 400 16px 'Montserrat', sans-serif; 2833 font: 400 16px 'Montserrat', sans-serif;
2568 } 2834 }
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2619 <table> 2885 <table>
2620 <tbody><tr template="" repeat="{{ result in results }}"> 2886 <tbody><tr template="" repeat="{{ result in results }}">
2621 <td class="historyExpr"> 2887 <td class="historyExpr">
2622 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr'] }}">{{ result['expr'] }}</a> 2888 <a class="expr" on-click="{{ selectExpr }}" expr="{{ result['expr'] }}">{{ result['expr'] }}</a>
2623 </td> 2889 </td>
2624 <td class="historyValue"> 2890 <td class="historyValue">
2625 <template if="{{ result['value'] == null }}"> 2891 <template if="{{ result['value'] == null }}">
2626 <div style="color:#aaa;cursor:wait;">&lt;pending&gt;</div> 2892 <div style="color:#aaa;cursor:wait;">&lt;pending&gt;</div>
2627 </template> 2893 </template>
2628 <template if="{{ result['value'] != null }}"> 2894 <template if="{{ result['value'] != null }}">
2629 <instance-ref ref="{{ result['value'] }}"></instance-ref> 2895 <any-service-ref ref="{{ result['value'] }}"></any-service-ref>
2630 </template> 2896 </template>
2631 </td> 2897 </td>
2632 </tr> 2898 </tr>
2633 </tbody></table> 2899 </tbody></table>
2634 </template> 2900 </template>
2635 </template> 2901 </template>
2636 </polymer-element> 2902 </polymer-element>
2637 2903
2638 2904
2639 2905
2640 2906
2641 2907
2908
2642 <polymer-element name="eval-link"> 2909 <polymer-element name="eval-link">
2643 <template> 2910 <template>
2644 <style> 2911 <style>
2645 .idle { 2912 .idle {
2646 color: #0489c3; 2913 color: #0489c3;
2647 cursor: pointer; 2914 cursor: pointer;
2648 } 2915 }
2649 .busy { 2916 .busy {
2650 color: #aaa; 2917 color: #aaa;
2651 cursor: wait; 2918 cursor: wait;
2652 } 2919 }
2653 </style> 2920 </style>
2654 2921
2655 <template if="{{ busy }}"> 2922 <template if="{{ busy }}">
2656 <span class="busy">{{ label }}</span> 2923 <span class="busy">{{ label }}</span>
2657 </template> 2924 </template>
2658 <template if="{{ !busy }}"> 2925 <template if="{{ !busy }}">
2659 <span class="idle"><a on-click="{{ evalNow }}">{{ label }}</a></span> 2926 <span class="idle"><a on-click="{{ evalNow }}">{{ label }}</a></span>
2660 </template> 2927 </template>
2661 <template if="{{ result != null }}"> 2928 <template if="{{ result != null }}">
2662 = <instance-ref ref="{{ result }}"></instance-ref> 2929 = <any-service-ref ref="{{ result }}"></any-service-ref>
2663 </template> 2930 </template>
2664 </template> 2931 </template>
2665 </polymer-element> 2932 </polymer-element>
2666 2933
2667 2934
2668 2935
2669 2936
2670 2937
2671 2938
2672 2939
(...skipping 1555 matching lines...) Expand 10 before | Expand all | Expand 10 after
4228 <template if="{{ cls.name != cls.vmName }}"> 4495 <template if="{{ cls.name != cls.vmName }}">
4229 <div class="memberItem"> 4496 <div class="memberItem">
4230 <div class="memberName">vm name</div> 4497 <div class="memberName">vm name</div>
4231 <div class="memberValue">{{ cls.vmName }}</div> 4498 <div class="memberValue">{{ cls.vmName }}</div>
4232 </div> 4499 </div>
4233 </template> 4500 </template>
4234 </div> 4501 </div>
4235 </div> 4502 </div>
4236 4503
4237 <template if="{{ cls.error != null }}"> 4504 <template if="{{ cls.error != null }}">
4238 <!-- TODO(turnidge): Don't use instance-ref for error display here --> 4505 <error-ref ref="{{ cls.error }}">
4239 <instance-ref ref="{{ cls.error }}"></instance-ref> 4506 </error-ref></template>
4240 </template>
4241 4507
4242 <hr> 4508 <hr>
4243 4509
4244 <div class="content"> 4510 <div class="content">
4245 <template if="{{ cls.fields.isNotEmpty }}"> 4511 <template if="{{ cls.fields.isNotEmpty }}">
4246 fields ({{ cls.fields.length }}) 4512 fields ({{ cls.fields.length }})
4247 <curly-block expand="{{ cls.fields.length <= 8 }}"> 4513 <curly-block expand="{{ cls.fields.length <= 8 }}">
4248 <div class="memberList"> 4514 <div class="memberList">
4249 <template repeat="{{ field in cls.fields }}"> 4515 <template repeat="{{ field in cls.fields }}">
4250 <div class="memberItem"> 4516 <div class="memberItem">
4251 <div class="memberName"> 4517 <div class="memberName">
4252 <field-ref ref="{{ field }}"></field-ref> 4518 <field-ref ref="{{ field }}"></field-ref>
4253 </div> 4519 </div>
4254 <div class="memberValue"> 4520 <div class="memberValue">
4255 <template if="{{ field['value'] != null }}"> 4521 <template if="{{ field['value'] != null }}">
4256 <instance-ref ref="{{ field['value'] }}"></instance-ref> 4522 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
4257 </template> 4523 </template>
4258 </div> 4524 </div>
4259 </div> 4525 </div>
4260 </template> 4526 </template>
4261 </div> 4527 </div>
4262 </curly-block><br><br> 4528 </curly-block><br><br>
4263 </template> 4529 </template>
4264 4530
4265 <template if="{{ cls.functions.isNotEmpty }}"> 4531 <template if="{{ cls.functions.isNotEmpty }}">
4266 functions ({{ cls.functions.length }}) 4532 functions ({{ cls.functions.length }})
(...skipping 22 matching lines...) Expand all
4289 </div> 4555 </div>
4290 <div class="memberItem"> 4556 <div class="memberItem">
4291 <div class="memberName">strongly reachable</div> 4557 <div class="memberName">strongly reachable</div>
4292 <div class="memberValue"> 4558 <div class="memberValue">
4293 <template if="{{ instances == null }}"> 4559 <template if="{{ instances == null }}">
4294 <eval-link callback="{{ reachable }}" label="[find]" expr="100"> 4560 <eval-link callback="{{ reachable }}" label="[find]" expr="100">
4295 </eval-link> 4561 </eval-link>
4296 </template> 4562 </template>
4297 <template if="{{ instances != null }}"> 4563 <template if="{{ instances != null }}">
4298 sample 4564 sample
4299 <instance-ref ref="{{ instances['sample'] }}"></instance-ref> 4565 <any-service-ref ref="{{ instances['sample'] }}"></any-service-r ef>
4300 <template if="{{ instances['totalCount'] > instances['sampleCoun t'] }}"> 4566 <template if="{{ instances['totalCount'] > instances['sampleCoun t'] }}">
4301 <eval-link callback="{{ reachable }}" label="[more]" expr="{{ instances['sampleCount'] * 2 }}"> 4567 <eval-link callback="{{ reachable }}" label="[more]" expr="{{ instances['sampleCount'] * 2 }}">
4302 </eval-link> 4568 </eval-link>
4303 </template> 4569 </template>
4304 of total {{ instances['totalCount'] }} 4570 of total {{ instances['totalCount'] }}
4305 </template> 4571 </template>
4306 </div> 4572 </div>
4307 </div> 4573 </div>
4308 <div class="memberItem"> 4574 <div class="memberItem">
4309 <div class="memberName">retained size</div> 4575 <div class="memberName">retained size</div>
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after
4956 <div class="memberName">Inclusive</div> 5222 <div class="memberName">Inclusive</div>
4957 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div> 5223 <div class="memberValue">{{ code.formattedInclusiveTicks }}</div>
4958 </div> 5224 </div>
4959 <div class="memberItem"> 5225 <div class="memberItem">
4960 <div class="memberName">Exclusive</div> 5226 <div class="memberName">Exclusive</div>
4961 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div> 5227 <div class="memberValue">{{ code.formattedExclusiveTicks }}</div>
4962 </div> 5228 </div>
4963 <div class="memberItem"> 5229 <div class="memberItem">
4964 <div class="memberName">Constant object pool</div> 5230 <div class="memberName">Constant object pool</div>
4965 <div class="memberValue"> 5231 <div class="memberValue">
4966 <instance-ref ref="{{ code.objectPool }}"></instance-ref> 5232 <any-service-ref ref="{{ code.objectPool }}"></any-service-ref>
4967 </div> 5233 </div>
4968 </div> 5234 </div>
4969 </div> 5235 </div>
4970 </div> 5236 </div>
4971 <hr> 5237 <hr>
4972 <div class="content"> 5238 <div class="content">
4973 <template if="{{ code.hasDisassembly }}"> 5239 <template if="{{ code.hasDisassembly }}">
4974 <div class="flex-row"> 5240 <div class="flex-row">
4975 <div class="flex-item-fixed-2-12 memberHeader">Inclusive</div> 5241 <div class="flex-item-fixed-2-12 memberHeader">Inclusive</div>
4976 <div class="flex-item-fixed-2-12 memberHeader">Exclusive</div> 5242 <div class="flex-item-fixed-2-12 memberHeader">Exclusive</div>
(...skipping 663 matching lines...) Expand 10 before | Expand all | Expand 10 after
5640 — null not observed 5906 — null not observed
5641 </template> 5907 </template>
5642 </template> 5908 </template>
5643 </div> 5909 </div>
5644 </div> 5910 </div>
5645 </template> 5911 </template>
5646 <template if="{{ field['value'] != null }}"> 5912 <template if="{{ field['value'] != null }}">
5647 <div class="memberItem"> 5913 <div class="memberItem">
5648 <div class="memberName">static value</div> 5914 <div class="memberName">static value</div>
5649 <div class="memberValue"> 5915 <div class="memberValue">
5650 <instance-ref ref="{{ field['value'] }}"></instance-ref> 5916 <any-service-ref ref="{{ field['value'] }}"></any-service-ref>
5651 </div> 5917 </div>
5652 </div> 5918 </div>
5653 </template> 5919 </template>
5654 </div> 5920 </div>
5655 </div> 5921 </div>
5656 </template> 5922 </template>
5657 </polymer-element> 5923 </polymer-element>
5658 5924
5659 5925
5660 5926
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
5936 <function-ref ref="{{ frame['function'] }}"></function-ref> 6202 <function-ref ref="{{ frame['function'] }}"></function-ref>
5937 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }} "> 6203 ( <script-ref ref="{{ frame['script'] }}" pos="{{ frame['tokenPos'] }} ">
5938 </script-ref> ) 6204 </script-ref> )
5939 6205
5940 <curly-block> 6206 <curly-block>
5941 <div class="memberList"> 6207 <div class="memberList">
5942 <template repeat="{{ v in frame['vars'] }}"> 6208 <template repeat="{{ v in frame['vars'] }}">
5943 <div class="memberItem"> 6209 <div class="memberItem">
5944 <div class="memberName">{{ v['name']}}</div> 6210 <div class="memberName">{{ v['name']}}</div>
5945 <div class="memberValue"> 6211 <div class="memberValue">
5946 <instance-ref ref="{{ v['value'] }}"></instance-ref> 6212 <any-service-ref ref="{{ v['value'] }}"></any-service-ref>
5947 </div> 6213 </div>
5948 </div> 6214 </div>
5949 </template> 6215 </template>
5950 </div> 6216 </div>
5951 </curly-block> 6217 </curly-block>
5952 </div> 6218 </div>
5953 <div class="flex-item-fixed-1-12"> 6219 <div class="flex-item-fixed-1-12">
5954 </div> 6220 </div>
5955 </div> 6221 </div>
5956 </template> 6222 </template>
(...skipping 8563 matching lines...) Expand 10 before | Expand all | Expand 10 after
14520 } 14786 }
14521 14787
14522 .break-wrap { 14788 .break-wrap {
14523 word-wrap: break-word; 14789 word-wrap: break-word;
14524 } 14790 }
14525 </style> 14791 </style>
14526 <nav-bar> 14792 <nav-bar>
14527 <top-nav-menu></top-nav-menu> 14793 <top-nav-menu></top-nav-menu>
14528 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> 14794 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu>
14529 <!-- TODO(turnidge): Add library nav menu here. --> 14795 <!-- TODO(turnidge): Add library nav menu here. -->
14530 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu> 14796 <class-nav-menu cls="{{ instance.clazz }}"></class-nav-menu>
14531 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> 14797 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
14532 <nav-refresh callback="{{ refresh }}"></nav-refresh> 14798 <nav-refresh callback="{{ refresh }}"></nav-refresh>
14533 <nav-control></nav-control> 14799 <nav-control></nav-control>
14534 </nav-bar> 14800 </nav-bar>
14535 14801
14536 <template if="{{ instance['error'] != null }}"> 14802 <template if="{{ instance.isError }}">
14537 <error-view error_obj="{{ instance['error'] }}"></error-view> 14803 <error-view error_obj="{{ instance['error'] }}"></error-view>
14538 </template> 14804 </template>
14539 14805
14540 <template if="{{ instance['error'] == null }}"> 14806 <template if="{{ !instance.isError }}">
14541 <div class="content"> 14807 <div class="content">
14542 <!-- TODO(turnidge): Handle null instances. --> 14808 <template if="{{ instance.isType }}">
14543 <template if="{{ isType(instance) }}">
14544 <h1>type {{ instance.name }}</h1> 14809 <h1>type {{ instance.name }}</h1>
14545 </template> 14810 </template>
14546 <template if="{{ !isType(instance) }}"> 14811 <template if="{{ !instance.isType }}">
14547 <h1>instance of {{ instance['class'].name }}</h1> 14812 <h1>instance of {{ instance.clazz.name }}</h1>
14548 </template> 14813 </template>
14549 <div class="memberList"> 14814 <div class="memberList">
14550 <div class="memberItem"> 14815 <div class="memberItem">
14551 <div class="memberName">class</div> 14816 <div class="memberName">class</div>
14552 <div class="memberValue"> 14817 <div class="memberValue">
14553 <class-ref ref="{{ instance['class'] }}"> 14818 <class-ref ref="{{ instance.clazz }}">
14554 </class-ref> 14819 </class-ref>
14555 </div> 14820 </div>
14556 </div> 14821 </div>
14557 <template if="{{ instance['valueAsString'] != null }}"> 14822 <template if="{{ instance.valueAsString != null }}">
14558 <div class="memberItem"> 14823 <div class="memberItem">
14559 <div class="memberName">value</div> 14824 <div class="memberName">value</div>
14560 <div class="memberValue">{{ instance['valueAsString'] }}</div> 14825 <div class="memberValue">{{ instance.valueAsString }}</div>
14561 </div> 14826 </div>
14562 </template> 14827 </template>
14563 <div class="memberItem"> 14828 <div class="memberItem" title="Space for this object in memory">
14564 <div class="memberName">size</div> 14829 <div class="memberName">size</div>
14565 <div class="memberValue">{{ instance['size'] | formatSize }}</div> 14830 <div class="memberValue">{{ instance.size | formatSize }}</div>
14566 </div> 14831 </div>
14567 <div class="memberItem"> 14832 <div class="memberItem" title="Space that would be reclaimed if refere nces to this object were replaced with null">
14568 <div class="memberName">retained size</div> 14833 <div class="memberName">retained size</div>
14569 <div class="memberValue"> 14834 <div class="memberValue">
14570 <template if="{{ retainedBytes == null }}"> 14835 <template if="{{ retainedBytes == null }}">
14571 <eval-link callback="{{ retainedSize }}" label="[calculate]"> 14836 <eval-link callback="{{ retainedSize }}" label="[calculate]">
14572 </eval-link> 14837 </eval-link>
14573 </template> 14838 </template>
14574 <template if="{{ retainedBytes != null }}"> 14839 <template if="{{ retainedBytes != null }}">
14575 {{ retainedBytes | formatSize }} 14840 {{ retainedBytes | formatSize }}
14576 </template> 14841 </template>
14577 </div> 14842 </div>
(...skipping 21 matching lines...) Expand all
14599 </div> 14864 </div>
14600 </template> 14865 </template>
14601 <template if="{{ path['length'] > path['elements'].length }}"> 14866 <template if="{{ path['length'] > path['elements'].length }}">
14602 showing {{ path['elements'].length }} of {{ path['length'] }} 14867 showing {{ path['elements'].length }} of {{ path['length'] }}
14603 <eval-link callback="{{ retainingPath }}" label="[find more]" expr="{{ path['elements'].length * 2 }}"> 14868 <eval-link callback="{{ retainingPath }}" label="[find more]" expr="{{ path['elements'].length * 2 }}">
14604 </eval-link> 14869 </eval-link>
14605 </template> 14870 </template>
14606 </template> 14871 </template>
14607 </div> 14872 </div>
14608 </div> 14873 </div>
14609 <div class="memberItem"> 14874 <div class="memberItem" title="Objects which directly reference this o bject">
14610 <div class="memberName">inbound references</div> 14875 <div class="memberName">inbound references</div>
14611 <div class="memberValue"> 14876 <div class="memberValue">
14612 <template if="{{ inboundReferences == null }}"> 14877 <template if="{{ inboundReferences == null }}">
14613 <eval-link callback="{{ fetchInboundReferences }}" label="[find] " expr="100"> 14878 <eval-link callback="{{ fetchInboundReferences }}" label="[find] " expr="100">
14614 </eval-link> 14879 </eval-link>
14615 </template> 14880 </template>
14616 <template if="{{ inboundReferences != null }}"> 14881 <template if="{{ inboundReferences != null }}">
14617 <template repeat="{{ reference in inboundReferences['references' ] }}"> 14882 <template repeat="{{ reference in inboundReferences['references' ] }}">
14618 <inbound-reference ref="{{ reference }}"></inbound-reference> 14883 <inbound-reference ref="{{ reference }}"></inbound-reference>
14619 </template> 14884 </template>
14620 </template> 14885 </template>
14621 </div> 14886 </div>
14622 </div> 14887 </div>
14623 <template if="{{ instance['type_class'] != null }}"> 14888 <template if="{{ instance.typeClass != null }}">
14624 <div class="memberItem"> 14889 <div class="memberItem">
14625 <div class="memberName">type class</div> 14890 <div class="memberName">type class</div>
14626 <div class="memberValue"> 14891 <div class="memberValue">
14627 <class-ref ref="{{ instance['type_class'] }}"> 14892 <class-ref ref="{{ instance.typeClass }}">
14628 </class-ref> 14893 </class-ref>
14629 </div> 14894 </div>
14630 </div> 14895 </div>
14631 </template> 14896 </template>
14632 <template if="{{ instance['closureFunc'] != null }}"> 14897 <template if="{{ instance.isClosure }}">
14633 <div class="memberItem"> 14898 <div class="memberItem">
14634 <div class="memberName">closure function</div> 14899 <div class="memberName">closure function</div>
14635 <div class="memberValue"> 14900 <div class="memberValue">
14636 <function-ref ref="{{ instance['closureFunc'] }}"> 14901 <function-ref ref="{{ instance.closureFunc }}">
14637 </function-ref> 14902 </function-ref>
14638 </div> 14903 </div>
14639 </div> 14904 </div>
14640 </template> 14905 </template>
14641 14906
14642 <div class="memberItem">&nbsp;</div> 14907 <div class="memberItem">&nbsp;</div>
14643 14908
14644 <div class="memberItem"> 14909 <div class="memberItem">
14645 <div class="memberName">toString()</div> 14910 <div class="memberName">toString()</div>
14646 <div class="memberValue"> 14911 <div class="memberValue">
14647 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> 14912 <eval-link callback="{{ eval }}" expr="toString()"></eval-link>
14648 </div> 14913 </div>
14649 </div> 14914 </div>
14650 </div> 14915 </div>
14651 </div> 14916 </div>
14652 14917
14653 <hr> 14918 <hr>
14654 14919
14655 <div class="content"> 14920 <div class="content">
14656 <template if="{{ instance['fields'].isNotEmpty }}"> 14921 <template if="{{ instance.fields.isNotEmpty }}">
14657 fields ({{ instance['fields'].length }}) 14922 fields ({{ instance.fields.length }})
14658 <curly-block expand="{{ instance['fields'].length <= 8 }}"> 14923 <curly-block expand="{{ instance.fields.length <= 8 }}">
14659 <div class="memberList"> 14924 <div class="memberList">
14660 <template repeat="{{ field in instance['fields'] }}"> 14925 <template repeat="{{ field in instance.fields }}">
14661 <div class="memberItem"> 14926 <div class="memberItem">
14662 <div class="memberName"> 14927 <div class="memberName">
14663 <field-ref ref="{{ field['decl'] }}"></field-ref> 14928 <field-ref ref="{{ field['decl'] }}"></field-ref>
14664 </div> 14929 </div>
14665 <div class="memberValue"> 14930 <div class="memberValue">
14666 <instance-ref ref="{{ field['value'] }}"></instance-ref> 14931 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
14667 </div> 14932 </div>
14668 </div> 14933 </div>
14669 </template> 14934 </template>
14670 </div> 14935 </div>
14671 </curly-block><br><br> 14936 </curly-block><br><br>
14672 </template> 14937 </template>
14673 14938
14674 <template if="{{ instance['nativeFields'].isNotEmpty }}"> 14939 <template if="{{ instance.nativeFields.isNotEmpty }}">
14675 native fields ({{ instance['nativeFields'].length }}) 14940 native fields ({{ instance.nativeFields.length }})
14676 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}"> 14941 <curly-block expand="{{ instance.nativeFields.length <= 8 }}">
14677 <div class="memberList"> 14942 <div class="memberList">
14678 <template repeat="{{ field in instance['nativeFields'] }}"> 14943 <template repeat="{{ field in instance.nativeFields }}">
14679 <div class="memberItem"> 14944 <div class="memberItem">
14680 <div class="memberName">[{{ field['index']}}]</div> 14945 <div class="memberName">[{{ field['index']}}]</div>
14681 <div class="memberValue">[{{ field['value']}}]</div> 14946 <div class="memberValue">[{{ field['value']}}]</div>
14682 </div> 14947 </div>
14683 </template> 14948 </template>
14684 </div> 14949 </div>
14685 </curly-block><br><br> 14950 </curly-block><br><br>
14686 </template> 14951 </template>
14687 14952
14688 <template if="{{ instance['elements'].isNotEmpty }}"> 14953 <template if="{{ instance.elements.isNotEmpty }}">
14689 elements ({{ instance['elements'].length }}) 14954 elements ({{ instance.elements.length }})
14690 <curly-block expand="{{ instance['elements'].length <= 8 }}"> 14955 <curly-block expand="{{ instance.elements.length <= 8 }}">
14691 <div class="memberList"> 14956 <div class="memberList">
14692 <template repeat="{{ element in instance['elements'] }}"> 14957 <template repeat="{{ element in instance.elements }}">
14693 <div class="memberItem"> 14958 <div class="memberItem">
14694 <div class="memberName">[{{ element['index']}}]</div> 14959 <div class="memberName">[{{ element['index']}}]</div>
14695 <div class="memberValue"> 14960 <div class="memberValue">
14696 <instance-ref ref="{{ element['value'] }}"> 14961 <any-service-ref ref="{{ element['value'] }}">
14697 </instance-ref> 14962
14698 </div> 14963 </any-service-ref></div>
14699 </div> 14964 </div>
14700 </template> 14965 </template>
14701 </div> 14966 </div>
14702 </curly-block><br><br> 14967 </curly-block><br><br>
14703 </template> 14968 </template>
14704 </div> 14969 </div>
14705 14970
14706 <hr> 14971 <hr>
14707 14972
14708 <div class="content"> 14973 <div class="content">
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
15082 variables ({{ library.variables.length }}) 15347 variables ({{ library.variables.length }})
15083 <curly-block expand="{{ library.variables.length <= 8 }}"> 15348 <curly-block expand="{{ library.variables.length <= 8 }}">
15084 <div class="memberList"> 15349 <div class="memberList">
15085 <template repeat="{{ field in library.variables }}"> 15350 <template repeat="{{ field in library.variables }}">
15086 <div class="memberItem"> 15351 <div class="memberItem">
15087 <div class="memberName"> 15352 <div class="memberName">
15088 <field-ref ref="{{ field }}"></field-ref> 15353 <field-ref ref="{{ field }}"></field-ref>
15089 </div> 15354 </div>
15090 <div class="memberValue"> 15355 <div class="memberValue">
15091 <template if="{{ field['value'] != null }}"> 15356 <template if="{{ field['value'] != null }}">
15092 <instance-ref ref="{{ field['value'] }}"></instance-ref> 15357 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
15093 </template> 15358 </template>
15094 </div> 15359 </div>
15095 </div> 15360 </div>
15096 </template> 15361 </template>
15097 </div> 15362 </div>
15098 </curly-block><br> 15363 </curly-block><br>
15099 <br> 15364 <br>
15100 </template> 15365 </template>
15101 15366
15102 <template if="{{ library.functions.isNotEmpty }}"> 15367 <template if="{{ library.functions.isNotEmpty }}">
(...skipping 5079 matching lines...) Expand 10 before | Expand all | Expand 10 after
20182 </style> 20447 </style>
20183 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a> 20448 <a on-click="{{ goto }}" _href="{{ url }}">{{ ref.name }}</a>
20184 </template> 20449 </template>
20185 </polymer-element> 20450 </polymer-element>
20186 20451
20187 20452
20188 20453
20189 <observatory-application></observatory-application> 20454 <observatory-application></observatory-application>
20190 20455
20191 <script src="index.html_bootstrap.dart.js" async=""></script></body></html> 20456 <script src="index.html_bootstrap.dart.js" async=""></script></body></html>
OLDNEW
« no previous file with comments | « no previous file | runtime/bin/vmservice/observatory/deployed/web/index.html._data » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698