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

Side by Side Diff: runtime/bin/vmservice/client/deployed/web/index_devtools.html

Issue 211283004: Support Types in instance-ref/instance-view (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: gen js Created 6 years, 9 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 <!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 3
4 <title>Dart VM Observatory</title> 4 <title>Dart VM Observatory</title>
5 <meta charset="utf-8"> 5 <meta charset="utf-8">
6 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss"> 6 <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.c ss">
7 <script type="text/javascript" src="https://www.google.com/jsapi"></script> 7 <script type="text/javascript" src="https://www.google.com/jsapi"></script>
8 <script src="packages/browser/interop.js"></script> 8 <script src="packages/browser/interop.js"></script>
9 9
10 <script src="index_devtools.html_bootstrap.dart.js"></script> 10 <script src="index_devtools.html_bootstrap.dart.js"></script>
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 .memberItem { 281 .memberItem {
282 display: table-row; 282 display: table-row;
283 } 283 }
284 .memberName, .memberValue { 284 .memberName, .memberValue {
285 display: table-cell; 285 display: table-cell;
286 vertical-align: top; 286 vertical-align: top;
287 padding: 3px 0 3px 1em; 287 padding: 3px 0 3px 1em;
288 font: 400 14px 'Montserrat', sans-serif; 288 font: 400 14px 'Montserrat', sans-serif;
289 } 289 }
290 </style> 290 </style>
291 <div> 291 <span>
292 <template if="{{ isUnexpected(ref.serviceType) }}"> 292 <template if="{{ isUnexpected(ref.serviceType) }}">
293 unexpected reference type &lt;{{ ref.serviceType }}&gt; 293 unexpected reference type &lt;{{ ref.serviceType }}&gt;
294 </template> 294 </template>
295 295
296 <template if="{{ isError(ref.serviceType) }}"> 296 <template if="{{ isError(ref.serviceType) }}">
297 <pre>{{ ref.message }}</pre> 297 <pre>{{ ref.message }}</pre>
298 </template> 298 </template>
299 299
300 <template if="{{ isNull(ref.serviceType) }}"> 300 <template if="{{ isNull(ref.serviceType) }}">
301 <div title="{{ hoverText }}">{{ ref['preview'] }}</div> 301 <div title="{{ hoverText }}">{{ ref['preview'] }}</div>
302 </template> 302 </template>
303 303
304 <template if="{{ (isString(ref.serviceType) || 304 <template if="{{ (isString(ref.serviceType) ||
305 isBool(ref.serviceType) || 305 isBool(ref.serviceType) ||
306 isInt(ref.serviceType)) || 306 isInt(ref.serviceType)) ||
307 isDouble(ref.serviceType)) }}"> 307 isDouble(ref.serviceType)) }}">
308 <a href="{{ url }}">{{ ref['preview'] }}</a> 308 <a href="{{ url }}">{{ ref['preview'] }}</a>
309 </template> 309 </template>
310 310
311 <template if="{{ (isType(ref.serviceType)) }}">
312 <a href="{{ url }}">{{ ref['user_name'] }}</a>
313 </template>
314
311 <template if="{{ isClosure(ref.serviceType) }}"> 315 <template if="{{ isClosure(ref.serviceType) }}">
312 <a href="{{ url }}"> 316 <a href="{{ url }}">
313 <!-- TODO(turnidge): Switch this to fully-qualified function --> 317 <!-- TODO(turnidge): Switch this to fully-qualified function -->
314 {{ ref['closureFunc']['user_name'] }} 318 {{ ref['closureFunc']['user_name'] }}
315 </a> 319 </a>
316 </template> 320 </template>
317 321
318 <template if="{{ isInstance(ref.serviceType) }}"> 322 <template if="{{ isInstance(ref.serviceType) }}">
319 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a> 323 <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a>
320 <curly-block callback="{{ expander() }}"> 324 <curly-block callback="{{ expander() }}">
(...skipping 20 matching lines...) Expand all
341 <div class="memberItem"> 345 <div class="memberItem">
342 <div class="memberName">[{{ element['index']}}]</div> 346 <div class="memberName">[{{ element['index']}}]</div>
343 <div class="memberValue"> 347 <div class="memberValue">
344 <instance-ref ref="{{ element['value'] }}"></instance-ref> 348 <instance-ref ref="{{ element['value'] }}"></instance-ref>
345 </div> 349 </div>
346 </div> 350 </div>
347 </template> 351 </template>
348 </div> 352 </div>
349 </curly-block> 353 </curly-block>
350 </template> 354 </template>
351 355 </span>
352 </div>
353 </template> 356 </template>
354 357
355 </polymer-element> 358 </polymer-element>
356 <polymer-element name="eval-box" extends="observatory-element"> 359 <polymer-element name="eval-box" extends="observatory-element">
357 <template> 360 <template>
358 <style> 361 <style>
359 .textbox { 362 .textbox {
360 width: 80ex; 363 width: 80ex;
361 font: 400 16px 'Montserrat', sans-serif; 364 font: 400 16px 'Montserrat', sans-serif;
362 } 365 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 438
436 <polymer-element name="field-ref" extends="service-ref"> 439 <polymer-element name="field-ref" extends="service-ref">
437 <template> 440 <template>
438 <div> 441 <div>
439 <template if="{{ ref['final'] }}"> final </template> 442 <template if="{{ ref['final'] }}"> final </template>
440 <template if="{{ ref['const'] }}"> const </template> 443 <template if="{{ ref['const'] }}"> const </template>
441 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; !ref['f inal'] &amp;&amp; !ref['const']) }}"> 444 <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; !ref['f inal'] &amp;&amp; !ref['const']) }}">
442 var 445 var
443 </template> 446 </template>
444 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}"> 447 <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
445 <class-ref ref="{{ ref['declared_type'] }}"></class-ref> 448 <instance-ref ref="{{ ref['declared_type'] }}"></instance-ref>
446 </template> 449 </template>
447 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a> 450 <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
448 </div> 451 </div>
449 </template> </polymer-element><polymer-element name="function-ref" extends="ser vice-ref"> 452 </template> </polymer-element>
453 <polymer-element name="function-ref" extends="service-ref">
450 <template><!-- These comments are here to allow newlines. 454 <template><!-- These comments are here to allow newlines.
451 --><template if="{{ qualified &amp;&amp; !hasParent &amp;&amp; hasClass }}" ><!-- 455 --><template if="{{ qualified &amp;&amp; !hasParent &amp;&amp; hasClass }}" ><!--
452 --><class-ref ref="{{ ref['class'] }}"></class-ref>.</template><!-- 456 --><class-ref ref="{{ ref['class'] }}"></class-ref>.</template><!--
453 --><template if="{{ qualified &amp;&amp; hasParent }}"><!-- 457 --><template if="{{ qualified &amp;&amp; hasParent }}"><!--
454 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}"> 458 --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}">
455 </function-ref>.<!-- 459 </function-ref>.<!--
456 --></template><a href="{{ url }}">{{ name }}</a><!-- 460 --></template><a href="{{ url }}">{{ name }}</a><!--
457 --></template> 461 --></template>
458 462
459 </polymer-element> 463 </polymer-element>
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
793 </template> 797 </template>
794 </div> 798 </div>
795 </div> 799 </div>
796 </div> 800 </div>
797 </div> 801 </div>
798 </template> 802 </template>
799 803
800 </polymer-element> 804 </polymer-element>
801 <polymer-element name="function-view" extends="observatory-element"> 805 <polymer-element name="function-view" extends="observatory-element">
802 <template> 806 <template>
807 <style>
808 .content {
809 padding-left: 10%;
810 font: 400 14px 'Montserrat', sans-serif;
811 }
812 h1 {
813 font: 400 18px 'Montserrat', sans-serif;
814 }
815 .memberList {
816 display: table;
817 }
818 .memberItem {
819 display: table-row;
820 }
821 .memberName, .memberValue {
822 display: table-cell;
823 vertical-align: top;
824 padding: 3px 0 3px 1em;
825 font: 400 14px 'Montserrat', sans-serif;
826 }
827 </style>
828
803 <nav-bar> 829 <nav-bar>
804 <top-nav-menu></top-nav-menu> 830 <top-nav-menu></top-nav-menu>
805 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu> 831 <isolate-nav-menu isolate="{{ function.isolate }}"></isolate-nav-menu>
806 <template if="{{ function['owner']['type'] == '@Class' }}"> 832 <template if="{{ function['owner']['type'] == '@Class' }}">
807 <!-- TODO(turnidge): Add library nav menu here. --> 833 <!-- TODO(turnidge): Add library nav menu here. -->
808 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu> 834 <class-nav-menu cls="{{ function['owner'] }}"></class-nav-menu>
809 </template> 835 </template>
810 <template if="{{ function['owner']['type'] == '@Library' }}"> 836 <template if="{{ function['owner']['type'] == '@Library' }}">
811 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu> 837 <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu>
812 </template> 838 </template>
813 <nav-menu link="." anchor="{{ function.name }}" last="{{ true }}"></nav-me nu> 839 <nav-menu link="." anchor="{{ function.name }}" last="{{ true }}"></nav-me nu>
814 <nav-refresh callback="{{ refresh }}"></nav-refresh> 840 <nav-refresh callback="{{ refresh }}"></nav-refresh>
815 </nav-bar> 841 </nav-bar>
816 842
817 <div class="row"> 843 <div class="content">
818 <div class="col-md-8 col-md-offset-2"> 844 <h1>function {{ qualifiedName }}</h1>
819 <div class="panel panel-warning"> 845
820 <div class="panel-heading"> 846 <div class="memberList">
821 {{ function['user_name'] }} ({{ function['name'] }}) 847 <div class="memberItem">
822 <class-ref ref="{{ function['class'] }}"></class-ref> 848 <div class="memberName">kind</div>
849 <div class="memberValue">
850 <template if="{{ function['is_static'] }}">static</template>
851 <template if="{{ function['is_const'] }}">const</template>
852 {{ kind }}
853 </div>
823 </div> 854 </div>
824 <div class="panel-body"> 855 <template if="{{ function['parent'] != null }}">
825 <div> 856 <div class="memberItem">
826 <code-ref ref="{{ function['code'] }}"></code-ref> 857 <div class="memberName">parent function</div>
827 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref> 858 <div class="memberValue">
859 <function-ref ref="{{ function['parent'] }}"></function-ref>
860 </div>
828 </div> 861 </div>
829 <table class="table table-hover"> 862 </template>
830 <tbody> 863 <template if="{{ function['parent'] == null &amp;&amp;
831 <tr> 864 function['class'] != null }}">
832 <td>static</td><td>{{ function['is_static'] }}</td> 865 <div class="memberItem">
833 </tr> 866 <div class="memberName">parent class</div>
834 <tr> 867 <div class="memberValue">
835 <td>Const</td><td>{{ function['is_const'] }}</td> 868 <class-ref ref="{{ function['class'] }}"></class-ref>
836 </tr> 869 </div>
837 <tr> 870 </div>
838 <td>Optimizable</td><td>{{ function['is_optimizable'] }}</td> 871 </template>
839 </tr> 872 <div class="memberItem">
840 <tr> 873 <div class="memberName">script</div>
841 <td>Inlinable</td><td>{{ function['is_inlinable'] }}</td> 874 <div class="memberValue">
842 </tr> 875 <script-ref ref="{{ function['script'] }}">
843 <tr> 876 </script-ref>
844 <td>Kind</td><td>{{ function['kind'] }}</td> 877 </div>
845 </tr>
846 <tr>
847 <td>Usage Count</td><td>{{ function['usage_counter'] }}</td>
848 </tr>
849 <tr>
850 <td>Optimized Call Site Count</td><td>{{ function['optimized_cal l_site_count'] }}</td>
851 </tr>
852 <tr>
853 <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</t d>
854 </tr>
855 </tbody>
856 </table>
857 </div> 878 </div>
858 </div> 879
880 <div class="memberItem">&nbsp;</div>
881
882 <template if="{{ function['code'] != null }}">
883 <div class="memberItem">
884 <div class="memberName">optimized code</div>
885 <div class="memberValue">
886 <code-ref ref="{{ function['code'] }}"></code-ref>
887 </div>
888 </div>
889 </template>
890 <template if="{{ function['unoptimized_code'] != null }}">
891 <div class="memberItem">
892 <div class="memberName">unoptimized code</div>
893 <div class="memberValue">
894 <code-ref ref="{{ function['unoptimized_code'] }}"></code-ref>
895 </div>
896 <div class="memberValue">
897 <span title="This count is used to determine when a function wil l be optimized. It is a combination of call counts and other factors.">
898 (usage count: {{ function['usage_counter'] }})
899 </span>
900 </div>
901 </div>
902 </template>
903 <div class="memberItem">
904 <div class="memberName">deoptimizations</div>
905 <div class="memberValue">{{ function['deoptimizations'] }}</div>
906 </div>
907 <div class="memberItem">
908 <div class="memberName">optimizable</div>
909 <div class="memberValue">{{ function['is_optimizable'] }}</div>
910 </div>
911 <div class="memberItem">
912 <div class="memberName">inlinable</div>
913 <div class="memberValue">{{ function['is_inlinable'] }}</div>
914 </div>
915 <template if="{{ function.name != function.vmName }}">
916 <div class="memberItem">
917 <div class="memberName">vm name</div>
918 <div class="memberValue">{{ function.vmName }}</div>
919 </div>
920 </template>
921 </div>
859 </div> 922 </div>
860 </div>
861 </template> 923 </template>
862 924
863 </polymer-element> 925 </polymer-element>
864 <polymer-element name="heap-map" extends="observatory-element"> 926 <polymer-element name="heap-map" extends="observatory-element">
865 <template> 927 <template>
866 <nav-bar> 928 <nav-bar>
867 <top-nav-menu></top-nav-menu> 929 <top-nav-menu></top-nav-menu>
868 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu> 930 <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
869 <nav-menu link="." anchor="heap map" last="{{ true }}"></nav-menu> 931 <nav-menu link="." anchor="heap map" last="{{ true }}"></nav-menu>
870 <nav-refresh callback="{{ refresh }}"></nav-refresh> 932 <nav-refresh callback="{{ refresh }}"></nav-refresh>
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
1207 } 1269 }
1208 </style> 1270 </style>
1209 1271
1210 <template if="{{ instance['error'] != null }}"> 1272 <template if="{{ instance['error'] != null }}">
1211 <error-view error_obj="{{ instance['error'] }}"></error-view> 1273 <error-view error_obj="{{ instance['error'] }}"></error-view>
1212 </template> 1274 </template>
1213 1275
1214 <template if="{{ instance['error'] == null }}"> 1276 <template if="{{ instance['error'] == null }}">
1215 <div class="content"> 1277 <div class="content">
1216 <!-- TODO(turnidge): Handle null instances. --> 1278 <!-- TODO(turnidge): Handle null instances. -->
1217 <h1>instance of {{ instance['class']['user_name'] }}</h1> 1279 <template if="{{ isType(instance.serviceType) }}">
1280 <h1>type {{ instance['user_name'] }}</h1>
1281 </template>
1282 <template if="{{ !isType(instance.serviceType) }}">
1283 <h1>instance of {{ instance['class']['user_name'] }}</h1>
1284 </template>
1218 <div class="memberList"> 1285 <div class="memberList">
1219 <div class="memberItem"> 1286 <div class="memberItem">
1220 <div class="memberName">class</div> 1287 <div class="memberName">class</div>
1221 <div class="memberValue"> 1288 <div class="memberValue">
1222 <class-ref ref="{{ instance['class'] }}"> 1289 <class-ref ref="{{ instance['class'] }}">
1223 </class-ref> 1290 </class-ref>
1224 </div> 1291 </div>
1225 </div> 1292 </div>
1226 <template if="{{ instance['preview'] != null }}"> 1293 <template if="{{ instance['preview'] != null }}">
1227 <div class="memberItem"> 1294 <div class="memberItem">
1228 <div class="memberName">preview</div> 1295 <div class="memberName">preview</div>
1229 <div class="memberValue">{{ instance['preview'] }}</div> 1296 <div class="memberValue">{{ instance['preview'] }}</div>
1230 </div> 1297 </div>
1231 </template> 1298 </template>
1232 <div class="memberItem"> 1299 <div class="memberItem">
1233 <div class="memberName">size</div> 1300 <div class="memberName">size</div>
1234 <div class="memberValue">{{ instance['size'] | formatSize }}</div> 1301 <div class="memberValue">{{ instance['size'] | formatSize }}</div>
1235 </div> 1302 </div>
1303 <template if="{{ instance['type_class'] != null }}">
1304 <div class="memberItem">
1305 <div class="memberName">type class</div>
1306 <div class="memberValue">
1307 <class-ref ref="{{ instance['type_class'] }}">
1308 </class-ref>
1309 </div>
1310 </div>
1311 </template>
1236 </div> 1312 </div>
1237 </div> 1313 </div>
1238 1314
1239 <hr> 1315 <hr>
1240 1316
1241 <div class="content"> 1317 <div class="content">
1242 <template if="{{ instance['fields'].isNotEmpty }}"> 1318 <template if="{{ instance['fields'].isNotEmpty }}">
1243 fields ({{ instance['fields'].length }}) 1319 fields ({{ instance['fields'].length }})
1244 <curly-block> 1320 <curly-block>
1245 <div class="memberList"> 1321 <div class="memberList">
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after
1937 <template> 2013 <template>
1938 <a href="{{ url }}">{{ ref.name }}</a> 2014 <a href="{{ url }}">{{ ref.name }}</a>
1939 </template> 2015 </template>
1940 2016
1941 </polymer-element> 2017 </polymer-element>
1942 2018
1943 2019
1944 <observatory-application devtools="true"></observatory-application> 2020 <observatory-application devtools="true"></observatory-application>
1945 2021
1946 </body></html> 2022 </body></html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698