| /* |
| * Copyright (C) 2017-2020 Apple Inc. All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * 1. Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * 2. Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
| * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
| * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
| * THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| .network-type-filter-scope-bar.default-item-selected:not(:hover) { |
| --scope-bar-text-color-override: var(--text-color); |
| --scope-bar-background-color-override: transparent; |
| --scope-bar-border-color-override: transparent; |
| } |
| |
| .network-type-filter-scope-bar.default-item-selected:hover { |
| --scope-bar-background-opacity-override: 0.5; |
| } |
| |
| .network-other-filters-button > .glyph { |
| width: 16px; |
| height: 16px; |
| color: var(--glyph-color); |
| opacity: var(--glyph-opacity); |
| } |
| |
| .network-other-filters-button:active > .glyph { |
| color: var(--glyph-color-pressed); |
| } |
| |
| .network-other-filters-button.active > .glyph { |
| color: var(--glyph-color-active); |
| } |
| |
| .network-other-filters-button.active:active > .glyph { |
| color: var(--glyph-color-active-pressed); |
| } |
| |
| .content-view.tab.network > .content-browser > .navigation-bar .hierarchical-path .icon { |
| margin-inline: 8px 4px; |
| } |
| |
| .network-overview-icon > .icon { |
| content: url(../Images/NetworkOverview.svg); |
| } |
| |
| .network-har-icon > .icon { |
| content: url(../Images/NetworkHAR.svg); |
| } |
| |
| .content-view.network .network-table { |
| display: flex; |
| flex-direction: column; |
| } |
| |
| .content-view.network .network-table > .table .icon { |
| position: relative; |
| width: 16px; |
| height: 16px; |
| bottom: 1px; |
| vertical-align: middle; |
| margin-inline-end: 4px; |
| } |
| |
| .network-table > .table li:not(.filler, .selected) .cell:not(.name, .current-session), |
| .network-table > .table li:not(.filler, .selected) .cell.name:not(.current-session) > * { |
| opacity: 0.5; |
| } |
| |
| .network-table > .table li:not(.filler) .cell.name { |
| cursor: pointer; |
| } |
| |
| .network-table > .table .cell.dom-node.name .icon { |
| content: url(../Images/TypeIcons.svg#DOMElement-light); |
| } |
| |
| .network-table > .table .cell.dom-node.name .disclosure { |
| width: 13px; |
| height: 13px; |
| vertical-align: -2px; |
| content: url(../Images/DisclosureTriangles.svg#closed-normal); |
| background-size: 13px 13px; |
| background-repeat: no-repeat; |
| } |
| |
| body[dir=rtl] .network-table > .table .cell.dom-node.name .disclosure { |
| transform: scaleX(-1); |
| } |
| |
| .network-table:focus > .table li.selected .cell.dom-node.name .disclosure { |
| content: url(../Images/DisclosureTriangles.svg#closed-selected); |
| } |
| |
| .network-table > .table .cell.dom-node.name .disclosure.expanded { |
| content: url(../Images/DisclosureTriangles.svg#open-normal); |
| } |
| |
| .network-table:focus > .table li.selected .cell.dom-node.name .disclosure.expanded { |
| content: url(../Images/DisclosureTriangles.svg#open-selected); |
| } |
| |
| .network-table > .table.grouped .data-container .cell.name { |
| --item-padding-start: 19px; |
| --item-disclosure-width: 11px; |
| } |
| |
| .network-table > .table.grouped .data-container .cell:not(.parent).name { |
| padding-inline-start: var(--item-padding-start); |
| } |
| |
| .network-table > .table.grouped .data-container .cell.child.name { |
| padding-inline-start: calc(var(--item-padding-start) + var(--item-disclosure-width)); |
| } |
| |
| .network-table > .table .data-container .cell.name .range { |
| color: hsla(0, 0%, 0%, 0.7); |
| } |
| |
| .network-table > .table .data-container .cell.name .range::before { |
| content: "\00A0\2014\00A0"; /* — */; |
| } |
| |
| .network-table:focus > .table .data-container li.selected .cell.name .range { |
| color: hsla(0, 0%, 100%, 0.9); |
| } |
| |
| .network-table > .table li:not(.selected) .cell:matches(.cache-type, .multiple) { |
| color: var(--text-color-gray-medium); |
| } |
| |
| .network-table > .table .cell.domain > .lock { |
| width: 8px; |
| height: 10px; |
| content: url(../Images/Locked.svg); |
| margin-inline-end: 5px; |
| } |
| |
| .network-table > .table li.selected .cell.domain > .lock { |
| /* FIXME: <https://webkit.org/b/189773> Web Inspector: create special Network waterfall for media events */ |
| filter: invert(); |
| } |
| |
| .network-table > .table .cell.name > .status { |
| margin-inline-start: 4px; |
| } |
| |
| body[dir=ltr] .network-table > .table .cell.name > .status { |
| float: right; |
| } |
| |
| body[dir=rtl] .network-table > .table .cell.name > .status { |
| float: left; |
| } |
| |
| .network-table > .table .cell.name > .status .indeterminate-progress-spinner { |
| margin-top: 3px; |
| width: 14px; |
| height: 14px; |
| } |
| |
| .network-table.showing-detail > .table .cell:not(.name) { |
| display: none; |
| } |
| |
| .network-table.showing-detail > .table .resizer:not(:first-of-type) { |
| display: none; |
| } |
| |
| .network-table.showing-detail > .table .timeline-ruler { |
| display: none; |
| } |
| |
| .network-table > .table .header .cell.waterfall { |
| /* Hide the label for this column. */ |
| color: transparent; |
| } |
| |
| .network-table > .table .header .cell.waterfall:matches(.sort-ascending, .sort-descending) { |
| background-color: var(--background-color-selected); |
| } |
| |
| .network-table > .table :not(.header) .cell:first-of-type { |
| background: rgba(0, 0, 0, 0.07); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall { |
| position: absolute; |
| height: 20px; |
| border-inline-start: 1px solid var(--graph-line-color); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container { |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .dom-event { |
| position: absolute; |
| top: calc(50% - (var(--node-waterfall-dom-event-size) / 2)); |
| min-width: var(--node-waterfall-dom-event-size); |
| height: var(--node-waterfall-dom-event-size); |
| background-color: var(--selected-background-color-active); |
| border-radius: calc(var(--node-waterfall-dom-event-size) / 2); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .dom-activity { |
| position: absolute; |
| top: calc(50% - 0.5px); |
| border-top: 1px dashed var(--selected-background-color-active); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .dom-activity.playing { |
| border-top-style: solid; |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .area { |
| position: absolute; |
| top: var(--area-padding); |
| height: calc(100% - (var(--area-padding) * 2)); |
| |
| /* Half of the vertical space above any .dom-event node */ |
| --area-padding: calc((50% - (var(--node-waterfall-dom-event-size) / 2)) / 2); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .area.dom-fullscreen { |
| background-color: hsl(0, 0%, 40%); |
| } |
| |
| .network-table > .table :not(.header) .cell.waterfall .waterfall-container > .area.power-efficient-playback { |
| background-color: var(--network-request-color); |
| } |
| |
| .network-table > .table .timeline-ruler { |
| position: absolute; |
| top: 0; |
| bottom: 0; |
| overflow: hidden; |
| } |
| |
| .network-table > .table .timeline-ruler > .header { |
| top: calc(var(--navigation-bar-height) - var(--timeline-ruler-height)); |
| } |
| |
| .content-view.network-table > .message-text-view { |
| top: var(--navigation-bar-height); |
| bottom: var(--network-statistics-height); |
| } |
| |
| .content-view.network-table > .message-text-view > .message { |
| font-size: var(--message-text-view-font-size); |
| font-weight: normal; |
| } |
| |
| /* Styles also used by `WI.ResourceTimingBreakdownView` (also inside a `WI.Popover`). */ |
| |
| .network-table .error { |
| color: var(--error-text-color); |
| } |
| |
| .waterfall.network .block { |
| position: absolute; |
| top: 8px; |
| min-width: 2px; |
| height: 4px; |
| |
| --start-radius: 2px; |
| --end-radius: 2px; |
| } |
| |
| body[dir=ltr] .waterfall.network .block { |
| border-top-left-radius: var(--start-radius); |
| border-top-right-radius: var(--end-radius); |
| border-bottom-left-radius: var(--start-radius); |
| border-bottom-right-radius: var(--end-radius); |
| } |
| |
| body[dir=rtl] .waterfall.network .block { |
| border-top-left-radius: var(--end-radius); |
| border-top-right-radius: var(--start-radius); |
| border-bottom-left-radius: var(--end-radius); |
| border-bottom-right-radius: var(--start-radius); |
| } |
| |
| .waterfall.network .block + .block { |
| --start-radius: 0; |
| --end-radius: 0; |
| } |
| |
| .waterfall.network .block:matches(.mouse-tracking, .filler) + .block:not(.mouse-tracking, .filler), |
| .waterfall.network .block:not(.request, .response) + :matches(.request, .response) { |
| --start-radius: 2px; |
| } |
| |
| .waterfall.network .block:last-child { |
| --end-radius: 2px; |
| } |
| |
| .waterfall.network .block.request, |
| .waterfall.network .block.response { |
| top: 3px; |
| height: 14px; |
| } |
| |
| .waterfall.network .block.mouse-tracking { |
| top: 1px; |
| z-index: 2; |
| height: 18px; |
| } |
| |
| .waterfall.network .block.filler { |
| top: 9px; |
| height: 2px; |
| background-color: lightgrey; |
| } |
| |
| .waterfall.network .block.redirect { |
| background-color: var(--network-redirect-color); |
| } |
| |
| .waterfall.network .block.queue { |
| background-color: var(--network-queue-color); |
| } |
| |
| .waterfall.network .block.dns { |
| background-color: var(--network-dns-color); |
| } |
| |
| .waterfall.network .block.connect { |
| background-color: var(--network-connect-color); |
| } |
| |
| .waterfall.network .block.secure { |
| background-color: var(--network-secure-color); |
| } |
| |
| .waterfall.network .block.request { |
| background-color: var(--network-request-color); |
| } |
| |
| .waterfall.network .block.response { |
| background-color: var(--network-response-color); |
| } |
| |
| .network-table > .statistics { |
| display: flex; |
| justify-content: center; |
| align-items: center; |
| min-height: var(--network-statistics-height); |
| padding: 4px 0; |
| border-top: 1px solid var(--border-color); |
| } |
| |
| .network-table > .statistics > .statistic { |
| display: flex; |
| padding: 0 8px; |
| } |
| |
| .network-table > .statistics > .statistic[hidden] { |
| display: none; |
| } |
| |
| .network-table > .statistics > .statistic > .icon { |
| width: 16px; |
| height: 16px; |
| } |
| |
| .network-table > .statistics > .statistic > .text { |
| padding-top: 1px; |
| padding-inline-start: 4px; |
| user-select: all; |
| font-variant-numeric: tabular-nums; |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| .content-view.tab.network > .content-browser > .navigation-bar .hierarchical-path .icon { |
| filter: invert(88%); |
| } |
| |
| .network-table > .table .cell.domain > .lock { |
| filter: var(--filter-invert); |
| } |
| |
| .network-table > .table .data-container .cell.name .range { |
| color: var(--text-color-secondary); |
| } |
| |
| .network-table > .table .cell.dom-node.name .icon { |
| content: url(../Images/TypeIcons.svg#DOMElement-dark); |
| } |
| } |