blob: d691a58e443a45673f0424c236f0338998c6233a [file] [log] [blame]
<!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">
</head>
<body>
<!--
<script src="packages/shadow_dom/shadow_dom.debug.js"></script>
<script src="packages/browser/interop.js"></script>
-->
<polymer-element name="observatory-element">
</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="alert alert-danger">Error!</div>
<div class="alert alert-info">
<p>Error message:</p>
<p>{{ error }}</p>
</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-9"></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="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>{{ frame['name'] }}</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>
<!-- 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>
<script type="application/javascript" src="index.html_bootstrap.dart.js"></script></body></html>