| Index: runtime/bin/vmservice/client/out/web/index.html
|
| ===================================================================
|
| --- runtime/bin/vmservice/client/out/web/index.html (revision 30528)
|
| +++ runtime/bin/vmservice/client/out/web/index.html (working copy)
|
| @@ -1,438 +0,0 @@
|
| -<!DOCTYPE html><html><head>
|
| -
|
| - <title>Dart VM Observatory</title>
|
| - <meta charset="utf-8">
|
| - <link type="text/css" rel="stylesheet" href="bootstrap_css/css/bootstrap.min.css">
|
| -
|
| - <script src="index.html_bootstrap.dart.js"></script>
|
| -
|
| -</head>
|
| -<body><polymer-element name="observatory-element">
|
| -
|
| -</polymer-element><polymer-element name="class-view" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <div class="col-md-8 col-md-offset-2">
|
| - <div class="panel panel-warning">
|
| - <div class="panel-heading">
|
| - {{ cls['user_name'] }} ({{ cls['name'] }})
|
| - <template if="{{ cls['super']['type'] != 'Null' }}">
|
| - extends
|
| - <a href="{{ app.locationManager.currentIsolateClassLink(cls['super']['id'])}}">
|
| - {{ cls['super']['user_name'] }}
|
| - </a>
|
| - </template>
|
| - <a class="pull-right" href="{{ app.locationManager.currentIsolateObjectLink(cls['library']['id'])}}">
|
| - {{ cls['library']['name'] }}
|
| - </a>
|
| - </div>
|
| - <div class="panel-body">
|
| - <table class="table table-hover">
|
| - <tbody>
|
| - <tr>
|
| - <td>Abstract</td><td>{{ cls['abstract'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Const</td><td>{{ cls['const'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Finalized</td><td>{{ cls['const'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Implemented</td><td>{{ cls['implemented'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Patch</td><td>{{ cls['patch'] }}</td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - <blockquote><strong>Fields</strong></blockquote>
|
| - <table class="table table-hover">
|
| - <thead>
|
| - <tr>
|
| - <th>User Name</th>
|
| - <th>VM Name</th>
|
| - </tr>
|
| - </thead>
|
| - <tbody>
|
| - <tr template="" repeat="{{ field in cls['fields'] }}">
|
| - <td><a href="{{ app.locationManager.currentIsolateObjectLink(field['id'])}}">{{ field['user_name'] }}</a></td>
|
| - <td><a href="{{ app.locationManager.currentIsolateObjectLink(field['id'])}}">{{ field['name'] }}</a></td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - <blockquote><strong>Functions</strong></blockquote>
|
| - <table class="table table-hover">
|
| - <thead>
|
| - <tr>
|
| - <th>User Name</th>
|
| - <th>VM Name</th>
|
| - </tr>
|
| - </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>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="disassembly-entry" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <template if="{{ instruction['type'] == 'DisassembledInstructionComment' }}">
|
| - <div class="col-md-2"></div>
|
| - <div class="col-md-2"></div>
|
| - <div class="col-md-4"><code>{{ instruction['comment'] }}</code></div>
|
| - </template>
|
| - <template if="{{ instruction['type'] == 'DisassembledInstruction' }}">
|
| - <div class="col-md-2"></div>
|
| - <div class="col-md-2">{{ instruction['pc'] }}</div>
|
| - <div class="col-md-4">
|
| - <code>{{ instruction['hex'] }} {{ instruction['human'] }}</code>
|
| - </div>
|
| - </template>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="code-view" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <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>
|
| - </div>
|
| - <div class="panel-body">
|
| - <div class="row">
|
| - <div class="col-md-2"><strong>Samples</strong></div>
|
| - <div class="col-md-2"><strong>Address</strong></div>
|
| - <div><strong>Instruction</strong></div>
|
| - </div>
|
| - <template repeat="{{ instruction in code['disassembly'] }}">
|
| - <disassembly-entry instruction="{{ instruction }}">
|
| - </disassembly-entry>
|
| - </template>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="collapsible-content" extends="observatory-element">
|
| - <template>
|
| - <div class="well row">
|
| - <a on-click="toggleDisplay" class="btn muted unselectable">
|
| - Raw message... <i class="{{ iconClass }}"></i>
|
| - </a>
|
| - <div style="display: {{ displayValue }}" class="well">
|
| - <content></content>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="error-view" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <div class="col-md-8 col-md-offset-2">
|
| - <div class="panel panel-danger">
|
| - <div class="panel-heading">Error</div>
|
| - <div class="panel-body">
|
| - <p>{{ error }}</p>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="field-view" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <div class="col-md-8 col-md-offset-2">
|
| - <div class="panel panel-warning">
|
| - <div class="panel-heading">
|
| - <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>
|
| - </div>
|
| - <div class="panel-body">
|
| - <template if="{{ field['guard_class'] == 'dynamic'}}">
|
| - <div class="alert alert-danger">
|
| - Field has been assigned multiple types. If a field is only ever
|
| - assigned a single type, performance may improve.
|
| - </div>
|
| - </template>
|
| - <template if="{{ field['guard_class'] != 'dynamic'}}">
|
| - <div class="alert alert-success">Field has monomorphic type</div>
|
| - <template if="{{ (field['guard_class'] != 'dynamic') &&
|
| - field['guard_nullable'] }}">
|
| - <div class="alert alert-info">
|
| - Field has been assigned null. If a field is never assigned null,
|
| - performance may improve.
|
| - </div>
|
| - </template>
|
| - <blockquote>
|
| - <a href="{{ app.locationManager.currentIsolateClassLink(field['guard_class']['id'])}}">
|
| - {{ field['guard_class']['user_name'] }}
|
| - </a>
|
| - </blockquote>
|
| - </template>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="function-view" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <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>
|
| - </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>
|
| - </div>
|
| - <table class="table table-hover">
|
| - <tbody>
|
| - <tr>
|
| - <td>static</td><td>{{ function['is_static'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Const</td><td>{{ function['is_const'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Optimizable</td><td>{{ function['is_optimizable'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Inlinable</td><td>{{ function['is_inlinable'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Kind</td><td>{{ function['kind'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Usage Count</td><td>{{ function['usage_counter'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Optimized Call Site Count</td><td>{{ function['optimized_call_site_count'] }}</td>
|
| - </tr>
|
| - <tr>
|
| - <td>Deoptimizations</td><td>{{ function['deoptimizations'] }}</td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="isolate-summary" extends="observatory-element">
|
| - <template>
|
| - <div class="row">
|
| - <div class="col-md-1">
|
| - <img src="img/isolate_icon.png" class="img-polaroid">
|
| - </div>
|
| - <div class="col-md-1">{{ isolate }}</div>
|
| - <div class="col-md-10">{{ name }}</div>
|
| - </div>
|
| - <div class="row">
|
| - <div class="col-md-2"></div>
|
| - <div class="col-md-1">
|
| - <a href="{{ app.locationManager.relativeLink(isolate, 'stacktrace') }}">Stacktrace</a>
|
| - </div>
|
| - <div class="col-md-1">
|
| - <a href="{{ app.locationManager.relativeLink(isolate, 'library') }}">Library</a>
|
| - </div>
|
| - <div class="col-md-8"></div>
|
| - </div>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="isolate-list" extends="observatory-element">
|
| - <template>
|
| - <ul class="list-group">
|
| - <template repeat="{{ isolate in app.isolateManager.isolates.values }}">
|
| - <li class="list-group-item">
|
| - <isolate-summary app="{{ app }}" isolate="{{ isolate.id }}" name="{{ isolate.name }}"></isolate-summary>
|
| - </li>
|
| - </template>
|
| - </ul>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="json-view" extends="observatory-element">
|
| - <template>
|
| - <template bind="" if="{{ valueType == 'Primitive' }}">
|
| - <span>{{primitiveString}}</span>
|
| - </template>
|
| - <template bind="" if="{{ valueType == 'List' }}">
|
| - <table class="table table-condensed table-bordered">
|
| - <caption class="text-left">List, {{list.length}}</caption>
|
| - <tbody>
|
| - <tr template="" repeat="{{item in list)}}">
|
| - <th>{{counter}}</th>
|
| - <td><json-view json="{{item}}"></json-view></td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </template>
|
| - <template if="{{ valueType == 'Map' }}">
|
| - <table class="table table-condensed table-bordered">
|
| - <caption class="text-left">Map, {{keys.length}}</caption>
|
| - <tbody>
|
| - <tr template="" repeat="{{key in keys}}">
|
| - <th>{{key}}</th>
|
| - <td><json-view json="{{value(key)}}"></json-view></td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </template>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="library-view" extends="observatory-element">
|
| - <template>
|
| - <div class="alert alert-success">Library {{ library['name'] }}</div>
|
| - <div class="alert alert-info">Imported Libraries</div>
|
| - <table class="table table-hover">
|
| - <tbody>
|
| - <tr template="" repeat="{{ lib in library['libraries'] }}">
|
| - <td>
|
| - <a href="{{ app.locationManager.currentIsolateObjectLink(lib['id'])}}">
|
| - {{ lib['name'] }}
|
| - </a>
|
| - </td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - <div class="alert alert-info">Classes</div>
|
| - <table class="table table-hover">
|
| - <thead>
|
| - <tr>
|
| - <th>Name</th>
|
| - <th>Internal Name</th>
|
| - </tr>
|
| - </thead>
|
| - <tbody>
|
| - <tr template="" repeat="{{ cls in library['classes'] }}">
|
| - <td>
|
| - <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}">
|
| - {{ cls['user_name'] }}
|
| - </a>
|
| - </td>
|
| - <td>
|
| - <a href="{{ app.locationManager.currentIsolateClassLink(cls['id']) }}">
|
| - {{ cls['name'] }}
|
| - </a>
|
| - </td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="stack-trace" extends="observatory-element">
|
| - <template>
|
| - <div class="alert alert-info">Stack Trace</div>
|
| - <table class="table table-hover">
|
| - <thead>
|
| - <tr>
|
| - <th>Depth</th>
|
| - <th>Function</th>
|
| - <th>Url</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>{{ frame['line'] }}</td>
|
| - </tr>
|
| - </tbody>
|
| - </table>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="message-viewer" extends="observatory-element">
|
| - <!--
|
| - This is a big switch statement which instantiates the custom element
|
| - designated to display the message type.
|
| - -->
|
| - <template>
|
| - <!-- If the message type is an IsolateList -->
|
| - <template if="{{ messageType == 'IsolateList' }}">
|
| - <isolate-list app="{{ app }}"></isolate-list>
|
| - </template>
|
| - <!-- If the message type is a StackTrace -->
|
| - <template if="{{ messageType == 'StackTrace' }}">
|
| - <stack-trace app="{{ app }}" trace="{{ message }}"></stack-trace>
|
| - </template>
|
| - <!-- If the message type is a RequestError -->
|
| - <template if="{{ messageType == 'RequestError' }}">
|
| - <error-view app="{{ app }}" error="{{ message['error'] }}"></error-view>
|
| - </template>
|
| - <template if="{{ messageType == 'Library' }}">
|
| - <library-view app="{{ app }}" library="{{ message }}"></library-view>
|
| - </template>
|
| - <template if="{{ messageType == 'Class' }}">
|
| - <class-view app="{{ app }}" cls="{{ message }}"></class-view>
|
| - </template>
|
| - <template if="{{ messageType == 'Field' }}">
|
| - <field-view app="{{ app }}" field="{{ message }}"></field-view>
|
| - </template>
|
| - <template if="{{ messageType == 'Function' }}">
|
| - <function-view app="{{ app }}" function="{{ message }}"></function-view>
|
| - </template>
|
| - <template if="{{ messageType == 'Code' }}">
|
| - <code-view app="{{ app }}" code="{{ message }}"></code-view>
|
| - </template>
|
| - <!-- Add new views and message types in the future here. -->
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="navigation-bar" extends="observatory-element">
|
| - <template>
|
| - <nav class="navbar navbar-default" role="navigation">
|
| - <div class="navbar-header">
|
| - <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">
|
| - <template>
|
| - <template repeat="{{ message in app.requestManager.responses }}">
|
| - <message-viewer app="{{ app }}" message="{{ message }}"></message-viewer>
|
| - <collapsible-content>
|
| - <!-- <json-view json="{{ message }}"></json-view> -->
|
| - </collapsible-content>
|
| - </template>
|
| - </template>
|
| -
|
| -</polymer-element><polymer-element name="observatory-application" extends="observatory-element">
|
| - <template>
|
| - <navigation-bar app="{{ app }}"></navigation-bar>
|
| - <response-viewer app="{{ app }}"></response-viewer>
|
| - </template>
|
| -
|
| -</polymer-element>
|
| - <observatory-application></observatory-application>
|
| -
|
| -</body></html>
|
|
|