| Index: runtime/bin/vmservice/client/deployed/web/index.html
|
| diff --git a/runtime/bin/vmservice/client/deployed/web/index.html b/runtime/bin/vmservice/client/deployed/web/index.html
|
| index 829fe14a9c4d7717cd67bd444ac786354d75ad17..ac7fefd9e8546fa590024260f8da3cdb72229bb8 100644
|
| --- a/runtime/bin/vmservice/client/deployed/web/index.html
|
| +++ b/runtime/bin/vmservice/client/deployed/web/index.html
|
| @@ -163,7 +163,7 @@
|
|
|
| <polymer-element name="top-nav-menu">
|
| <template>
|
| - <nav-menu link="#" anchor="Observatory" last="{{ last }}">
|
| + <nav-menu link="#/vm" anchor="Observatory" last="{{ last }}">
|
| <content></content>
|
| </nav-menu>
|
| </template>
|
| @@ -730,6 +730,10 @@
|
|
|
| </polymer-element><polymer-element name="error-view" extends="observatory-element">
|
| <template>
|
| + <nav-bar>
|
| + <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + </nav-bar>
|
| +
|
| <div class="row">
|
| <div class="col-md-8 col-md-offset-2">
|
| <div class="panel panel-danger">
|
| @@ -742,7 +746,8 @@
|
| </div>
|
| </template>
|
|
|
| -</polymer-element><polymer-element name="field-view" extends="observatory-element">
|
| +</polymer-element>
|
| +<polymer-element name="field-view" extends="observatory-element">
|
| <template>
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| @@ -888,7 +893,7 @@
|
| <img src="img/isolate_icon.png" class="img-polaroid">
|
| </div>
|
|
|
| - <div class="col-md-1">{{ isolate.vmName }}</div>
|
| + <div class="col-md-1">{{ isolate.mainPort }}</div>
|
|
|
| <!-- TODO(turnidge): Use function-ref when it can take isolate param -->
|
| <div class="col-md-4">
|
| @@ -908,27 +913,27 @@
|
|
|
| <div class="col-md-2">
|
| <div class="row">
|
| - <div class="col-md-3">{{ isolate.timers['total'] | formatTime }}</div>
|
| + <div class="col-md-5">{{ isolate.timers['total'] | formatTimePrecise }}</div>
|
| <div class="col-md-1"></div>
|
| <div class="col-md-3"><p class="text-muted">total</p></div>
|
| </div>
|
| <div class="row">
|
| - <div class="col-md-3">{{ isolate.timers['dart'] | formatTime }}</div>
|
| + <div class="col-md-5">{{ isolate.timers['dart'] | formatTimePrecise }}</div>
|
| <div class="col-md-1"></div>
|
| <div class="col-md-3"><p class="text-muted">dart</p></div>
|
| </div>
|
| <div class="row">
|
| - <div class="col-md-3">{{ isolate.timers['compile'] | formatTime }}</div>
|
| + <div class="col-md-5">{{ isolate.timers['compile'] | formatTimePrecise }}</div>
|
| <div class="col-md-1"></div>
|
| <div class="col-md-3"><p class="text-muted">compile</p></div>
|
| </div>
|
| <div class="row">
|
| - <div class="col-md-3">{{ isolate.timers['gc'] | formatTime }}</div>
|
| + <div class="col-md-5">{{ isolate.timers['gc'] | formatTimePrecise }}</div>
|
| <div class="col-md-1"></div>
|
| <div class="col-md-3"><p class="text-muted">gc</p></div>
|
| </div>
|
| <div class="row">
|
| - <div class="col-md-3">{{ isolate.timers['init'] | formatTime }}</div>
|
| + <div class="col-md-5">{{ isolate.timers['init'] | formatTimePrecise }}</div>
|
| <div class="col-md-1"></div>
|
| <div class="col-md-3"><p class="text-muted">init</p></div>
|
| </div>
|
| @@ -966,23 +971,6 @@
|
| </template>
|
|
|
| </polymer-element>
|
| -<polymer-element name="isolate-list" extends="observatory-element">
|
| - <template>
|
| - <nav-bar>
|
| - <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| - <!-- TODO(turnidge): Why doesn't "this.refresh" work? -->
|
| - <nav-refresh callback="{{ refresh } }}"></nav-refresh>
|
| - </nav-bar>
|
| - <ul class="list-group">
|
| - <template repeat="{{ isolate in isolates.isolates.values }}">
|
| - <li class="list-group-item">
|
| - <isolate-summary isolate="{{ isolate }}"></isolate-summary>
|
| - </li>
|
| - </template>
|
| - </ul>
|
| - </template>
|
| -
|
| -</polymer-element>
|
| <polymer-element name="isolate-view" extends="observatory-element">
|
| <template>
|
| <style>
|
| @@ -1015,6 +1003,7 @@
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}">
|
| </isolate-nav-menu>
|
| + <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -1023,16 +1012,31 @@
|
| <div class="memberItem">
|
| <div class="memberName">status</div>
|
| <div class="memberValue">
|
| - <template if="{{ isolate.topFrame == null }}">
|
| - <strong>idle</strong>
|
| + <template if="{{ isolate.pausedOnStart }}">
|
| + <strong style="color:darkred;">paused</strong> @ isolate start
|
| + <span style="padding-left:20px;">
|
| + [<a on-click="{{ resume }}">resume</a>]
|
| + </span>
|
| + </template>
|
| +
|
| + <template if="{{ isolate.pausedOnExit }}">
|
| + <strong style="color:darkred;">paused</strong> @ isolate exit
|
| + <span style="padding-left:20px;">
|
| + [<a on-click="{{ resume }}">resume</a>]
|
| + </span>
|
| </template>
|
| - <template if="{{ isolate.topFrame != null }}">
|
| +
|
| + <template if="{{ isolate.running }}">
|
| <strong>running</strong>
|
| @
|
| <function-ref ref="{{ isolate.topFrame['function'] }}">
|
| </function-ref>
|
| (<script-ref ref="{{ isolate.topFrame['script'] }}" line="{{ isolate.topFrame['line'] }}"></script-ref>)
|
| </template>
|
| +
|
| + <template if="{{ isolate.idle }}">
|
| + <strong>idle</strong>
|
| + </template>
|
| </div>
|
| </div>
|
| </div>
|
| @@ -1065,7 +1069,7 @@
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberName">id</div>
|
| - <div class="memberValue">{{ isolate.vmName }}</div>
|
| + <div class="memberValue">{{ isolate.mainPort }}</div>
|
| </div>
|
| <br>
|
| <div class="memberItem">
|
| @@ -1114,7 +1118,7 @@
|
| <div class="memberList">
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('allocationprofile') }}">heap profile</a>
|
| + See <a href="{{ isolate.relativeHashLink('allocationprofile') }}">allocation profile</a>
|
| </div>
|
| </div>
|
| <div class="memberItem">
|
| @@ -1778,6 +1782,65 @@
|
| </template>
|
|
|
| </polymer-element>
|
| +<polymer-element name="vm-view" extends="observatory-element">
|
| + <template>
|
| + <style>
|
| + .content {
|
| + padding-left: 10%;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + }
|
| + h1 {
|
| + font: 400 18px 'Montserrat', sans-serif;
|
| + }
|
| + .memberList {
|
| + display: table;
|
| + }
|
| + .memberItem {
|
| + display: table-row;
|
| + }
|
| + .memberName, .memberValue {
|
| + display: table-cell;
|
| + vertical-align: top;
|
| + padding: 3px 0 3px 1em;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + }
|
| + .sourceInset {
|
| + padding-left: 15%;
|
| + padding-right: 15%;
|
| + }
|
| + </style>
|
| +
|
| + <nav-bar>
|
| + <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + </nav-bar>
|
| +
|
| + <div class="content">
|
| + <h1>VM</h1>
|
| + <div class="memberList">
|
| + <div class="memberItem">
|
| + <div class="memberName">version</div>
|
| + <div class="memberValue">{{ vm.version }}</div>
|
| + </div>
|
| + <div class="memberItem">
|
| + <div class="memberName">uptime</div>
|
| + <div class="memberValue">{{ vm.uptime | formatTime }}</div>
|
| + </div>
|
| + </div>
|
| + </div>
|
| +
|
| + <br>
|
| +
|
| + <ul class="list-group">
|
| + <template repeat="{{ isolate in vm.allIsolates }}">
|
| + <li class="list-group-item">
|
| + <isolate-summary isolate="{{ isolate }}"></isolate-summary>
|
| + </li>
|
| + </template>
|
| + </ul>
|
| + </template>
|
| +
|
| +</polymer-element>
|
| <polymer-element name="service-view" extends="observatory-element">
|
| <!-- This element explicitly manages the child elements to avoid setting
|
| an observable property on the old element to an invalid type. -->
|
| @@ -1794,6 +1857,12 @@
|
| </template>
|
|
|
| </polymer-element>
|
| +<polymer-element name="vm-ref" extends="service-ref">
|
| +<template>
|
| + <a href="{{ url }}">{{ ref.name }}</a>
|
| +</template>
|
| +
|
| +</polymer-element>
|
|
|
|
|
| <observatory-application></observatory-application>
|
|
|