support new nightly versions
[themes.git] / LCARStrek / 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 /**
17  * A generic class to hide elements, replacing the `element.hidden` attribute
18  * that we use to hide elements that can later be active
19  */
20 .hidden {
21   display: none;
22   width: 0px;
23   height: 0px;
24 }
25
26 /* Toolbar */
27
28 #performance-toolbar-control-other {
29   padding-inline-end: 5px;
30 }
31
32 #performance-toolbar-controls-detail-views .toolbarbutton-text {
33   padding-inline-start: 4px;
34   padding-inline-end: 8px;
35 }
36
37 #filter-button {
38   list-style-image: url(images/filter.svg);
39 }
40
41 #performance-filter-menupopup > menuitem .menu-iconic-left::after {
42   content: "";
43   display: block;
44   width: 8px;
45   height: 8px;
46   margin: 0 8px;
47   border-radius: 1px;
48 }
49
50 /* Details panel buttons */
51
52 #select-waterfall-view {
53   list-style-image: url(images/performance-icons.svg#details-waterfall);
54 }
55
56 #select-js-calltree-view,
57 #select-memory-calltree-view {
58   list-style-image: url(images/performance-icons.svg#details-call-tree);
59 }
60
61 #select-js-flamegraph-view,
62 #select-memory-flamegraph-view {
63   list-style-image: url(images/performance-icons.svg#details-flamegraph);
64 }
65
66 #select-optimizations-view {
67   list-style-image: url(images/profiler-stopwatch.svg);
68 }
69
70 /* Recording buttons */
71
72 #recordings-controls {
73 /*  background-color: #9C9CFF;*/
74   display: flex;
75 }
76
77 #recording-controls-mount,
78 #recording-controls-mount > div,
79 #recording-controls-mount > div > .devtools-toolbar {
80   display: flex;
81   flex: 1 1 auto;
82 }
83
84 #clear-button::before {
85   background-image: var(--clear-icon-url);
86 }
87
88 #main-record-button > image,
89 #main-record-button::before {
90   background-image: url(images/profiler-stopwatch-tbutton.svg);
91 }
92
93 #import-button > image,
94 #import-button::before {
95   background-image: url(images/import.svg);
96 }
97
98 #main-record-button .button-icon, #import-button .button-icon {
99   margin: 0;
100 }
101
102 #main-record-button .button-text, #import-button .button-text {
103   display: none;
104 }
105
106 #main-record-button .button-icon {
107   margin: 0;
108 }
109
110 #main-record-button .button-text {
111   display: none;
112 }
113
114 .notice-container .record-button {
115   padding: 5px !important;
116 }
117
118 .notice-container .record-button[checked],
119 .notice-container .record-button[checked] {
120   color: var(--theme-selection-color) !important;
121   background: var(--theme-selection-background) !important;
122 }
123
124 .record-button[locked] {
125   pointer-events: none;
126   opacity: 0.5;
127 }
128
129 /* Sidebar & recording items */
130
131 #recordings-pane {
132   border-inline-end: 1px solid var(--theme-splitter-color);
133 }
134
135 #recordings-list {
136   max-width: 300px;
137 }
138
139 .recording-item {
140   padding: 4px;
141 }
142
143 .recording-item-title {
144   font-size: 110%;
145 }
146
147 .recording-item-footer {
148   padding-top: 4px;
149   font-size: 90%;
150 }
151
152 .recording-item-save {
153   text-decoration: underline;
154   cursor: pointer;
155 }
156
157 .recording-item-duration,
158 .recording-item-save {
159   color: var(--theme-body-color-alt);
160 }
161
162 #recordings-list .selected label {
163   /* Text inside a selected item should not be custom colored. */
164   color: inherit !important;
165 }
166
167 /* Recording notices */
168
169 .notice-container {
170   font-size: 120%;
171   background-color: var(--theme-body-background);
172   color: var(--theme-body-color);
173   padding-bottom: 20vh;
174 }
175
176 .tool-disabled-message {
177   text-align: center;
178 }
179
180 .console-profile-recording-notice,
181 .console-profile-stop-notice {
182   overflow: hidden;
183 }
184
185 .console-profile-command {
186   font-family: monospace;
187   margin: 3px 2px;
188 }
189
190 .realtime-disabled-message,
191 .realtime-disabled-on-e10s-message {
192   display: none;
193 }
194
195 #performance-view[e10s="disabled"] .realtime-disabled-on-e10s-message,
196 #performance-view[e10s="unsupported"] .realtime-disabled-message {
197   display: initial;
198   opacity: 0.5;
199 }
200
201 .buffer-status-message,
202 .buffer-status-message-full {
203   display: none;
204 }
205
206 #details-pane-container[buffer-status="in-progress"] .buffer-status-message {
207   display: initial;
208   opacity: 0.5;
209 }
210
211 #details-pane-container[buffer-status="full"] .buffer-status-message {
212   display: initial;
213   color: var(--theme-highlight-red);
214   font-weight: bold;
215   opacity: 1;
216 }
217
218 #details-pane-container[buffer-status="full"] .buffer-status-message-full {
219   display: initial;
220 }
221
222 /* Profile call tree */
223
224 .call-tree-cells-container {
225   overflow: auto;
226 }
227
228 .call-tree-cells-container[categories-hidden] .call-tree-category {
229   display: none;
230 }
231
232 .call-tree-header {
233   font-size: 90%;
234   padding-top: 2px !important;
235   padding-bottom: 2px !important;
236 }
237
238 .call-tree-header[type="duration"],
239 .call-tree-cell[type="duration"],
240 .call-tree-header[type="self-duration"],
241 .call-tree-cell[type="self-duration"] {
242   min-width: 6vw;
243   width: 6vw;
244 }
245
246 .call-tree-header[type="percentage"],
247 .call-tree-cell[type="percentage"],
248 .call-tree-header[type="self-percentage"],
249 .call-tree-cell[type="self-percentage"] {
250   min-width: 5vw;
251   width: 5vw;
252 }
253
254 .call-tree-header[type="samples"],
255 .call-tree-cell[type="samples"] {
256   min-width: 4.5vw;
257   width: 4.5vw;
258 }
259
260 .call-tree-header[type="count"],
261 .call-tree-cell[type="count"],
262 .call-tree-header[type="self-count"],
263 .call-tree-cell[type="self-count"],
264 .call-tree-header[type="size"],
265 .call-tree-cell[type="size"],
266 .call-tree-header[type="self-size"],
267 .call-tree-cell[type="self-size"],
268 .call-tree-header[type="count-percentage"],
269 .call-tree-cell[type="count-percentage"],
270 .call-tree-header[type="self-count-percentage"],
271 .call-tree-cell[type="self-count-percentage"],
272 .call-tree-header[type="size-percentage"],
273 .call-tree-cell[type="size-percentage"],
274 .call-tree-header[type="self-size-percentage"],
275 .call-tree-cell[type="self-size-percentage"] {
276   min-width: 6vw;
277   width: 6vw;
278 }
279
280 .call-tree-header,
281 .call-tree-cell {
282   -moz-box-align: center;
283   overflow: hidden;
284   text-overflow: ellipsis;
285   padding: 1px 4px;
286   color: var(--theme-body-color);
287   border-inline-end-color: var(--cell-border-color);
288 }
289
290 .call-tree-header:not(:last-child),
291 .call-tree-cell:not(:last-child) {
292   border-inline-end-width: 1px;
293   border-inline-end-style: solid;
294 }
295
296 .call-tree-header:not(:last-child) {
297   text-align: center;
298 }
299
300 .call-tree-cell:not(:last-child) {
301   text-align: end;
302 }
303
304 .call-tree-header {
305   background-color: var(--theme-tab-toolbar-background);
306 }
307
308 .call-tree-item .call-tree-cell,
309 .call-tree-item .call-tree-cell[type=function] description {
310   -moz-user-select: text;
311   /* so that optimizations view doesn't break the lines in call tree */
312   white-space: nowrap;
313 }
314
315 .call-tree-item .call-tree-cell::-moz-selection,
316 .call-tree-item .call-tree-cell[type=function] description::-moz-selection {
317   background-color: var(--theme-highlight-orange);
318 }
319
320 .call-tree-item:last-child {
321   border-bottom: 1px solid var(--cell-border-color);
322 }
323
324 .call-tree-item:nth-child(2n) {
325   background-color: var(--row-alt-background-color);
326 }
327
328 .call-tree-item:hover {
329   background-color: var(--row-hover-background-color);
330 }
331
332 .call-tree-item:focus {
333   background-color: var(--theme-selection-background);
334 }
335
336 .call-tree-item:focus description {
337   color: var(--theme-selection-color) !important;
338 }
339
340 .call-tree-item:focus .call-tree-cell {
341   border-inline-end-color: var(--focus-cell-border-color);
342 }
343
344 .call-tree-item:not([origin="content"]) .call-tree-name,
345 .call-tree-item:not([origin="content"]) .call-tree-url,
346 .call-tree-item:not([origin="content"]) .call-tree-line,
347 .call-tree-item:not([origin="content"]) .call-tree-column {
348   /* Style chrome and non-JS nodes differently. */
349   opacity: 0.6;
350 }
351
352 .call-tree-name {
353   margin-inline-end: 4px !important;
354 }
355
356 .call-tree-url {
357   cursor: pointer;
358 }
359
360 .call-tree-url:hover {
361   text-decoration: underline;
362 }
363
364 .call-tree-url, .tree-widget-item:not(.theme-selected) .opt-url {
365   color: var(--theme-highlight-blue);
366 }
367
368 .call-tree-line, .tree-widget-item:not(.theme-selected) .opt-line {
369   color: var(--theme-highlight-orange);
370 }
371
372 .call-tree-column {
373   color: var(--theme-highlight-orange);
374   opacity: 0.6;
375 }
376
377 .call-tree-host {
378   margin-inline-start: 8px !important;
379   font-size: 90%;
380   color: var(--theme-content-color2);
381 }
382
383 .call-tree-category {
384   transform: scale(0.75);
385   transform-origin: center right;
386 }
387
388 /**
389  * Waterfall ticks header
390  */
391
392 .waterfall-header-ticks {
393   overflow: hidden;
394 }
395
396 .waterfall-header-name {
397   padding: 2px 4px;
398   font-size: 90%;
399 }
400
401 .waterfall-header-tick {
402   width: 100px;
403   font-size: 9px;
404   transform-origin: left center;
405   color: var(--theme-body-color);
406 }
407
408 .waterfall-header-tick:not(:first-child) {
409   margin-inline-start: -100px !important; /* Don't affect layout. */
410 }
411
412 .waterfall-background-ticks {
413   /* Background created on a <canvas> in js. */
414   /* @see devtools/client/timeline/widgets/waterfall.js */
415   background-image: -moz-element(#waterfall-background);
416   background-repeat: repeat-y;
417   background-position: -1px center;
418 }
419
420 /**
421  * Markers waterfall breakdown
422  */
423
424 #waterfall-breakdown {
425   overflow-x: hidden;
426   overflow-y: auto;
427 }
428
429 .waterfall-tree-item:not([level="0"]) {
430   background-image: repeating-linear-gradient(
431     -45deg,
432     transparent 0px,
433     transparent 2px,
434     rgba(255,255,255,0.05) 2px,
435     rgba(255,255,255,0.05) 4px
436   );
437 }
438
439 .waterfall-tree-item[expandable] .waterfall-marker-bullet,
440 .waterfall-tree-item[expandable] .waterfall-marker-bar {
441   background-image: repeating-linear-gradient(
442     -45deg,
443     transparent 0px,
444     transparent 5px,
445     rgba(0,0,0,0.35) 5px,
446     rgba(0,0,0,0.35) 10px
447   );
448 }
449
450 .waterfall-tree-item[expanded],
451 .waterfall-tree-item:not([level="0"]) + .waterfall-tree-item[level="0"] {
452   box-shadow: 0 -1px var(--cell-border-color-light);
453 }
454
455 .waterfall-tree-item:nth-child(2n) > .waterfall-marker {
456   background-color: var(--row-alt-background-color);
457 }
458
459 .waterfall-tree-item:hover {
460   background-color: var(--row-hover-background-color);
461 }
462
463 .waterfall-tree-item:last-child {
464   border-bottom: 1px solid var(--cell-border-color);
465 }
466
467 .waterfall-tree-item:focus {
468   background-color: var(--theme-selection-background);
469 }
470
471 .waterfall-tree-item:focus description {
472   color: var(--theme-selection-color) !important;
473 }
474
475 /**
476  * Marker left sidebar
477  */
478
479 .waterfall-sidebar {
480   border-inline-end: 1px solid var(--cell-border-color);
481 }
482
483 .waterfall-tree-item > .waterfall-sidebar:hover,
484 .waterfall-tree-item:hover > .waterfall-sidebar,
485 .waterfall-tree-item:focus > .waterfall-sidebar {
486   background: transparent;
487 }
488
489 .waterfall-marker-bullet {
490   width: 8px;
491   height: 8px;
492   margin-inline-start: 8px;
493   margin-inline-end: 6px;
494   border-radius: 1px;
495 }
496
497 .waterfall-marker-name {
498   font-size: 95%;
499   padding-bottom: 1px !important;
500 }
501
502 /**
503  * Marker timebar
504  */
505
506 .waterfall-marker {
507   overflow: hidden;
508 }
509
510 .waterfall-marker-bar {
511   height: 9px;
512   transform-origin: left center;
513   border-radius: 1px;
514 }
515
516 .waterfall-marker > .theme-twisty {
517   /* Don't affect layout. */
518   width: 14px;
519   margin-inline-end: -14px;
520 }
521
522 /**
523  * OTMT markers
524  */
525
526 .waterfall-tree-item[otmt=true] .waterfall-marker-bullet,
527 .waterfall-tree-item[otmt=true] .waterfall-marker-bar {
528   background-color: transparent;
529   border-width: 1px;
530   border-style: solid;
531 }
532
533 /**
534  * Marker details view
535  */
536
537 #waterfall-details {
538   padding-inline-start: 8px;
539   padding-inline-end: 8px;
540   padding-top: 2vh;
541   overflow: auto;
542   min-width: 50px;
543 }
544
545 #waterfall-details > * {
546   padding-top: 3px;
547 }
548
549 .marker-details-bullet {
550   width: 8px;
551   height: 8px;
552   border-radius: 1px;
553 }
554
555 .marker-details-name-label {
556   padding-inline-end: 4px;
557 }
558
559 .marker-details-type {
560   font-size: 1.2em;
561   font-weight: bold;
562 }
563
564 .marker-details-duration {
565   font-weight: bold;
566 }
567
568 .marker-details-customcontainer .custom-button {
569   padding: 2px 5px;
570   border-width: 1px;
571 }
572
573 /**
574  * Marker colors
575  */
576
577 menuitem.marker-color-graphs-full-red .menu-iconic-left::after,
578 .marker-color-graphs-full-red {
579   background-color: var(--theme-graphs-full-red);
580   border-color: var(--theme-graphs-full-red);
581 }
582 menuitem.marker-color-graphs-full-blue .menu-iconic-left::after,
583 .marker-color-graphs-full-blue {
584   background-color: var(--theme-graphs-full-blue);
585   border-color: var(--theme-graphs-full-blue);
586 }
587 menuitem.marker-color-graphs-green .menu-iconic-left::after,
588 .marker-color-graphs-green {
589   background-color: var(--theme-graphs-green);
590   border-color: var(--theme-graphs-green);
591 }
592 menuitem.marker-color-graphs-blue .menu-iconic-left::after,
593 .marker-color-graphs-blue {
594   background-color: var(--theme-graphs-blue);
595   border-color: var(--theme-graphs-blue);
596 }
597 menuitem.marker-color-graphs-bluegrey .menu-iconic-left::after,
598 .marker-color-graphs-bluegrey {
599   background-color: var(--theme-graphs-bluegrey);
600   border-color: var(--theme-graphs-bluegrey);
601 }
602 menuitem.marker-color-graphs-purple .menu-iconic-left::after,
603 .marker-color-graphs-purple {
604   background-color: var(--theme-graphs-purple);
605   border-color: var(--theme-graphs-purple);
606 }
607 menuitem.marker-color-graphs-yellow .menu-iconic-left::after,
608 .marker-color-graphs-yellow {
609   background-color: var(--theme-graphs-yellow);
610   border-color: var(--theme-graphs-yellow);
611 }
612 menuitem.marker-color-graphs-orange .menu-iconic-left::after,
613 .marker-color-graphs-orange {
614   background-color: var(--theme-graphs-orange);
615   border-color: var(--theme-graphs-orange);
616 }
617 menuitem.marker-color-graphs-red .menu-iconic-left::after,
618 .marker-color-graphs-red {
619   background-color: var(--theme-graphs-red);
620   border-color: var(--theme-graphs-red);
621 }
622 menuitem.marker-color-graphs-grey .menu-iconic-left::after,
623 .marker-color-graphs-grey{
624   background-color: var(--theme-graphs-grey);
625   border-color: var(--theme-graphs-grey);
626 }
627
628 /**
629  * Configurable Options
630  *
631  * Elements can be tagged with a class and visibility is controlled via a
632  * preference being applied or removed.
633  */
634
635 /**
636  * devtools.performance.ui.experimental
637  */
638 menuitem.experimental-option::before {
639   content: "";
640   background-image: url(chrome://devtools/skin/images/webconsole.svg);
641   background-repeat: no-repeat;
642   background-size: 72px 60px;
643   width: 12px;
644   height: 12px;
645   display: inline-block;
646
647   background-position: -24px -24px;
648   margin: 2px 5px 0 0;
649   max-height: 12px;
650 }
651
652 #performance-options-menupopup:not(.experimental-enabled) .experimental-option,
653 #performance-options-menupopup:not(.experimental-enabled) .experimental-option::before {
654   display: none;
655 }
656
657 /* for call tree */
658 description.opt-icon {
659   margin: 0px 0px 0px 0px;
660 }
661 description.opt-icon::before {
662   margin: 1px 4px 0px 0px;
663 }