OLD | NEW |
1 <!DOCTYPE html><html><head><script src="packages/shadow_dom/shadow_dom.debug.js"
></script> | 1 <!DOCTYPE html><html><head><script src="packages/shadow_dom/shadow_dom.debug.js"
></script> |
2 <script src="packages/custom_element/custom-elements.debug.js"></script> | 2 <script src="packages/custom_element/custom-elements.debug.js"></script> |
3 <script src="packages/browser/interop.js"></script> | 3 <script src="packages/browser/interop.js"></script> |
4 | 4 |
5 <title>Dart VM Observatory</title> | 5 <title>Dart VM Observatory</title> |
6 <meta charset="utf-8"> | 6 <meta charset="utf-8"> |
7 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c
ss"> | 7 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c
ss"> |
8 | 8 |
9 <script src="index_devtools.html_bootstrap.dart.js"></script> | 9 <script src="index_devtools.html_bootstrap.dart.js"></script> |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... |
22 <ul class="list-group"> | 22 <ul class="list-group"> |
23 <template repeat="{{ bpt in msg['breakpoints'] }}"> | 23 <template repeat="{{ bpt in msg['breakpoints'] }}"> |
24 <li class="list-group-item"> | 24 <li class="list-group-item"> |
25 {{ bpt }} | 25 {{ bpt }} |
26 </li> | 26 </li> |
27 </template> | 27 </template> |
28 </ul> | 28 </ul> |
29 </template> | 29 </template> |
30 </template> | 30 </template> |
31 | 31 |
32 </polymer-element><polymer-element name="error-view" extends="observatory-elemen
t"> | 32 </polymer-element><polymer-element name="service-ref" extends="observatory-eleme
nt"> |
| 33 |
| 34 </polymer-element><polymer-element name="class-ref" extends="service-ref"> |
| 35 <template> |
| 36 <a href="{{ url }}">{{ name }}</a> |
| 37 </template> |
| 38 |
| 39 </polymer-element> |
| 40 <polymer-element name="error-view" extends="observatory-element"> |
33 <template> | 41 <template> |
34 <div class="row"> | 42 <div class="row"> |
35 <div class="col-md-8 col-md-offset-2"> | 43 <div class="col-md-8 col-md-offset-2"> |
36 <div class="panel panel-danger"> | 44 <div class="panel panel-danger"> |
37 <div class="panel-heading">Error</div> | 45 <div class="panel-heading">Error</div> |
38 <div class="panel-body"> | 46 <div class="panel-body"> |
39 <template if="{{ (error_obj == null) || (error_obj['type'] != 'Languag
eError') }}"> | 47 <template if="{{ (error_obj == null) || (error_obj['type'] != 'Languag
eError') }}"> |
40 <p>{{ error }}</p> | 48 <p>{{ error }}</p> |
41 </template> | 49 </template> |
42 <template if="{{ (error_obj != null) && (error_obj['type'] ==
'LanguageError') }}"> | 50 <template if="{{ (error_obj != null) && (error_obj['type'] ==
'LanguageError') }}"> |
43 <pre>{{ error_obj['error_msg'] }}</pre> | 51 <pre>{{ error_obj['error_msg'] }}</pre> |
44 </template> | 52 </template> |
45 </div> | 53 </div> |
46 </div> | 54 </div> |
47 </div> | 55 </div> |
48 </div> | 56 </div> |
49 </template> | 57 </template> |
50 | 58 |
51 </polymer-element><polymer-element name="field-ref" extends="observatory-element
"> | 59 </polymer-element><polymer-element name="field-ref" extends="service-ref"> |
52 <template> | 60 <template> |
53 <div> | 61 <div> |
54 <template if="{{ field['final'] }}"> final </template> | 62 <template if="{{ ref['final'] }}"> final </template> |
55 <template if="{{ field['const'] }}"> const </template> | 63 <template if="{{ ref['const'] }}"> const </template> |
56 <template if="{{ (field['declared_type']['name'] == 'dynamic' && !fiel
d['final'] && !field['const']) }}"> | 64 <template if="{{ (ref['declared_type']['name'] == 'dynamic' && !ref['f
inal'] && !ref['const']) }}"> |
57 var | 65 var |
58 </template> | 66 </template> |
59 <template if="{{ (field['declared_type']['name'] != 'dynamic') }}"> | 67 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}"> |
60 <a href="{{ app.locationManager.currentIsolateClassLink(field['declared_type']
['id']) }}"> | 68 <class-ref app="{{ app }}" ref="{{ ref['declared_type'] }}"></class-ref> |
61 {{ field['declared_type']['user_name'] }} </a> | |
62 </template> | 69 </template> |
63 <a href="{{ app.locationManager.currentIsolateObjectLink(field['id'])}}"> | 70 <a href="{{ url }}">{{ name }}</a> |
64 {{ field['user_name'] }} </a> | |
65 </div> | 71 </div> |
66 </template> </polymer-element><polymer-element name="instance-ref" extends="obs
ervatory-element"> | 72 </template> </polymer-element><polymer-element name="function-ref" extends="ser
vice-ref"> |
| 73 <template> |
| 74 <a href="{{ url }}">{{ name }}</a> |
| 75 </template> |
| 76 |
| 77 </polymer-element><polymer-element name="instance-ref" extends="service-ref"> |
67 <template> | 78 <template> |
68 <div> | 79 <div> |
69 <template if="{{ (instance['type'] == 'null') }}"> | 80 <template if="{{ (ref['type'] == 'null') }}"> |
70 {{ "null" }} | 81 {{ "null" }} |
71 </template> | 82 </template> |
72 <template if="{{ (instance['type'] != 'null') }}"> | 83 <template if="{{ (ref['type'] != 'null') }}"> |
73 <a href="{{ app.locationManager.currentIsolateObjectLink(instance['id'])}}"> | 84 <a href="{{ url }}">{{ name }} </a> |
74 {{ instance['preview'] }} | |
75 </a> | |
76 </template> | 85 </template> |
77 </div> | 86 </div> |
78 </template> </polymer-element><polymer-element name="class-view" extends="obser
vatory-element"> | 87 </template> |
| 88 |
| 89 </polymer-element><polymer-element name="library-ref" extends="service-ref"> |
| 90 <template> |
| 91 <a href="{{ url }}">{{ name }}</a> |
| 92 </template> |
| 93 |
| 94 </polymer-element><polymer-element name="class-view" extends="observatory-elemen
t"> |
79 <template> | 95 <template> |
80 <div class="row"> | 96 <div class="row"> |
81 <div class="col-md-8 col-md-offset-2"> | 97 <div class="col-md-8 col-md-offset-2"> |
82 <div class="panel panel-warning"> | 98 <div class="panel panel-warning"> |
83 <div class="panel-heading"> | 99 <div class="panel-heading"> |
84 class <strong>{{ cls['user_name'] }}</strong> | 100 class <strong>{{ cls['user_name'] }}</strong> |
85 <template if="{{ cls['super']['type'] != 'Null' }}"> | 101 <template if="{{ cls['super']['type'] != 'Null' }}"> |
86 extends | 102 extends |
87 <a href="{{ app.locationManager.currentIsolateClassLink(cls['super']
['id'])}}"> | 103 <class-ref app="{{ app }}" ref="{{ cls['super'] }}"></class-ref> |
88 {{ cls['super']['user_name'] }} | |
89 </a> | |
90 </template> | 104 </template> |
91 <a class="pull-right" href="{{ app.locationManager.currentIsolateObjec
tLink(cls['library']['id'])}}"> | 105 <library-ref app="{{ app }}" ref="{{ cls['library'] }}"></library-ref> |
92 {{ cls['library']['name'] }} | |
93 </a> | |
94 </div> | 106 </div> |
95 <div class="panel-body"> | 107 <div class="panel-body"> |
96 <table class="table table-hover"> | 108 <table class="table table-hover"> |
97 <tbody> | 109 <tbody> |
98 <tr> | 110 <tr> |
99 <td>Abstract</td><td>{{ cls['abstract'] }}</td> | 111 <td>Abstract</td><td>{{ cls['abstract'] }}</td> |
100 </tr> | 112 </tr> |
101 <tr> | 113 <tr> |
102 <td>Const</td><td>{{ cls['const'] }}</td> | 114 <td>Const</td><td>{{ cls['const'] }}</td> |
103 </tr> | 115 </tr> |
104 <tr> | 116 <tr> |
105 <td>Finalized</td><td>{{ cls['const'] }}</td> | 117 <td>Finalized</td><td>{{ cls['const'] }}</td> |
106 </tr> | 118 </tr> |
107 <tr> | 119 <tr> |
108 <td>Implemented</td><td>{{ cls['implemented'] }}</td> | 120 <td>Implemented</td><td>{{ cls['implemented'] }}</td> |
109 </tr> | 121 </tr> |
110 <tr> | 122 <tr> |
111 <td>Patch</td><td>{{ cls['patch'] }}</td> | 123 <td>Patch</td><td>{{ cls['patch'] }}</td> |
112 </tr> | 124 </tr> |
113 <tr> | 125 <tr> |
114 <td>VM Name</td><td>{{ cls['name'] }}</td> | 126 <td>VM Name</td><td>{{ cls['name'] }}</td> |
115 </tr> | 127 </tr> |
116 </tbody> | 128 </tbody> |
117 </table> | 129 </table> |
118 <template if="{{ cls['error'] == null }}"> | 130 <template if="{{ cls['error'] == null }}"> |
119 <blockquote><strong>Fields</strong></blockquote> | 131 <blockquote><strong>Fields</strong></blockquote> |
120 <table class="table table-hover"> | 132 <table class="table table-hover"> |
121 <tbody> | 133 <tbody> |
122 <tr template="" repeat="{{ field in cls['fields'] }}"> | 134 <tr template="" repeat="{{ field in cls['fields'] }}"> |
123 <td><field-ref app="{{ app }}" field="{{ field }}"></field-ref
></td> | 135 <td><field-ref app="{{ app }}" ref="{{ field }}"></field-ref><
/td> |
124 <td><instance-ref app="{{ app }}" instance="{{ field['value']
}}"></instance-ref></td> | 136 <td><instance-ref app="{{ app }}" ref="{{ field['value'] }}"><
/instance-ref></td> |
125 </tr> | 137 </tr> |
126 </tbody> | 138 </tbody> |
127 </table> | 139 </table> |
128 <blockquote><strong>Functions</strong></blockquote> | 140 <blockquote><strong>Functions</strong></blockquote> |
129 <table class="table table-hover"> | 141 <table class="table table-hover"> |
130 <thead> | 142 <thead> |
131 <tr> | 143 <tr> |
132 <th>User Name</th> | 144 <th>User Name</th> |
133 <th>VM Name</th> | 145 <th>VM Name</th> |
134 </tr> | 146 </tr> |
135 </thead> | 147 </thead> |
136 <tbody> | 148 <tbody> |
137 <tr template="" repeat="{{ function in cls['functions'] }}"> | 149 <tr template="" repeat="{{ function in cls['functions'] }}"> |
138 <td><a href="{{ app.locationManager.currentIsolateObjectLink(f
unction['id'])}}">{{ function['user_name'] }}</a></td> | 150 <td><function-ref app="{{ app }}" ref="{{ function }}"></funct
ion-ref></td> |
139 <td><a href="{{ app.locationManager.currentIsolateObjectLink(f
unction['id'])}}">{{ function['name'] }}</a></td> | 151 <td><function-ref app="{{ app }}" ref="{{ function }}" interna
l=""></function-ref></td> |
140 </tr> | 152 </tr> |
141 </tbody> | 153 </tbody> |
142 </table> | 154 </table> |
143 </template> | 155 </template> |
144 <template if="{{ cls['error'] != null }}"> | 156 <template if="{{ cls['error'] != null }}"> |
145 <error-view error_obj="{{ cls['error'] }}"></error-view> | 157 <error-view error_obj="{{ cls['error'] }}"></error-view> |
146 </template> | 158 </template> |
147 </div> | 159 </div> |
148 </div> | 160 </div> |
149 </div> | 161 </div> |
150 </div> | 162 </div> |
151 </template> | 163 </template> |
152 | 164 |
| 165 </polymer-element> |
| 166 <polymer-element name="code-ref" extends="service-ref"> |
| 167 <template> |
| 168 <a href="{{ url }}">{{ name }}</a> |
| 169 </template> |
| 170 |
153 </polymer-element><polymer-element name="disassembly-entry" extends="observatory
-element"> | 171 </polymer-element><polymer-element name="disassembly-entry" extends="observatory
-element"> |
154 <template> | 172 <template> |
155 <div class="row"> | 173 <div class="row"> |
156 <template if="{{ instruction['type'] == 'DisassembledInstructionComment' }}"
> | 174 <template if="{{ instruction['type'] == 'DisassembledInstructionComment' }}"
> |
157 <div class="col-md-2"></div> | 175 <div class="col-md-2"></div> |
158 <div class="col-md-2"></div> | 176 <div class="col-md-2"></div> |
159 <div class="col-md-4"><code>{{ instruction['comment'] }}</code></div> | 177 <div class="col-md-4"><code>{{ instruction['comment'] }}</code></div> |
160 </template> | 178 </template> |
161 <template if="{{ instruction['type'] == 'DisassembledInstruction' }}"> | 179 <template if="{{ instruction['type'] == 'DisassembledInstruction' }}"> |
162 <div class="col-md-2"></div> | 180 <div class="col-md-2"></div> |
163 <div class="col-md-2">{{ instruction['pc'] }}</div> | 181 <div class="col-md-2">{{ instruction['pc'] }}</div> |
164 <div class="col-md-4"> | 182 <div class="col-md-4"> |
165 <code>{{ instruction['hex'] }} {{ instruction['human'] }}</code> | 183 <code>{{ instruction['hex'] }} {{ instruction['human'] }}</code> |
166 </div> | 184 </div> |
167 </template> | 185 </template> |
168 </div> | 186 </div> |
169 </template> | 187 </template> |
170 | 188 |
171 </polymer-element><polymer-element name="code-view" extends="observatory-element
"> | 189 </polymer-element><polymer-element name="code-view" extends="observatory-element
"> |
172 <template> | 190 <template> |
173 <div class="row"> | 191 <div class="row"> |
174 <div class="col-md-8 col-md-offset-2"> | 192 <div class="col-md-8 col-md-offset-2"> |
175 <div class="{{ cssPanelClass }}"> | 193 <div class="{{ cssPanelClass }}"> |
176 <div class="panel-heading"> | 194 <div class="panel-heading"> |
177 <a href="{{ app.locationManager.currentIsolateObjectLink(code['functio
n']['id'])}}"> | 195 <function-ref app="{{ app }}" ref="{{ code['function'] }}"></function-
ref> |
178 {{ code['function']['user_name'] }} ({{ code['function']['name'] }}) | |
179 </a> | |
180 </div> | 196 </div> |
181 <div class="panel-body"> | 197 <div class="panel-body"> |
182 <div class="row"> | 198 <div class="row"> |
183 <div class="col-md-2"><strong>Samples</strong></div> | 199 <div class="col-md-2"><strong>Samples</strong></div> |
184 <div class="col-md-2"><strong>Address</strong></div> | 200 <div class="col-md-2"><strong>Address</strong></div> |
185 <div><strong>Instruction</strong></div> | 201 <div><strong>Instruction</strong></div> |
186 </div> | 202 </div> |
187 <template repeat="{{ instruction in code['disassembly'] }}"> | 203 <template repeat="{{ instruction in code['disassembly'] }}"> |
188 <disassembly-entry instruction="{{ instruction }}"> | 204 <disassembly-entry instruction="{{ instruction }}"> |
189 </disassembly-entry> | 205 </disassembly-entry> |
(...skipping 18 matching lines...) Expand all Loading... |
208 | 224 |
209 </polymer-element><polymer-element name="field-view" extends="observatory-elemen
t"> | 225 </polymer-element><polymer-element name="field-view" extends="observatory-elemen
t"> |
210 <template> | 226 <template> |
211 <div class="row"> | 227 <div class="row"> |
212 <div class="col-md-8 col-md-offset-2"> | 228 <div class="col-md-8 col-md-offset-2"> |
213 <div class="panel panel-warning"> | 229 <div class="panel panel-warning"> |
214 <div class="panel-heading"> | 230 <div class="panel-heading"> |
215 <template if="{{ field['static'] }}">static</template> | 231 <template if="{{ field['static'] }}">static</template> |
216 <template if="{{ field['final'] }}">final</template> | 232 <template if="{{ field['final'] }}">final</template> |
217 <template if="{{ field['const'] }}">const</template> | 233 <template if="{{ field['const'] }}">const</template> |
218 {{ field['user_name'] }} ({{ field['name'] }}) | 234 {{ field['user_name'] }} ({{ field['name'] }}) |
219 <a class="pull-right" href="{{ app.locationManager.currentIsolateClass
Link(field['class']['id'])}}"> | 235 <class-ref app="{{ app }}" ref="{{ field['class'] }}"></class-ref> |
220 {{ field['class']['user_name'] }} | |
221 </a> | |
222 </div> | 236 </div> |
223 <div class="panel-body"> | 237 <div class="panel-body"> |
224 <template if="{{ field['guard_class'] == 'dynamic'}}"> | 238 <template if="{{ field['guard_class'] == 'dynamic'}}"> |
225 <div class="alert alert-danger"> | 239 <div class="alert alert-danger"> |
226 Field has been assigned multiple types. If a field is only ever | 240 Field has been assigned multiple types. If a field is only ever |
227 assigned a single type, performance may improve. | 241 assigned a single type, performance may improve. |
228 </div> | 242 </div> |
229 </template> | 243 </template> |
230 <template if="{{ field['guard_class'] != 'dynamic'}}"> | 244 <template if="{{ (field['guard_class'] != 'dynamic') && (field['
guard_class'] != 'unknown') }}"> |
231 <div class="alert alert-success">Field has monomorphic type</div> | 245 <div class="alert alert-success">Field has monomorphic type</div> |
232 <template if="{{ (field['guard_class'] != 'dynamic') && | 246 <template if="{{ (field['guard_class'] != 'dynamic') && |
233 field['guard_nullable'] }}"> | 247 field['guard_nullable'] }}"> |
234 <div class="alert alert-info"> | 248 <div class="alert alert-info"> |
235 Field has been assigned null. If a field is never assigned null, | 249 Field has been assigned null. If a field is never assigned null, |
236 performance may improve. | 250 performance may improve. |
237 </div> | 251 </div> |
238 </template> | 252 </template> |
239 <blockquote> | 253 <blockquote> |
240 <a href="{{ app.locationManager.currentIsolateClassLink(field['guard
_class']['id'])}}"> | 254 <class-ref app="{{ app }}" ref="{{ field['guard_class'] }}"></class-
ref> |
241 {{ field['guard_class']['user_name'] }} | |
242 </a> | |
243 </blockquote> | 255 </blockquote> |
244 </template> | 256 </template> |
245 </div> | 257 </div> |
246 </div> | 258 </div> |
247 </div> | 259 </div> |
248 </div> | 260 </div> |
249 </template> | 261 </template> |
250 | 262 |
251 </polymer-element><polymer-element name="function-view" extends="observatory-ele
ment"> | 263 </polymer-element><polymer-element name="function-view" extends="observatory-ele
ment"> |
252 <template> | 264 <template> |
253 <div class="row"> | 265 <div class="row"> |
254 <div class="col-md-8 col-md-offset-2"> | 266 <div class="col-md-8 col-md-offset-2"> |
255 <div class="panel panel-warning"> | 267 <div class="panel panel-warning"> |
256 <div class="panel-heading"> | 268 <div class="panel-heading"> |
257 {{ function['user_name'] }} ({{ function['name'] }}) | 269 {{ function['user_name'] }} ({{ function['name'] }}) |
258 <a class="pull-right" href="{{ app.locationManager.currentIsolateClass
Link(function['class']['id'])}}"> | 270 <class-ref app="{{ app }}" ref="{{ function['class'] }}"></class-ref> |
259 {{ function['class']['name'] }} | |
260 </a> | |
261 </div> | 271 </div> |
262 <div class="panel-body"> | 272 <div class="panel-body"> |
263 <div> | 273 <div> |
264 <a class="btn btn-primary" href="{{ app.locationManager.currentIsolate
ObjectLink(function['code']['id'])}}">Current Code</a> | 274 <code-ref app="{{ app }}" ref="{{ function['code'] }}"></code-ref> |
265 <a class="btn btn-info" href="{{ app.locationManager.currentIsolateObj
ectLink(function['unoptimized_code']['id'])}}">Unoptimized Code</a> | 275 <code-ref app="{{ app }}" ref="{{ function['unoptimized_code'] }}"></c
ode-ref> |
266 </div> | 276 </div> |
267 <table class="table table-hover"> | 277 <table class="table table-hover"> |
268 <tbody> | 278 <tbody> |
269 <tr> | 279 <tr> |
270 <td>static</td><td>{{ function['is_static'] }}</td> | 280 <td>static</td><td>{{ function['is_static'] }}</td> |
271 </tr> | 281 </tr> |
272 <tr> | 282 <tr> |
273 <td>Const</td><td>{{ function['is_const'] }}</td> | 283 <td>Const</td><td>{{ function['is_const'] }}</td> |
274 </tr> | 284 </tr> |
275 <tr> | 285 <tr> |
(...skipping 19 matching lines...) Expand all Loading... |
295 </div> | 305 </div> |
296 </div> | 306 </div> |
297 </div> | 307 </div> |
298 </div> | 308 </div> |
299 </template> | 309 </template> |
300 | 310 |
301 </polymer-element><polymer-element name="isolate-summary" extends="observatory-e
lement"> | 311 </polymer-element><polymer-element name="isolate-summary" extends="observatory-e
lement"> |
302 <template> | 312 <template> |
303 <div class="row"> | 313 <div class="row"> |
304 <div class="col-md-1"> | 314 <div class="col-md-1"> |
305 » » <img src="packages/observatory/src/observatory_elements/img/isol
ate_icon.png" class="img-polaroid">» | 315 <img src="packages/observatory/src/observatory_elements/img/isolate_icon
.png" class="img-polaroid"> |
306 </div> | 316 </div> |
307 <div class="col-md-1">{{ isolate }}</div> | 317 <div class="col-md-1">{{ isolate }}</div> |
308 <div class="col-md-10">{{ name }}</div> | 318 <div class="col-md-10">{{ name }}</div> |
309 </div> | 319 </div> |
310 <div class="row"> | 320 <div class="row"> |
311 <div class="col-md-2"></div> | 321 <div class="col-md-2"></div> |
312 <div class="col-md-1"> | 322 <div class="col-md-1"> |
313 <a href="{{ app.locationManager.relativeLink(isolate, 'stacktrac
e') }}">Stacktrace</a> | 323 <a href="{{ app.locationManager.relativeLink(isolate, 'stacktrac
e') }}">Stacktrace</a> |
314 </div> | 324 </div> |
315 <div class="col-md-1"> | 325 <div class="col-md-1"> |
316 <a href="{{ app.locationManager.relativeLink(isolate, 'library') }}">Lib
rary</a> | 326 <a href="{{ app.locationManager.relativeLink(isolate, 'library') }}">Lib
rary</a> |
317 </div> | 327 </div> |
318 <div class="col-md-1"> | 328 <div class="col-md-1"> |
319 <a href="{{ app.locationManager.relativeLink(isolate, 'debug/breakpoints
') }}">Breakpoints</a> | 329 <a href="{{ app.locationManager.relativeLink(isolate, 'debug/breakpoints
') }}">Breakpoints</a> |
320 </div> | 330 </div> |
| 331 <div class="col-md-1"> |
| 332 <a href="{{ app.locationManager.relativeLink(isolate, 'profile') }}">Pro
file</a> |
| 333 </div> |
321 <div class="col-md-8"></div> | 334 <div class="col-md-8"></div> |
322 </div> | 335 </div> |
323 </template> | 336 </template> |
324 | 337 |
325 </polymer-element><polymer-element name="isolate-list" extends="observatory-elem
ent"> | 338 </polymer-element> |
| 339 <polymer-element name="isolate-list" extends="observatory-element"> |
326 <template> | 340 <template> |
327 <ul class="list-group"> | 341 <ul class="list-group"> |
328 <template repeat="{{ isolate in app.isolateManager.isolates.values }}"> | 342 <template repeat="{{ isolate in app.isolateManager.isolates.values }}"> |
329 <li class="list-group-item"> | 343 <li class="list-group-item"> |
330 <isolate-summary app="{{ app }}" isolate="{{ isolate.id }}" name="{{ iso
late.name }}"></isolate-summary> | 344 <isolate-summary app="{{ app }}" isolate="{{ isolate.id }}" name="{{ iso
late.name }}"></isolate-summary> |
331 </li> | 345 </li> |
332 </template> | 346 </template> |
333 </ul> | 347 </ul> |
334 </template> | 348 </template> |
335 | 349 |
336 </polymer-element><polymer-element name="instance-view" extends="observatory-ele
ment"> | 350 </polymer-element><polymer-element name="instance-view" extends="observatory-ele
ment"> |
337 <template> | 351 <template> |
338 <div class="row"> | 352 <div class="row"> |
339 <div class="col-md-8 col-md-offset-2"> | 353 <div class="col-md-8 col-md-offset-2"> |
340 <div class="panel panel-warning"> | 354 <div class="panel panel-warning"> |
341 <div class="panel-heading"> | 355 <div class="panel-heading"> |
342 Instance of | 356 Instance of |
343 <a href="{{ app.locationManager.currentIsolateClassLink(instance['class
']['id'])}}"> | 357 <class-ref app="{{ app }}" ref="{{ instance['class'] }}"></class-ref> |
344 {{ instance['class']['user_name'] }} | |
345 </a> | |
346 </div> | 358 </div> |
347 <div class="panel-body"> | 359 <div class="panel-body"> |
348 <template if="{{ instance['error'] == null }}"> | 360 <template if="{{ instance['error'] == null }}"> |
349 <table class="table table-hover"> | 361 <table class="table table-hover"> |
350 <tbody> | 362 <tbody> |
351 <tr> | 363 <tr> |
352 <td>Preview</td><td>{{ instance['preview'] }}</td> | 364 <td>Preview</td><td>{{ instance['preview'] }}</td> |
353 </tr> | 365 </tr> |
354 </tbody> | 366 </tbody> |
355 </table> | 367 </table> |
356 <blockquote><strong>Fields</strong></blockquote> | 368 <blockquote><strong>Fields</strong></blockquote> |
357 <table class="table table-hover"> | 369 <table class="table table-hover"> |
358 <tbody> | 370 <tbody> |
359 <tr template="" repeat="{{ field in instance['fields'] }}"> | 371 <tr template="" repeat="{{ field in instance['fields'] }}"> |
360 <td><field-ref app="{{ app }}" field="{{ field }}"></field-ref
></td> | 372 <td><field-ref app="{{ app }}" ref="{{ field }}"></field-ref><
/td> |
361 <td><instance-ref app="{{ app }}" instance="{{ field['value']
}}"></instance-ref></td> | 373 <td><instance-ref app="{{ app }}" ref="{{ field['value'] }}"><
/instance-ref></td> |
362 </tr> | 374 </tr> |
363 </tbody> | 375 </tbody> |
364 </table> | 376 </table> |
365 </template> | 377 </template> |
366 <template if="{{ instance['error'] != null }}"> | 378 <template if="{{ instance['error'] != null }}"> |
367 <error-view error_obj="{{ instance['error'] }}"></error-view> | 379 <error-view error_obj="{{ instance['error'] }}"></error-view> |
368 </template> | 380 </template> |
369 </div> | 381 </div> |
370 </div> | 382 </div> |
371 </div> | 383 </div> |
372 </div> | 384 </div> |
373 </template> | 385 </template> |
374 | 386 |
375 </polymer-element><polymer-element name="json-view" extends="observatory-element
"> | 387 </polymer-element> |
| 388 <polymer-element name="json-view" extends="observatory-element"> |
376 <template> | 389 <template> |
377 <template bind="" if="{{ valueType == 'Primitive' }}"> | 390 <template bind="" if="{{ valueType == 'Primitive' }}"> |
378 <span>{{primitiveString}}</span> | 391 <span>{{primitiveString}}</span> |
379 </template> | 392 </template> |
380 <template bind="" if="{{ valueType == 'List' }}"> | 393 <template bind="" if="{{ valueType == 'List' }}"> |
381 <table class="table table-condensed table-bordered"> | 394 <table class="table table-condensed table-bordered"> |
382 <caption class="text-left">List, {{list.length}}</caption> | 395 <caption class="text-left">List, {{list.length}}</caption> |
383 <tbody> | 396 <tbody> |
384 <tr template="" repeat="{{item in list)}}"> | 397 <tr template="" repeat="{{item in list)}}"> |
385 <th>{{counter}}</th> | 398 <th>{{counter}}</th> |
386 <td><json-view json="{{item}}"></json-view></td> | 399 <td><json-view json="{{item}}"></json-view></td> |
387 </tr> | 400 </tr> |
388 </tbody> | 401 </tbody> |
389 </table> | 402 </table> |
390 </template> | 403 </template> |
391 <template if="{{ valueType == 'Map' }}"> | 404 <template if="{{ valueType == 'Map' }}"> |
392 <table class="table table-condensed table-bordered"> | 405 <table class="table table-condensed table-bordered"> |
393 <caption class="text-left">Map, {{keys.length}}</caption> | 406 <caption class="text-left">Map, {{keys.length}}</caption> |
394 <tbody> | 407 <tbody> |
395 <tr template="" repeat="{{key in keys}}"> | 408 <tr template="" repeat="{{key in keys}}"> |
396 <th>{{key}}</th> | 409 <th>{{key}}</th> |
397 <td><json-view json="{{value(key)}}"></json-view></td> | 410 <td><json-view json="{{value(key)}}"></json-view></td> |
398 </tr> | 411 </tr> |
399 </tbody> | 412 </tbody> |
400 </table> | 413 </table> |
401 </template> | 414 </template> |
402 </template> | 415 </template> |
403 | 416 |
| 417 </polymer-element> |
| 418 <polymer-element name="script-ref" extends="service-ref"> |
| 419 <template> |
| 420 <a href="{{ url }}">{{ name }}</a> |
| 421 </template> |
| 422 |
404 </polymer-element><polymer-element name="library-view" extends="observatory-elem
ent"> | 423 </polymer-element><polymer-element name="library-view" extends="observatory-elem
ent"> |
405 <template> | 424 <template> |
406 <div class="alert alert-success">Library {{ library['name'] }}</div> | 425 <div class="alert alert-success">Library {{ library['name'] }}</div> |
407 <div class="alert alert-info">Scripts</div> | 426 <div class="alert alert-info">Scripts</div> |
408 <table class="table table-hover"> | 427 <table class="table table-hover"> |
409 <tbody> | 428 <tbody> |
410 <tr template="" repeat="{{ script in library['scripts']}}"> | 429 <tr template="" repeat="{{ script in library['scripts']}}"> |
411 <td> | 430 <td> |
412 {{ script['kind'] }} | 431 {{ script['kind'] }} |
413 </td> | 432 </td> |
414 <td> | 433 <td> |
415 <a href="{{ app.locationManager.currentIsolateScriptLink(script['id'],
script['name']) }}">{{ script['name'] }}</a> | 434 <script-ref app="{{ app }}" ref="{{ script }}"></script-ref> |
416 </td> | 435 </td> |
417 </tr> | 436 </tr> |
418 </tbody> | 437 </tbody> |
419 </table> | 438 </table> |
420 <div class="alert alert-info">Imported Libraries</div> | 439 <div class="alert alert-info">Imported Libraries</div> |
421 <table class="table table-hover"> | 440 <table class="table table-hover"> |
422 <tbody> | 441 <tbody> |
423 <tr template="" repeat="{{ lib in library['libraries'] }}"> | 442 <tr template="" repeat="{{ lib in library['libraries'] }}"> |
424 <td> | 443 <td> |
425 <a href="{{ app.locationManager.currentIsolateObjectLink(lib['id'])}}"
> | 444 <library-ref app="{{ app }}" ref="{{ lib }}"></library-ref> |
426 {{ lib['url'] }} | |
427 </a> | |
428 </td> | 445 </td> |
429 </tr> | 446 </tr> |
430 </tbody> | 447 </tbody> |
431 </table> | 448 </table> |
432 <div class="alert alert-info">Variables</div> | 449 <div class="alert alert-info">Variables</div> |
433 <table class="table table-hover"> | 450 <table class="table table-hover"> |
434 <tbody> | 451 <tbody> |
435 <tr template="" repeat="{{ variable in library['variables'] }}"> | 452 <tr template="" repeat="{{ variable in library['variables'] }}"> |
436 <td><field-ref app="{{ app }}" field="{{ variable }}"></field-ref></td> | 453 <td><field-ref app="{{ app }}" ref="{{ variable }}"></field-ref></td> |
437 <td><instance-ref app="{{ app }}" instance="{{ variable['value'] }}"></i
nstance-ref></td> | 454 <td><instance-ref app="{{ app }}" ref="{{ variable['value'] }}"></instan
ce-ref></td> |
438 </tr> | 455 </tr> |
439 </tbody> | 456 </tbody> |
440 </table> | 457 </table> |
441 <div class="alert alert-info">Functions</div> | 458 <div class="alert alert-info">Functions</div> |
442 <table class="table table-hover"> | 459 <table class="table table-hover"> |
443 <tbody> | 460 <tbody> |
444 <tr template="" repeat="{{ func in library['functions'] }}"> | 461 <tr template="" repeat="{{ func in library['functions'] }}"> |
445 <td> | 462 <td> |
446 <a href="{{ app.locationManager.currentIsolateObjectLink(func['id'])}}
"> | 463 <function-ref app="{{ app }}" ref="{{ func }}"></function-ref> |
447 {{ func['user_name'] }} | |
448 </a> | |
449 </td> | 464 </td> |
450 </tr> | 465 </tr> |
451 </tbody> | 466 </tbody> |
452 </table> | 467 </table> |
453 <div class="alert alert-info">Classes</div> | 468 <div class="alert alert-info">Classes</div> |
454 <table class="table table-hover"> | 469 <table class="table table-hover"> |
455 <thead> | 470 <thead> |
456 <tr> | 471 <tr> |
457 <th>Name</th> | 472 <th>Name</th> |
458 <th>Internal Name</th> | 473 <th>Internal Name</th> |
459 </tr> | 474 </tr> |
460 </thead> | 475 </thead> |
461 <tbody> | 476 <tbody> |
462 <tr template="" repeat="{{ cls in library['classes'] }}"> | 477 <tr template="" repeat="{{ cls in library['classes'] }}"> |
463 <td> | 478 <td> |
464 <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}"
> | 479 <class-ref app="{{ app }}" ref="{{ cls }}"></class-ref> |
465 {{ cls['user_name'] }} | |
466 </a> | |
467 </td> | 480 </td> |
468 <td> | 481 <td> |
469 <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}"
> | 482 <class-ref app="{{ app }}" ref="{{ cls }}" internal=""></class-ref> |
470 {{ cls['name'] }} | |
471 </a> | |
472 </td> | 483 </td> |
473 </tr> | 484 </tr> |
474 </tbody> | 485 </tbody> |
475 </table> | 486 </table> |
476 | 487 |
477 </template> | 488 </template> |
478 | 489 |
479 </polymer-element><polymer-element name="source-view" extends="observatory-eleme
nt"> | 490 </polymer-element><polymer-element name="source-view" extends="observatory-eleme
nt"> |
480 <template> | 491 <template> |
481 <div class="row"> | 492 <div class="row"> |
(...skipping 17 matching lines...) Expand all Loading... |
499 </template> | 510 </template> |
500 | 511 |
501 </polymer-element><polymer-element name="stack-trace" extends="observatory-eleme
nt"> | 512 </polymer-element><polymer-element name="stack-trace" extends="observatory-eleme
nt"> |
502 <template> | 513 <template> |
503 <div class="alert alert-info">Stack Trace</div> | 514 <div class="alert alert-info">Stack Trace</div> |
504 <table class="table table-hover"> | 515 <table class="table table-hover"> |
505 <thead> | 516 <thead> |
506 <tr> | 517 <tr> |
507 <th>Depth</th> | 518 <th>Depth</th> |
508 <th>Function</th> | 519 <th>Function</th> |
509 <th>Url</th> | 520 <th>Script</th> |
510 <th>Line</th> | 521 <th>Line</th> |
511 </tr> | 522 </tr> |
512 </thead> | 523 </thead> |
513 <tbody> | 524 <tbody> |
514 <tr template="" repeat="{{ frame in trace['members'] }}"> | 525 <tr template="" repeat="{{ frame in trace['members'] }}"> |
515 <td>{{$index}}</td> | 526 <td>{{$index}}</td> |
516 <td><a href="{{app.locationManager.currentIsolateObjectLink(frame['funct
ion']['id'])}}">{{ frame['name'] }}</a></td> | 527 <td><function-ref app="{{ app }}" ref="{{ frame['function'] }}"></functi
on-ref></td> |
517 <td>{{ frame['url'] }}</td> | 528 <td><script-ref app="{{ app }}" ref="{{ frame['script'] }}"></script-ref
></td> |
518 <td>{{ frame['line'] }}</td> | 529 <td>{{ frame['line'] }}</td> |
519 </tr> | 530 </tr> |
520 </tbody> | 531 </tbody> |
521 </table> | 532 </table> |
522 </template> | 533 </template> |
523 | 534 |
524 </polymer-element><polymer-element name="message-viewer" extends="observatory-el
ement"> | 535 </polymer-element><polymer-element name="message-viewer" extends="observatory-el
ement"> |
525 <!-- | 536 <!-- |
526 This is a big switch statement which instantiates the custom element | 537 This is a big switch statement which instantiates the custom element |
527 designated to display the message type. | 538 designated to display the message type. |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 <!-- Add new views and message types in the future here. --> | 592 <!-- Add new views and message types in the future here. --> |
582 </template> | 593 </template> |
583 | 594 |
584 </polymer-element><polymer-element name="navigation-bar" extends="observatory-el
ement"> | 595 </polymer-element><polymer-element name="navigation-bar" extends="observatory-el
ement"> |
585 <template> | 596 <template> |
586 <nav class="navbar navbar-default" role="navigation"> | 597 <nav class="navbar navbar-default" role="navigation"> |
587 <div class="navbar-header"> | 598 <div class="navbar-header"> |
588 <a class="navbar-brand" href="">Observatory</a> | 599 <a class="navbar-brand" href="">Observatory</a> |
589 </div> | 600 </div> |
590 <div class="collapse navbar-collapse navbar-ex1-collapse"> | 601 <div class="collapse navbar-collapse navbar-ex1-collapse"> |
591 <input class="span2 pull-right navbar-form" placeholder="VM Address" typ
e="text" value="{{ app.requestManager.prefix }}"> | |
592 </div> | 602 </div> |
593 </nav> | 603 </nav> |
594 </template> | 604 </template> |
595 | 605 |
596 </polymer-element><polymer-element name="response-viewer" extends="observatory-e
lement"> | 606 </polymer-element><polymer-element name="isolate-profile" extends="observatory-e
lement"> |
| 607 <template> |
| 608 <p> P R O F I L E </p> |
| 609 <div> |
| 610 <button type="button" on-click="{{refreshData}}">Refresh profile data</but
ton> |
| 611 <span>Top</span> |
| 612 <select selectedindex="{{methodCountSelected}}" value="{{methodCounts[meth
odCountSelected]}}"> |
| 613 <option template="" repeat="{{count in methodCounts}}">{{count}}</option
> |
| 614 </select> |
| 615 <span>methods</span> |
| 616 </div> |
| 617 <blockquote><strong>Top Inclusive</strong></blockquote> |
| 618 <table class="table table-hover"> |
| 619 <thead> |
| 620 <tr> |
| 621 <th>Ticks</th> |
| 622 <th>Percent</th> |
| 623 <th>Method</th> |
| 624 </tr> |
| 625 </thead> |
| 626 <tbody> |
| 627 <tr template="" repeat="{{ code in topInclusiveCodes }}"> |
| 628 <td>{{ codeTicks(code, true) }}</td> |
| 629 <td>{{ codePercent(code, true) }}</td> |
| 630 <td>{{ codeName(code) }}</td> |
| 631 </tr> |
| 632 </tbody></table> |
| 633 <blockquote><strong>Top Exclusive</strong></blockquote> |
| 634 <table class="table table-hover"> |
| 635 <thead> |
| 636 <tr> |
| 637 <th>Ticks</th> |
| 638 <th>Percent</th> |
| 639 <th>Method</th> |
| 640 </tr> |
| 641 </thead> |
| 642 <tbody> |
| 643 <tr template="" repeat="{{ code in topExclusiveCodes }}"> |
| 644 <td>{{ codeTicks(code, false) }}</td> |
| 645 <td>{{ codePercent(code, false) }}</td> |
| 646 <td>{{ codeName(code) }}</td> |
| 647 </tr> |
| 648 </tbody></table> |
| 649 </template> |
| 650 |
| 651 </polymer-element> |
| 652 <polymer-element name="response-viewer" extends="observatory-element"> |
597 <template> | 653 <template> |
598 <template repeat="{{ message in app.requestManager.responses }}"> | 654 <template repeat="{{ message in app.requestManager.responses }}"> |
599 <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer> | 655 <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer> |
600 <collapsible-content> | 656 <collapsible-content> |
601 <!-- <json-view json="{{ message }}"></json-view> --> | 657 <!-- <json-view json="{{ message }}"></json-view> --> |
602 </collapsible-content> | 658 </collapsible-content> |
603 </template> | 659 </template> |
604 </template> | 660 </template> |
605 | 661 |
606 </polymer-element><polymer-element name="observatory-application" extends="obser
vatory-element"> | 662 </polymer-element><polymer-element name="observatory-application" extends="obser
vatory-element"> |
607 <template> | 663 <template> |
608 <navigation-bar app="{{ app }}"></navigation-bar> | 664 <navigation-bar app="{{ app }}"></navigation-bar> |
609 <response-viewer app="{{ app }}"></response-viewer> | 665 <template if="{{ app.locationManager.profile }}"> |
| 666 <isolate-profile app="{{ app }}"></isolate-profile> |
| 667 </template> |
| 668 <template if="{{ app.locationManager.profile == false }}"> |
| 669 <response-viewer app="{{ app }}"></response-viewer> |
| 670 </template> |
610 </template> | 671 </template> |
611 | 672 |
612 </polymer-element> | 673 </polymer-element> |
613 <observatory-application devtools="true"></observatory-application> | 674 <observatory-application devtools="true"></observatory-application> |
614 | 675 |
615 </body></html> | 676 </body></html> |
OLD | NEW |