X-Git-Url: https://git-public.kairo.at/?p=themes.git;a=blobdiff_plain;f=LCARStrek%2Fdevtools%2Fnetmonitor.css;h=435f50e73ad3743a4b59cc5cf80c99a447d11675;hp=380a63239db818638df7ba04db35093f4785f76a;hb=b1d1a8bbaca0a31b2c2581911368b6892d447718;hpb=dc9d5d64a3f915cb832f43050545b432f33504f7 diff --git a/LCARStrek/devtools/netmonitor.css b/LCARStrek/devtools/netmonitor.css index 380a6323..435f50e7 100644 --- a/LCARStrek/devtools/netmonitor.css +++ b/LCARStrek/devtools/netmonitor.css @@ -3,19 +3,104 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +@import url("resource://devtools/client/shared/components/tree/tree-view.css"); +@import url(variables.css); /* No idea why this is needed but we get error messages without it */ +@import "resource://devtools/client/shared/components/tabs/tabs.css"; +@import "resource://devtools/client/shared/components/tabs/tabbar.css"; + window { padding: 0; } -/* === BEGIN netmonitor.inc.css === */ +#toolbar-labels { + overflow: hidden; + display: flex; + flex: auto; +} + +.devtools-toolbar-container { + display: flex; + justify-content: space-between; +} + +.devtools-toolbar-group { + display: flex; + flex: 0 0 auto; + flex-wrap: nowrap; + align-items: stretch; +} + +/** + * Collapsed details pane needs to be truly hidden to prevent both accessibility + * tools and keyboard from accessing its contents. + */ +#details-pane.pane-collapsed { + visibility: hidden; +} + +#details-pane-toggle[disabled] { + display: none; +} + +#custom-pane { + overflow: auto; +} + +#response-content-image-box { + overflow: auto; +} + +#network-statistics-charts { + overflow: auto; +} + +.cropped-textbox .textbox-input { + /* workaround for textbox not supporting the @crop attribute */ + text-overflow: ellipsis; +} + +/* Responsive sidebar */ +@media (max-width: 700px) { + #toolbar-spacer, + #details-pane-toggle, + #details-pane.pane-collapsed, + .requests-menu-waterfall, + #requests-menu-network-summary-button > .summary-info-text { + display: none; + } +} :root.theme-dark, :root.theme-light { --table-splitter-color: #A09090; --table-zebra-background: rgba(255,159,0,0.1); + + --timing-blocked-color: #FF0000; + --timing-dns-color: #E7ADE7; /* pink */ + --timing-connect-color: #FF9F00; /* orange */ + --timing-send-color: #FFCF00; /* light blue */ + --timing-wait-color: #9C9CFF; /* blue grey */ + --timing-receive-color: #A09090; /* green */ + + --sort-ascending-image: url(chrome://devtools/skin/images/sort-arrows.svg#ascending); + --sort-descending-image: url(chrome://devtools/skin/images/sort-arrows.svg#descending); } -#requests-menu-empty-notice { +#network-table { + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-flex: 1; + overflow: hidden; +} + +.request-list-container { + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-flex: 1; +} + +#requests-menu-empty-notice, +.request-list-empty-notice { margin: 0; padding: 12px; font-size: 120%; @@ -28,8 +113,20 @@ window { #requests-menu-perf-notice-button { min-width: 30px; min-height: 26px; - margin: 0; - list-style-image: url("profiler-stopwatch.svg"); + list-style-image: url("images/profiler-stopwatch.svg"); + margin: 0 5px; + vertical-align: middle; +} + +#requests-menu-perf-notice-button::before { + background-image: url("images/profiler-stopwatch.svg"); +} + +/* Make sure the icon is visible on Linux (to overwrite a rule + in xul.css that hides the icon if there is no label. + See also bug 1278050. */ +#requests-menu-perf-notice-button .button-icon { + display: block; } #requests-menu-perf-notice-button .button-text { @@ -37,13 +134,26 @@ window { } #requests-menu-reload-notice-button { + font-size: inherit; min-height: 26px; - margin: 0; + padding-left: 10px; + padding-right: 10px; + margin: 0 5px; } /* Network requests table */ #requests-menu-toolbar { + background: var(--theme-capped-toolbar-background); +} + +#requests-menu-toolbar::before, #requests-menu-toolbar::after { + display: none; /* Remove caps from this toolbar (and above background rule make the background fill it completely) */ +} + +#requests-menu-filter-buttons { + display: flex; + flex-wrap: nowrap; } #requests-menu-toolbar > .toolbar-box > .toolbar-startcap, @@ -51,65 +161,145 @@ window { display: none; } -.requests-menu-header:first-child { - -moz-padding-start: 4px; - -moz-margin-start: 4px; +.requests-menu-contents { + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-flex: 1; + overflow-x: hidden; + overflow-y: auto; + + --timings-scale: 1; + --timings-rev-scale: 1; } .requests-menu-subitem { - padding: 4px; + display: flex; + flex: none; + box-sizing: border-box; + align-items: center; + padding: 3px; } -.requests-menu-header:not(:last-child), -.requests-menu-subitem:not(:last-child) { - -moz-border-end: 1px solid var(--table-splitter-color); +.subitem-label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } -.requests-menu-header:not(:last-child):-moz-locale-dir(rtl), -.requests-menu-subitem:not(:last-child):-moz-locale-dir(rtl) { +.requests-menu-header { + display: flex; + flex: none; } -.requests-menu-header-button, -#requests-menu-status-button { +#requests-menu-status-button, +.requests-menu-header-button { + display: flex; + align-items: center; + flex: auto; + -moz-appearance: none; background-color: transparent; + border-image: linear-gradient(transparent 15%, + var(--theme-toolbar-background) 15%, + var(--theme-toolbar-background) 85%, + transparent 85%) 1 1; + border-style: solid; + border-width: 0; + border-inline-start-width: 1px; border-radius: 0; - min-width: 20px; + min-width: 1px; + min-height: 24px; margin: 0; + padding-top: 2px; + padding-bottom: 2px; +/* padding-inline-start: 16px; + padding-inline-end: 0;*/ + text-align: center; +/* color: inherit;*/ font-weight: inherit !important; - transition: background-color 0.1s ease-in-out; } -.requests-menu-header-button > .button-box, -#requests-menu-status-button > .button-box { - border-radius: 0; - -moz-padding-start: 0; - -moz-padding-end: 0; +.requests-menu-header-button::-moz-focus-inner { border: 0; + padding: 0; +} + +.requests-menu-header:first-child .requests-menu-header-button { + border-width: 0; } .requests-menu-header-button:hover { - background-color: #FFCF00; + background-color: var(--theme-hover-background); + color: var(--theme-hover-color); } .requests-menu-header-button:hover:active { - background-color: #FF9F00; + background-color: var(--theme-active-background); + color: var(--theme-active-color); +} + +.requests-menu-header-button > .button-text { + flex: auto; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.requests-menu-header-button > .button-box > .button-icon, +#requests-menu-waterfall-image { + display: -moz-box; + -moz-box-ordinal-group: 2; +} +.requests-menu-header-button > .button-box > .button-icon, +#requests-menu-waterfall-image, +.requests-menu-header-button > .button-icon { + flex: none; + height: 4px; + margin-inline-start: 3px; + margin-inline-end: 6px; + width: 7px; + display: none; +} + +.requests-menu-header-button[sorted=ascending] > .button-box > .button-icon, +.requests-menu-header-button[sorted=ascending] #requests-menu-waterfall-image { + list-style-image: var(--sort-ascending-image); } -.requests-menu-header-button:not(:active)[sorted] { - background-color: #008484; +.requests-menu-header-button[data-sorted=ascending] > .button-icon { + background-image: var(--sort-ascending-image); } -.requests-menu-header-button:not(:active)[sorted=ascending] { - background-image: radial-gradient(farthest-side at center top, rgba(0,0,0,.7), rgba(0,0,0,0.3)); - background-size: 100% 1px; - background-repeat: no-repeat; +.requests-menu-header-button[sorted=descending] > .button-box > .button-icon, +.requests-menu-header-button[sorted=descending] #requests-menu-waterfall-image { + list-style-image: var(--sort-descending-image); +} + +.requests-menu-header-button[data-sorted=descending] > .button-icon { + background-image: var(--sort-descending-image); +} + +.requests-menu-header-button > .button-box > .button-text, +#requests-menu-waterfall-label-wrapper { + -moz-box-flex: 1; +} + +.requests-menu-waterfall-label-wrapper { + display: flex; +} + +.requests-menu-header-button[sorted], +.requests-menu-header-button[sorted]:hover, +.requests-menu-header-button[data-sorted], +.requests-menu-header-button[data-sorted]:hover { + background-color: var(--theme-selection-background); + color: var(--theme-selection-color); } -.requests-menu-header-button:not(:active)[sorted=descending] { - background-image: radial-gradient(farthest-side at center bottom, rgba(0,0,0,.7), rgba(0,0,0,0.3)); - background-size: 100% 1px; - background-repeat: no-repeat; - background-position: bottom; +.requests-menu-header-button[sorted], +.requests-menu-header[active] + .requests-menu-header .requests-menu-header-button, +.requests-menu-header-button[data-sorted], +.requests-menu-header[data-active] + .requests-menu-header .requests-menu-header-button { + border-image: linear-gradient(var(--theme-splitter-color), var(--theme-splitter-color)) 1 1; } #requests-menu-status-button { @@ -122,127 +312,162 @@ window { /* Network requests table: specific column dimensions */ -.requests-menu-status-and-method { - width: 12em; -} - .requests-menu-status { - width: 10px; - height: 10px; - margin: 0px 2px; + max-width: 6em; + text-align: center; + width: 10vw; } -.requests-menu-method { +.requests-menu-method, +.requests-menu-method-box { + max-width: 7em; text-align: center; - font-weight: 600; + width: 10vw; } .requests-menu-icon-and-file { - width: 20vw; - min-width: 4em; + width: 22vw; } .requests-menu-icon { - background: #FFCF00; - width: calc(1em + 4px); - height: calc(1em + 4px); - margin: -4px 0px; - -moz-margin-end: 4px; + background: transparent; + width: 15px; + height: 15px; + margin-inline-end: 4px; } .requests-menu-icon { outline: 1px solid var(--table-splitter-color); } -.requests-menu-file { - text-align: start; -} - .requests-menu-security-and-domain { width: 14vw; - min-width: 10em; } .requests-security-state-icon { + flex: none; width: 16px; height: 16px; - -moz-margin-end: 4px; - cursor: pointer; + margin-inline-end: 4px; +} + +.side-menu-widget-item.selected .requests-security-state-icon, +.request-list-item.selected .requests-security-state-icon { +/* filter: brightness(1.3);*/ } .security-state-insecure { - list-style-image: url("chrome://browser/skin/identity-mixed-active-loaded.svg"); + list-style-image: url("chrome://devtools/skin/images/security-state-insecure.svg"); } .security-state-secure { - list-style-image: url("chrome://browser/skin/identity-secure.svg"); + list-style-image: url("chrome://devtools/skin/images/security-state-secure.svg"); } .security-state-weak { - list-style-image: url("chrome://browser/skin/identity-mixed-passive-loaded.svg"); + list-style-image: url("chrome://devtools/skin/images/security-state-weak.svg"); } .security-state-broken { - list-style-image: url("chrome://browser/skin/controlcenter/warning-gray.svg"); + list-style-image: url("chrome://devtools/skin/images/security-state-broken.svg"); } .security-state-local { - list-style-image: url("chrome://browser/skin/identity-not-secure.svg"); + list-style-image: url("chrome://devtools/skin/images/security-state-local.svg"); } -.requests-menu-type { +.requests-menu-type, +.requests-menu-size { + max-width: 6em; text-align: center; - width: 4em; + width: 8vw; + justify-content: center; } -.requests-menu-size { - text-align: center; - width: 8em; +.requests-menu-transferred { + max-width: 8em; + width: 8vw; + justify-content: center; +} + +.requests-menu-cause { + max-width: 8em; + width: 8vw; +} + +.requests-menu-cause-stack { + background-color: var(--theme-body-color-alt); + color: var(--theme-body-background); + font-size: 8px; + font-weight: bold; + line-height: 10px; + border-radius: 3px; + padding: 0 2px; + margin: 0; + margin-inline-end: 3px; + -moz-user-select: none; } .requests-menu-transferred { + max-width: 8em; text-align: center; - width: 8em; + width: 8vw; +} + +.side-menu-widget-item.selected .requests-menu-transferred.theme-comment, +.request-list-item.selected .requests-menu-transferred.theme-comment { + color: var(--theme-selection-color); } /* Network requests table: status codes */ -box.requests-menu-status { +.requests-menu-status-code { + margin-inline-start: 3px !important; + width: 3em; + margin-inline-end: -3em !important; +} + +.requests-menu-status-icon { background-color: #A09090; + height: 10px; width: 10px; - -moz-margin-start: 5px; - -moz-margin-end: 5px; + margin-inline-start: 5px; + margin-inline-end: 5px; border-radius: 20px; border: 1px solid #000000; transition: background-color 0.5s ease-in-out; + box-sizing: border-box; } -label.requests-menu-status-code { - -moz-margin-start: 3px !important; - width: 3em; - -moz-margin-end: -3em !important; +.side-menu-widget-item.selected .requests-menu-status-icon, +.request-list-item.selected .requests-menu-status-icon { +/* filter: brightness(1.3);*/ } -box.requests-menu-status:not([code]) { - background-color: var(--theme-highlight-red); - border-radius: 0; /* squares */ +.requests-menu-status-icon:not([code]), +.requests-menu-status-icon:not([data-code]) { + background-color: var(--theme-content-color2); } -box.requests-menu-status[code="cached"] { +.requests-menu-status-icon[code="cached"], +.requests-menu-status-icon[data-code="cached"] { border: 2px solid var(--theme-content-color2); - background-color: transparent; + background-color: transparent; } -box.requests-menu-status[code^="1"] { - background-color: var(---theme-highlight-blue); +.requests-menu-status-icon[code^="1"], +.requests-menu-status-icon[data-code^="1"] { + background-color: var(--theme-highlight-blue); } -box.requests-menu-status[code^="2"] { +.requests-menu-status-icon[code^="2"], +.requests-menu-status-icon[data-code^="2"] { background-color: var(--theme-highlight-green); } /* 3xx are triangles */ -box.requests-menu-status[code^="3"] { +.requests-menu-status-icon[code^="3"], +.requests-menu-status-icon[data-code^="3"] { background-color: transparent; width: 0; height: 0; @@ -253,12 +478,14 @@ box.requests-menu-status[code^="3"] { } /* 4xx and 5xx are squares - error codes */ -box.requests-menu-status[code^="4"] { +.requests-menu-status-icon[code^="4"], +.requests-menu-status-icon[data-code^="4"] { background-color: var(--theme-highlight-red); border-radius: 0; /* squares */ } -box.requests-menu-status[code^="5"] { +.requests-menu-status-icon[code^="5"], +.requests-menu-status-icon[data-code^="5"] { background-color: var(--theme-highlight-pink); border-radius: 0; transform: rotate(45deg); @@ -266,23 +493,36 @@ box.requests-menu-status[code^="5"] { /* Network requests table: waterfall header */ -#requests-menu-waterfall-label { - -moz-padding-start: 8px; - -moz-padding-end: 8px; +.requests-menu-waterfall { + flex: auto; + padding-inline-start: 0; +} + +#requests-menu-waterfall-label:not(.requests-menu-waterfall-visible), +.requests-menu-waterfall-label-wrapper:not(.requests-menu-waterfall-visible) { + padding-inline-start: 16px; } .requests-menu-timings-division { width: 100px; - padding-top: 1px; - -moz-padding-start: 4px; - -moz-border-start: 1px dotted #000000; - font-size: 90%; + padding-top: 2px; + padding-inline-start: 4px; + font-size: 75%; pointer-events: none; + box-sizing: border-box; + text-align: start; + /* Allow the timing label to shrink if the container gets too narrow. + * The container width then is not limited by the content. */ + flex: initial; +} + +.requests-menu-timings-division:first-child { + width: 98px; /* Substract 2px for borders */ } .requests-menu-timings-division:not(:first-child) { - -moz-border-start: 1px dotted; - -moz-margin-start: -100px !important; /* Don't affect layout. */ + border-inline-start: 1px dashed; +/* margin-inline-start: -100px !important; / Don't affect layout. */ } .requests-menu-timings-division:-moz-locale-dir(ltr) { @@ -293,38 +533,42 @@ box.requests-menu-status[code^="5"] { transform-origin: right center; } -.requests-menu-timings-division[division-scale=millisecond] { - -moz-border-start-color: var(--theme-body-color) !important; -} - -.requests-menu-timings-division[division-scale=second] { - -moz-border-start-color: var(--theme-body-color) !important; - font-weight: 600; +.requests-menu-timings-division { + border-inline-start-color: var(--theme-body-color) !important; } -.requests-menu-timings-division[division-scale=minute] { - -moz-border-start-color: var(--theme-body-color) !important; +.requests-menu-timings-division[division-scale=second], +.requests-menu-timings-division[division-scale=minute], +.requests-menu-timings-division[data-division-scale=second], +.requests-menu-timings-division[data-division-scale=minute] { font-weight: 600; } /* Network requests table: waterfall items */ .requests-menu-subitem.requests-menu-waterfall { - -moz-padding-start: 0px; - -moz-padding-end: 4px; + padding-inline-start: 0; + padding-inline-end: 4px; /* Background created on a in js. */ - /* @see browser/devtools/netmonitor/netmonitor-view.js */ + /* @see devtools/client/netmonitor/netmonitor-view.js */ background-image: -moz-element(#waterfall-background); background-repeat: repeat-y; - background-position: -1px center; + background-position: left center; } .requests-menu-subitem.requests-menu-waterfall:-moz-locale-dir(rtl) { background-position: right center; } +.requests-menu-timings { + display: flex; + flex: none; + align-items: center; + transform: scaleX(var(--timings-scale)); +} + .requests-menu-timings:-moz-locale-dir(ltr) { - transform-origin: left center; + transform-origin: left center; } .requests-menu-timings:-moz-locale-dir(rtl) { @@ -340,49 +584,64 @@ box.requests-menu-status[code^="5"] { } .requests-menu-timings-total { - -moz-padding-start: 4px; + display: inline-block; + padding-inline-start: 4px; font-size: 85%; font-weight: 600; + white-space: nowrap; + /* This node should not be scaled - apply a reversed transformation */ + transform: scaleX(var(--timings-rev-scale)); } .requests-menu-timings-box { + display: inline-block; height: 9px; } .requests-menu-timings-box.blocked { - background-color: #FF0000; /* red */ + background-color: var(--timing-blocked-color); } .requests-menu-timings-box.dns { - background-color: #E7ADE7; /* pink */ + background-color: var(--timing-dns-color); } .requests-menu-timings-box.connect { - background-color: #FF9F00; /* orange */ + background-color: var(--timing-connect-color); } .requests-menu-timings-box.send { - background-color: #FFCF00; /* light blue */ + background-color: var(--timing-send-color); } .requests-menu-timings-box.wait { - background-color: #9C9CFF; /* blue grey */ + background-color: var(--timing-wait-color); } .requests-menu-timings-box.receive { - background-color: #A09090; /* green */ + background-color: var(--timing-receive-color); } /* SideMenuWidget */ #network-table .side-menu-widget-empty-text, -#network-table .side-menu-widget-container { +#network-table .side-menu-widget-container, +#network-table .request-list-empty-notice, +#network-table .request-list-container { background-color: var(--theme-body-background); } -#network-table .side-menu-widget-item { +#network-table .side-menu-widget-item, +.request-list-item { + display: flex; border-top-color: transparent; border-bottom-color: transparent; + padding: 0; +} + +.request-list-item.selected { + background-color: var(--theme-selection-background); + color: var(--theme-selection-color); } .side-menu-widget-item-contents { @@ -393,57 +652,50 @@ box.requests-menu-status[code^="5"] { box-shadow: none !important; } -.side-menu-widget-item:not(.selected)[odd] { +.side-menu-widget-item:not(.selected)[odd], +.request-list-item:not(.selected).odd { background-color: var(--table-zebra-background); } -.side-menu-widget-item:not(.selected):hover { +.side-menu-widget-item:not(.selected):hover, +.request-list-item:not(.selected):hover { background-color: var(--theme-selection-background-semitransparent); } -/* Network request details */ +/* Method Column */ -#details-pane-toggle { - list-style-image: url("chrome://devtools/skin/debugger-collapse.png"); - -moz-image-region: rect(0px,16px,16px,0px); +.side-menu-widget-item.selected .requests-menu-method, +.request-list-item.selected .requests-menu-method { + color: var(--theme-selection-color); } -#details-pane-toggle > .toolbarbutton-icon { - width: 16px; - height: 16px; -} +/* Network request details */ -#details-pane-toggle[pane-collapsed] { - list-style-image: url("chrome://devtools/skin/debugger-expand.png"); +#details-pane-toggle:-moz-locale-dir(ltr), +#details-pane-toggle.pane-collapsed:-moz-locale-dir(rtl) { + list-style-image: var(--theme-pane-collapse-image); } -#details-pane-toggle:hover, -#details-pane-toggle:hover:active { - -moz-image-region: rect(0px,32px,16px,16px); +#details-pane-toggle.pane-collapsed:-moz-locale-dir(ltr), +#details-pane-toggle:-moz-locale-dir(rtl) { + list-style-image: var(--theme-pane-expand-image); } -@media (min-resolution: 1.1dppx) { - #details-pane-toggle { - list-style-image: url("chrome://devtools/skin/debugger-collapse@2x.png"); - -moz-image-region: rect(0px,32px,32px,0px); - } - - #details-pane-toggle[pane-collapsed] { - list-style-image: url("chrome://devtools/skin/debugger-expand@2x.png"); - } +#details-pane-toggle:-moz-locale-dir(ltr)::before, +#details-pane-toggle.pane-collapsed:-moz-locale-dir(rtl)::before { + background-image: var(--theme-pane-collapse-image); +} - #details-pane-toggle:active { - -moz-image-region: rect(0px,64px,32px,32px); - } +#details-pane-toggle.pane-collapsed:-moz-locale-dir(ltr)::before, +#details-pane-toggle:-moz-locale-dir(rtl)::before { + background-image: var(--theme-pane-expand-image); } /* Network request details tabpanels */ .tabpanel-content { background-color: var(--theme-sidebar-background); -} -.theme-dark .tabpanel-content { color: var(--theme-body-color); } @@ -458,14 +710,15 @@ box.requests-menu-status[code^="5"] { } .tabpanel-summary-label { - -moz-padding-start: 4px; - -moz-padding-end: 3px; + display: inline-block; + padding-inline-start: 4px; + padding-inline-end: 3px; font-weight: 600; } .tabpanel-summary-value { color: inherit; - -moz-padding-start: 3px; + padding-inline-start: 3px; } /* Headers tabpanel */ @@ -480,13 +733,13 @@ box.requests-menu-status[code^="5"] { } #headers-summary-resend { - margin: 0 6px; -/* min-height: 20px;*/ + margin-top: -10px; + margin-inline-end: 6px; } #toggle-raw-headers { margin-top: -10px; - -moz-margin-end: 6px; + margin-inline-end: 6px; } .raw-response-textarea { @@ -495,7 +748,8 @@ box.requests-menu-status[code^="5"] { /* Response tabpanel */ -#response-content-info-header { +#response-content-info-header, +.response-error-header { margin: 0; padding: 3px 8px; background-color: var(--theme-highlight-red); @@ -513,6 +767,23 @@ box.requests-menu-status[code^="5"] { margin-bottom: 10px; } +.response-image-box { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + overflow-y: auto; + padding: 10px; +} + +.response-image { + background: #FFFFFF; + border: 1px dashed #A09090; + margin-bottom: 10px; + max-width: 300px; + max-height: 100px; +} + /* Preview tabpanel */ #preview-tabpanel { @@ -526,14 +797,33 @@ box.requests-menu-status[code^="5"] { /* Timings tabpanel */ -#timings-tabpanel .tabpanel-summary-label { +#timings-tabpanel .tabpanel-summary-container, +.timings-container { + display: flex; +} + +#timings-tabpanel .tabpanel-summary-label, +.timings-label { width: 10em; } -#timings-tabpanel .requests-menu-timings-box { - transition: transform 0.2s ease-out; - min-width: 1px; +#timings-tabpanel .requests-menu-timings-container, +.requests-menu-timings-container { + display: flex; + flex: 1; + align-items: center; +} + +#timings-tabpanel .requests-menu-timings-offset, +.requests-menu-timings-offset { + transition: width 0.2s ease-out; +} + +#timings-tabpanel .requests-menu-timings-box, +.requests-menu-timings-box { border: none; + min-width: 1px; + transition: width 0.2s ease-out; } #timings-tabpanel .requests-menu-timings-total { @@ -542,18 +832,30 @@ box.requests-menu-status[code^="5"] { /* Security tabpanel */ +/* Overwrite tree-view cell colon `:` for security panel and tree section */ +.security-panel .treeTable .treeLabelCell::after, +.treeTable .tree-section .treeLabelCell::after { + content: ""; +} + +/* Layout additional warning icon in tree value cell */ +.security-info-value { + display: flex; +} + .security-info-section { - -moz-padding-start: 1em; + padding-inline-start: 1em; } #security-tabpanel { overflow: auto; + -moz-user-select: text; } .security-warning-icon { background-image: url("images/alerticon-warning.png"); background-size: 13px 12px; - -moz-margin-start: 5px; + margin-inline-start: 5px; vertical-align: top; width: 13px; height: 12px; @@ -583,115 +885,105 @@ box.requests-menu-status[code^="5"] { width: 4.5em; } -/* Footer */ - -#requests-menu-footer { - padding-top: 3px; - background-color: var(--theme-toolbar-background); - border-top: 1px solid var(--table-splitter-color); -} - -.requests-menu-footer-button, -.requests-menu-footer-label { - min-width: 1em; - margin: 0; - -moz-margin-end: 3px; +/* Main toolbar */ +.requests-menu-filter-button { +/* -moz-appearance: none; + background: rgba(128,128,128,0.1); border: none; - padding: 0px 1vw; -/* color: var(--theme-body-color);*/ -} - -.requests-menu-footer-spacer { - min-width: 2px; -} - -.requests-menu-footer-spacer, -.requests-menu-footer-button { + border-radius: 2px; + min-width: 0; + padding: 0 5px; + margin: 2px; + color: var(--theme-body-color);*/ + margin-top: 0; + margin-bottom: 0; } -.requests-menu-footer-button { +.requests-menu-filter-button:hover { +/* background: rgba(128,128,128,0.2);*/ } -.requests-menu-footer-button:hover:active { -} - -.requests-menu-footer-button:not(:active)[checked] { -} - -.requests-menu-footer-label { - font-weight: 600; -} - -#requests-menu-filter-freetext-text { - transition-property: max-width, -moz-padding-end, -moz-padding-start; - transition-duration: 250ms; - transition-timing-function: ease; -} - -#requests-menu-filter-freetext-text:not([focused]):not([filled]) > .textbox-input-box { - overflow: hidden; -} - -#requests-menu-filter-freetext-text:not([focused]):not([filled]) { - max-width: 20px !important; - -moz-padding-end: 5px; - -moz-padding-start: 22px; - background-position: 8px center, top left, top left; -} - -#requests-menu-filter-freetext-text[focused], -#requests-menu-filter-freetext-text[filled] { - max-width: 200px !important; +.requests-menu-filter-button:hover:active { +/* background-color: var(--theme-selection-background-semitransparent);*/ } /* Performance analysis buttons */ #requests-menu-network-summary-button { - list-style-image: url("profiler-stopwatch.svg"); - -moz-padding-end: 0; + display: flex; + flex-wrap: nowrap; + align-items: center; + font: inherit; + box-shadow: none; + border-color: transparent; + list-style-image: url("images/profiler-stopwatch-tbutton.svg"); cursor: pointer; + min-width: 0; } -#requests-menu-network-summary-label { - -moz-padding-start: 0; - cursor: pointer; +#requests-menu-network-summary-button > .summary-info-icon { + background-image: url(images/profiler-stopwatch.svg); + filter: var(--icon-filter); + width: 16px; + height: 16px; } -#requests-menu-network-summary-label:hover { - text-decoration: underline; +#requests-menu-network-summary-button > .summary-info-text { + margin-inline-start: 0.5em; +} + +#requests-menu-network-summary-button:hover > .summary-info-icon, +#requests-menu-network-summary-button:hover > .summary-info-text { } /* Performance analysis view */ +#network-statistics-view { + display: -moz-box; +} + #network-statistics-toolbar { /* Make the toolbar invisible, it only hold the back button */ -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar"); background-color: #000000; + border: none; + margin: 0; + padding: 0; } #network-statistics-back-button { min-width: 4em; min-height: 100vh; + margin: 0; + padding: 0; + border-radius: 0; + border-top: none; + border-bottom: none; + border-inline-start: none; } #network-statistics-view-splitter { +/* border-color: rgba(0,0,0,0.2);*/ cursor: default; pointer-events: none; } #network-statistics-charts { min-height: 1px; +} + +#network-statistics-charts { background-color: var(--theme-sidebar-background); } #network-statistics-charts .pie-chart-container { - -moz-margin-start: 3vw; - -moz-margin-end: 1vw; + margin-inline-start: 3vw; + margin-inline-end: 1vw; } #network-statistics-charts .table-chart-container { - -moz-margin-start: 1vw; - -moz-margin-end: 3vw; + margin-inline-start: 1vw; + margin-inline-end: 3vw; } .chart-colored-blob[name=html] { @@ -757,12 +1049,20 @@ box.requests-menu-status[code^="5"] { /* Responsive sidebar */ @media (max-width: 700px) { + #toolbar-spacer, + #details-pane-toggle, + #details-pane.pane-collapsed, + #requests-menu-network-summary-button > .summary-info-text { + display: none; + } + #requests-menu-toolbar { - height: 24px; + height: 22px; } .requests-menu-header-button { - min-height: 24px; + min-height: 22px; + padding-left: 8px; } #details-pane { @@ -770,26 +1070,313 @@ box.requests-menu-status[code^="5"] { /* To prevent all the margin hacks to hide the sidebar. */ } - .requests-menu-status-and-method { - width: 16vw; + .requests-menu-status { + max-width: none; + width: 10vw; } - .requests-menu-icon-and-file, - .requests-menu-security-and-domain { - width: 30vw; + .requests-menu-status-code { + width: auto; } - .requests-menu-type { - width: 8vw; + .requests-menu-method, + .requests-menu-method-box { + max-width: none; + width: 12vw; } - .requests-menu-size { + .requests-menu-icon-and-file { + width: 22vw; + } + + .requests-menu-security-and-domain { width: 16vw; - border-width: 0 !important; - box-shadow: none !important; - /* The "Timeline" header is not visible anymore, and thus the - right border and box-shadow of "Size" column should be hidden. */ } + + .requests-menu-cause, + .requests-menu-type, + .requests-menu-transferred, + .requests-menu-size { + max-width: none; + width: 10vw; + } + + .requests-menu-waterfall { + display: none; + } +} + +/* Platform overrides (copied in from the old platform specific files) */ +:root[platform="win"] .requests-menu-header-button > .button-box { + padding: 0; +} + +:root[platform="win"] .requests-menu-timings-division { + padding-top: 1px; + font-size: 90%; +} + +:root[platform="linux"] #headers-summary-resend { + padding: 4px; } -/* === END netmonitor.inc.css === */ +:root[platform="linux"] #toggle-raw-headers { + padding: 4px; +} + +/* Responsive sidebar */ +@media (max-width: 700px) { + :root[platform="linux"] .requests-menu-header-button { + font-size: 85%; + } +} + +.textbox-input { + text-overflow: ellipsis; + border: none; + background: none; + color: inherit; + width: 100%; +} + +/* Overwrite tree-view cell colon and use l10n string instead */ +.treeTable .treeLabelCell::after { + content: ""; +} + +.treeTable .textbox-input:focus { +/* outline: 0; + box-shadow: var(--theme-focus-box-shadow-textbox);*/ +} + +.panel-container, +.properties-view { + display: flex; + flex-direction: column; + flex-grow: 1; + height: 100%; +} + +/* Layout additional warning icon in tree value cell */ +.security-info-value { + display: flex; +} + +.security-info-value .textbox-input { + text-overflow: ellipsis; + border: none; + background: none; + color: inherit; + width: 100%; + margin-inline-end: 2px; +} + +.security-info-value .textbox-input:focus { + outline: 0; + box-shadow: var(--theme-focus-box-shadow-textbox); +} + +.properties-view .searchbox-section { + flex: 0 1 auto; +} + +.properties-view .devtools-searchbox { + padding: 0; +} + +.properties-view .devtools-searchbox input { + margin: 1px 3px; +} + +.tree-container { + position: relative; + height: 100%; +} + +/* Make treeTable fill parent element and scrollable */ +.tree-container .treeTable { + position: absolute; + display: block; + overflow-y: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +/* Apply flex to table tbody in order to fill available vertical space */ +.tree-container .treeTable tbody { + display: flex; + flex-direction: column; + /* Apply flex to table will create an anonymous table element outside of tbody + * See also http://stackoverflow.com/a/30851678 + * Therefore, we set height with this magic number in order to remove the + * redundant scrollbar when source editor appears. + */ + height: calc(100% - 4px); +} + +.tree-container .treeTable tr { + display: block; +} +/* Make right td fill available horizontal space */ +.tree-container .treeTable td:last-child { + width: 100%; +} + +/* If there is a source editor shows up in the last row of TreeView, + * it should occupy the available vertical space. + */ +.tree-container .treeTable .editor-row-container, +.tree-container .treeTable tr:last-child td[colspan="2"] { + display: block; + height: 100%; +} + +.properties-view .devtools-searchbox, +.tree-container .treeTable .tree-section { + width: 100%; + background-color: var(--theme-toolbar-background); +} + +.tree-container .treeTable tr.tree-section:not(:first-child) td:not([class=""]) { + border-top: 1px solid var(--theme-splitter-color); +} + +.properties-view .devtools-searchbox, +.tree-container .treeTable tr.tree-section:not(:last-child) td:not([class=""]) { + border-bottom: 1px solid var(--theme-splitter-color); +} + +.tree-container .treeTable .tree-section > * { + vertical-align: middle; +} + +.tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel, +.tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel:hover { + color: var(--theme-body-color-alt); +} + +.tree-container .treeTable .treeValueCell { + /* FIXME: Make value cell can be reduced to shorter width */ + max-width: 0; + padding-inline-end: 5px; +} + +.headers-summary input:not([type="button"]) { + width: 100%; + background: none; + border: none; + color: inherit; + margin-inline-end: 2px; +} + +.headers-summary input:not([type="button"]):focus { +/* outline: none; + box-shadow: var(--theme-focus-box-shadow-textbox);*/ + transition: all 0.2s ease-in-out; +} + +.headers-summary-label, +.tree-container .objectBox { + white-space: nowrap; +} + +.headers-summary, +.response-summary { + display: flex; + align-items: center; +} + +.headers-summary .tool-button { +/* border: 1px solid transparent; + color: var(--theme-body-color); + transition: background 0.05s ease-in-out;*/ + margin-inline-end: 6px; + padding: 0 5px; +} + +.headers-summary .requests-menu-status-icon { + min-width: 10px; +} + +.headers-summary .raw-headers-container { + display: flex; + width: 100%; +} + +.headers-summary .raw-headers { + width: 50%; + padding: 0px 4px; +} + +.headers-summary .raw-headers textarea { + width: 100%; + height: 50vh; + font: message-box; + resize: none; + box-sizing: border-box; +} + +.headers-summary .raw-headers .tabpanel-summary-label { + padding: 0 0 4px 0; +} + +.empty-notice { + color: var(--theme-body-color-alt); + padding: 3px 8px; +} + +.response-summary { + display: flex; +} + +.editor-container, +.editor-mount, +.panel-container iframe { + border: none; + width: 100%; + height: 100%; +} + +.treeTable .treeLabel { + font-weight: 600; +} + +/* Customize default tree table style to align with devtools theme */ +.treeTable .treeLabel, +.treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover { + color: var(--theme-highlight-purple); +} + +.treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover { + cursor: default; + text-decoration: none; +} + +/* + * FIXME: normal html block element cannot fill outer XUL element + * This workaround should be removed after sidebar is migrated to react + */ +#react-security-tabpanel-hook, +#react-timings-tabpanel-hook { + display: -moz-box; + -moz-box-orient: vertical; + -moz-box-flex: 1; +} + +/* + * FIXME: normal html block element cannot fill outer XUL element + * This workaround should be removed after netmonitor is migrated to react + */ +#react-details-panel-hook { + display: flex; + flex-direction: column; +} + +#network-statistics-charts, +#primed-cache-chart, +#empty-cache-chart { + display: -moz-box; + -moz-box-flex: 1; +}