| Index: dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html
|
| ===================================================================
|
| --- dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html (revision 37220)
|
| +++ dart/runtime/bin/vmservice/client/deployed/web/index_devtools.html (working copy)
|
| @@ -659,16 +659,16 @@
|
| isBool(ref.serviceType) ||
|
| isInt(ref.serviceType)) ||
|
| isDouble(ref.serviceType)) }}">
|
| - <a href="{{ url }}">{{ ref['valueAsString'] }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ ref['valueAsString'] }}</a>
|
| </template>
|
|
|
| <template if="{{ (isType(ref.serviceType)) }}">
|
| - <a href="{{ url }}">{{ ref['user_name'] }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ ref['user_name'] }}</a>
|
| </template>
|
|
|
| <template if="{{ isInstance(ref.serviceType) &&
|
| ref['closureFunc'] != null}}">
|
| - <a href="{{ url }}">
|
| + <a on-click="{{ goto }}" href="{{ url }}">
|
| <!-- TODO(turnidge): Switch this to fully-qualified function -->
|
| {{ ref['closureFunc']['user_name'] }}
|
| </a>
|
| @@ -676,7 +676,7 @@
|
|
|
| <template if="{{ isInstance(ref.serviceType) &&
|
| ref['closureFunc'] == null}}">
|
| - <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em></a>
|
| + <a on-click="{{ goto }}" href="{{ url }}"><em>{{ ref['class'].name }}</em></a>
|
| <curly-block callback="{{ expander() }}">
|
| <div class="memberList">
|
| <template repeat="{{ field in ref['fields'] }}">
|
| @@ -694,7 +694,7 @@
|
| </template>
|
|
|
| <template if="{{ isList(ref.serviceType) }}">
|
| - <a href="{{ url }}"><em>{{ ref['class']['user_name'] }}</em> ({{ ref['length']}})</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}"><em>{{ ref['class'].name }}</em> ({{ ref['length']}})</a>
|
| <curly-block callback="{{ expander() }}">
|
| <div class="memberList">
|
| <template repeat="{{ element in ref['elements'] }}">
|
| @@ -1054,7 +1054,7 @@
|
| </style>
|
|
|
| <li class="menu">
|
| - <a href="{{ link }}">{{ anchor }}</a>
|
| + <a on-click="{{ goto }}" href="{{ gotoLink(link) }}">{{ anchor }}</a>
|
| <ul><content></content></ul>
|
| </li>
|
| <template if="{{ !last }}">
|
| @@ -1102,7 +1102,7 @@
|
| text-decoration: none;
|
| }
|
| </style>
|
| - <li><a href="{{ link }}">{{ anchor }}</a>
|
| + <li><a on-click="{{ goto }}" href="{{ gotoLink(link) }}">{{ anchor }}</a>
|
| <ul><content></content></ul>
|
| </li>
|
| </template>
|
| @@ -1138,9 +1138,33 @@
|
| </template>
|
| </polymer-element>
|
|
|
| +<polymer-element name="nav-control" extends="observatory-element">
|
| + <template>
|
| + <style>
|
| + .black {
|
| + color: #000;
|
| + }
|
| + li {
|
| + float: right;
|
| + margin: 0;
|
| + }
|
| + button {
|
| + margin: 3px;
|
| + padding: 8px;
|
| + }
|
| + </style>
|
| + <!-- Disable until issues with history in Dartium are fixed
|
| + <li>
|
| + <button class="black" on-click="{{ back }}">◀</button>
|
| + <button class="black" on-click="{{ forward }}">▶</button>
|
| + </li>
|
| + -->
|
| + </template>
|
| +</polymer-element>
|
| +
|
| <polymer-element name="top-nav-menu">
|
| <template>
|
| - <nav-menu link="#/vm" anchor="Observatory" last="{{ last }}">
|
| + <nav-menu link="/vm" anchor="Observatory" last="{{ last }}">
|
| <content></content>
|
| </nav-menu>
|
| </template>
|
| @@ -1149,11 +1173,11 @@
|
| <polymer-element name="isolate-nav-menu" extends="observatory-element">
|
| <template>
|
| <nav-menu link="{{ hashLinkWorkaround }}" anchor="{{ isolate.name }}" last="{{ last }}">
|
| - <nav-menu-item link="{{ isolate.relativeHashLink('stacktrace') }}" anchor="stack trace"></nav-menu-item>
|
| - <nav-menu-item link="{{ isolate.relativeHashLink('profile') }}" anchor="cpu profile"></nav-menu-item>
|
| - <nav-menu-item link="{{ isolate.relativeHashLink('allocationprofile') }}" anchor="allocation profile"></nav-menu-item>
|
| - <nav-menu-item link="{{ isolate.relativeHashLink('heapmap') }}" anchor="heap map"></nav-menu-item>
|
| - <nav-menu-item link="{{ isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item>
|
| + <nav-menu-item link="{{ isolate.relativeLink('stacktrace') }}" anchor="stack trace"></nav-menu-item>
|
| + <nav-menu-item link="{{ isolate.relativeLink('profile') }}" anchor="cpu profile"></nav-menu-item>
|
| + <nav-menu-item link="{{ isolate.relativeLink('allocationprofile') }}" anchor="allocation profile"></nav-menu-item>
|
| + <nav-menu-item link="{{ isolate.relativeLink('heapmap') }}" anchor="heap map"></nav-menu-item>
|
| + <nav-menu-item link="{{ isolate.relativeLink('debug/breakpoints') }}" anchor="breakpoints"></nav-menu-item>
|
| <content></content>
|
| </nav-menu>
|
| </template>
|
| @@ -1161,7 +1185,7 @@
|
|
|
| <polymer-element name="library-nav-menu" extends="observatory-element">
|
| <template>
|
| - <nav-menu link="{{ library.hashLink }}" anchor="{{ library.name }}" last="{{ last }}">
|
| + <nav-menu link="{{ library.link }}" anchor="{{ library.name }}" last="{{ last }}">
|
| <content></content>
|
| </nav-menu>
|
| </template>
|
| @@ -1169,7 +1193,7 @@
|
|
|
| <polymer-element name="class-nav-menu" extends="observatory-element">
|
| <template>
|
| - <nav-menu link="{{ cls.hashLink }}" anchor="{{ cls.name }}" last="{{ last }}">
|
| + <nav-menu link="{{ cls.link }}" anchor="{{ cls.name }}" last="{{ last }}">
|
| <content></content>
|
| </nav-menu>
|
| </template>
|
| @@ -1417,8 +1441,9 @@
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ msg.isolate }}"></isolate-nav-menu>
|
| - <nav-menu link="{{ msg.isolate.relativeHashLink('debug/breakpoints') }}" anchor="breakpoints" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ gotoLink(msg.isolate.relativeLink('debug/breakpoints')) }}" anchor="breakpoints" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <template if="{{ msg['breakpoints'].isEmpty }}">
|
| <div>
|
| @@ -1676,11 +1701,363 @@
|
| .break-wrap {
|
| word-wrap: break-word;
|
| }
|
| -</style><a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template>
|
| +</style><a on-click="{{ goto }}" title="{{ hoverText }}" href="{{ url }}">{{ name }}</a></template>
|
|
|
|
|
| </polymer-element>
|
|
|
| +
|
| +
|
| +
|
| +<polymer-element name="class-tree" extends="observatory-element">
|
| + <template>
|
| + <style>
|
| +/* Global styles */
|
| +* {
|
| + margin: 0;
|
| + padding: 0;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + color: #333;
|
| + box-sizing: border-box;
|
| +}
|
| +
|
| +.content {
|
| + padding-left: 10%;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| +}
|
| +
|
| +.content-centered {
|
| + padding-left: 10%;
|
| + padding-right: 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;
|
| +}
|
| +
|
| +.monospace {
|
| + font-family: consolas, courier, monospace;
|
| + font-size: 1em;
|
| + line-height: 1.2em;
|
| + white-space: nowrap;
|
| +}
|
| +
|
| +a {
|
| + color: #0489c3;
|
| + text-decoration: none;
|
| +}
|
| +
|
| +a:hover {
|
| + text-decoration: underline;
|
| +}
|
| +
|
| +em {
|
| + color: inherit;
|
| + font-style: italic;
|
| +}
|
| +
|
| +b {
|
| + color: inherit;
|
| + font-weight: bold;
|
| +}
|
| +
|
| +hr {
|
| + margin-top: 20px;
|
| + margin-bottom: 20px;
|
| + border: 0;
|
| + border-top: 1px solid #eee;
|
| + height: 0;
|
| + box-sizing: content-box;
|
| +}
|
| +
|
| +.list-group {
|
| + padding-left: 0;
|
| + margin-bottom: 20px;
|
| +}
|
| +
|
| +.list-group-item {
|
| + position: relative;
|
| + display: block;
|
| + padding: 10px 15px;
|
| + margin-bottom: -1px;
|
| + background-color: #fff;
|
| +}
|
| +
|
| +.list-group-item:first-child {
|
| + /* rounded top corners */
|
| + border-top-right-radius:4px;
|
| + border-top-left-radius:4px;
|
| +}
|
| +
|
| +.list-group-item:last-child {
|
| + margin-bottom: 0;
|
| + /* rounded bottom corners */
|
| + border-bottom-right-radius: 4px;
|
| + border-bottom-left-radius:4px;
|
| +}
|
| +
|
| +/* Flex row container */
|
| +.flex-row {
|
| + display: flex;
|
| + flex-direction: row;
|
| +}
|
| +
|
| +/* Flex column container */
|
| +.flex-column {
|
| + display: flex;
|
| + flex-direction: column;
|
| +}
|
| +
|
| +.flex-item-fit {
|
| + flex-grow: 1;
|
| + flex-shrink: 1;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-no-shrink {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-fill {
|
| + flex-grow: 0;
|
| + flex-shrink: 1; /* shrink when pressured */
|
| + flex-basis: 100%; /* try and take 100% */
|
| +}
|
| +
|
| +.flex-item-fixed-1-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 8.3%;
|
| +}
|
| +
|
| +.flex-item-fixed-2-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 16.6%;
|
| +}
|
| +
|
| +.flex-item-fixed-4-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 33.3333%;
|
| +}
|
| +
|
| +.flex-item-fixed-6-12, .flex-item-50-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 50%;
|
| +}
|
| +
|
| +.flex-item-fixed-8-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 66.6666%;
|
| +}
|
| +
|
| +.flex-item-fixed-9-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 75%;
|
| +}
|
| +
|
| +
|
| +.flex-item-fixed-12-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 100%;
|
| +}
|
| +
|
| +.flex-item-10-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 10%;
|
| +}
|
| +
|
| +.flex-item-15-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 15%;
|
| +}
|
| +
|
| +.flex-item-20-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 20%;
|
| +}
|
| +
|
| +.flex-item-30-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 30%;
|
| +}
|
| +
|
| +.flex-item-40-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 40%;
|
| +}
|
| +
|
| +.flex-item-60-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 60%;
|
| +}
|
| +
|
| +.flex-item-70-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 70%;
|
| +}
|
| +
|
| +.flex-item-80-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 80%;
|
| +}
|
| +
|
| +.well {
|
| + min-height: 20px;
|
| + padding: 19px;
|
| + margin-bottom: 20px;
|
| + background-color: #f5f5f5;
|
| + border: 1px solid #e3e3e3;
|
| + border-radius: 4px;
|
| + box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
|
| +}
|
| +
|
| +.break-wrap {
|
| + word-wrap: break-word;
|
| +}
|
| +</style>
|
| + <style>
|
| + .table {
|
| + border-collapse: collapse!important;
|
| + width: 100%;
|
| + margin-bottom: 20px
|
| + }
|
| + .table thead > tr > th,
|
| + .table tbody > tr > th,
|
| + .table tfoot > tr > th,
|
| + .table thead > tr > td,
|
| + .table tbody > tr > td,
|
| + .table tfoot > tr > td {
|
| + padding: 8px;
|
| + vertical-align: top;
|
| + }
|
| + .table thead > tr > th {
|
| + vertical-align: bottom;
|
| + text-align: left;
|
| + border-bottom:2px solid #ddd;
|
| + }
|
| +
|
| + tr:hover > td {
|
| + background-color: #FFF3E3;
|
| + }
|
| + .rowColor0 {
|
| + background-color: #FFE9CC;
|
| + }
|
| + .rowColor1 {
|
| + background-color: #FFDEB2;
|
| + }
|
| + .rowColor2 {
|
| + background-color: #FFD399;
|
| + }
|
| + .rowColor3 {
|
| + background-color: #FFC87F;
|
| + }
|
| + .rowColor4 {
|
| + background-color: #FFBD66;
|
| + }
|
| + .rowColor5 {
|
| + background-color: #FFB24C;
|
| + }
|
| + .rowColor6 {
|
| + background-color: #FFA733;
|
| + }
|
| + .rowColor7 {
|
| + background-color: #FF9C19;
|
| + }
|
| + .rowColor8 {
|
| + background-color: #FF9100;
|
| + }
|
| +
|
| + .tooltip {
|
| + display: block;
|
| + position: absolute;
|
| + visibility: hidden;
|
| + opacity: 0;
|
| + transition: visibility 0s linear 0.5s;
|
| + transition: opacity .4s ease-in-out;
|
| + }
|
| +
|
| + tr:hover .tooltip {
|
| + display: block;
|
| + position: absolute;
|
| + top: 100%;
|
| + right: 100%;
|
| + visibility: visible;
|
| + z-index: 999;
|
| + width: 400px;
|
| + color: #ffffff;
|
| + background-color: #0489c3;
|
| + border-top-right-radius: 8px;
|
| + border-top-left-radius: 8px;
|
| + border-bottom-right-radius: 8px;
|
| + border-bottom-left-radius: 8px;
|
| + transition: visibility 0s linear 0.5s;
|
| + transition: opacity .4s ease-in-out;
|
| + opacity: 1;
|
| + }
|
| +
|
| + .white {
|
| + color: #ffffff;
|
| + }
|
| + </style>
|
| + <nav-bar>
|
| + <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-control></nav-control>
|
| + </nav-bar>
|
| + <div class="content-centered">
|
| + <h1>Class Hierarchy</h1>
|
| + <table id="tableTree" class="table">
|
| + <thead>
|
| + <tr>
|
| + <th>Class</th>
|
| + </tr>
|
| + </thead>
|
| + <tbody>
|
| + <tr template="" repeat="{{row in tree.rows }}">
|
| + <td on-click="{{toggleExpanded}}" class="{{ coloring(row) }}" style="{{ padding(row) }}">
|
| + <span id="expand" style="{{ row.expanderStyle }}">{{ row.expander }}</span>
|
| + <class-ref ref="{{ row.cls }}"></class-ref>
|
| + </td>
|
| + </tr>
|
| + </tbody>
|
| + </table>
|
| + </div>
|
| + </template>
|
| +</polymer-element>
|
| +
|
| +
|
| +
|
|
|
|
|
|
|
| @@ -2055,7 +2432,7 @@
|
| <template if="{{ (ref['declared_type']['name'] != 'dynamic') }}">
|
| <instance-ref ref="{{ ref['declared_type'] }}"></instance-ref>
|
| </template>
|
| - <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
|
| </div>
|
| </template>
|
|
|
| @@ -2306,7 +2683,7 @@
|
| --><template if="{{ qualified && hasParent }}"><!--
|
| --><function-ref ref="{{ ref['parent'] }}" qualified="{{ true }}">
|
| </function-ref>.<!--
|
| - --></template><a href="{{ url }}">{{ name }}</a><!--
|
| + --></template><a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a><!--
|
| --></template><template if="{{ !isDart }}"><span> {{ name }}</span></template></template>
|
|
|
| </polymer-element>
|
| @@ -2550,10 +2927,10 @@
|
| }
|
| </style>
|
| <template if="{{ nameIsEmpty }}">
|
| - <a href="{{ url }}">unnamed</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">unnamed</a>
|
| </template>
|
| <template if="{{ !nameIsEmpty }}">
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| </template>
|
|
|
| @@ -2799,7 +3176,7 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" title="{{ hoverText }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
|
|
| </polymer-element>
|
| @@ -3044,17 +3421,18 @@
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ cls.isolate }}"></isolate-nav-menu>
|
| - <library-nav-menu library="{{ cls['library'] }}"></library-nav-menu>
|
| + <library-nav-menu library="{{ cls.library }}"></library-nav-menu>
|
| <class-nav-menu cls="{{ cls }}" last="{{ true }}"></class-nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| <h1>
|
| - <template if="{{ cls['abstract'] }}">
|
| + <template if="{{ cls.isAbstract }}">
|
| abstract
|
| </template>
|
| - <template if="{{ cls['patch'] }}">
|
| + <template if="{{ cls.isPatch }}">
|
| patch
|
| </template>
|
| class {{ cls.name }}
|
| @@ -3063,32 +3441,32 @@
|
| <div class="memberItem">
|
| <div class="memberName">library</div>
|
| <div class="memberValue">
|
| - <library-ref ref="{{ cls['library'] }}"></library-ref>
|
| + <library-ref ref="{{ cls.library }}"></library-ref>
|
| </div>
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberName">script</div>
|
| <div class="memberValue">
|
| - <script-ref ref="{{ cls['script'] }}" pos="{{ cls['tokenPos'] }}">
|
| + <script-ref ref="{{ cls.script }}" pos="{{ cls.tokenPos }}">
|
| </script-ref>
|
| </div>
|
| </div>
|
|
|
| <div class="memberItem"> </div>
|
|
|
| - <template if="{{ cls['super'] != null }}">
|
| + <template if="{{ cls.superClass != null }}">
|
| <div class="memberItem">
|
| <div class="memberName">extends</div>
|
| <div class="memberValue">
|
| - <class-ref ref="{{ cls['super'] }}"></class-ref>
|
| + <class-ref ref="{{ cls.superClass }}"></class-ref>
|
| </div>
|
| </div>
|
| </template>
|
| - <template if="{{ cls['subclasses'].length > 0 }}">
|
| + <template if="{{ cls.subClasses.length > 0 }}">
|
| <div class="memberItem">
|
| <div class="memberName">extended by</div>
|
| <div class="memberValue">
|
| - <template repeat="{{ subclass in cls['subclasses'] }}">
|
| + <template repeat="{{ subclass in cls.subClasses }}">
|
| <class-ref ref="{{ subclass }}"></class-ref>
|
| </template>
|
| </div>
|
| @@ -3097,11 +3475,11 @@
|
|
|
| <div class="memberItem"> </div>
|
|
|
| - <template if="{{ cls['interfaces'].length > 0 }}">
|
| + <template if="{{ cls.interfaces.length > 0 }}">
|
| <div class="memberItem">
|
| <div class="memberName">implements</div>
|
| <div class="memberValue">
|
| - <template repeat="{{ interface in cls['interfaces'] }}">
|
| + <template repeat="{{ interface in cls.interfaces }}">
|
| <class-ref ref="{{ interface }}"></class-ref>
|
| </template>
|
| </div>
|
| @@ -3122,19 +3500,19 @@
|
| </div>
|
| </div>
|
|
|
| - <template if="{{ cls['error'] != null }}">
|
| + <template if="{{ cls.error != null }}">
|
| <!-- TODO(turnidge): Don't use instance-ref for error display here -->
|
| - <instance-ref ref="{{ cls['error'] }}"></instance-ref>
|
| + <instance-ref ref="{{ cls.error }}"></instance-ref>
|
| </template>
|
|
|
| <hr>
|
|
|
| <div class="content">
|
| - <template if="{{ cls['fields'].isNotEmpty }}">
|
| + <template if="{{ cls.fields.isNotEmpty }}">
|
| fields ({{ cls['fields'].length }})
|
| - <curly-block expand="{{ cls['fields'].length <= 8 }}">
|
| + <curly-block expand="{{ cls.fields.length <= 8 }}">
|
| <div class="memberList">
|
| - <template repeat="{{ field in cls['fields'] }}">
|
| + <template repeat="{{ field in cls.fields }}">
|
| <div class="memberItem">
|
| <div class="memberName">
|
| <field-ref ref="{{ field }}"></field-ref>
|
| @@ -3150,11 +3528,11 @@
|
| </curly-block><br><br>
|
| </template>
|
|
|
| - <template if="{{ cls['functions'].isNotEmpty }}">
|
| - functions ({{ cls['functions'].length }})
|
| - <curly-block expand="{{ cls['functions'].length <= 8 }}">
|
| + <template if="{{ cls.functions.isNotEmpty }}">
|
| + functions ({{ cls.functions.length }})
|
| + <curly-block expand="{{ cls.functions.length <= 8 }}">
|
| <div class="memberList">
|
| - <template repeat="{{ function in cls['functions'] }}">
|
| + <template repeat="{{ function in cls.functions }}">
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| <function-ref ref="{{ function }}" qualified="{{ false }}">
|
| @@ -3419,10 +3797,10 @@
|
| </style>
|
| <template if="{{ code.isDartCode }}">
|
| <template if="{{ code.isOptimized }}">
|
| - <a href="{{ url }}">*{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">*{{ name }}</a>
|
| </template>
|
| <template if="{{ !code.isOptimized }}">
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| </template>
|
| <template if="{{ !code.isDartCode }}">
|
| @@ -3724,6 +4102,7 @@
|
| <isolate-nav-menu isolate="{{ code.isolate }}"></isolate-nav-menu>
|
| <nav-menu link="." anchor="{{ code.name }}" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <div class="content">
|
| <template if="{{ code.isDartCode && code.isOptimized }}">
|
| @@ -4088,6 +4467,7 @@
|
| </style>
|
| <nav-bar>
|
| <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <div class="content-centered">
|
| <h1>{{ error.kind }}</h1>
|
| @@ -4352,8 +4732,9 @@
|
| <template if="{{ field['owner'].serviceType == 'Library' }}">
|
| <library-nav-menu library="{{ field['owner'] }}"></library-nav-menu>
|
| </template>
|
| - <nav-menu link="{{ field.hashLink }}" anchor="{{ field['user_name'] }}" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ field.link }}" anchor="{{ field['user_name'] }}" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -4942,8 +5323,9 @@
|
| </style>
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| - <nav-menu link="{{ flagList.isolate.relativeHashLink('flags') }}" anchor="flags" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ flagList.vm.relativeLink('flags') }}" anchor="flags" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content-centered">
|
| @@ -5525,8 +5907,9 @@
|
| <template if="{{ function['owner'].serviceType == 'Library' }}">
|
| <library-nav-menu library="{{ function['owner'] }}"></library-nav-menu>
|
| </template>
|
| - <nav-menu link="{{ function.hashLink }}" anchor="{{ function.name }}" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ function.link }}" anchor="{{ function.name }}" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -5878,8 +6261,9 @@
|
| <nav-bar pad="{{ false }}">
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ fragmentation.isolate }}"></isolate-nav-menu>
|
| - <nav-menu link="{{ fragmentation.isolate.relativeHashLink('heapmap') }}" anchor="heap map" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ fragmentation.isolate.relativeLink('heapmap') }}" anchor="heap map" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <div class="hover">
|
| <p style="text-align:center">{{ status }}</p>
|
| @@ -6139,6 +6523,7 @@
|
| <nav-bar>
|
| <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -6148,7 +6533,7 @@
|
|
|
| <ul class="list-group">
|
| <li class="list-group-item">
|
| - <a href="{{io.isolate.relativeHashLink('io/http/servers')}}">HTTP Servers</a>
|
| + <a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/http/servers'))}}">HTTP Servers</a>
|
| </li>
|
| </ul>
|
|
|
| @@ -6156,7 +6541,7 @@
|
|
|
| <ul class="list-group">
|
| <li class="list-group-item">
|
| - <a href="{{io.isolate.relativeHashLink('io/sockets')}}">Sockets</a>
|
| + <a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/sockets'))}}">Sockets</a>
|
| </li>
|
| </ul>
|
|
|
| @@ -6164,7 +6549,7 @@
|
|
|
| <ul class="list-group">
|
| <li class="list-group-item">
|
| - <a href="{{io.isolate.relativeHashLink('io/websockets')}}">WebSockets</a>
|
| + <a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/websockets'))}}">WebSockets</a>
|
| </li>
|
| </ul>
|
|
|
| @@ -6172,7 +6557,7 @@
|
|
|
| <ul class="list-group">
|
| <li class="list-group-item">
|
| - <a href="{{io.isolate.relativeHashLink('io/file/randomaccessfiles')}}">Random Access Files</a>
|
| + <a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/file/randomaccessfiles'))}}">Random Access Files</a>
|
| </li>
|
| </ul>
|
|
|
| @@ -6180,7 +6565,7 @@
|
|
|
| <ul class="list-group">
|
| <li class="list-group-item">
|
| - <a href="{{io.isolate.relativeHashLink('io/processes')}}">Processess</a>
|
| + <a on-click="{{ goto }}" href="{{gotoLink(io.isolate.relativeLink('io/processes'))}}">Processess</a>
|
| </li>
|
| </ul>
|
|
|
| @@ -6431,6 +6816,9 @@
|
| <template if="{{ ref.serviceType == 'Socket' }}">
|
| <io-socket-ref ref="{{ ref }}"></io-socket-ref>
|
| </template>
|
| + <template if="{{ ref.serviceType == 'HttpServerConnection' }}">
|
| + <io-http-server-connection-ref ref="{{ ref }}"></io-http-server-connection-ref>
|
| + </template>
|
| <template if="{{ ref.serviceType == 'HttpServer' }}">
|
| <io-http-server-ref ref="{{ ref }}"></io-http-server-ref>
|
| </template>
|
| @@ -6943,7 +7331,7 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| </polymer-element>
|
|
|
| @@ -7211,11 +7599,23 @@
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberName">Active connections</div>
|
| - <div class="memberValue">{{ httpServer['active'] }}</div>
|
| + <ul class="list-group">
|
| + <template repeat="{{ connection in httpServer['active'] }}">
|
| + <li class="list-group-item">
|
| + <io-http-server-connection-ref ref="{{ connection }}"></io-http-server-connection-ref>
|
| + </li>
|
| + </template>
|
| + </ul>
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberName">Idle connections</div>
|
| - <div class="memberValue">{{ httpServer['idle'] }}</div>
|
| + <ul class="list-group">
|
| + <template repeat="{{ connection in httpServer['idle'] }}">
|
| + <li class="list-group-item">
|
| + <io-http-server-connection-ref ref="{{ connection }}"></io-http-server-connection-ref>
|
| + </li>
|
| + </template>
|
| + </ul>
|
| </div>
|
| </div>
|
| </div>
|
| @@ -7224,7 +7624,7 @@
|
| </template>
|
| </polymer-element>
|
|
|
| -<polymer-element name="io-socket-ref" extends="service-ref">
|
| +<polymer-element name="io-http-server-connection-ref" extends="service-ref">
|
| <template>
|
| <style>
|
| /* Global styles */
|
| @@ -7466,6 +7866,517 @@
|
| </template>
|
| </polymer-element>
|
|
|
| +<polymer-element name="io-http-server-connection-view" extends="observatory-element">
|
| + <template>
|
| + <style>
|
| +/* Global styles */
|
| +* {
|
| + margin: 0;
|
| + padding: 0;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + color: #333;
|
| + box-sizing: border-box;
|
| +}
|
| +
|
| +.content {
|
| + padding-left: 10%;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| +}
|
| +
|
| +.content-centered {
|
| + padding-left: 10%;
|
| + padding-right: 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;
|
| +}
|
| +
|
| +.monospace {
|
| + font-family: consolas, courier, monospace;
|
| + font-size: 1em;
|
| + line-height: 1.2em;
|
| + white-space: nowrap;
|
| +}
|
| +
|
| +a {
|
| + color: #0489c3;
|
| + text-decoration: none;
|
| +}
|
| +
|
| +a:hover {
|
| + text-decoration: underline;
|
| +}
|
| +
|
| +em {
|
| + color: inherit;
|
| + font-style: italic;
|
| +}
|
| +
|
| +b {
|
| + color: inherit;
|
| + font-weight: bold;
|
| +}
|
| +
|
| +hr {
|
| + margin-top: 20px;
|
| + margin-bottom: 20px;
|
| + border: 0;
|
| + border-top: 1px solid #eee;
|
| + height: 0;
|
| + box-sizing: content-box;
|
| +}
|
| +
|
| +.list-group {
|
| + padding-left: 0;
|
| + margin-bottom: 20px;
|
| +}
|
| +
|
| +.list-group-item {
|
| + position: relative;
|
| + display: block;
|
| + padding: 10px 15px;
|
| + margin-bottom: -1px;
|
| + background-color: #fff;
|
| +}
|
| +
|
| +.list-group-item:first-child {
|
| + /* rounded top corners */
|
| + border-top-right-radius:4px;
|
| + border-top-left-radius:4px;
|
| +}
|
| +
|
| +.list-group-item:last-child {
|
| + margin-bottom: 0;
|
| + /* rounded bottom corners */
|
| + border-bottom-right-radius: 4px;
|
| + border-bottom-left-radius:4px;
|
| +}
|
| +
|
| +/* Flex row container */
|
| +.flex-row {
|
| + display: flex;
|
| + flex-direction: row;
|
| +}
|
| +
|
| +/* Flex column container */
|
| +.flex-column {
|
| + display: flex;
|
| + flex-direction: column;
|
| +}
|
| +
|
| +.flex-item-fit {
|
| + flex-grow: 1;
|
| + flex-shrink: 1;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-no-shrink {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-fill {
|
| + flex-grow: 0;
|
| + flex-shrink: 1; /* shrink when pressured */
|
| + flex-basis: 100%; /* try and take 100% */
|
| +}
|
| +
|
| +.flex-item-fixed-1-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 8.3%;
|
| +}
|
| +
|
| +.flex-item-fixed-2-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 16.6%;
|
| +}
|
| +
|
| +.flex-item-fixed-4-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 33.3333%;
|
| +}
|
| +
|
| +.flex-item-fixed-6-12, .flex-item-50-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 50%;
|
| +}
|
| +
|
| +.flex-item-fixed-8-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 66.6666%;
|
| +}
|
| +
|
| +.flex-item-fixed-9-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 75%;
|
| +}
|
| +
|
| +
|
| +.flex-item-fixed-12-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 100%;
|
| +}
|
| +
|
| +.flex-item-10-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 10%;
|
| +}
|
| +
|
| +.flex-item-15-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 15%;
|
| +}
|
| +
|
| +.flex-item-20-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 20%;
|
| +}
|
| +
|
| +.flex-item-30-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 30%;
|
| +}
|
| +
|
| +.flex-item-40-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 40%;
|
| +}
|
| +
|
| +.flex-item-60-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 60%;
|
| +}
|
| +
|
| +.flex-item-70-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 70%;
|
| +}
|
| +
|
| +.flex-item-80-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 80%;
|
| +}
|
| +
|
| +.well {
|
| + min-height: 20px;
|
| + padding: 19px;
|
| + margin-bottom: 20px;
|
| + background-color: #f5f5f5;
|
| + border: 1px solid #e3e3e3;
|
| + border-radius: 4px;
|
| + box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
|
| +}
|
| +
|
| +.break-wrap {
|
| + word-wrap: break-word;
|
| +}
|
| +</style>
|
| +
|
| + <nav-bar>
|
| + <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + </nav-bar>
|
| +
|
| + <div class="content">
|
| + <h1>HttpConnection</h1>
|
| +
|
| + <br>
|
| +
|
| + <div class="memberList">
|
| + <div class="memberItem">
|
| + <div class="memberName">Socket</div>
|
| + <div class="memberValue"><io-socket-ref ref="{{ connection['socket'] }}"></io-socket-ref></div>
|
| + </div>
|
| + <div class="memberItem">
|
| + <div class="memberName">State</div>
|
| + <div class="memberValue">{{ connection['state'] }}</div>
|
| + </div>
|
| + <div class="memberItem">
|
| + <div class="memberName">Server</div>
|
| + <div class="memberValue"><io-http-server-ref ref="{{ connection['server'] }}"></io-http-server-ref></div>
|
| + </div>
|
| + </div>
|
| + </div>
|
| + <br>
|
| + <hr>
|
| + </template>
|
| +</polymer-element>
|
| +
|
| +<polymer-element name="io-socket-ref" extends="service-ref">
|
| + <template>
|
| + <style>
|
| +/* Global styles */
|
| +* {
|
| + margin: 0;
|
| + padding: 0;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| + color: #333;
|
| + box-sizing: border-box;
|
| +}
|
| +
|
| +.content {
|
| + padding-left: 10%;
|
| + font: 400 14px 'Montserrat', sans-serif;
|
| +}
|
| +
|
| +.content-centered {
|
| + padding-left: 10%;
|
| + padding-right: 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;
|
| +}
|
| +
|
| +.monospace {
|
| + font-family: consolas, courier, monospace;
|
| + font-size: 1em;
|
| + line-height: 1.2em;
|
| + white-space: nowrap;
|
| +}
|
| +
|
| +a {
|
| + color: #0489c3;
|
| + text-decoration: none;
|
| +}
|
| +
|
| +a:hover {
|
| + text-decoration: underline;
|
| +}
|
| +
|
| +em {
|
| + color: inherit;
|
| + font-style: italic;
|
| +}
|
| +
|
| +b {
|
| + color: inherit;
|
| + font-weight: bold;
|
| +}
|
| +
|
| +hr {
|
| + margin-top: 20px;
|
| + margin-bottom: 20px;
|
| + border: 0;
|
| + border-top: 1px solid #eee;
|
| + height: 0;
|
| + box-sizing: content-box;
|
| +}
|
| +
|
| +.list-group {
|
| + padding-left: 0;
|
| + margin-bottom: 20px;
|
| +}
|
| +
|
| +.list-group-item {
|
| + position: relative;
|
| + display: block;
|
| + padding: 10px 15px;
|
| + margin-bottom: -1px;
|
| + background-color: #fff;
|
| +}
|
| +
|
| +.list-group-item:first-child {
|
| + /* rounded top corners */
|
| + border-top-right-radius:4px;
|
| + border-top-left-radius:4px;
|
| +}
|
| +
|
| +.list-group-item:last-child {
|
| + margin-bottom: 0;
|
| + /* rounded bottom corners */
|
| + border-bottom-right-radius: 4px;
|
| + border-bottom-left-radius:4px;
|
| +}
|
| +
|
| +/* Flex row container */
|
| +.flex-row {
|
| + display: flex;
|
| + flex-direction: row;
|
| +}
|
| +
|
| +/* Flex column container */
|
| +.flex-column {
|
| + display: flex;
|
| + flex-direction: column;
|
| +}
|
| +
|
| +.flex-item-fit {
|
| + flex-grow: 1;
|
| + flex-shrink: 1;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-no-shrink {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: auto;
|
| +}
|
| +
|
| +.flex-item-fill {
|
| + flex-grow: 0;
|
| + flex-shrink: 1; /* shrink when pressured */
|
| + flex-basis: 100%; /* try and take 100% */
|
| +}
|
| +
|
| +.flex-item-fixed-1-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 8.3%;
|
| +}
|
| +
|
| +.flex-item-fixed-2-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 16.6%;
|
| +}
|
| +
|
| +.flex-item-fixed-4-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 33.3333%;
|
| +}
|
| +
|
| +.flex-item-fixed-6-12, .flex-item-50-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 50%;
|
| +}
|
| +
|
| +.flex-item-fixed-8-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 66.6666%;
|
| +}
|
| +
|
| +.flex-item-fixed-9-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 75%;
|
| +}
|
| +
|
| +
|
| +.flex-item-fixed-12-12 {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 100%;
|
| +}
|
| +
|
| +.flex-item-10-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 10%;
|
| +}
|
| +
|
| +.flex-item-15-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 15%;
|
| +}
|
| +
|
| +.flex-item-20-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 20%;
|
| +}
|
| +
|
| +.flex-item-30-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 30%;
|
| +}
|
| +
|
| +.flex-item-40-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 40%;
|
| +}
|
| +
|
| +.flex-item-60-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 60%;
|
| +}
|
| +
|
| +.flex-item-70-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 70%;
|
| +}
|
| +
|
| +.flex-item-80-percent {
|
| + flex-grow: 0;
|
| + flex-shrink: 0;
|
| + flex-basis: 80%;
|
| +}
|
| +
|
| +.well {
|
| + min-height: 20px;
|
| + padding: 19px;
|
| + margin-bottom: 20px;
|
| + background-color: #f5f5f5;
|
| + border: 1px solid #e3e3e3;
|
| + border-radius: 4px;
|
| + box-shadow: inset 0 1px 1px rgba(0,0,0,0.05);
|
| +}
|
| +
|
| +.break-wrap {
|
| + word-wrap: break-word;
|
| +}
|
| +</style>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| + </template>
|
| +</polymer-element>
|
| +
|
| <polymer-element name="io-socket-list-view" extends="observatory-element">
|
| <template>
|
| <style>
|
| @@ -8297,7 +9208,7 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| </polymer-element>
|
|
|
| @@ -9062,7 +9973,7 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| </polymer-element>
|
|
|
| @@ -10098,10 +11009,10 @@
|
| }
|
| </style>
|
| <template if="{{ small }}">
|
| - <a href="{{ url }}">{{ name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ name }}</a>
|
| </template>
|
| <template if="{{ !small }}">
|
| - <a href="{{ url }}">({{ ref['pid'] }}) {{ name }} {{ ref['arguments'] }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">({{ ref['pid'] }}) {{ name }} {{ ref['arguments'] }}</a>
|
| </template>
|
| </template>
|
| </polymer-element>
|
| @@ -10421,7 +11332,6 @@
|
|
|
|
|
|
|
| -
|
| <polymer-element name="isolate-ref" extends="service-ref">
|
| <template><style>
|
| /* Global styles */
|
| @@ -10659,11 +11569,11 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a href="{{ url }}">{{ ref.name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ ref.name }}</a>
|
| </template>
|
| -
|
| </polymer-element>
|
|
|
| +
|
|
|
|
|
|
|
| @@ -11276,31 +12186,38 @@
|
| <br>
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('stacktrace') }}">stack trace</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink('/class-tree' + isolate.link) }}">class hierarchy</a>
|
| </div>
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('profile') }}">cpu profile</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('stacktrace')) }}">stack trace</a>
|
| </div>
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('allocationprofile') }}">allocation profile</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('profile')) }}">cpu profile</a>
|
| </div>
|
| </div>
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('heapmap') }}">heap map</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('allocationprofile')) }}">allocation profile</a>
|
| </div>
|
| </div>
|
| + <div class="memberItem">
|
| + <div class="memberValue">
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('heapmap')) }}">heap map</a>
|
| + </div>
|
| + </div>
|
| + <!-- Disable io link until UI is properly implemented.
|
| <template if="{{ isolate.ioEnabled }}">
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('io') }}">dart:io</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('io')) }}">dart:io</a>
|
| </div>
|
| </div>
|
| </template>
|
| + -->
|
| </div>
|
| <div class="flex-item-10-percent">
|
| </div>
|
| @@ -11579,6 +12496,7 @@
|
| <isolate-nav-menu isolate="{{ isolate }}" last="{{ true }}">
|
| </isolate-nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -11649,7 +12567,7 @@
|
| <div class="flex-item-50-percent">
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="{{ isolate.relativeHashLink('debug/breakpoints') }}">breakpoints</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink(isolate.relativeLink('debug/breakpoints')) }}">breakpoints</a>
|
| </div>
|
| </div>
|
| </div>
|
| @@ -11944,6 +12862,7 @@
|
| <class-nav-menu cls="{{ instance['class'] }}"></class-nav-menu>
|
| <nav-menu link="." anchor="instance" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <template if="{{ instance['error'] != null }}">
|
| @@ -12369,6 +13288,7 @@
|
| <isolate-nav-menu isolate="{{ library.isolate }}"></isolate-nav-menu>
|
| <library-nav-menu library="{{ library }}" last="{{ true }}"></library-nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -12495,7 +13415,6 @@
|
|
|
|
|
|
|
| -
|
|
|
|
|
|
|
| @@ -12509,8 +13428,6 @@
|
|
|
|
|
|
|
| -
|
| -
|
|
|
|
|
|
|
| @@ -12788,10 +13705,11 @@
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
|
| - <nav-menu link="{{ profile.isolate.relativeHashLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ profile.isolate.relativeLink('allocationprofile') }}" anchor="heap profile" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ resetAccumulator }}" label="Reset Accumulator"></nav-refresh>
|
| <nav-refresh callback="{{ refreshGC }}" label="GC"></nav-refresh>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="flex-row">
|
| @@ -13196,8 +14114,9 @@
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ profile.isolate }}"></isolate-nav-menu>
|
| - <nav-menu link="{{ profile.isolate.relativeHashLink('profile') }}" anchor="cpu profile" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ profile.isolate.relativeLink('profile') }}" anchor="cpu profile" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <style>
|
| .table {
|
| @@ -13624,8 +14543,8 @@
|
| </li>
|
| </nav-menu>
|
| <nav-refresh callback="{{ refreshCoverage }}" label="Refresh Coverage"></nav-refresh>
|
| - <nav-refresh callback="{{ refresh }}">
|
| - </nav-refresh>
|
| + <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <script-inset id="scriptInset" script="{{ script }}" pos="{{ script.firstTokenPos }}" endpos="{{ script.lastTokenPos }}">
|
| @@ -13879,8 +14798,9 @@
|
| <nav-bar>
|
| <top-nav-menu></top-nav-menu>
|
| <isolate-nav-menu isolate="{{ trace.isolate }}"></isolate-nav-menu>
|
| - <nav-menu link="{{ trace.isolate.relativeHashLink('stacktrace') }}" anchor="stack trace" last="{{ true }}"></nav-menu>
|
| + <nav-menu link="{{ trace.isolate.relativeLink('stacktrace') }}" anchor="stack trace" last="{{ true }}"></nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <template if="{{ trace['members'].isEmpty }}">
|
| <div class="content">
|
| @@ -14150,6 +15070,7 @@
|
| <nav-bar>
|
| <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
|
|
| <div class="content">
|
| @@ -14174,7 +15095,7 @@
|
| <br>
|
| <div class="memberItem">
|
| <div class="memberValue">
|
| - See <a href="#/flags">flags</a>
|
| + See <a on-click="{{ goto }}" href="{{ gotoLink('/flags') }}">flags</a>
|
| </div>
|
| </div>
|
| </div>
|
| @@ -14199,16 +15120,9 @@
|
| an observable property on the old element to an invalid type. -->
|
|
|
| </polymer-element>
|
| -<polymer-element name="response-viewer" extends="observatory-element">
|
| - <template>
|
| - <service-view object="{{ app.response }}"></service-view>
|
| - </template>
|
| +<polymer-element name="observatory-application" extends="observatory-element">
|
| + <!-- This element explicitly manages its child elements -->
|
|
|
| -</polymer-element><polymer-element name="observatory-application" extends="observatory-element">
|
| - <template>
|
| - <response-viewer app="{{ this.app }}"></response-viewer>
|
| - </template>
|
| -
|
| </polymer-element>
|
|
|
|
|
| @@ -14453,6 +15367,7 @@
|
| </style>
|
| <nav-bar>
|
| <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <div class="content-centered">
|
| <h1>{{ exception.kind }}</h1>
|
| @@ -14708,6 +15623,7 @@
|
| </style>
|
| <nav-bar>
|
| <top-nav-menu last="{{ true }}"></top-nav-menu>
|
| + <nav-control></nav-control>
|
| </nav-bar>
|
| <div class="content-centered">
|
| <h1>{{ error.kind }}</h1>
|
| @@ -14956,7 +15872,7 @@
|
| word-wrap: break-word;
|
| }
|
| </style>
|
| - <a href="{{ url }}">{{ ref.name }}</a>
|
| + <a on-click="{{ goto }}" href="{{ url }}">{{ ref.name }}</a>
|
| </template>
|
|
|
| </polymer-element>
|
|
|