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

Side by Side Diff: runtime/bin/vmservice/observatory/lib/src/elements/instance_view.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
OLDNEW
1 <link rel="import" href="../../../../packages/polymer/polymer.html"> 1 <link rel="import" href="../../../../packages/polymer/polymer.html">
2 <link rel="import" href="class_ref.html"> 2 <link rel="import" href="class_ref.html">
3 <link rel="import" href="error_view.html"> 3 <link rel="import" href="error_view.html">
4 <link rel="import" href="eval_box.html"> 4 <link rel="import" href="eval_box.html">
5 <link rel="import" href="eval_link.html"> 5 <link rel="import" href="eval_link.html">
6 <link rel="import" href="field_ref.html"> 6 <link rel="import" href="field_ref.html">
7 <link rel="import" href="function_ref.html"> 7 <link rel="import" href="function_ref.html">
8 <link rel="import" href="inbound_reference.html"> 8 <link rel="import" href="inbound_reference.html">
9 <link rel="import" href="instance_ref.html"> 9 <link rel="import" href="instance_ref.html">
10 <link rel="import" href="observatory_element.html"> 10 <link rel="import" href="observatory_element.html">
11 <link rel="import" href="nav_bar.html"> 11 <link rel="import" href="nav_bar.html">
12 12
13 <polymer-element name="instance-view" extends="observatory-element"> 13 <polymer-element name="instance-view" extends="observatory-element">
14 <template> 14 <template>
15 <link rel="stylesheet" href="css/shared.css"> 15 <link rel="stylesheet" href="css/shared.css">
16 <nav-bar> 16 <nav-bar>
17 <top-nav-menu></top-nav-menu> 17 <top-nav-menu></top-nav-menu>
18 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu> 18 <isolate-nav-menu isolate="{{ instance.isolate }}"></isolate-nav-menu>
19 <!-- TODO(turnidge): Add library nav menu here. --> 19 <!-- TODO(turnidge): Add library nav menu here. -->
20 <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu> 20 <class-nav-menu cls="{{ instance.clazz }}"></class-nav-menu>
21 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu> 21 <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
22 <nav-refresh callback="{{ refresh }}"></nav-refresh> 22 <nav-refresh callback="{{ refresh }}"></nav-refresh>
23 <nav-control></nav-control> 23 <nav-control></nav-control>
24 </nav-bar> 24 </nav-bar>
25 25
26 <template if="{{ instance['error'] != null }}"> 26 <template if="{{ instance.isError }}">
27 <error-view error_obj="{{ instance['error'] }}"></error-view> 27 <error-view error_obj="{{ instance['error'] }}"></error-view>
28 </template> 28 </template>
29 29
30 <template if="{{ instance['error'] == null }}"> 30 <template if="{{ !instance.isError }}">
31 <div class="content"> 31 <div class="content">
32 <!-- TODO(turnidge): Handle null instances. --> 32 <template if="{{ instance.isType }}">
33 <template if="{{ isType(instance) }}">
34 <h1>type {{ instance.name }}</h1> 33 <h1>type {{ instance.name }}</h1>
35 </template> 34 </template>
36 <template if="{{ !isType(instance) }}"> 35 <template if="{{ !instance.isType }}">
37 <h1>instance of {{ instance['class'].name }}</h1> 36 <h1>instance of {{ instance.clazz.name }}</h1>
38 </template> 37 </template>
39 <div class="memberList"> 38 <div class="memberList">
40 <div class="memberItem"> 39 <div class="memberItem">
41 <div class="memberName">class</div> 40 <div class="memberName">class</div>
42 <div class="memberValue"> 41 <div class="memberValue">
43 <class-ref ref="{{ instance['class'] }}"> 42 <class-ref ref="{{ instance.clazz }}">
44 </class-ref> 43 </class-ref>
45 </div> 44 </div>
46 </div> 45 </div>
47 <template if="{{ instance['valueAsString'] != null }}"> 46 <template if="{{ instance.valueAsString != null }}">
48 <div class="memberItem"> 47 <div class="memberItem">
49 <div class="memberName">value</div> 48 <div class="memberName">value</div>
50 <div class="memberValue">{{ instance['valueAsString'] }}</div> 49 <div class="memberValue">{{ instance.valueAsString }}</div>
51 </div> 50 </div>
52 </template> 51 </template>
53 <div class="memberItem"> 52 <div class="memberItem" title="Space for this object in memory">
54 <div class="memberName">size</div> 53 <div class="memberName">size</div>
55 <div class="memberValue">{{ instance['size'] | formatSize }}</div> 54 <div class="memberValue">{{ instance.size | formatSize }}</div>
56 </div> 55 </div>
57 <div class="memberItem"> 56 <div class="memberItem" title="Space that would be reclaimed if refere nces to this object were replaced with null">
58 <div class="memberName">retained size</div> 57 <div class="memberName">retained size</div>
59 <div class="memberValue"> 58 <div class="memberValue">
60 <template if="{{ retainedBytes == null }}"> 59 <template if="{{ retainedBytes == null }}">
61 <eval-link callback="{{ retainedSize }}" 60 <eval-link callback="{{ retainedSize }}"
62 label="[calculate]"> 61 label="[calculate]">
63 </eval-link> 62 </eval-link>
64 </template> 63 </template>
65 <template if="{{ retainedBytes != null }}"> 64 <template if="{{ retainedBytes != null }}">
66 {{ retainedBytes | formatSize }} 65 {{ retainedBytes | formatSize }}
67 </template> 66 </template>
(...skipping 27 matching lines...) Expand all
95 showing {{ path['elements'].length }} of {{ path['length'] }} 94 showing {{ path['elements'].length }} of {{ path['length'] }}
96 <eval-link 95 <eval-link
97 callback="{{ retainingPath }}" 96 callback="{{ retainingPath }}"
98 label="[find more]" 97 label="[find more]"
99 expr="{{ path['elements'].length * 2 }}"> 98 expr="{{ path['elements'].length * 2 }}">
100 </eval-link> 99 </eval-link>
101 </template> 100 </template>
102 </template> 101 </template>
103 </div> 102 </div>
104 </div> 103 </div>
105 <div class="memberItem"> 104 <div class="memberItem" title="Objects which directly reference this o bject">
106 <div class="memberName">inbound references</div> 105 <div class="memberName">inbound references</div>
107 <div class="memberValue"> 106 <div class="memberValue">
108 <template if="{{ inboundReferences == null }}"> 107 <template if="{{ inboundReferences == null }}">
109 <eval-link callback="{{ fetchInboundReferences }}" 108 <eval-link callback="{{ fetchInboundReferences }}"
110 label="[find]" 109 label="[find]"
111 expr="100"> 110 expr="100">
112 </eval-link> 111 </eval-link>
113 </template> 112 </template>
114 <template if="{{ inboundReferences != null }}"> 113 <template if="{{ inboundReferences != null }}">
115 <template repeat="{{ reference in inboundReferences['references' ] }}"> 114 <template repeat="{{ reference in inboundReferences['references' ] }}">
116 <inbound-reference ref="{{ reference }}"></inbound-reference> 115 <inbound-reference ref="{{ reference }}"></inbound-reference>
117 </template> 116 </template>
118 </template> 117 </template>
119 </div> 118 </div>
120 </div> 119 </div>
121 <template if="{{ instance['type_class'] != null }}"> 120 <template if="{{ instance.typeClass != null }}">
122 <div class="memberItem"> 121 <div class="memberItem">
123 <div class="memberName">type class</div> 122 <div class="memberName">type class</div>
124 <div class="memberValue"> 123 <div class="memberValue">
125 <class-ref ref="{{ instance['type_class'] }}"> 124 <class-ref ref="{{ instance.typeClass }}">
126 </class-ref> 125 </class-ref>
127 </div> 126 </div>
128 </div> 127 </div>
129 </template> 128 </template>
130 <template if="{{ instance['closureFunc'] != null }}"> 129 <template if="{{ instance.isClosure }}">
131 <div class="memberItem"> 130 <div class="memberItem">
132 <div class="memberName">closure function</div> 131 <div class="memberName">closure function</div>
133 <div class="memberValue"> 132 <div class="memberValue">
134 <function-ref ref="{{ instance['closureFunc'] }}"> 133 <function-ref ref="{{ instance.closureFunc }}">
135 </function-ref> 134 </function-ref>
136 </div> 135 </div>
137 </div> 136 </div>
138 </template> 137 </template>
139 138
140 <div class="memberItem">&nbsp;</div> 139 <div class="memberItem">&nbsp;</div>
141 140
142 <div class="memberItem"> 141 <div class="memberItem">
143 <div class="memberName">toString()</div> 142 <div class="memberName">toString()</div>
144 <div class="memberValue"> 143 <div class="memberValue">
145 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> 144 <eval-link callback="{{ eval }}" expr="toString()"></eval-link>
146 </div> 145 </div>
147 </div> 146 </div>
148 </div> 147 </div>
149 </div> 148 </div>
150 149
151 <hr> 150 <hr>
152 151
153 <div class="content"> 152 <div class="content">
154 <template if="{{ instance['fields'].isNotEmpty }}"> 153 <template if="{{ instance.fields.isNotEmpty }}">
155 fields ({{ instance['fields'].length }}) 154 fields ({{ instance.fields.length }})
156 <curly-block expand="{{ instance['fields'].length <= 8 }}"> 155 <curly-block expand="{{ instance.fields.length <= 8 }}">
157 <div class="memberList"> 156 <div class="memberList">
158 <template repeat="{{ field in instance['fields'] }}"> 157 <template repeat="{{ field in instance.fields }}">
159 <div class="memberItem"> 158 <div class="memberItem">
160 <div class="memberName"> 159 <div class="memberName">
161 <field-ref ref="{{ field['decl'] }}"></field-ref> 160 <field-ref ref="{{ field['decl'] }}"></field-ref>
162 </div> 161 </div>
163 <div class="memberValue"> 162 <div class="memberValue">
164 <instance-ref ref="{{ field['value'] }}"></instance-ref> 163 <any-service-ref ref="{{ field['value'] }}"></any-service-re f>
165 </div> 164 </div>
166 </div> 165 </div>
167 </template> 166 </template>
168 </div> 167 </div>
169 </curly-block><br><br> 168 </curly-block><br><br>
170 </template> 169 </template>
171 170
172 <template if="{{ instance['nativeFields'].isNotEmpty }}"> 171 <template if="{{ instance.nativeFields.isNotEmpty }}">
173 native fields ({{ instance['nativeFields'].length }}) 172 native fields ({{ instance.nativeFields.length }})
174 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}"> 173 <curly-block expand="{{ instance.nativeFields.length <= 8 }}">
175 <div class="memberList"> 174 <div class="memberList">
176 <template repeat="{{ field in instance['nativeFields'] }}"> 175 <template repeat="{{ field in instance.nativeFields }}">
177 <div class="memberItem"> 176 <div class="memberItem">
178 <div class="memberName">[{{ field['index']}}]</div> 177 <div class="memberName">[{{ field['index']}}]</div>
179 <div class="memberValue">[{{ field['value']}}]</div> 178 <div class="memberValue">[{{ field['value']}}]</div>
180 </div> 179 </div>
181 </template> 180 </template>
182 </div> 181 </div>
183 </curly-block><br><br> 182 </curly-block><br><br>
184 </template> 183 </template>
185 184
186 <template if="{{ instance['elements'].isNotEmpty }}"> 185 <template if="{{ instance.elements.isNotEmpty }}">
187 elements ({{ instance['elements'].length }}) 186 elements ({{ instance.elements.length }})
188 <curly-block expand="{{ instance['elements'].length <= 8 }}"> 187 <curly-block expand="{{ instance.elements.length <= 8 }}">
189 <div class="memberList"> 188 <div class="memberList">
190 <template repeat="{{ element in instance['elements'] }}"> 189 <template repeat="{{ element in instance.elements }}">
191 <div class="memberItem"> 190 <div class="memberItem">
192 <div class="memberName">[{{ element['index']}}]</div> 191 <div class="memberName">[{{ element['index']}}]</div>
193 <div class="memberValue"> 192 <div class="memberValue">
194 <instance-ref ref="{{ element['value'] }}"> 193 <any-service-ref ref="{{ element['value'] }}">
195 </instance-ref> 194 </instance-ref>
196 </div> 195 </div>
197 </div> 196 </div>
198 </template> 197 </template>
199 </div> 198 </div>
200 </curly-block><br><br> 199 </curly-block><br><br>
201 </template> 200 </template>
202 </div> 201 </div>
203 202
204 <hr> 203 <hr>
205 204
206 <div class="content"> 205 <div class="content">
207 <eval-box callback="{{ eval }}"></eval-box> 206 <eval-box callback="{{ eval }}"></eval-box>
208 </div> 207 </div>
209 <br><br><br><br> 208 <br><br><br><br>
210 <br><br><br><br> 209 <br><br><br><br>
211 210
212 </template> 211 </template>
213 </template> 212 </template>
214 </polymer-element> 213 </polymer-element>
215 214
216 <script type="application/dart" src="instance_view.dart"></script> 215 <script type="application/dart" src="instance_view.dart"></script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698