apply height workaround to page info only
[themes.git] / LCARStrek / devtools / netmonitor.css
1 /* vim:set ts=2 sw=2 sts=2 et: */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 @import url("resource://devtools/client/shared/components/tree/tree-view.css");
7 @import url(variables.css); /* No idea why this is needed but we get error messages without it */
8 @import "resource://devtools/client/shared/components/tabs/tabs.css";
9 @import "resource://devtools/client/shared/components/tabs/tabbar.css";
10
11 window {
12   padding: 0;
13 }
14
15 #toolbar-labels {
16   overflow: hidden;
17   display: flex;
18   flex: auto;
19 }
20
21 .devtools-toolbar-container {
22   display: flex;
23   justify-content: space-between;
24 }
25
26 .devtools-toolbar-group {
27   display: flex;
28   flex: 0 0 auto;
29   flex-wrap: nowrap;
30   align-items: stretch;
31 }
32
33 /**
34  * Collapsed details pane needs to be truly hidden to prevent both accessibility
35  * tools and keyboard from accessing its contents.
36  */
37 #details-pane.pane-collapsed {
38   visibility: hidden;
39 }
40
41 #details-pane-toggle[disabled] {
42   display: none;
43 }
44
45 #custom-pane {
46   overflow: auto;
47 }
48
49 #response-content-image-box {
50   overflow: auto;
51 }
52
53 #network-statistics-charts {
54   overflow: auto;
55 }
56
57 .cropped-textbox .textbox-input {
58   /* workaround for textbox not supporting the @crop attribute */
59   text-overflow: ellipsis;
60 }
61
62 /* Responsive sidebar */
63 @media (max-width: 700px) {
64   #toolbar-spacer,
65   #details-pane-toggle,
66   #details-pane.pane-collapsed,
67   .requests-menu-waterfall,
68   #requests-menu-network-summary-button > .summary-info-text {
69     display: none;
70   }
71 }
72
73 :root.theme-dark,
74 :root.theme-light {
75   --table-splitter-color: #A09090;
76   --table-zebra-background: rgba(255,159,0,0.1);
77
78   --timing-blocked-color: #FF0000;
79   --timing-dns-color: #E7ADE7; /* pink */
80   --timing-connect-color: #FF9F00; /* orange */
81   --timing-send-color: #FFCF00; /* light blue */
82   --timing-wait-color: #9C9CFF; /* blue grey */
83   --timing-receive-color: #A09090; /* green */
84
85   --sort-ascending-image: url(chrome://devtools/skin/images/sort-arrows.svg#ascending);
86   --sort-descending-image: url(chrome://devtools/skin/images/sort-arrows.svg#descending);
87 }
88
89 #network-table {
90   display: -moz-box;
91   -moz-box-orient: vertical;
92   -moz-box-flex: 1;
93   overflow: hidden;
94 }
95
96 .request-list-container {
97   display: -moz-box;
98   -moz-box-orient: vertical;
99   -moz-box-flex: 1;
100 }
101
102 #requests-menu-empty-notice,
103 .request-list-empty-notice {
104   margin: 0;
105   padding: 12px;
106   font-size: 120%;
107 }
108
109 #notice-perf-message {
110   margin-top: 2px;
111 }
112
113 #requests-menu-perf-notice-button {
114   min-width: 30px;
115   min-height: 26px;
116   list-style-image: url("images/profiler-stopwatch.svg");
117   margin: 0 5px;
118   vertical-align: middle;
119 }
120
121 #requests-menu-perf-notice-button::before {
122   background-image: url("images/profiler-stopwatch.svg");
123 }
124
125 /* Make sure the icon is visible on Linux (to overwrite a rule
126   in xul.css that hides the icon if there is no label.
127   See also bug 1278050. */
128 #requests-menu-perf-notice-button .button-icon {
129   display: block;
130 }
131
132 #requests-menu-perf-notice-button .button-text {
133   display: none;
134 }
135
136 #requests-menu-reload-notice-button {
137   font-size: inherit;
138   min-height: 26px;
139   padding-left: 10px;
140   padding-right: 10px;
141   margin: 0 5px;
142 }
143
144 /* Network requests table */
145
146 #requests-menu-toolbar {
147   background: var(--theme-capped-toolbar-background);
148 }
149
150 #requests-menu-toolbar::before, #requests-menu-toolbar::after {
151   display: none; /* Remove caps from this toolbar (and above background rule make the background fill it completely) */
152 }
153
154 #requests-menu-filter-buttons {
155   display: flex;
156   flex-wrap: nowrap;
157 }
158
159 #requests-menu-toolbar > .toolbar-box > .toolbar-startcap,
160 #requests-menu-toolbar > .toolbar-box > .toolbar-endcap {
161   display: none;
162 }
163
164 .requests-menu-contents {
165   display: -moz-box;
166   -moz-box-orient: vertical;
167   -moz-box-flex: 1;
168   overflow-x: hidden;
169   overflow-y: auto;
170
171   --timings-scale: 1;
172   --timings-rev-scale: 1;
173 }
174
175 .requests-menu-subitem {
176   display: flex;
177   flex: none;
178   box-sizing: border-box;
179   align-items: center;
180   padding: 3px;
181 }
182
183 .subitem-label {
184   white-space: nowrap;
185   overflow: hidden;
186   text-overflow: ellipsis;
187 }
188
189 .requests-menu-header {
190   display: flex;
191   flex: none;
192 }
193
194 #requests-menu-status-button,
195 .requests-menu-header-button {
196   display: flex;
197   align-items: center;
198   flex: auto;
199   -moz-appearance: none;
200   background-color: transparent;
201   border-image: linear-gradient(transparent 15%,
202                                 var(--theme-toolbar-background) 15%,
203                                 var(--theme-toolbar-background) 85%,
204                                 transparent 85%) 1 1;
205   border-style: solid;
206   border-width: 0;
207   border-inline-start-width: 1px;
208   border-radius: 0;
209   min-width: 1px;
210   min-height: 24px;
211   margin: 0;
212   padding-top: 2px;
213   padding-bottom: 2px;
214   padding-inline-start: 16px;
215   padding-inline-end: 0;
216   text-align: center;
217 /*  color: inherit;*/
218   font-weight: inherit !important;
219 }
220
221 .requests-menu-header-button::-moz-focus-inner {
222   border: 0;
223   padding: 0;
224 }
225
226 .requests-menu-header:first-child .requests-menu-header-button {
227   border-width: 0;
228 }
229
230 .requests-menu-header-button:hover {
231   background-color: var(--theme-hover-background);
232   color: var(--theme-hover-color);
233 }
234
235 .requests-menu-header-button:hover:active {
236   background-color: var(--theme-active-background);
237   color: var(--theme-active-color);
238 }
239
240 .requests-menu-header-button > .button-text {
241   flex: auto;
242   white-space: nowrap;
243   overflow: hidden;
244   text-overflow: ellipsis;
245 }
246
247 .requests-menu-header-button > .button-box > .button-icon,
248 #requests-menu-waterfall-image {
249   display: -moz-box;
250   -moz-box-ordinal-group: 2;
251 }
252 .requests-menu-header-button > .button-box > .button-icon,
253 #requests-menu-waterfall-image,
254 .requests-menu-header-button > .button-icon {
255   flex: none;
256   height: 4px;
257   margin-inline-start: 3px;
258   margin-inline-end: 6px;
259   width: 7px;
260 }
261
262 .requests-menu-header-button[sorted=ascending] > .button-box > .button-icon,
263 .requests-menu-header-button[sorted=ascending] #requests-menu-waterfall-image {
264   list-style-image: var(--sort-ascending-image);
265 }
266
267 .requests-menu-header-button[data-sorted=ascending] > .button-icon {
268   background-image: var(--sort-ascending-image);
269 }
270
271 .requests-menu-header-button[sorted=descending] > .button-box > .button-icon,
272 .requests-menu-header-button[sorted=descending] #requests-menu-waterfall-image {
273   list-style-image: var(--sort-descending-image);
274 }
275
276 .requests-menu-header-button[data-sorted=descending] > .button-icon {
277   background-image: var(--sort-descending-image);
278 }
279
280 .requests-menu-header-button > .button-box > .button-text,
281 #requests-menu-waterfall-label-wrapper {
282   -moz-box-flex: 1;
283 }
284
285 .requests-menu-waterfall-label-wrapper {
286   display: flex;
287 }
288
289 .requests-menu-header-button[sorted],
290 .requests-menu-header-button[sorted]:hover,
291 .requests-menu-header-button[data-sorted],
292 .requests-menu-header-button[data-sorted]:hover {
293   background-color: var(--theme-selection-background);
294   color: var(--theme-selection-color);
295 }
296
297 .requests-menu-header-button[sorted],
298 .requests-menu-header[active] + .requests-menu-header .requests-menu-header-button,
299 .requests-menu-header-button[data-sorted],
300 .requests-menu-header[data-active] + .requests-menu-header .requests-menu-header-button {
301   border-image: linear-gradient(var(--theme-splitter-color), var(--theme-splitter-color)) 1 1;
302 }
303
304 #requests-menu-status-button {
305   border: none;
306 }
307
308 #requests-menu-status-button > .button-box {
309   padding: 0;
310 }
311
312 /* Network requests table: specific column dimensions */
313
314 .requests-menu-status {
315   max-width: 6em;
316   text-align: center;
317   width: 10vw;
318 }
319
320 .requests-menu-method,
321 .requests-menu-method-box {
322   max-width: 7em;
323   text-align: center;
324   width: 10vw;
325 }
326
327 .requests-menu-icon-and-file {
328   width: 22vw;
329 }
330
331 .requests-menu-icon {
332   background: transparent;
333   width: 15px;
334   height: 15px;
335   margin-inline-end: 4px;
336 }
337
338 .requests-menu-icon {
339   outline: 1px solid var(--table-splitter-color);
340 }
341
342 .requests-menu-security-and-domain {
343   width: 14vw;
344 }
345
346 .requests-security-state-icon {
347   flex: none;
348   width: 16px;
349   height: 16px;
350   margin-inline-end: 4px;
351 }
352
353 .side-menu-widget-item.selected .requests-security-state-icon,
354 .request-list-item.selected .requests-security-state-icon {
355 /*  filter: brightness(1.3);*/
356 }
357
358 .security-state-insecure {
359   list-style-image: url("chrome://devtools/skin/images/security-state-insecure.svg");
360 }
361
362 .security-state-secure {
363   list-style-image: url("chrome://devtools/skin/images/security-state-secure.svg");
364 }
365
366 .security-state-weak {
367   list-style-image: url("chrome://devtools/skin/images/security-state-weak.svg");
368 }
369
370 .security-state-broken {
371   list-style-image: url("chrome://devtools/skin/images/security-state-broken.svg");
372 }
373
374 .security-state-local {
375   list-style-image: url("chrome://devtools/skin/images/security-state-local.svg");
376 }
377
378 .requests-menu-type,
379 .requests-menu-size {
380   max-width: 6em;
381   text-align: center;
382   width: 8vw;
383   justify-content: center;
384 }
385
386 .requests-menu-transferred {
387   max-width: 8em;
388   width: 8vw;
389   justify-content: center;
390 }
391
392 .requests-menu-cause {
393   max-width: 8em;
394   width: 8vw;
395 }
396
397 .requests-menu-cause-stack {
398   background-color: var(--theme-body-color-alt);
399   color: var(--theme-body-background);
400   font-size: 8px;
401   font-weight: bold;
402   line-height: 10px;
403   border-radius: 3px;
404   padding: 0 2px;
405   margin: 0;
406   margin-inline-end: 3px;
407   -moz-user-select: none;
408 }
409
410 .requests-menu-transferred {
411   max-width: 8em;
412   text-align: center;
413   width: 8vw;
414 }
415
416 .side-menu-widget-item.selected .requests-menu-transferred.theme-comment,
417 .request-list-item.selected .requests-menu-transferred.theme-comment {
418   color: var(--theme-selection-color);
419 }
420
421 /* Network requests table: status codes */
422
423 .requests-menu-status-code {
424   margin-inline-start: 3px !important;
425   width: 3em;
426   margin-inline-end: -3em !important;
427 }
428
429 .requests-menu-status-icon {
430   background-color: #A09090;
431   height: 10px;
432   width: 10px;
433   margin-inline-start: 5px;
434   margin-inline-end: 5px;
435   border-radius: 20px;
436   border: 1px solid #000000;
437   transition: background-color 0.5s ease-in-out;
438   box-sizing: border-box;
439 }
440
441 .side-menu-widget-item.selected .requests-menu-status-icon,
442 .request-list-item.selected .requests-menu-status-icon {
443 /*  filter: brightness(1.3);*/
444 }
445
446 .requests-menu-status-icon:not([code]),
447 .requests-menu-status-icon:not([data-code]) {
448   background-color: var(--theme-content-color2);
449 }
450
451 .requests-menu-status-icon[code="cached"],
452 .requests-menu-status-icon[data-code="cached"] {
453   border: 2px solid var(--theme-content-color2);
454   background-color: transparent;
455 }
456
457 .requests-menu-status-icon[code^="1"],
458 .requests-menu-status-icon[data-code^="1"] {
459   background-color: var(--theme-highlight-blue);
460 }
461
462 .requests-menu-status-icon[code^="2"],
463 .requests-menu-status-icon[data-code^="2"] {
464   background-color: var(--theme-highlight-green);
465 }
466
467 /* 3xx are triangles */
468 .requests-menu-status-icon[code^="3"],
469 .requests-menu-status-icon[data-code^="3"] {
470   background-color: transparent;
471   width: 0;
472   height: 0;
473   border-left: 5px solid transparent;
474   border-right: 5px solid transparent;
475   border-bottom: 10px solid var(--theme-highlight-lightorange);
476   border-radius: 0;
477 }
478
479 /* 4xx and 5xx are squares - error codes */
480 .requests-menu-status-icon[code^="4"],
481 .requests-menu-status-icon[data-code^="4"] {
482   background-color: var(--theme-highlight-red);
483   border-radius: 0; /* squares */
484 }
485
486 .requests-menu-status-icon[code^="5"],
487 .requests-menu-status-icon[data-code^="5"] {
488   background-color: var(--theme-highlight-pink);
489   border-radius: 0;
490   transform: rotate(45deg);
491 }
492
493 /* Network requests table: waterfall header */
494
495 .requests-menu-waterfall {
496   flex: auto;
497   padding-inline-start: 0;
498 }
499
500 #requests-menu-waterfall-label:not(.requests-menu-waterfall-visible),
501 .requests-menu-waterfall-label-wrapper:not(.requests-menu-waterfall-visible) {
502   padding-inline-start: 16px;
503 }
504
505 .requests-menu-timings-division {
506   width: 100px;
507   padding-top: 2px;
508   padding-inline-start: 4px;
509   font-size: 75%;
510   pointer-events: none;
511   box-sizing: border-box;
512   text-align: start;
513   /* Allow the timing label to shrink if the container gets too narrow.
514    * The container width then is not limited by the content. */
515   flex: initial;
516 }
517
518 .requests-menu-timings-division:first-child {
519   width: 98px; /* Substract 2px for borders */
520 }
521
522 .requests-menu-timings-division:not(:first-child) {
523   border-inline-start: 1px dashed;
524 /*   margin-inline-start: -100px !important; / Don't affect layout. */
525 }
526
527 .requests-menu-timings-division:-moz-locale-dir(ltr) {
528   transform-origin: left center;
529 }
530
531 .requests-menu-timings-division:-moz-locale-dir(rtl) {
532   transform-origin: right center;
533 }
534
535 .requests-menu-timings-division {
536   border-inline-start-color: var(--theme-body-color) !important;
537 }
538
539 .requests-menu-timings-division[division-scale=second],
540 .requests-menu-timings-division[division-scale=minute],
541 .requests-menu-timings-division[data-division-scale=second],
542 .requests-menu-timings-division[data-division-scale=minute] {
543   font-weight: 600;
544 }
545
546 /* Network requests table: waterfall items */
547
548 .requests-menu-subitem.requests-menu-waterfall {
549   padding-inline-start: 0;
550   padding-inline-end: 4px;
551   /* Background created on a <canvas> in js. */
552   /* @see devtools/client/netmonitor/netmonitor-view.js */
553   background-image: -moz-element(#waterfall-background);
554   background-repeat: repeat-y;
555   background-position: left center;
556 }
557
558 .requests-menu-subitem.requests-menu-waterfall:-moz-locale-dir(rtl) {
559   background-position: right center;
560 }
561
562 .requests-menu-timings {
563   display: flex;
564   flex: none;
565   align-items: center;
566   transform: scaleX(var(--timings-scale));
567 }
568
569 .requests-menu-timings:-moz-locale-dir(ltr) {
570   transform-origin: left center;
571 }
572
573 .requests-menu-timings:-moz-locale-dir(rtl) {
574   transform-origin: right center;
575 }
576
577 .requests-menu-timings-total:-moz-locale-dir(ltr) {
578   transform-origin: left center;
579 }
580
581 .requests-menu-timings-total:-moz-locale-dir(rtl) {
582   transform-origin: right center;
583 }
584
585 .requests-menu-timings-total {
586   display: inline-block;
587   padding-inline-start: 4px;
588   font-size: 85%;
589   font-weight: 600;
590   white-space: nowrap;
591   /* This node should not be scaled - apply a reversed transformation */
592   transform: scaleX(var(--timings-rev-scale));
593 }
594
595 .requests-menu-timings-box {
596   display: inline-block;
597   height: 9px;
598 }
599
600 .requests-menu-timings-box.blocked {
601   background-color: var(--timing-blocked-color);
602 }
603
604 .requests-menu-timings-box.dns {
605   background-color: var(--timing-dns-color);
606 }
607
608 .requests-menu-timings-box.connect {
609   background-color: var(--timing-connect-color);
610 }
611
612 .requests-menu-timings-box.send {
613   background-color: var(--timing-send-color);
614 }
615
616 .requests-menu-timings-box.wait {
617   background-color: var(--timing-wait-color);
618 }
619
620 .requests-menu-timings-box.receive {
621   background-color: var(--timing-receive-color);
622 }
623
624 /* SideMenuWidget */
625
626 #network-table .side-menu-widget-empty-text,
627 #network-table .side-menu-widget-container,
628 #network-table .request-list-empty-notice,
629 #network-table .request-list-container {
630   background-color: var(--theme-body-background);
631 }
632
633 #network-table .side-menu-widget-item,
634 .request-list-item {
635   display: flex;
636   border-top-color: transparent;
637   border-bottom-color: transparent;
638   padding: 0;
639 }
640
641 .request-list-item.selected {
642   background-color: var(--theme-selection-background);
643   color: var(--theme-selection-color);
644 }
645
646 .side-menu-widget-item-contents {
647   padding: 0px;
648 }
649
650 .side-menu-widget-container {
651   box-shadow: none !important;
652 }
653
654 .side-menu-widget-item:not(.selected)[odd],
655 .request-list-item:not(.selected).odd {
656   background-color: var(--table-zebra-background);
657 }
658
659 .side-menu-widget-item:not(.selected):hover,
660 .request-list-item:not(.selected):hover {
661   background-color: var(--theme-selection-background-semitransparent);
662 }
663
664 /* Method Column */
665
666 .side-menu-widget-item.selected .requests-menu-method,
667 .request-list-item.selected .requests-menu-method {
668   color: var(--theme-selection-color);
669 }
670
671 /* Network request details */
672
673 #details-pane-toggle:-moz-locale-dir(ltr),
674 #details-pane-toggle.pane-collapsed:-moz-locale-dir(rtl) {
675   list-style-image: var(--theme-pane-collapse-image);
676 }
677
678 #details-pane-toggle.pane-collapsed:-moz-locale-dir(ltr),
679 #details-pane-toggle:-moz-locale-dir(rtl) {
680   list-style-image: var(--theme-pane-expand-image);
681 }
682
683 #details-pane-toggle:-moz-locale-dir(ltr)::before,
684 #details-pane-toggle.pane-collapsed:-moz-locale-dir(rtl)::before {
685   background-image: var(--theme-pane-collapse-image);
686 }
687
688 #details-pane-toggle.pane-collapsed:-moz-locale-dir(ltr)::before,
689 #details-pane-toggle:-moz-locale-dir(rtl)::before {
690   background-image: var(--theme-pane-expand-image);
691 }
692
693 /* Network request details tabpanels */
694
695 .tabpanel-content {
696   background-color: var(--theme-sidebar-background);
697
698   color: var(--theme-body-color);
699 }
700
701 #headers-tabpanel {
702   background-color: var(--theme-toolbar-background);
703 }
704
705 /* Summary tabpanel */
706
707 .tabpanel-summary-container {
708   padding: 1px;
709 }
710
711 .tabpanel-summary-label {
712   display: inline-block;
713   padding-inline-start: 4px;
714   padding-inline-end: 3px;
715   font-weight: 600;
716 }
717
718 .tabpanel-summary-value {
719   color: inherit;
720   padding-inline-start: 3px;
721 }
722
723 /* Headers tabpanel */
724
725 #headers-summary-status,
726 #headers-summary-version {
727   padding-bottom: 2px;
728 }
729
730 #headers-summary-size {
731   padding-top: 2px;
732 }
733
734 #headers-summary-resend {
735   margin-top: -10px;
736   margin-inline-end: 6px;
737 }
738
739 #toggle-raw-headers {
740   margin-top: -10px;
741   margin-inline-end: 6px;
742 }
743
744 .raw-response-textarea {
745   height: 50vh;
746 }
747
748 /* Response tabpanel */
749
750 #response-content-info-header,
751 .response-error-header {
752   margin: 0;
753   padding: 3px 8px;
754   background-color: var(--theme-highlight-red);
755   color: var(--theme-selection-color);
756 }
757
758 #response-content-image-box {
759   padding-top: 10px;
760   padding-bottom: 10px;
761 }
762
763 #response-content-image {
764   background: #FFFFFF;
765   border: 1px dashed #A09090;
766   margin-bottom: 10px;
767 }
768
769 .response-image-box {
770   display: flex;
771   flex-direction: column;
772   justify-content: center;
773   align-items: center;
774   overflow-y: auto;
775   padding: 10px;
776 }
777
778 .response-image {
779   background: #FFFFFF;
780   border: 1px dashed #A09090;
781   margin-bottom: 10px;
782   max-width: 300px;
783   max-height: 100px;
784 }
785
786 /* Preview tabpanel */
787
788 #preview-tabpanel {
789   background: #fff;
790 }
791
792 #response-preview {
793   display: -moz-box;
794   -moz-box-flex: 1;
795 }
796
797 /* Timings tabpanel */
798
799 #timings-tabpanel .tabpanel-summary-container,
800 .timings-container {
801   display: flex;
802 }
803
804 #timings-tabpanel .tabpanel-summary-label,
805 .timings-label {
806   width: 10em;
807 }
808
809 #timings-tabpanel .requests-menu-timings-container,
810 .requests-menu-timings-container {
811   display: flex;
812   flex: 1;
813   align-items: center;
814 }
815
816 #timings-tabpanel .requests-menu-timings-offset,
817 .requests-menu-timings-offset {
818   transition: width 0.2s ease-out;
819 }
820
821 #timings-tabpanel .requests-menu-timings-box,
822 .requests-menu-timings-box {
823   border: none;
824   min-width: 1px;
825   transition: width 0.2s ease-out;
826 }
827
828 #timings-tabpanel .requests-menu-timings-total {
829   transition: transform 0.2s ease-out;
830 }
831
832 /* Security tabpanel */
833
834 /* Overwrite tree-view cell colon `:` for security panel and tree section */
835 .security-panel .treeTable .treeLabelCell::after,
836 .treeTable .tree-section .treeLabelCell::after {
837   content: "";
838 }
839
840 /* Layout additional warning icon in tree value cell  */
841 .security-info-value {
842   display: flex;
843 }
844
845 .security-info-section {
846   padding-inline-start: 1em;
847 }
848
849 #security-tabpanel {
850   overflow: auto;
851   -moz-user-select: text;
852 }
853
854 .security-warning-icon {
855   background-image: url("images/alerticon-warning.png");
856   background-size: 13px 12px;
857   margin-inline-start: 5px;
858   vertical-align: top;
859   width: 13px;
860   height: 12px;
861 }
862
863 @media (min-resolution: 1.1dppx) {
864   .security-warning-icon {
865     background-image: url("images/alerticon-warning@2x.png");
866   }
867 }
868
869 /* Custom request form */
870
871 #custom-pane {
872   padding: 0.6em 0.5em;
873 }
874
875 .custom-header {
876   font-size: 1.1em;
877 }
878
879 .custom-section {
880   margin-top: 0.5em;
881 }
882
883 #custom-method-value {
884   width: 4.5em;
885 }
886
887 /* Main toolbar */
888 .requests-menu-filter-button {
889 /*  -moz-appearance: none;
890   background: rgba(128,128,128,0.1);
891   border: none;
892   border-radius: 2px;
893   min-width: 0;
894   padding: 0 5px;
895   margin: 2px;
896   color: var(--theme-body-color);*/
897   margin-top: 0;
898   margin-bottom: 0;
899 }
900
901 .requests-menu-filter-button:hover {
902 /*  background: rgba(128,128,128,0.2);*/
903 }
904
905 .requests-menu-filter-button:hover:active {
906 /*  background-color: var(--theme-selection-background-semitransparent);*/
907 }
908
909 /* Performance analysis buttons */
910
911 #requests-menu-network-summary-button {
912   display: flex;
913   flex-wrap: nowrap;
914   align-items: center;
915   font: inherit;
916   box-shadow: none;
917   border-color: transparent;
918   list-style-image: url("images/profiler-stopwatch-tbutton.svg");
919   cursor: pointer;
920   min-width: 0;
921 }
922
923 #requests-menu-network-summary-button > .summary-info-icon {
924   background-image: url(images/profiler-stopwatch.svg);
925   filter: var(--icon-filter);
926   width: 16px;
927   height: 16px;
928 }
929
930 #requests-menu-network-summary-button > .summary-info-text {
931   margin-inline-start: 0.5em;
932 }
933
934 #requests-menu-network-summary-button:hover > .summary-info-icon,
935 #requests-menu-network-summary-button:hover > .summary-info-text {
936 }
937
938 /* Performance analysis view */
939
940 #network-statistics-view {
941   display: -moz-box;
942 }
943
944 #network-statistics-toolbar {
945   /* Make the toolbar invisible, it only hold the back button */
946   -moz-binding: url("chrome://global/content/bindings/toolbar.xml#toolbar");
947   background-color: #000000;
948   border: none;
949   margin: 0;
950   padding: 0;
951 }
952
953 #network-statistics-back-button {
954   min-width: 4em;
955   min-height: 100vh;
956   margin: 0;
957   padding: 0;
958   border-radius: 0;
959   border-top: none;
960   border-bottom: none;
961   border-inline-start: none;
962 }
963
964 #network-statistics-view-splitter {
965 /*  border-color: rgba(0,0,0,0.2);*/
966   cursor: default;
967   pointer-events: none;
968 }
969
970 #network-statistics-charts {
971   min-height: 1px;
972 }
973
974 #network-statistics-charts {
975   background-color: var(--theme-sidebar-background);
976 }
977
978 #network-statistics-charts .pie-chart-container {
979   margin-inline-start: 3vw;
980   margin-inline-end: 1vw;
981 }
982
983 #network-statistics-charts .table-chart-container {
984   margin-inline-start: 1vw;
985   margin-inline-end: 3vw;
986 }
987
988 .chart-colored-blob[name=html] {
989   fill: var(--theme-highlight-bluegrey);
990   background: var(--theme-highlight-bluegrey);
991 }
992
993 .chart-colored-blob[name=css] {
994   fill: var(--theme-highlight-blue);
995   background: var(--theme-highlight-blue);
996 }
997
998 .chart-colored-blob[name=js] {
999   fill: var(--theme-highlight-lightorange);
1000   background: var(--theme-highlight-lightorange);
1001 }
1002
1003 .chart-colored-blob[name=xhr] {
1004   fill: var(--theme-highlight-orange);
1005   background: var(--theme-highlight-orange);
1006 }
1007
1008 .chart-colored-blob[name=fonts] {
1009   fill: var(--theme-highlight-darkpurple);
1010   background: var(--theme-highlight-darkpurple);
1011 }
1012
1013 .chart-colored-blob[name=images] {
1014   fill: var(--theme-highlight-pink);
1015   background: var(--theme-highlight-pink);
1016 }
1017
1018 .chart-colored-blob[name=media] {
1019   fill: var(--theme-highlight-green);
1020   background: var(--theme-highlight-green);
1021 }
1022
1023 .chart-colored-blob[name=flash] {
1024   fill: var(--theme-highlight-red);
1025   background: var(--theme-highlight-red);
1026 }
1027
1028 .table-chart-row-label[name=cached] {
1029   display: none;
1030 }
1031
1032 .table-chart-row-label[name=count] {
1033   width: 3em;
1034   text-align: end;
1035 }
1036
1037 .table-chart-row-label[name=label] {
1038   width: 7em;
1039 }
1040
1041 .table-chart-row-label[name=size] {
1042   width: 7em;
1043 }
1044
1045 .table-chart-row-label[name=time] {
1046   width: 7em;
1047 }
1048
1049 /* Responsive sidebar */
1050 @media (max-width: 700px) {
1051   #toolbar-spacer,
1052   #details-pane-toggle,
1053   #details-pane.pane-collapsed,
1054   #requests-menu-network-summary-button > .summary-info-text {
1055     display: none;
1056   }
1057
1058   #requests-menu-toolbar {
1059     height: 22px;
1060   }
1061
1062   .requests-menu-header-button {
1063     min-height: 22px;
1064     padding-left: 8px;
1065   }
1066
1067   #details-pane {
1068     margin: 0 !important;
1069     /* To prevent all the margin hacks to hide the sidebar. */
1070   }
1071
1072   .requests-menu-status {
1073     max-width: none;
1074     width: 10vw;
1075   }
1076
1077   .requests-menu-status-code {
1078     width: auto;
1079   }
1080
1081   .requests-menu-method,
1082   .requests-menu-method-box {
1083     max-width: none;
1084     width: 12vw;
1085   }
1086
1087   .requests-menu-icon-and-file {
1088     width: 22vw;
1089   }
1090
1091   .requests-menu-security-and-domain {
1092     width: 16vw;
1093   }
1094
1095   .requests-menu-cause,
1096   .requests-menu-type,
1097   .requests-menu-transferred,
1098   .requests-menu-size {
1099     max-width: none;
1100     width: 10vw;
1101   }
1102
1103   .requests-menu-waterfall {
1104     display: none;
1105   }
1106 }
1107
1108 /* Platform overrides (copied in from the old platform specific files) */
1109 :root[platform="win"] .requests-menu-header-button > .button-box {
1110   padding: 0;
1111 }
1112
1113 :root[platform="win"] .requests-menu-timings-division {
1114   padding-top: 1px;
1115   font-size: 90%;
1116 }
1117
1118 :root[platform="linux"] #headers-summary-resend {
1119   padding: 4px;
1120 }
1121
1122 :root[platform="linux"] #toggle-raw-headers {
1123   padding: 4px;
1124 }
1125
1126 /* Responsive sidebar */
1127 @media (max-width: 700px) {
1128   :root[platform="linux"] .requests-menu-header-button {
1129     font-size: 85%;
1130   }
1131 }
1132
1133 .textbox-input {
1134   text-overflow: ellipsis;
1135   border: none;
1136   background: none;
1137   color: inherit;
1138   width: 100%;
1139 }
1140
1141 /* Overwrite tree-view cell colon and use l10n string instead */
1142 .treeTable .treeLabelCell::after {
1143   content: "";
1144 }
1145
1146 .treeTable .textbox-input:focus {
1147 /*  outline: 0;
1148   box-shadow: var(--theme-focus-box-shadow-textbox);*/
1149 }
1150
1151 .panel-container,
1152 .properties-view {
1153   display: flex;
1154   flex-direction: column;
1155   flex-grow: 1;
1156   height: 100%;
1157 }
1158
1159 /* Layout additional warning icon in tree value cell  */
1160 .security-info-value {
1161   display: flex;
1162 }
1163
1164 .security-info-value .textbox-input {
1165   text-overflow: ellipsis;
1166   border: none;
1167   background: none;
1168   color: inherit;
1169   width: 100%;
1170   margin-inline-end: 2px;
1171 }
1172
1173 .security-info-value .textbox-input:focus {
1174   outline: 0;
1175   box-shadow: var(--theme-focus-box-shadow-textbox);
1176 }
1177
1178 .properties-view .searchbox-section {
1179   flex: 0 1 auto;
1180 }
1181
1182 .properties-view .devtools-searchbox {
1183   padding: 0;
1184 }
1185
1186 .properties-view .devtools-searchbox input {
1187   margin: 1px 3px;
1188 }
1189
1190 .tree-container {
1191   position: relative;
1192   height: 100%;
1193 }
1194
1195 /* Make treeTable fill parent element and scrollable */
1196 .tree-container .treeTable {
1197   position: absolute;
1198   display: block;
1199   overflow-y: auto;
1200   top: 0;
1201   right: 0;
1202   bottom: 0;
1203   left: 0;
1204 }
1205
1206 /* Apply flex to table tbody in order to fill available vertical space */
1207 .tree-container .treeTable tbody {
1208   display: flex;
1209   flex-direction: column;
1210   /* Apply flex to table will create an anonymous table element outside of tbody
1211    * See also http://stackoverflow.com/a/30851678
1212    * Therefore, we set height with this magic number in order to remove the
1213    * redundant scrollbar when source editor appears.
1214    */
1215   height: calc(100% - 4px);
1216 }
1217
1218 .tree-container .treeTable tr {
1219   display: block;
1220 }
1221 /* Make right td fill available horizontal space */
1222 .tree-container .treeTable td:last-child {
1223   width: 100%;
1224 }
1225
1226 /* If there is a source editor shows up in the last row of TreeView,
1227  * it should occupy the available vertical space.
1228  */
1229 .tree-container .treeTable .editor-row-container,
1230 .tree-container .treeTable tr:last-child td[colspan="2"] {
1231   display: block;
1232   height: 100%;
1233 }
1234
1235 .properties-view .devtools-searchbox,
1236 .tree-container .treeTable .tree-section {
1237   width: 100%;
1238   background-color: var(--theme-toolbar-background);
1239 }
1240
1241 .tree-container .treeTable tr.tree-section:not(:first-child) td:not([class=""]) {
1242   border-top: 1px solid var(--theme-splitter-color);
1243 }
1244
1245 .properties-view .devtools-searchbox,
1246 .tree-container .treeTable tr.tree-section:not(:last-child) td:not([class=""]) {
1247   border-bottom: 1px solid var(--theme-splitter-color);
1248 }
1249
1250 .tree-container .treeTable .tree-section > * {
1251   vertical-align: middle;
1252 }
1253
1254 .tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel,
1255 .tree-container .treeTable .treeRow.tree-section > .treeLabelCell > .treeLabel:hover {
1256   color: var(--theme-body-color-alt);
1257 }
1258
1259 .tree-container .treeTable .treeValueCell {
1260   /* FIXME: Make value cell can be reduced to shorter width */
1261   max-width: 0;
1262   padding-inline-end: 5px;
1263 }
1264
1265 .headers-summary input:not([type="button"]) {
1266   width: 100%;
1267   background: none;
1268   border: none;
1269   color: inherit;
1270   margin-inline-end: 2px;
1271 }
1272
1273 .headers-summary input:not([type="button"]):focus {
1274 /*  outline: none;
1275   box-shadow: var(--theme-focus-box-shadow-textbox);*/
1276   transition: all 0.2s ease-in-out;
1277 }
1278
1279 .headers-summary-label,
1280 .tree-container .objectBox {
1281   white-space: nowrap;
1282 }
1283
1284 .headers-summary,
1285 .response-summary {
1286   display: flex;
1287   align-items: center;
1288 }
1289
1290 .headers-summary .tool-button {
1291 /*  border: 1px solid transparent;
1292   color: var(--theme-body-color);
1293   transition: background 0.05s ease-in-out;*/
1294   margin-inline-end: 6px;
1295   padding: 0 5px;
1296 }
1297
1298 .headers-summary .requests-menu-status-icon {
1299   min-width: 10px;
1300 }
1301
1302 .headers-summary .raw-headers-container {
1303   display: flex;
1304   width: 100%;
1305 }
1306
1307 .headers-summary .raw-headers {
1308   width: 50%;
1309   padding: 0px 4px;
1310 }
1311
1312 .headers-summary .raw-headers textarea {
1313   width: 100%;
1314   height: 50vh;
1315   font: message-box;
1316   resize: none;
1317   box-sizing: border-box;
1318 }
1319
1320 .headers-summary .raw-headers .tabpanel-summary-label {
1321   padding: 0 0 4px 0;
1322 }
1323
1324 .empty-notice {
1325   color: var(--theme-body-color-alt);
1326   padding: 3px 8px;
1327 }
1328
1329 .response-summary {
1330   display: flex;
1331 }
1332
1333 .editor-container,
1334 .editor-mount,
1335 .panel-container iframe {
1336   border: none;
1337   width: 100%;
1338   height: 100%;
1339 }
1340
1341 .treeTable .treeLabel {
1342   font-weight: 600;
1343 }
1344
1345 /* Customize default tree table style to align with devtools theme  */
1346 .treeTable .treeLabel,
1347 .treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover {
1348   color: var(--theme-highlight-purple);
1349 }
1350
1351 .treeTable .treeRow.hasChildren > .treeLabelCell > .treeLabel:hover {
1352   cursor: default;
1353   text-decoration: none;
1354 }
1355
1356 /*
1357  * FIXME: normal html block element cannot fill outer XUL element
1358  * This workaround should be removed after sidebar is migrated to react
1359  */
1360 #react-security-tabpanel-hook,
1361 #react-timings-tabpanel-hook {
1362   display: -moz-box;
1363   -moz-box-orient: vertical;
1364   -moz-box-flex: 1;
1365 }
1366
1367 /*
1368  * FIXME: normal html block element cannot fill outer XUL element
1369  * This workaround should be removed after netmonitor is migrated to react
1370  */
1371 #react-details-panel-hook {
1372   display: flex;
1373   flex-direction: column;
1374 }
1375
1376 #network-statistics-charts,
1377 #primed-cache-chart,
1378 #empty-cache-chart {
1379   display: -moz-box;
1380   -moz-box-flex: 1;
1381 }