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

Side by Side Diff: runtime/bin/vmservice/observatory/lib/src/elements/instance_view.html

Issue 511413002: Revert "Give instances their own model class; move DartErrors out of instance-ref into their own er… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 <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.clazz }}"></class-nav-menu> 20 <class-nav-menu cls="{{ instance['class'] }}"></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.isError }}"> 26 <template if="{{ instance['error'] != null }}">
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.isError }}"> 30 <template if="{{ instance['error'] == null }}">
31 <div class="content"> 31 <div class="content">
32 <template if="{{ instance.isType }}"> 32 <!-- TODO(turnidge): Handle null instances. -->
33 <template if="{{ isType(instance) }}">
33 <h1>type {{ instance.name }}</h1> 34 <h1>type {{ instance.name }}</h1>
34 </template> 35 </template>
35 <template if="{{ !instance.isType }}"> 36 <template if="{{ !isType(instance) }}">
36 <h1>instance of {{ instance.clazz.name }}</h1> 37 <h1>instance of {{ instance['class'].name }}</h1>
37 </template> 38 </template>
38 <div class="memberList"> 39 <div class="memberList">
39 <div class="memberItem"> 40 <div class="memberItem">
40 <div class="memberName">class</div> 41 <div class="memberName">class</div>
41 <div class="memberValue"> 42 <div class="memberValue">
42 <class-ref ref="{{ instance.clazz }}"> 43 <class-ref ref="{{ instance['class'] }}">
43 </class-ref> 44 </class-ref>
44 </div> 45 </div>
45 </div> 46 </div>
46 <template if="{{ instance.valueAsString != null }}"> 47 <template if="{{ instance['valueAsString'] != null }}">
47 <div class="memberItem"> 48 <div class="memberItem">
48 <div class="memberName">value</div> 49 <div class="memberName">value</div>
49 <div class="memberValue">{{ instance.valueAsString }}</div> 50 <div class="memberValue">{{ instance['valueAsString'] }}</div>
50 </div> 51 </div>
51 </template> 52 </template>
52 <div class="memberItem" title="Space for this object in memory"> 53 <div class="memberItem">
53 <div class="memberName">size</div> 54 <div class="memberName">size</div>
54 <div class="memberValue">{{ instance.size | formatSize }}</div> 55 <div class="memberValue">{{ instance['size'] | formatSize }}</div>
55 </div> 56 </div>
56 <div class="memberItem" title="Space that would be reclaimed if refere nces to this object were replaced with null"> 57 <div class="memberItem">
57 <div class="memberName">retained size</div> 58 <div class="memberName">retained size</div>
58 <div class="memberValue"> 59 <div class="memberValue">
59 <template if="{{ retainedBytes == null }}"> 60 <template if="{{ retainedBytes == null }}">
60 <eval-link callback="{{ retainedSize }}" 61 <eval-link callback="{{ retainedSize }}"
61 label="[calculate]"> 62 label="[calculate]">
62 </eval-link> 63 </eval-link>
63 </template> 64 </template>
64 <template if="{{ retainedBytes != null }}"> 65 <template if="{{ retainedBytes != null }}">
65 {{ retainedBytes | formatSize }} 66 {{ retainedBytes | formatSize }}
66 </template> 67 </template>
(...skipping 27 matching lines...) Expand all
94 showing {{ path['elements'].length }} of {{ path['length'] }} 95 showing {{ path['elements'].length }} of {{ path['length'] }}
95 <eval-link 96 <eval-link
96 callback="{{ retainingPath }}" 97 callback="{{ retainingPath }}"
97 label="[find more]" 98 label="[find more]"
98 expr="{{ path['elements'].length * 2 }}"> 99 expr="{{ path['elements'].length * 2 }}">
99 </eval-link> 100 </eval-link>
100 </template> 101 </template>
101 </template> 102 </template>
102 </div> 103 </div>
103 </div> 104 </div>
104 <div class="memberItem" title="Objects which directly reference this o bject"> 105 <div class="memberItem">
105 <div class="memberName">inbound references</div> 106 <div class="memberName">inbound references</div>
106 <div class="memberValue"> 107 <div class="memberValue">
107 <template if="{{ inboundReferences == null }}"> 108 <template if="{{ inboundReferences == null }}">
108 <eval-link callback="{{ fetchInboundReferences }}" 109 <eval-link callback="{{ fetchInboundReferences }}"
109 label="[find]" 110 label="[find]"
110 expr="100"> 111 expr="100">
111 </eval-link> 112 </eval-link>
112 </template> 113 </template>
113 <template if="{{ inboundReferences != null }}"> 114 <template if="{{ inboundReferences != null }}">
114 <template repeat="{{ reference in inboundReferences['references' ] }}"> 115 <template repeat="{{ reference in inboundReferences['references' ] }}">
115 <inbound-reference ref="{{ reference }}"></inbound-reference> 116 <inbound-reference ref="{{ reference }}"></inbound-reference>
116 </template> 117 </template>
117 </template> 118 </template>
118 </div> 119 </div>
119 </div> 120 </div>
120 <template if="{{ instance.typeClass != null }}"> 121 <template if="{{ instance['type_class'] != null }}">
121 <div class="memberItem"> 122 <div class="memberItem">
122 <div class="memberName">type class</div> 123 <div class="memberName">type class</div>
123 <div class="memberValue"> 124 <div class="memberValue">
124 <class-ref ref="{{ instance.typeClass }}"> 125 <class-ref ref="{{ instance['type_class'] }}">
125 </class-ref> 126 </class-ref>
126 </div> 127 </div>
127 </div> 128 </div>
128 </template> 129 </template>
129 <template if="{{ instance.isClosure }}"> 130 <template if="{{ instance['closureFunc'] != null }}">
130 <div class="memberItem"> 131 <div class="memberItem">
131 <div class="memberName">closure function</div> 132 <div class="memberName">closure function</div>
132 <div class="memberValue"> 133 <div class="memberValue">
133 <function-ref ref="{{ instance.closureFunc }}"> 134 <function-ref ref="{{ instance['closureFunc'] }}">
134 </function-ref> 135 </function-ref>
135 </div> 136 </div>
136 </div> 137 </div>
137 </template> 138 </template>
138 139
139 <div class="memberItem">&nbsp;</div> 140 <div class="memberItem">&nbsp;</div>
140 141
141 <div class="memberItem"> 142 <div class="memberItem">
142 <div class="memberName">toString()</div> 143 <div class="memberName">toString()</div>
143 <div class="memberValue"> 144 <div class="memberValue">
144 <eval-link callback="{{ eval }}" expr="toString()"></eval-link> 145 <eval-link callback="{{ eval }}" expr="toString()"></eval-link>
145 </div> 146 </div>
146 </div> 147 </div>
147 </div> 148 </div>
148 </div> 149 </div>
149 150
150 <hr> 151 <hr>
151 152
152 <div class="content"> 153 <div class="content">
153 <template if="{{ instance.fields.isNotEmpty }}"> 154 <template if="{{ instance['fields'].isNotEmpty }}">
154 fields ({{ instance.fields.length }}) 155 fields ({{ instance['fields'].length }})
155 <curly-block expand="{{ instance.fields.length <= 8 }}"> 156 <curly-block expand="{{ instance['fields'].length <= 8 }}">
156 <div class="memberList"> 157 <div class="memberList">
157 <template repeat="{{ field in instance.fields }}"> 158 <template repeat="{{ field in instance['fields'] }}">
158 <div class="memberItem"> 159 <div class="memberItem">
159 <div class="memberName"> 160 <div class="memberName">
160 <field-ref ref="{{ field['decl'] }}"></field-ref> 161 <field-ref ref="{{ field['decl'] }}"></field-ref>
161 </div> 162 </div>
162 <div class="memberValue"> 163 <div class="memberValue">
163 <any-service-ref ref="{{ field['value'] }}"></any-service-re f> 164 <instance-ref ref="{{ field['value'] }}"></instance-ref>
164 </div> 165 </div>
165 </div> 166 </div>
166 </template> 167 </template>
167 </div> 168 </div>
168 </curly-block><br><br> 169 </curly-block><br><br>
169 </template> 170 </template>
170 171
171 <template if="{{ instance.nativeFields.isNotEmpty }}"> 172 <template if="{{ instance['nativeFields'].isNotEmpty }}">
172 native fields ({{ instance.nativeFields.length }}) 173 native fields ({{ instance['nativeFields'].length }})
173 <curly-block expand="{{ instance.nativeFields.length <= 8 }}"> 174 <curly-block expand="{{ instance['nativeFields'].length <= 8 }}">
174 <div class="memberList"> 175 <div class="memberList">
175 <template repeat="{{ field in instance.nativeFields }}"> 176 <template repeat="{{ field in instance['nativeFields'] }}">
176 <div class="memberItem"> 177 <div class="memberItem">
177 <div class="memberName">[{{ field['index']}}]</div> 178 <div class="memberName">[{{ field['index']}}]</div>
178 <div class="memberValue">[{{ field['value']}}]</div> 179 <div class="memberValue">[{{ field['value']}}]</div>
179 </div> 180 </div>
180 </template> 181 </template>
181 </div> 182 </div>
182 </curly-block><br><br> 183 </curly-block><br><br>
183 </template> 184 </template>
184 185
185 <template if="{{ instance.elements.isNotEmpty }}"> 186 <template if="{{ instance['elements'].isNotEmpty }}">
186 elements ({{ instance.elements.length }}) 187 elements ({{ instance['elements'].length }})
187 <curly-block expand="{{ instance.elements.length <= 8 }}"> 188 <curly-block expand="{{ instance['elements'].length <= 8 }}">
188 <div class="memberList"> 189 <div class="memberList">
189 <template repeat="{{ element in instance.elements }}"> 190 <template repeat="{{ element in instance['elements'] }}">
190 <div class="memberItem"> 191 <div class="memberItem">
191 <div class="memberName">[{{ element['index']}}]</div> 192 <div class="memberName">[{{ element['index']}}]</div>
192 <div class="memberValue"> 193 <div class="memberValue">
193 <any-service-ref ref="{{ element['value'] }}"> 194 <instance-ref ref="{{ element['value'] }}">
194 </instance-ref> 195 </instance-ref>
195 </div> 196 </div>
196 </div> 197 </div>
197 </template> 198 </template>
198 </div> 199 </div>
199 </curly-block><br><br> 200 </curly-block><br><br>
200 </template> 201 </template>
201 </div> 202 </div>
202 203
203 <hr> 204 <hr>
204 205
205 <div class="content"> 206 <div class="content">
206 <eval-box callback="{{ eval }}"></eval-box> 207 <eval-box callback="{{ eval }}"></eval-box>
207 </div> 208 </div>
208 <br><br><br><br> 209 <br><br><br><br>
209 <br><br><br><br> 210 <br><br><br><br>
210 211
211 </template> 212 </template>
212 </template> 213 </template>
213 </polymer-element> 214 </polymer-element>
214 215
215 <script type="application/dart" src="instance_view.dart"></script> 216 <script type="application/dart" src="instance_view.dart"></script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698