OLD | NEW |
| (Empty) |
1 <link rel="import" href="../../../../packages/polymer/polymer.html"> | |
2 <link rel="import" href="action_link.html"> | |
3 <link rel="import" href="eval_link.html"> | |
4 | |
5 <polymer-element name="class-view"> | |
6 <template> | |
7 <link rel="stylesheet" href="css/shared.css"> | |
8 <nav-bar> | |
9 <top-nav-menu></top-nav-menu> | |
10 <vm-nav-menu vm="{{ cls.isolate.vm }}"></vm-nav-menu> | |
11 <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu> | |
12 <library-nav-menu library="{{ cls.library }}"></library-nav-menu> | |
13 <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu> | |
14 <nav-refresh callback="{{ refreshAllocationProfile }}" label="Refresh Allo
cation Profile"></nav-refresh> | |
15 <nav-refresh callback="{{ refresh }}"></nav-refresh> | |
16 <nav-notify notifications="{{ app.notifications }}"></nav-notify> | |
17 </nav-bar> | |
18 | |
19 <div class="content"> | |
20 <h1> | |
21 <template if="{{ cls.isAbstract }}"> | |
22 abstract | |
23 </template> | |
24 <template if="{{ cls.isPatch }}"> | |
25 patch | |
26 </template> | |
27 <template if="{{ cls.mixin != null }}"> | |
28 mixin | |
29 </template> | |
30 class {{ cls.name }} | |
31 </h1> | |
32 | |
33 <object-common object="{{ cls }}"></object-common> | |
34 <br> | |
35 | |
36 <div class="memberList"> | |
37 <div class="memberItem"> | |
38 <div class="memberName">library</div> | |
39 <div class="memberValue"> | |
40 <library-ref ref="{{ cls.library }}"></library-ref> | |
41 </div> | |
42 </div> | |
43 <div class="memberItem"> | |
44 <div class="memberName">script</div> | |
45 <div class="memberValue"> | |
46 <source-link location="{{ cls.location }}"></source-link> | |
47 </div> | |
48 </div> | |
49 | |
50 <div class="memberItem"> </div> | |
51 | |
52 <template if="{{ cls.superclass != null }}"> | |
53 <div class="memberItem"> | |
54 <div class="memberName">superclass</div> | |
55 <div class="memberValue"> | |
56 <class-ref ref="{{ cls.superclass }}"></class-ref> | |
57 </div> | |
58 </div> | |
59 </template> | |
60 <template if="{{ cls.superType != null }}"> | |
61 <div class="memberItem"> | |
62 <div class="memberName">supertype</div> | |
63 <div class="memberValue"> | |
64 <instance-ref ref="{{ cls.superType }}"></instance-ref> | |
65 </div> | |
66 </div> | |
67 </template> | |
68 <template if="{{ cls.mixin != null }}"> | |
69 <div class="memberItem"> | |
70 <div class="memberName">mixin</div> | |
71 <div class="memberValue"> | |
72 <instance-ref ref="{{ cls.mixin }}"></instance-ref> | |
73 </div> | |
74 </div> | |
75 </template> | |
76 <template if="{{ cls.subclasses.length > 0 }}"> | |
77 <div class="memberItem"> | |
78 <div class="memberName">extended by</div> | |
79 <div class="memberValue"> | |
80 <template repeat="{{ subclass in cls.subclasses }}"> | |
81 <class-ref ref="{{ subclass }}"></class-ref> | |
82 </template> | |
83 </div> | |
84 </div> | |
85 </template> | |
86 | |
87 <div class="memberItem"> </div> | |
88 | |
89 <template if="{{ cls.interfaces.length > 0 }}"> | |
90 <div class="memberItem"> | |
91 <div class="memberName">implements</div> | |
92 <div class="memberValue"> | |
93 <template repeat="{{ interface in cls.interfaces }}"> | |
94 <instance-ref ref="{{ interface }}"></instance-ref> | |
95 </template> | |
96 </div> | |
97 </div> | |
98 </template> | |
99 <template if="{{ cls.name != cls.vmName }}"> | |
100 <div class="memberItem"> | |
101 <div class="memberName">vm name</div> | |
102 <div class="memberValue">{{ cls.vmName }}</div> | |
103 </div> | |
104 </template> | |
105 </div> | |
106 </div> | |
107 | |
108 <template if="{{ cls.error != null }}"> | |
109 <error-ref ref="{{ cls.error }}"></error-ref> | |
110 </template> | |
111 | |
112 <hr> | |
113 | |
114 <div class="content"> | |
115 <eval-box context="{{ cls }}"></eval-box> | |
116 </div> | |
117 | |
118 <hr> | |
119 | |
120 <div class="content"> | |
121 <template if="{{ cls.fields.isNotEmpty }}"> | |
122 fields ({{ cls.fields.length }}) | |
123 <curly-block expand="{{ cls.fields.length <= 8 }}"> | |
124 <div class="memberList"> | |
125 <template repeat="{{ field in cls.fields }}"> | |
126 <div class="memberItem"> | |
127 <div class="memberName"> | |
128 <field-ref ref="{{ field }}"></field-ref> | |
129 </div> | |
130 <div class="memberValue"> | |
131 <template if="{{ field.staticValue != null }}"> | |
132 <any-service-ref ref="{{ field.staticValue }}"></any-service
-ref> | |
133 </template> | |
134 </div> | |
135 </div> | |
136 </template> | |
137 </div> | |
138 </curly-block><br><br> | |
139 </template> | |
140 | |
141 <template if="{{ cls.functions.isNotEmpty }}"> | |
142 functions ({{ cls.functions.length }}) | |
143 <curly-block expand="{{ cls.functions.length <= 8 }}"> | |
144 <div class="memberList"> | |
145 <template repeat="{{ function in cls.functions }}"> | |
146 <div class="memberItem"> | |
147 <div class="memberValue"> | |
148 <function-ref ref="{{ function }}" qualified="{{ false }}"> | |
149 </function-ref> | |
150 </div> | |
151 </div> | |
152 </template> | |
153 </div> | |
154 </curly-block><br><br> | |
155 </template> | |
156 | |
157 <template if="{{ !cls.hasNoAllocations }}"> | |
158 instances | |
159 <div class="memberItem"> | |
160 <div class="memberName">currently allocated</div> | |
161 <div class="memberValue"> | |
162 count {{ cls.newSpace.current.instances + cls.oldSpace.current.ins
tances }} | |
163 (shallow size {{ cls.newSpace.current.bytes + cls.oldSpace.current
.bytes | formatSize }}) | |
164 </div> | |
165 </div> | |
166 <div class="memberItem"> | |
167 <div class="memberName">strongly reachable</div> | |
168 <div class="memberValue"> | |
169 <template if="{{ instances == null }}"> | |
170 <eval-link callback="{{ reachable }}" | |
171 label="[find]" | |
172 expr="100"> | |
173 </eval-link> | |
174 </template> | |
175 <template if="{{ instances != null }}"> | |
176 <template repeat="{{ sample in instances['samples'] }}"> | |
177 <any-service-ref ref="{{ sample }}"> | |
178 </any-service-ref><br> | |
179 </template> | |
180 <template if="{{ instances['totalCount'] > instances['samples'].
length }}"> | |
181 <eval-link callback="{{ reachable }}" | |
182 label="[more]" | |
183 expr="{{ instances['samples'].length * 2 }}"> | |
184 </eval-link> | |
185 </template> | |
186 of total {{ instances['totalCount'] }} | |
187 </template> | |
188 </div> | |
189 </div> | |
190 <div class="memberItem"> | |
191 <div class="memberName">total reachable memory size</div> | |
192 <div class="memberValue"> | |
193 <template if="{{ reachableBytes == null }}"> | |
194 <eval-link callback="{{ reachableSize }}" | |
195 label="[calculate]"> | |
196 </eval-link> | |
197 </template> | |
198 <template if="{{ reachableBytes != null }}"> | |
199 {{ reachableBytes | formatSize }} | |
200 </template> | |
201 </div> | |
202 </div> | |
203 <div class="memberItem"> | |
204 <div class="memberName">total retained memory size</div> | |
205 <div class="memberValue"> | |
206 <template if="{{ retainedBytes == null }}"> | |
207 <eval-link callback="{{ retainedSize }}" | |
208 label="[calculate]"> | |
209 </eval-link> | |
210 </template> | |
211 <template if="{{ retainedBytes != null }}"> | |
212 {{ retainedBytes | formatSize }} | |
213 </template> | |
214 </div> | |
215 </div> | |
216 <div class="memberItem"> | |
217 <div class="memberName">toplist by retained memory</div> | |
218 <div class="memberValue"> | |
219 <template if="{{ mostRetained == null }}"> | |
220 <eval-link callback="{{ retainedToplist }}" | |
221 label="[find]"> | |
222 </eval-link> | |
223 </template> | |
224 <template if="{{ mostRetained != null }}"> | |
225 <template repeat="{{ most in mostRetained }}"> | |
226 {{ most.retainedSize | formatSize }}<any-service-ref ref="{{ m
ost }}"></any-service-ref><br> | |
227 </template> | |
228 </template> | |
229 </div> | |
230 </div> | |
231 </template> | |
232 </div> | |
233 | |
234 <hr> | |
235 | |
236 <div class="content"> | |
237 <h2>Allocations</h2> | |
238 <div class="memberList"> | |
239 <template if="{{ cls.traceAllocations }}"> | |
240 <div class="memberItem"> | |
241 <div class="memberName">Tracing allocations?</div> | |
242 <div class="memberValue"> | |
243 <span>Yes</span><action-link label="disable" callback="{{ toggleAl
locationTrace }}"></action-link> | |
244 </div> | |
245 </div> | |
246 </template> | |
247 <template if="{{ !cls.traceAllocations }}"> | |
248 <div class="memberItem"> | |
249 <div class="memberName">Tracing allocations?</div> | |
250 <div class="memberValue"> | |
251 <span>No</span><action-link label="enable" callback="{{ toggleAllo
cationTrace }}"></action-link> | |
252 </div> | |
253 </div> | |
254 </template> | |
255 </div> | |
256 <div id="sampleBufferControl"></div> | |
257 <br> | |
258 <div id="stackTraceTreeConfig"></div> | |
259 <br> | |
260 <div id="cpuProfileTree"></div> | |
261 </div> | |
262 | |
263 <div class="content-centered-big"> | |
264 <hr> | |
265 <source-inset location="{{ cls.location }}"> | |
266 </source-inset> | |
267 </div> | |
268 | |
269 <view-footer></view-footer> | |
270 </template> | |
271 </polymer-element> | |
272 | |
273 <script type="application/dart" src="class_view.dart"></script> | |
OLD | NEW |