| Index: runtime/observatory/lib/src/elements/persistent_handles.html
|
| diff --git a/runtime/observatory/lib/src/elements/persistent_handles.html b/runtime/observatory/lib/src/elements/persistent_handles.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..90054945f83e21d17902e4f7f7c74db7ab252e5f
|
| --- /dev/null
|
| +++ b/runtime/observatory/lib/src/elements/persistent_handles.html
|
| @@ -0,0 +1,106 @@
|
| +<link rel="import" href="../../../../packages/polymer/polymer.html">
|
| +<link rel="import" href="nav_bar.html">
|
| +<link rel="import" href="observatory_element.html">
|
| +
|
| +<polymer-element name="persistent-handles-page" extends="observatory-element">
|
| + <template>
|
| + <link rel="stylesheet" href="css/shared.css">
|
| + <style>
|
| + .table {
|
| + border-collapse: collapse!important;
|
| + margin-bottom: 20px
|
| + table-layout: fixed;
|
| + width: 100%;
|
| + }
|
| + .table td:nth-of-type(1) {
|
| + width: 30%;
|
| + }
|
| + .th, .td {
|
| + padding: 8px;
|
| + vertical-align: top;
|
| + }
|
| + .table thead > tr > th {
|
| + vertical-align: bottom;
|
| + text-align: left;
|
| + border-bottom:2px solid #ddd;
|
| + }
|
| + .spacer {
|
| + width: 16px;
|
| + }
|
| + .left-border-spacer {
|
| + width: 16px;
|
| + border-left: 1px solid;
|
| + }
|
| + .clickable {
|
| + color: #0489c3;
|
| + text-decoration: none;
|
| + cursor: pointer;
|
| + }
|
| + .clickable:hover {
|
| + text-decoration: underline;
|
| + cursor: pointer;
|
| + }
|
| + #weakPersistentHandlesTable tr:hover > td {
|
| + background-color: #F4C7C3;
|
| + }
|
| + .nav-option {
|
| + color: white;
|
| + float: right;
|
| + margin: 3px;
|
| + padding: 8px;
|
| + }
|
| + </style>
|
| + <nav-bar>
|
| + <top-nav-menu></top-nav-menu>
|
| + <vm-nav-menu vm="{{ isolate.vm }}"></vm-nav-menu>
|
| + <isolate-nav-menu isolate="{{ isolate }}"></isolate-nav-menu>
|
| + <nav-menu link="{{ makeLink('/persistent-handles', isolate) }}" anchor="persistent handles" last="{{ true }}"></nav-menu>
|
| + <nav-refresh callback="{{ refresh }}"></nav-refresh>
|
| + </nav-bar>
|
| + <div class="content-centered-big">
|
| + <template if="{{ persistentHandles.isEmpty }}">
|
| + <h1>Persistent Handles (0)</h1>
|
| + <hr>
|
| + </template>
|
| + <template if="{{ persistentHandles.isNotEmpty }}">
|
| + <h1>Persistent Handles ({{ persistentHandles.length }})</h1>
|
| + <hr>
|
| + <curly-block expand="{{ persistentHandles.length <= 8 }}">
|
| + <div class="memberList">
|
| + <template repeat="{{ persistentHandle in persistentHandles }}">
|
| + <div class="memberItem">
|
| + <div class="memberValue">
|
| + <any-service-ref ref="{{ persistentHandle['object'] }}">
|
| + </any-service-ref>
|
| + </div>
|
| + </div>
|
| + </template>
|
| + </div>
|
| + </curly-block><br><br>
|
| + </template>
|
| + <br><br>
|
| + <template if="{{ weakPersistentHandles.isEmpty }}">
|
| + <h1>Weak Persistent Handles (0)</h1>
|
| + <hr>
|
| + </template>
|
| + <template if="{{ weakPersistentHandles.isNotEmpty }}">
|
| + <h1>Weak Persistent Handles ({{ weakPersistentHandles.length }})</h1>
|
| + <hr>
|
| + </template>
|
| + <table id="weakPersistentHandlesTable" class="flex-item-100-percent table">
|
| + <thead id="weakPersistentHandlesTableHead">
|
| + <tr>
|
| + <th on-click="{{changeSort}}" class="clickable" title="External Size">{{ weakPersistentHandlesTable.getColumnLabel(0) }}</th>
|
| + <th on-click="{{changeSort}}" class="clickable" title="Peer">{{ weakPersistentHandlesTable.getColumnLabel(1) }}</th>
|
| + <th on-click="{{changeSort}}" class="clickable" title="Finalizer Callback">{{ weakPersistentHandlesTable.getColumnLabel(2) }}</th>
|
| + <th class="spacer"></th>
|
| + <th on-click="{{changeSort}}" class="clickable" title="Object">{{ weakPersistentHandlesTable.getColumnLabel(4) }}</th>
|
| + </tr>
|
| + </thead>
|
| + <tbody id="weakPersistentHandlesTableBody">
|
| + </tbody>
|
| + </table>
|
| + <view-footer></view-footer>
|
| + </div>
|
| + </template>
|
| +</polymer-element>
|
|
|