| <style> | |
| @media (prefers-color-scheme: dark) { | |
| :host { | |
| color: var(--cr-secondary-text-color); | |
| } | |
| } | |
| .add-origin-container { | |
| display: flex; | |
| padding-top: 10px; | |
| } | |
| table { | |
| border-collapse: collapse; | |
| } | |
| table td, | |
| table th { | |
| border: 1px solid #777; | |
| padding-inline-end: 4px; | |
| padding-inline-start: 4px; | |
| } | |
| table th { | |
| background: rgb(224, 236, 255); | |
| color: black; | |
| padding-bottom: 4px; | |
| padding-inline-end: 16px; | |
| padding-top: 4px; | |
| white-space: nowrap; | |
| } | |
| .header-cell-container { | |
| align-items: center; | |
| display: flex; | |
| justify-content: flex-start; | |
| } | |
| table th[data-sort-key] { | |
| cursor: pointer; | |
| } | |
| th div.header-cell-container::after { | |
| content: '▲'; | |
| opacity: 0; | |
| } | |
| th.sort-column div.header-cell-container::after { | |
| content: '▲'; | |
| opacity: 1; | |
| } | |
| th.sort-column-reverse div.header-cell-container::after { | |
| content: '▼'; | |
| opacity: 1; | |
| } | |
| </style> | |
| <div> | |
| <div>Database Rows: [[optionalIntegerToString_(size_.numRows)]]</div> | |
| <div>Database Size: [[kilobytesToString_(size_.onDiskSizeKb)]]</div> | |
| </div> | |
| <table> | |
| <thead> | |
| <tr> | |
| <th data-sort-key="origin" class="sort-column" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| Origin | |
| </div> | |
| </th> | |
| <th data-sort-key="dirty" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| Dirty | |
| </div> | |
| </th> | |
| <th data-sort-key="lastLoaded" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| Last Loaded | |
| </div> | |
| </th> | |
| <th> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Updates Favicon</div> | |
| <div>In Background</div> | |
| </div> | |
| </div> | |
| </th> | |
| <th> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Updates Title</div> | |
| <div>In Background</div> | |
| </div> | |
| </div> | |
| </th> | |
| <th> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Used Audio</div> | |
| <div>In Background</div> | |
| </div> | |
| </div> | |
| </th> | |
| <th data-sort-key="cpuUsage" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Average</div> | |
| <div>CPU Usage</div> | |
| </div> | |
| </div> | |
| </th> | |
| <th data-sort-key="memoryUsage" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Average Memory</div> | |
| <div>Footprint</div> | |
| </div> | |
| </div> | |
| </th> | |
| <th data-sort-key="loadDuration" on-click="onSortClick"> | |
| <div class="header-cell-container"> | |
| <div> | |
| <div>Average Load</div> | |
| <div>Time</div> | |
| </div> | |
| </div> | |
| </th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <template is="dom-repeat" items="[[rows_]]" | |
| sort="[[computeSortFunction_(sortKey, sortReverse)]]"> | |
| <tr> | |
| <td class="origin-cell">[[item.origin]]</td> | |
| <td class="dirty-cell">[[boolToString_(item.isDirty)]]</td> | |
| <td>[[lastUseToString_(item.value.lastLoaded)]]</td> | |
| <td>[[featureToString_(item.value.updatesFaviconInBackground)]]</td> | |
| <td>[[featureToString_(item.value.updatesTitleInBackground)]]</td> | |
| <td>[[featureToString_(item.value.usesAudioInBackground)]]</td> | |
| <td>[[getLoadTimeEstimate_(item, "avgCpuUsageUs")]]</td> | |
| <td>[[getLoadTimeEstimate_(item, "avgFootprintKb")]]</td> | |
| <td>[[getLoadTimeEstimate_(item, "avgLoadDurationUs")]]</td> | |
| </tr> | |
| </template> | |
| </tbody> | |
| </table> | |
| <div class="add-origin-container"> | |
| <cr-input id="addOriginInput" label="Add Origin" value="{{newOrigin_}}" | |
| on-keydown="onOriginKeydown_" placeholder="https://example.org" | |
| invalid="[[!isEmptyOrValidOrigin_(newOrigin_)]]" | |
| error-message="The origin must be a valid URL without a path." | |
| autofocus> | |
| <button slot="suffix" label="Add Origin" | |
| on-click="onAddOriginClick_" | |
| disabled="[[!isValidOrigin_(newOrigin_)]]"> | |
| <iron-icon icon="cr:check"></iron-icon> | |
| </button> | |
| </cr-input> | |
| </div> |