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