second part of syncing LCARStrek with Firefox 41 windows theme changes
[themes.git] / LCARStrek / browser / devtools / performance.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 file,
4  * You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6 /* CSS Variables specific to this panel that aren't defined by the themes */
7 .theme-dark,
8 .theme-light {
9   --cell-border-color: #A09090;
10   --focus-cell-border-color: #9C9CFF;
11   --row-alt-background-color: #403400;
12   --row-hover-background-color: #544400;
13 }
14
15 /* Toolbar */
16
17 #performance-toolbar > tabs,
18 #performance-toolbar {
19   -moz-border-end-color: var(--theme-splitter-color);
20 }
21
22 #performance-toolbar-control-other {
23   -moz-padding-end: 5px;
24 }
25
26 #performance-toolbar-controls-detail-views > toolbarbutton {
27   min-width: 0;
28 }
29
30 #performance-toolbar-controls-detail-views .toolbarbutton-text {
31   -moz-padding-start: 4px;
32   -moz-padding-end: 8px;
33 }
34
35 #filter-button {
36   list-style-image: url(timeline-filter.svg#filter);
37   min-width: 24px;
38 }
39
40 #filter-button[disabled] {
41   list-style-image: url(timeline-filter.svg#filter-disabled);
42 }
43
44 #filter-button:not([disabled]):hover,
45 #filter-button:not([disabled]):hover:active,
46 #filter-button[open] {
47   list-style-image: url(timeline-filter.svg#filter-open);
48 }
49
50 #performance-filter-menupopup > menuitem:before {
51   content: "";
52   display: block;
53   width: 8px;
54   height: 8px;
55   margin: 0 8px;
56   border-radius: 1px;
57 }
58
59 #filter-button {
60   list-style-image: url(timeline-filter.svg#filter);
61   min-width: 24px;
62 }
63
64 #filter-button[disabled] {
65   list-style-image: url(timeline-filter.svg#filter-disabled);
66 }
67
68 #filter-button[open] {
69   list-style-image: url(timeline-filter.svg#filter-open);
70 }
71
72 #performance-filter-menupopup > menuitem:before {
73   content: "";
74   display: block;
75   width: 8px;
76   height: 8px;
77   margin: 0 8px;
78   border-radius: 1px;
79 }
80
81 /* Recording Notice */
82
83 #performance-view .notice-container {
84   font-size: 120%;
85   background-color: var(--theme-toolbar-background);
86   color: var(--theme-body-color);
87   padding-bottom: 20vh;
88 }
89
90 #performance-view .notice-container button {
91   min-width: 30px;
92   min-height: 28px;
93   margin: 0;
94 }
95
96 #performance-view .notice-container vbox {
97   text-align: center;
98 }
99
100 .console-profile-command {
101   font-family: monospace;
102   margin: 3px 2px;
103 }
104
105 #performance-view .realtime-message {
106   opacity: 0.5;
107   display: block;
108 }
109
110 #performance-view toolbarbutton.record-button {
111   padding: 5px;
112 }
113
114 #performance-view toolbarbutton.record-button[checked],
115 #performance-view toolbarbutton.record-button[checked] {
116   color: var(--theme-selection-color);
117   background: var(--theme-selection-background);
118 }
119
120 .record-button[locked] {
121   pointer-events: none;
122   opacity: 0.5;
123 }
124
125 #performance-view .realtime-disabled-message,
126 #performance-view .realtime-disabled-on-e10s-message {
127   display: none;
128   /* This label does not want to wrap naturally (based on some combination of
129      it's parents and flex).  Quick and dirty way to force it to wrap -> don't
130      let it get bigger than half the screen size */
131   max-width: 60vw;
132 }
133
134 #performance-view[e10s="disabled"] .realtime-disabled-on-e10s-message {
135   display: block;
136   opacity: 0.5;
137
138 }
139 #performance-view[e10s="unsupported"] .realtime-disabled-message {
140   display: block;
141   opacity: 0.5;
142 }
143
144 #details-pane-container .buffer-status-message,
145 #details-pane-container .buffer-status-message-full {
146   display: none;
147 }
148
149 #details-pane-container[buffer-status="in-progress"] .buffer-status-message {
150   display: block;
151   opacity: 0.5;
152 }
153
154 #details-pane-container[buffer-status="full"] .buffer-status-message {
155   display: block;
156   color: var(--theme-highlight-red);
157   font-weight: bold;
158   opacity: 1;
159 }
160
161 #details-pane-container[buffer-status="full"] .buffer-status-message-full {
162   display: block;
163 }
164
165 /* Overview Panel */
166
167 #main-record-button {
168   list-style-image: url(profiler-stopwatch-tbutton.svg);
169 }
170
171 #empty-notice > .record-button,
172 #main-record-button:hover,
173 #main-record-button:hover:active {
174   list-style-image: url(profiler-stopwatch.svg);
175 }
176
177 #main-record-button[checked] {
178   list-style-image: url(profiler-stopwatch-checked.svg);
179 }
180
181 #main-record-button .button-icon {
182   margin: 0;
183 }
184
185 #main-record-button .button-text {
186   display: none;
187 }
188
189 /* Details Panel */
190
191 #select-waterfall-view {
192   list-style-image: url(performance-icons.svg#details-waterfall);
193 }
194
195 #select-waterfall-view:hover,
196 #select-waterfall-view:hover:active,
197 #select-waterfall-view[checked] {
198   list-style-image: url(performance-icons.svg#details-waterfall-active);
199 }
200
201 #select-js-calltree-view,
202 #select-memory-calltree-view {
203   list-style-image: url(performance-icons.svg#details-call-tree);
204 }
205
206 #select-js-calltree-view:hover,
207 #select-js-calltree-view:hover:active,
208 #select-js-calltree-view[checked],
209 #select-memory-calltree-view:hover,
210 #select-memory-calltree-view:hover:active,
211 #select-memory-calltree-view[checked] {
212   list-style-image: url(performance-icons.svg#details-call-tree-active);
213 }
214
215 #select-js-flamegraph-view,
216 #select-memory-flamegraph-view {
217   list-style-image: url(performance-icons.svg#details-flamegraph);
218 }
219
220 #select-js-flamegraph-view:hover,
221 #select-js-flamegraph-view:hover:active,
222 #select-js-flamegraph-view[checked],
223 #select-memory-flamegraph-view:hover,
224 #select-memory-flamegraph-view:hover:active,
225 #select-memory-flamegraph-view[checked] {
226   list-style-image: url(performance-icons.svg#details-flamegraph-active);
227 }
228
229 /* Profile call tree */
230
231 .call-tree-cells-container {
232   /* Hack: force hardware acceleration */
233   transform: translateZ(1px);
234   overflow: auto;
235 }
236
237 .call-tree-cells-container[categories-hidden] .call-tree-category {
238   display: none;
239 }
240
241 .call-tree-header {
242   font-size: 90%;
243   padding-top: 2px !important;
244   padding-bottom: 2px !important;
245 }
246
247 .call-tree-header[type="duration"],
248 .call-tree-cell[type="duration"],
249 .call-tree-header[type="self-duration"],
250 .call-tree-cell[type="self-duration"] {
251   width: 6vw;
252 }
253
254 .call-tree-header[type="percentage"],
255 .call-tree-cell[type="percentage"],
256 .call-tree-header[type="self-percentage"],
257 .call-tree-cell[type="self-percentage"] {
258   width: 5vw;
259 }
260
261 .call-tree-header[type="samples"],
262 .call-tree-cell[type="samples"] {
263   width: 4.5vw;
264 }
265
266 .call-tree-header[type="allocations"],
267 .call-tree-cell[type="allocations"],
268 .call-tree-header[type="self-allocations"],
269 .call-tree-cell[type="self-allocations"] {
270   width: 9vw;
271 }
272
273 .call-tree-header[type="function"],
274 .call-tree-cell[type="function"] {
275   -moz-box-flex: 1;
276 }
277
278 .call-tree-header,
279 .call-tree-cell {
280   -moz-box-align: center;
281   overflow: hidden;
282   padding: 1px 4px;
283   color: var(--theme-body-color);
284   -moz-border-end-color: var(--cell-border-color);
285 }
286
287 .call-tree-header:not(:last-child),
288 .call-tree-cell:not(:last-child) {
289   -moz-border-end-width: 1px;
290   -moz-border-end-style: solid;
291 }
292
293 .call-tree-header:not(:last-child) {
294   text-align: center;
295 }
296
297 .call-tree-cell:not(:last-child) {
298   text-align: end;
299 }
300
301 .call-tree-header {
302   background-color: var(--theme-tab-toolbar-background);
303 }
304
305 .call-tree-item:last-child:not(:focus) {
306   border-bottom: 1px solid var(--cell-border-color);
307 }
308
309 .call-tree-item:nth-child(2n) {
310   background-color: var(--row-alt-background-color);
311 }
312
313 .call-tree-item:hover {
314   background-color: var(--row-hover-background-color);
315 }
316
317 .call-tree-item:focus {
318   background-color: var(--theme-selection-background);
319 }
320
321 .call-tree-item:focus label {
322   color: var(--theme-selection-color) !important;
323 }
324
325 .call-tree-item:focus .call-tree-cell {
326   -moz-border-end-color: var(--focus-cell-border-color);
327 }
328
329 .call-tree-item:not([origin="content"]) .call-tree-name,
330 .call-tree-item:not([origin="content"]) .call-tree-url,
331 .call-tree-item:not([origin="content"]) .call-tree-line,
332 .call-tree-item:not([origin="content"]) .call-tree-column {
333   /* Style chrome and non-JS nodes differently. */
334   opacity: 0.6;
335 }
336
337 .call-tree-name {
338   -moz-margin-end: 4px !important;
339 }
340
341 .call-tree-url {
342   cursor: pointer;
343 }
344
345 .call-tree-url:hover {
346   text-decoration: underline;
347 }
348
349 .call-tree-url, .tree-widget-item:not(.theme-selected) .opt-url {
350   color: var(--theme-highlight-blue);
351 }
352
353 .call-tree-line, .tree-widget-item:not(.theme-selected) .opt-line {
354   color: var(--theme-highlight-orange);
355 }
356
357 .call-tree-column {
358   color: var(--theme-highlight-orange);
359   opacity: 0.6;
360 }
361
362 .call-tree-host {
363   -moz-margin-start: 8px !important;
364   font-size: 90%;
365   color: var(--theme-content-color2);
366 }
367
368 .call-tree-zoom {
369   -moz-appearance: none;
370   background-color: transparent;
371   background-position: center;
372   background-repeat: no-repeat;
373   background-size: 11px;
374   min-width: 11px;
375   -moz-margin-start: 8px !important;
376   cursor: zoom-in;
377   opacity: 0;
378 }
379
380 .theme-dark .call-tree-zoom {
381   background-image: url(magnifying-glass.png);
382 }
383
384 .theme-light .call-tree-zoom {
385   background-image: url(magnifying-glass-light.png);
386 }
387
388 @media (min-resolution: 1.25dppx) {
389   .theme-dark .call-tree-zoom {
390     background-image: url(magnifying-glass@2x.png);
391   }
392
393   .theme-light .call-tree-zoom {
394     background-image: url(magnifying-glass-light@2x.png);
395   }
396 }
397
398 .call-tree-item:hover .call-tree-zoom {
399   transition: opacity 0.3s ease-in;
400   opacity: 1;
401 }
402
403 .call-tree-item:hover .call-tree-zoom:hover {
404   opacity: 0;
405 }
406
407 .call-tree-category {
408   transform: scale(0.75);
409   transform-origin: center right;
410 }
411
412 /**
413  * Details Waterfall Styles
414  */
415
416 .waterfall-list-contents {
417   /* Hack: force hardware acceleration */
418   transform: translateZ(1px);
419   overflow-x: hidden;
420   overflow-y: auto;
421 }
422
423 .waterfall-header-contents {
424   overflow-x: hidden;
425 }
426
427 .waterfall-background-ticks {
428   /* Background created on a <canvas> in js. */
429   /* @see browser/devtools/timeline/widgets/waterfall.js */
430   background-image: -moz-element(#waterfall-background);
431   background-repeat: repeat-y;
432   background-position: -1px center;
433 }
434
435 .waterfall-marker-container[is-spacer] {
436   pointer-events: none;
437 }
438
439 .waterfall-marker-container:not([is-spacer]):nth-child(2n) {
440   background-color: #403400;
441 }
442
443 .waterfall-marker-container:hover {
444   background-color: #FFCF00 !important;
445 }
446
447 .waterfall-marker-item {
448   overflow: hidden;
449 }
450
451 .waterfall-sidebar {
452   -moz-border-end: 1px solid var(--theme-splitter-color);
453 }
454
455 .waterfall-marker-container:hover > .waterfall-sidebar {
456   background-color: transparent;
457 }
458
459 .waterfall-header-name {
460   padding: 2px 4px;
461   font-size: 90%;
462 }
463
464 .waterfall-header-tick {
465   width: 100px;
466   font-size: 9px;
467   transform-origin: left center;
468   color: var(--theme-body-color);
469 }
470
471 .waterfall-header-tick:not(:first-child) {
472   -moz-margin-start: -100px !important; /* Don't affect layout. */
473 }
474
475 .waterfall-marker-bullet {
476   width: 8px;
477   height: 8px;
478   -moz-margin-start: 8px;
479   -moz-margin-end: 6px;
480   border-radius: 1px;
481 }
482
483 .waterfall-marker-name {
484   font-size: 95%;
485   padding-bottom: 1px !important;
486 }
487
488 .waterfall-marker-bar {
489   height: 9px;
490   transform-origin: left center;
491   border-radius: 1px;
492 }
493
494 .waterfall-marker-container.selected > .waterfall-sidebar,
495 .waterfall-marker-container.selected > .waterfall-marker-item {
496   background-color: var(--theme-selection-background);
497   color: var(--theme-selection-color);
498 }
499
500 #waterfall-details {
501   -moz-padding-start: 8px;
502   -moz-padding-end: 8px;
503   padding-top: 2vh;
504   overflow: auto;
505   min-width: 50px;
506 }
507
508 .marker-details-bullet {
509   width: 8px;
510   height: 8px;
511   border-radius: 1px;
512 }
513
514 menuitem.marker-color-graphs-purple:before,
515 .marker-color-graphs-purple {
516   background-color: var(--theme-graphs-purple);
517 }
518
519 menuitem.marker-color-graphs-grey:before,
520 .marker-color-graphs-grey{
521   background-color: var(--theme-graphs-grey);
522 }
523
524 menuitem.marker-color-graphs-green:before,
525 .marker-color-graphs-green {
526   background-color: var(--theme-graphs-green);
527 }
528
529 menuitem.marker-color-graphs-yellow:before,
530 .marker-color-graphs-yellow {
531   background-color: var(--theme-graphs-yellow);
532 }
533
534 menuitem.marker-color-graphs-red:before,
535 .marker-color-graphs-red {
536   background-color: var(--theme-graphs-red);
537 }
538
539 menuitem.marker-color-graphs-blue:before,
540 .marker-color-graphs-blue {
541   background-color: var(--theme-graphs-blue);
542 }
543
544 #waterfall-details > * {
545   padding-top: 3px;
546 }
547
548 .marker-details-labelname {
549   -moz-padding-end: 4px;
550 }
551
552 .marker-details-type {
553   font-size: 1.2em;
554   font-weight: bold;
555 }
556
557 .marker-details-duration {
558   font-weight: bold;
559 }
560
561 /* Recording items */
562
563 .recording-item {
564   padding: 4px;
565 }
566
567 .recording-item-title {
568   font-size: 110%;
569 }
570
571 .recording-item-footer {
572   padding-top: 4px;
573   font-size: 90%;
574 }
575
576 .recording-item-save {
577   text-decoration: underline;
578   cursor: pointer;
579 }
580
581 .recording-item-duration,
582 .recording-item-save {
583   color: var(--theme-body-color-alt);
584 }
585
586 #recordings-list .selected label {
587   /* Text inside a selected item should not be custom colored. */
588   color: inherit !important;
589 }
590
591 /* Profile call tree */
592
593 .call-tree-cells-container {
594   /* Hack: force hardware acceleration */
595   transform: translateZ(1px);
596   overflow: auto;
597 }
598
599 .call-tree-cells-container[categories-hidden] .call-tree-category {
600   display: none;
601 }
602
603 .call-tree-header[type="duration"],
604 .call-tree-cell[type="duration"],
605 .call-tree-header[type="self-duration"],
606 .call-tree-cell[type="self-duration"] {
607   width: 9em;
608 }
609
610 .call-tree-header[type="percentage"],
611 .call-tree-cell[type="percentage"],
612 .call-tree-header[type="self-percentage"],
613 .call-tree-cell[type="self-percentage"] {
614   width: 6em;
615 }
616
617 .call-tree-header[type="samples"],
618 .call-tree-cell[type="samples"] {
619   width: 5em;
620 }
621
622 .call-tree-header[type="function"],
623 .call-tree-cell[type="function"] {
624   -moz-box-flex: 1;
625 }
626
627 .call-tree-header,
628 .call-tree-cell {
629   -moz-box-align: center;
630   overflow: hidden;
631   padding: 1px 4px;
632 }
633
634 .call-tree-header:not(:last-child),
635 .call-tree-cell:not(:last-child) {
636   -moz-border-end: 1px solid;
637 }
638
639 .call-tree-header,
640 .call-tree-cell {
641   -moz-border-end-color: var(--theme-splitter-color);
642   color: var(--theme-body-color);
643 }
644
645 .call-tree-header:not(:last-child) {
646   text-align: center;
647 }
648
649 .call-tree-cell:not(:last-child) {
650   text-align: end;
651 }
652
653 .call-tree-header {
654   background-color: var(--theme-toolbar-background);
655 }
656
657 .call-tree-item:last-child:not(:focus) {
658   border-bottom: 1px solid var(--theme-splitter-color);
659 }
660
661 .call-tree-item:nth-child(2n) {
662   background-color: var(--theme-contrast-background);
663 }
664
665 .call-tree-item:hover {
666   background-color: var(--theme-hover-background);
667   color: var(--theme-hover-color);
668 }
669
670 .call-tree-item:focus {
671   background-color: var(--theme-selection-background);
672 }
673
674 .call-tree-item:focus label {
675   color: var(--theme-selection-color);
676 }
677
678 .call-tree-item:focus .call-tree-cell {
679   -moz-border-end-color: var(--theme-splitter-color);
680 }
681
682 .call-tree-item:not([origin="content"]) .call-tree-name,
683 .call-tree-item:not([origin="content"]) .call-tree-url,
684 call-tree-item:not([origin="content"]) .call-tree-line {
685   /* Style chrome and non-JS nodes differently. */
686   opacity: 0.6;
687 }
688
689 .call-tree-name {
690   -moz-margin-end: 4px !important;
691 }
692
693 .call-tree-url {
694   cursor: pointer;
695 }
696
697 .call-tree-url:hover {
698   text-decoration: underline;
699 }
700
701 .call-tree-url {
702   color: var(--theme-text-blue);
703 }
704
705 .call-tree-line {
706   color: var(--theme-contrast-border);
707 }
708
709 .call-tree-host {
710   -moz-margin-start: 8px !important;
711   font-size: 90%;
712 }
713
714 .call-tree-host {
715   color: ver(--theme-body-color);
716 }
717
718 .call-tree-zoom {
719   -moz-appearance: none;
720   background-color: transparent;
721   background-position: center;
722   background-repeat: no-repeat;
723   background-size: 11px;
724   min-width: 11px;
725   -moz-margin-start: 8px !important;
726   cursor: zoom-in;
727   opacity: 0;
728 }
729
730 .call-tree-zoom {
731   background-image: url(magnifying-glass.png);
732 }
733
734 @media (min-resolution: 1.25dppx) {
735   .call-tree-zoom {
736     background-image: url(magnifying-glass@2x.png);
737   }
738 }
739
740 .call-tree-item:hover .call-tree-zoom {
741   transition: opacity 0.3s ease-in;
742   opacity: 1;
743 }
744
745 .call-tree-item:hover .call-tree-zoom:hover {
746   opacity: 0;
747 }
748
749 .call-tree-category {
750   transform: scale(0.75);
751   transform-origin: center right;
752 }
753
754 /**
755  * JIT View
756  */
757
758 #jit-optimizations-view {
759   width: 350px;
760   overflow-x: hidden;
761   overflow-y: auto;
762   min-width: 200px;
763 }
764
765 /* override default styles for tree widget */
766 #jit-optimizations-view .tree-widget-empty-text {
767   font-size: inherit;
768   padding: 0px;
769   margin: 8px;
770 }
771
772 #jit-optimizations-view:not(.empty) .tree-widget-empty-text {
773   display: none;
774 }
775
776 #jit-optimizations-toolbar {
777   height: 18px;
778   min-height: 0px; /* override .devtools-toolbar min-height */
779 }
780
781 .jit-optimizations-title {
782   margin: 0px 4px;
783   font-weight: 600;
784 }
785
786 #jit-optimizations-raw-view {
787   font-size: 90%;
788 }
789
790 /* override default .tree-widget-item line-height */
791 #jit-optimizations-raw-view .tree-widget-item {
792   line-height: 20px !important;
793   display: block;
794   overflow: hidden;
795 }
796
797 #jit-optimizations-raw-view .tree-widget-item[level="1"] {
798   font-weight: 600;
799 }
800
801 #jit-optimizations-view .opt-outcome::before {
802   content: "→";
803   margin: 4px 0px;
804   color: var(--theme-body-color);
805 }
806 #jit-optimizations-view .theme-selected .opt-outcome::before {
807   color: var(--theme-selection-color);
808 }
809
810 #jit-optimizations-view .tree-widget-item:not(.theme-selected) .opt-outcome[outcome=success] {
811   color: var(--theme-highlight-green);
812 }
813 #jit-optimizations-view .tree-widget-item:not(.theme-selected) .opt-outcome[outcome=failure] {
814   color: var(--theme-highlight-red);
815 }
816 #jit-optimizations-view .tree-widget-container {
817   -moz-margin-end: 0px;
818 }
819 #jit-optimizations-view .tree-widget-container > li,
820 #jit-optimizations-view .tree-widget-children > li {
821   overflow: hidden;
822 }
823
824 .opt-line::before {
825   content: ":";
826   color: var(--theme-highlight-orange);
827 }
828 .theme-selected .opt-line::before {
829   color: var(--theme-selection-color);
830 }
831 .opt-line.header-line::before {
832   color: var(--theme-body-color);
833 }
834 #jit-optimizations-view.empty .opt-line.header-line::before {
835   display: none;
836 }
837
838 .opt-url {
839   -moz-margin-start: 4px !important;
840 }
841 .opt-url:hover {
842   text-decoration: underline;
843 }
844 .opt-url.debugger-link {
845   cursor: pointer;
846 }
847
848 #jit-optimizations-view .opt-icon::before {
849   content: "";
850   background-image: url(chrome://browser/skin/devtools/webconsole.png);
851   background-repeat: no-repeat;
852   background-size: 48px 40px;
853   margin: 5px 6px 0 0;
854   width: 8px;
855   height: 8px;
856   max-height: 8px;
857   display: inline-block;
858 }
859
860 #jit-optimizations-view .opt-icon[severity=warning]::before {
861   background-position: -16px -16px;
862 }
863
864 @media (min-resolution: 1.25dppx) {
865   #jit-optimizations-view .opt-icon::before {
866     background-image: url(chrome://browser/skin/devtools/webconsole@2x.png);
867   }
868 }
869
870 /**
871  * Configurable Options
872  *
873  * Elements can be tagged with a class and visibility is controlled via a preference being
874  * applied or removed.
875  */
876
877 /**
878  * devtools.performance.ui.experimental
879  */
880 menuitem.experimental-option::before {
881   content: "";
882   background-image: url(chrome://browser/skin/devtools/webconsole.png);
883   background-repeat: no-repeat;
884   background-size: 48px 40px;
885   margin: 2px 5px 0 0;
886   width: 8px;
887   height: 8px;
888   max-height: 8px;
889   display: inline-block;
890   background-position: -16px -16px;
891 }
892 @media (min-resolution: 1.25dppx) {
893   menuitem.experimental-option::before {
894     background-image: url(chrome://browser/skin/devtools/webconsole@2x.png);
895   }
896 }
897 #performance-options-menupopup:not(.experimental-enabled) .experimental-option,
898 #performance-options-menupopup:not(.experimental-enabled) .experimental-option::before {
899   display: none;
900 }