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

Unified Diff: dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html

Issue 119673004: Version 1.1.0-dev.5.2 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html
===================================================================
--- dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html (revision 31530)
+++ dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html (working copy)
@@ -29,7 +29,15 @@
</template>
</template>
-</polymer-element><polymer-element name="error-view" extends="observatory-element">
+</polymer-element><polymer-element name="service-ref" extends="observatory-element">
+
+</polymer-element><polymer-element name="class-ref" extends="service-ref">
+<template>
+ <a href="{{ url }}">{{ name }}</a>
+</template>
+
+</polymer-element>
+<polymer-element name="error-view" extends="observatory-element">
<template>
<div class="row">
<div class="col-md-8 col-md-offset-2">
@@ -48,34 +56,42 @@
</div>
</template>
-</polymer-element><polymer-element name="field-ref" extends="observatory-element">
+</polymer-element><polymer-element name="field-ref" extends="service-ref">
<template>
<div>
- <template if="{{ field['final'] }}"> final </template>
- <template if="{{ field['const'] }}"> const </template>
- <template if="{{ (field['declared_type']['name'] == 'dynamic' &amp;&amp; !field['final'] &amp;&amp; !field['const']) }}">
+ <template if="{{ ref['final'] }}"> final </template>
+ <template if="{{ ref['const'] }}"> const </template>
+ <template if="{{ (ref['declared_type']['name'] == 'dynamic' &amp;&amp; !ref['final'] &amp;&amp; !ref['const']) }}">
var
</template>
- <template if="{{ (field['declared_type']['name'] != 'dynamic') }}">
- <a href="{{ app.locationManager.currentIsolateClassLink(field['declared_type']['id']) }}">
- {{ field['declared_type']['user_name'] }} </a>
+ <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
+ <class-ref app="{{ app }}" ref="{{ ref['declared_type'] }}"></class-ref>
</template>
- <a href="{{ app.locationManager.currentIsolateObjectLink(field['id'])}}">
- {{ field['user_name'] }} </a>
+ <a href="{{ url }}">{{ name }}</a>
</div>
-</template> </polymer-element><polymer-element name="instance-ref" extends="observatory-element">
+</template> </polymer-element><polymer-element name="function-ref" extends="service-ref">
<template>
+ <a href="{{ url }}">{{ name }}</a>
+</template>
+
+</polymer-element><polymer-element name="instance-ref" extends="service-ref">
+<template>
<div>
- <template if="{{ (instance['type'] == 'null') }}">
+ <template if="{{ (ref['type'] == 'null') }}">
{{ "null" }}
</template>
- <template if="{{ (instance['type'] != 'null') }}">
- <a href="{{ app.locationManager.currentIsolateObjectLink(instance['id'])}}">
- {{ instance['preview'] }}
- </a>
+ <template if="{{ (ref['type'] != 'null') }}">
+ <a href="{{ url }}">{{ name }} </a>
</template>
</div>
-</template> </polymer-element><polymer-element name="class-view" extends="observatory-element">
+</template>
+
+</polymer-element><polymer-element name="library-ref" extends="service-ref">
+<template>
+ <a href="{{ url }}">{{ name }}</a>
+</template>
+
+</polymer-element><polymer-element name="class-view" extends="observatory-element">
<template>
<div class="row">
<div class="col-md-8 col-md-offset-2">
@@ -84,13 +100,9 @@
class <strong>{{ cls['user_name'] }}</strong>
<template if="{{ cls['super']['type'] != 'Null' }}">
extends
- <a href="{{ app.locationManager.currentIsolateClassLink(cls['super']['id'])}}">
- {{ cls['super']['user_name'] }}
- </a>
+ <class-ref app="{{ app }}" ref="{{ cls['super'] }}"></class-ref>
</template>
- <a class="pull-right" href="{{ app.locationManager.currentIsolateObjectLink(cls['library']['id'])}}">
- {{ cls['library']['name'] }}
- </a>
+ <library-ref app="{{ app }}" ref="{{ cls['library'] }}"></library-ref>
</div>
<div class="panel-body">
<table class="table table-hover">
@@ -120,8 +132,8 @@
<table class="table table-hover">
<tbody>
<tr template="" repeat="{{ field in cls['fields'] }}">
- <td><field-ref app="{{ app }}" field="{{ field }}"></field-ref></td>
- <td><instance-ref app="{{ app }}" instance="{{ field['value'] }}"></instance-ref></td>
+ <td><field-ref app="{{ app }}" ref="{{ field }}"></field-ref></td>
+ <td><instance-ref app="{{ app }}" ref="{{ field['value'] }}"></instance-ref></td>
</tr>
</tbody>
</table>
@@ -135,8 +147,8 @@
</thead>
<tbody>
<tr template="" repeat="{{ function in cls['functions'] }}">
- <td><a href="{{ app.locationManager.currentIsolateObjectLink(function['id'])}}">{{ function['user_name'] }}</a></td>
- <td><a href="{{ app.locationManager.currentIsolateObjectLink(function['id'])}}">{{ function['name'] }}</a></td>
+ <td><function-ref app="{{ app }}" ref="{{ function }}"></function-ref></td>
+ <td><function-ref app="{{ app }}" ref="{{ function }}" internal=""></function-ref></td>
</tr>
</tbody>
</table>
@@ -150,6 +162,12 @@
</div>
</template>
+</polymer-element>
+<polymer-element name="code-ref" extends="service-ref">
+<template>
+ <a href="{{ url }}">{{ name }}</a>
+</template>
+
</polymer-element><polymer-element name="disassembly-entry" extends="observatory-element">
<template>
<div class="row">
@@ -174,9 +192,7 @@
<div class="col-md-8 col-md-offset-2">
<div class="{{ cssPanelClass }}">
<div class="panel-heading">
- <a href="{{ app.locationManager.currentIsolateObjectLink(code['function']['id'])}}">
- {{ code['function']['user_name'] }} ({{ code['function']['name'] }})
- </a>
+ <function-ref app="{{ app }}" ref="{{ code['function'] }}"></function-ref>
</div>
<div class="panel-body">
<div class="row">
@@ -215,10 +231,8 @@
<template if="{{ field['static'] }}">static</template>
<template if="{{ field['final'] }}">final</template>
<template if="{{ field['const'] }}">const</template>
- {{ field['user_name'] }} ({{ field['name'] }})
- <a class="pull-right" href="{{ app.locationManager.currentIsolateClassLink(field['class']['id'])}}">
- {{ field['class']['user_name'] }}
- </a>
+ {{ field['user_name'] }} ({{ field['name'] }})
+ <class-ref app="{{ app }}" ref="{{ field['class'] }}"></class-ref>
</div>
<div class="panel-body">
<template if="{{ field['guard_class'] == 'dynamic'}}">
@@ -227,9 +241,9 @@
assigned a single type, performance may improve.
</div>
</template>
- <template if="{{ field['guard_class'] != 'dynamic'}}">
+ <template if="{{ (field['guard_class'] != 'dynamic') &amp;&amp; (field['guard_class'] != 'unknown') }}">
<div class="alert alert-success">Field has monomorphic type</div>
- <template if="{{ (field['guard_class'] != 'dynamic') &amp;&amp;
+ <template if="{{ (field['guard_class'] != 'dynamic') &amp;&amp;
field['guard_nullable'] }}">
<div class="alert alert-info">
Field has been assigned null. If a field is never assigned null,
@@ -237,9 +251,7 @@
</div>
</template>
<blockquote>
- <a href="{{ app.locationManager.currentIsolateClassLink(field['guard_class']['id'])}}">
- {{ field['guard_class']['user_name'] }}
- </a>
+ <class-ref app="{{ app }}" ref="{{ field['guard_class'] }}"></class-ref>
</blockquote>
</template>
</div>
@@ -254,15 +266,13 @@
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-warning">
<div class="panel-heading">
- {{ function['user_name'] }} ({{ function['name'] }})
- <a class="pull-right" href="{{ app.locationManager.currentIsolateClassLink(function['class']['id'])}}">
- {{ function['class']['name'] }}
- </a>
+ {{ function['user_name'] }} ({{ function['name'] }})
+ <class-ref app="{{ app }}" ref="{{ function['class'] }}"></class-ref>
</div>
<div class="panel-body">
<div>
- <a class="btn btn-primary" href="{{ app.locationManager.currentIsolateObjectLink(function['code']['id'])}}">Current Code</a>
- <a class="btn btn-info" href="{{ app.locationManager.currentIsolateObjectLink(function['unoptimized_code']['id'])}}">Unoptimized Code</a>
+ <code-ref app="{{ app }}" ref="{{ function['code'] }}"></code-ref>
+ <code-ref app="{{ app }}" ref="{{ function['unoptimized_code'] }}"></code-ref>
</div>
<table class="table table-hover">
<tbody>
@@ -302,7 +312,7 @@
<template>
<div class="row">
<div class="col-md-1">
- <img src="packages/observatory/src/observatory_elements/img/isolate_icon.png" class="img-polaroid">
+ <img src="packages/observatory/src/observatory_elements/img/isolate_icon.png" class="img-polaroid">
</div>
<div class="col-md-1">{{ isolate }}</div>
<div class="col-md-10">{{ name }}</div>
@@ -318,11 +328,15 @@
<div class="col-md-1">
<a href="{{ app.locationManager.relativeLink(isolate, 'debug/breakpoints') }}">Breakpoints</a>
</div>
+ <div class="col-md-1">
+ <a href="{{ app.locationManager.relativeLink(isolate, 'profile') }}">Profile</a>
+ </div>
<div class="col-md-8"></div>
</div>
</template>
-</polymer-element><polymer-element name="isolate-list" extends="observatory-element">
+</polymer-element>
+<polymer-element name="isolate-list" extends="observatory-element">
<template>
<ul class="list-group">
<template repeat="{{ isolate in app.isolateManager.isolates.values }}">
@@ -337,12 +351,10 @@
<template>
<div class="row">
<div class="col-md-8 col-md-offset-2">
- <div class="panel panel-warning">
+ <div class="panel panel-warning">
<div class="panel-heading">
Instance of
- <a href="{{ app.locationManager.currentIsolateClassLink(instance['class']['id'])}}">
- {{ instance['class']['user_name'] }}
- </a>
+ <class-ref app="{{ app }}" ref="{{ instance['class'] }}"></class-ref>
</div>
<div class="panel-body">
<template if="{{ instance['error'] == null }}">
@@ -357,8 +369,8 @@
<table class="table table-hover">
<tbody>
<tr template="" repeat="{{ field in instance['fields'] }}">
- <td><field-ref app="{{ app }}" field="{{ field }}"></field-ref></td>
- <td><instance-ref app="{{ app }}" instance="{{ field['value'] }}"></instance-ref></td>
+ <td><field-ref app="{{ app }}" ref="{{ field }}"></field-ref></td>
+ <td><instance-ref app="{{ app }}" ref="{{ field['value'] }}"></instance-ref></td>
</tr>
</tbody>
</table>
@@ -372,7 +384,8 @@
</div>
</template>
-</polymer-element><polymer-element name="json-view" extends="observatory-element">
+</polymer-element>
+<polymer-element name="json-view" extends="observatory-element">
<template>
<template bind="" if="{{ valueType == 'Primitive' }}">
<span>{{primitiveString}}</span>
@@ -401,6 +414,12 @@
</template>
</template>
+</polymer-element>
+<polymer-element name="script-ref" extends="service-ref">
+<template>
+ <a href="{{ url }}">{{ name }}</a>
+</template>
+
</polymer-element><polymer-element name="library-view" extends="observatory-element">
<template>
<div class="alert alert-success">Library {{ library['name'] }}</div>
@@ -412,7 +431,7 @@
{{ script['kind'] }}
</td>
<td>
- <a href="{{ app.locationManager.currentIsolateScriptLink(script['id'], script['name']) }}">{{ script['name'] }}</a>
+ <script-ref app="{{ app }}" ref="{{ script }}"></script-ref>
</td>
</tr>
</tbody>
@@ -422,9 +441,7 @@
<tbody>
<tr template="" repeat="{{ lib in library['libraries'] }}">
<td>
- <a href="{{ app.locationManager.currentIsolateObjectLink(lib['id'])}}">
- {{ lib['url'] }}
- </a>
+ <library-ref app="{{ app }}" ref="{{ lib }}"></library-ref>
</td>
</tr>
</tbody>
@@ -433,8 +450,8 @@
<table class="table table-hover">
<tbody>
<tr template="" repeat="{{ variable in library['variables'] }}">
- <td><field-ref app="{{ app }}" field="{{ variable }}"></field-ref></td>
- <td><instance-ref app="{{ app }}" instance="{{ variable['value'] }}"></instance-ref></td>
+ <td><field-ref app="{{ app }}" ref="{{ variable }}"></field-ref></td>
+ <td><instance-ref app="{{ app }}" ref="{{ variable['value'] }}"></instance-ref></td>
</tr>
</tbody>
</table>
@@ -443,9 +460,7 @@
<tbody>
<tr template="" repeat="{{ func in library['functions'] }}">
<td>
- <a href="{{ app.locationManager.currentIsolateObjectLink(func['id'])}}">
- {{ func['user_name'] }}
- </a>
+ <function-ref app="{{ app }}" ref="{{ func }}"></function-ref>
</td>
</tr>
</tbody>
@@ -461,14 +476,10 @@
<tbody>
<tr template="" repeat="{{ cls in library['classes'] }}">
<td>
- <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}">
- {{ cls['user_name'] }}
- </a>
+ <class-ref app="{{ app }}" ref="{{ cls }}"></class-ref>
</td>
<td>
- <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}">
- {{ cls['name'] }}
- </a>
+ <class-ref app="{{ app }}" ref="{{ cls }}" internal=""></class-ref>
</td>
</tr>
</tbody>
@@ -506,15 +517,15 @@
<tr>
<th>Depth</th>
<th>Function</th>
- <th>Url</th>
+ <th>Script</th>
<th>Line</th>
</tr>
</thead>
<tbody>
<tr template="" repeat="{{ frame in trace['members'] }}">
<td>{{$index}}</td>
- <td><a href="{{app.locationManager.currentIsolateObjectLink(frame['function']['id'])}}">{{ frame['name'] }}</a></td>
- <td>{{ frame['url'] }}</td>
+ <td><function-ref app="{{ app }}" ref="{{ frame['function'] }}"></function-ref></td>
+ <td><script-ref app="{{ app }}" ref="{{ frame['script'] }}"></script-ref></td>
<td>{{ frame['line'] }}</td>
</tr>
</tbody>
@@ -588,13 +599,58 @@
<a class="navbar-brand" href="">Observatory</a>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
- <input class="span2 pull-right navbar-form" placeholder="VM Address" type="text" value="{{ app.requestManager.prefix }}">
</div>
</nav>
</template>
-</polymer-element><polymer-element name="response-viewer" extends="observatory-element">
+</polymer-element><polymer-element name="isolate-profile" extends="observatory-element">
<template>
+ <p> P R O F I L E </p>
+ <div>
+ <button type="button" on-click="{{refreshData}}">Refresh profile data</button>
+ <span>Top</span>
+ <select selectedindex="{{methodCountSelected}}" value="{{methodCounts[methodCountSelected]}}">
+ <option template="" repeat="{{count in methodCounts}}">{{count}}</option>
+ </select>
+ <span>methods</span>
+ </div>
+ <blockquote><strong>Top Inclusive</strong></blockquote>
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <th>Ticks</th>
+ <th>Percent</th>
+ <th>Method</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr template="" repeat="{{ code in topInclusiveCodes }}">
+ <td>{{ codeTicks(code, true) }}</td>
+ <td>{{ codePercent(code, true) }}</td>
+ <td>{{ codeName(code) }}</td>
+ </tr>
+ </tbody></table>
+ <blockquote><strong>Top Exclusive</strong></blockquote>
+ <table class="table table-hover">
+ <thead>
+ <tr>
+ <th>Ticks</th>
+ <th>Percent</th>
+ <th>Method</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr template="" repeat="{{ code in topExclusiveCodes }}">
+ <td>{{ codeTicks(code, false) }}</td>
+ <td>{{ codePercent(code, false) }}</td>
+ <td>{{ codeName(code) }}</td>
+ </tr>
+ </tbody></table>
+ </template>
+
+</polymer-element>
+<polymer-element name="response-viewer" extends="observatory-element">
+ <template>
<template repeat="{{ message in app.requestManager.responses }}">
<message-viewer app="{{ app }}" message="{{ message }}"></message-viewer>
<collapsible-content>
@@ -606,7 +662,12 @@
</polymer-element><polymer-element name="observatory-application" extends="observatory-element">
<template>
<navigation-bar app="{{ app }}"></navigation-bar>
- <response-viewer app="{{ app }}"></response-viewer>
+ <template if="{{ app.locationManager.profile }}">
+ <isolate-profile app="{{ app }}"></isolate-profile>
+ </template>
+ <template if="{{ app.locationManager.profile == false }}">
+ <response-viewer app="{{ app }}"></response-viewer>
+ </template>
</template>
</polymer-element>
« no previous file with comments | « dart/runtime/bin/vmservice/client/deployed/web/index.html ('k') | dart/runtime/bin/vmservice/client/lib/observatory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698