make networking pane work nicely in current nightlies (not completely sure if we...
[themes.git] / LCARStrek / devtools / performance.css
CommitLineData
8c5bee4f
RK
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;
936e60fe 10 --cell-border-color-light: #A09090;
8c5bee4f
RK
11 --focus-cell-border-color: #9C9CFF;
12 --row-alt-background-color: #403400;
13 --row-hover-background-color: #544400;
14}
15
e9fbfc3a
RK
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
8c5bee4f
RK
26/* Toolbar */
27
ae90b726 28#performance-toolbar-control-other {
dae45075 29 padding-inline-end: 5px;
ae90b726
RK
30}
31
8c5bee4f 32#performance-toolbar-controls-detail-views .toolbarbutton-text {
dae45075
RK
33 padding-inline-start: 4px;
34 padding-inline-end: 8px;
8c5bee4f
RK
35}
36
2f2239a0 37#filter-button {
1ad21b1f 38 list-style-image: url(images/filter.svg);
ae90b726
RK
39}
40
6f751fd1 41#performance-filter-menupopup > menuitem .menu-iconic-left::after {
ae90b726
RK
42 content: "";
43 display: block;
44 width: 8px;
45 height: 8px;
46 margin: 0 8px;
ae90b726 47 border-radius: 1px;
ae90b726
RK
48}
49
936e60fe 50/* Details panel buttons */
8c5bee4f 51
936e60fe 52#select-waterfall-view {
d0a8de80 53 list-style-image: url(images/performance-icons.svg#details-waterfall);
8c5bee4f
RK
54}
55
936e60fe
RK
56#select-js-calltree-view,
57#select-memory-calltree-view {
d0a8de80 58 list-style-image: url(images/performance-icons.svg#details-call-tree);
d74db938
RK
59}
60
936e60fe
RK
61#select-js-flamegraph-view,
62#select-memory-flamegraph-view {
d0a8de80 63 list-style-image: url(images/performance-icons.svg#details-flamegraph);
d74db938
RK
64}
65
b336389b 66#select-optimizations-view {
dadba0f2 67 list-style-image: url(images/profiler-stopwatch.svg);
b336389b
RK
68}
69
936e60fe
RK
70/* Recording buttons */
71
1e9e1791 72#recordings-controls {
60156ae2
RK
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;
1e9e1791
RK
82}
83
84#clear-button::before {
85 background-image: var(--clear-icon-url);
86}
87
60156ae2 88#main-record-button > image,
1e9e1791
RK
89#main-record-button::before {
90 background-image: url(images/profiler-stopwatch-tbutton.svg);
91}
92
60156ae2 93#import-button > image,
1e9e1791
RK
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;
d74db938
RK
104}
105
936e60fe
RK
106#main-record-button .button-icon {
107 margin: 0;
108}
d74db938 109
936e60fe
RK
110#main-record-button .button-text {
111 display: none;
d74db938 112}
936e60fe
RK
113
114.notice-container .record-button {
115 padding: 5px !important;
d74db938
RK
116}
117
936e60fe
RK
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;
d74db938
RK
122}
123
936e60fe
RK
124.record-button[locked] {
125 pointer-events: none;
d74db938
RK
126 opacity: 0.5;
127}
128
936e60fe
RK
129/* Sidebar & recording items */
130
d0a8de80
RK
131#recordings-pane {
132 border-inline-end: 1px solid var(--theme-splitter-color);
133}
134
135#recordings-list {
136 max-width: 300px;
137}
138
936e60fe
RK
139.recording-item {
140 padding: 4px;
d74db938
RK
141}
142
936e60fe
RK
143.recording-item-title {
144 font-size: 110%;
d74db938
RK
145}
146
936e60fe
RK
147.recording-item-footer {
148 padding-top: 4px;
149 font-size: 90%;
150}
8c5bee4f 151
936e60fe
RK
152.recording-item-save {
153 text-decoration: underline;
154 cursor: pointer;
2f2239a0
RK
155}
156
936e60fe
RK
157.recording-item-duration,
158.recording-item-save {
159 color: var(--theme-body-color-alt);
8c5bee4f
RK
160}
161
936e60fe
RK
162#recordings-list .selected label {
163 /* Text inside a selected item should not be custom colored. */
164 color: inherit !important;
8c5bee4f
RK
165}
166
936e60fe
RK
167/* Recording notices */
168
169.notice-container {
170 font-size: 120%;
d0a8de80 171 background-color: var(--theme-body-background);
936e60fe
RK
172 color: var(--theme-body-color);
173 padding-bottom: 20vh;
8c5bee4f
RK
174}
175
d0a8de80
RK
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
936e60fe
RK
185.console-profile-command {
186 font-family: monospace;
187 margin: 3px 2px;
188}
189
190.realtime-disabled-message,
191.realtime-disabled-on-e10s-message {
8c5bee4f
RK
192 display: none;
193}
194
d0a8de80 195#performance-view[e10s="disabled"] .realtime-disabled-on-e10s-message,
936e60fe
RK
196#performance-view[e10s="unsupported"] .realtime-disabled-message {
197 display: initial;
198 opacity: 0.5;
2f2239a0
RK
199}
200
936e60fe
RK
201.buffer-status-message,
202.buffer-status-message-full {
203 display: none;
8c5bee4f
RK
204}
205
936e60fe
RK
206#details-pane-container[buffer-status="in-progress"] .buffer-status-message {
207 display: initial;
208 opacity: 0.5;
2f2239a0
RK
209}
210
936e60fe
RK
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;
8c5bee4f
RK
216}
217
936e60fe
RK
218#details-pane-container[buffer-status="full"] .buffer-status-message-full {
219 display: initial;
2f2239a0
RK
220}
221
8c5bee4f
RK
222/* Profile call tree */
223
224.call-tree-cells-container {
8c5bee4f
RK
225 overflow: auto;
226}
227
8c5bee4f
RK
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"] {
d0a8de80 242 min-width: 6vw;
8c5bee4f
RK
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"] {
d0a8de80 250 min-width: 5vw;
8c5bee4f
RK
251 width: 5vw;
252}
253
254.call-tree-header[type="samples"],
255.call-tree-cell[type="samples"] {
d0a8de80 256 min-width: 4.5vw;
8c5bee4f
RK
257 width: 4.5vw;
258}
259
024a65e9
RK
260.call-tree-header[type="count"],
261.call-tree-cell[type="count"],
262.call-tree-header[type="self-count"],
e9fbfc3a
RK
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"] {
d0a8de80 276 min-width: 6vw;
e9fbfc3a 277 width: 6vw;
8c5bee4f
RK
278}
279
8c5bee4f
RK
280.call-tree-header,
281.call-tree-cell {
282 -moz-box-align: center;
283 overflow: hidden;
d0a8de80 284 text-overflow: ellipsis;
8c5bee4f
RK
285 padding: 1px 4px;
286 color: var(--theme-body-color);
dae45075 287 border-inline-end-color: var(--cell-border-color);
8c5bee4f
RK
288}
289
290.call-tree-header:not(:last-child),
291.call-tree-cell:not(:last-child) {
dae45075
RK
292 border-inline-end-width: 1px;
293 border-inline-end-style: solid;
8c5bee4f
RK
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
d0a8de80
RK
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
936e60fe 320.call-tree-item:last-child {
8c5bee4f
RK
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
936e60fe 336.call-tree-item:focus description {
8c5bee4f
RK
337 color: var(--theme-selection-color) !important;
338}
339
340.call-tree-item:focus .call-tree-cell {
dae45075 341 border-inline-end-color: var(--focus-cell-border-color);
8c5bee4f
RK
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
d74db938 352.call-tree-name {
dae45075 353 margin-inline-end: 4px !important;
d74db938
RK
354}
355
8c5bee4f 356.call-tree-url {
8c5bee4f
RK
357 cursor: pointer;
358}
359
360.call-tree-url:hover {
361 text-decoration: underline;
362}
363
a5cb6e53 364.call-tree-url, .tree-widget-item:not(.theme-selected) .opt-url {
8c5bee4f
RK
365 color: var(--theme-highlight-blue);
366}
367
a5cb6e53 368.call-tree-line, .tree-widget-item:not(.theme-selected) .opt-line {
8c5bee4f
RK
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 {
dae45075 378 margin-inline-start: 8px !important;
8c5bee4f
RK
379 font-size: 90%;
380 color: var(--theme-content-color2);
381}
382
936e60fe
RK
383.call-tree-category {
384 transform: scale(0.75);
385 transform-origin: center right;
8c5bee4f
RK
386}
387
936e60fe
RK
388/**
389 * Waterfall ticks header
390 */
8c5bee4f 391
936e60fe 392.waterfall-header-ticks {
d0a8de80 393 overflow: hidden;
8c5bee4f
RK
394}
395
936e60fe
RK
396.waterfall-header-name {
397 padding: 2px 4px;
398 font-size: 90%;
8c5bee4f
RK
399}
400
936e60fe
RK
401.waterfall-header-tick {
402 width: 100px;
403 font-size: 9px;
404 transform-origin: left center;
405 color: var(--theme-body-color);
8c5bee4f
RK
406}
407
936e60fe 408.waterfall-header-tick:not(:first-child) {
dae45075 409 margin-inline-start: -100px !important; /* Don't affect layout. */
8c5bee4f
RK
410}
411
936e60fe
RK
412.waterfall-background-ticks {
413 /* Background created on a <canvas> in js. */
d0a8de80 414 /* @see devtools/client/timeline/widgets/waterfall.js */
936e60fe
RK
415 background-image: -moz-element(#waterfall-background);
416 background-repeat: repeat-y;
417 background-position: -1px center;
8c5bee4f
RK
418}
419
420/**
936e60fe 421 * Markers waterfall breakdown
8c5bee4f
RK
422 */
423
936e60fe 424#waterfall-breakdown {
8c5bee4f
RK
425 overflow-x: hidden;
426 overflow-y: auto;
427}
428
936e60fe
RK
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 );
8c5bee4f
RK
437}
438
936e60fe
RK
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 );
8c5bee4f
RK
448}
449
936e60fe
RK
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);
8c5bee4f
RK
453}
454
936e60fe
RK
455.waterfall-tree-item:nth-child(2n) > .waterfall-marker {
456 background-color: var(--row-alt-background-color);
8c5bee4f
RK
457}
458
936e60fe
RK
459.waterfall-tree-item:hover {
460 background-color: var(--row-hover-background-color);
8c5bee4f
RK
461}
462
936e60fe
RK
463.waterfall-tree-item:last-child {
464 border-bottom: 1px solid var(--cell-border-color);
8c5bee4f
RK
465}
466
936e60fe
RK
467.waterfall-tree-item:focus {
468 background-color: var(--theme-selection-background);
8c5bee4f
RK
469}
470
936e60fe
RK
471.waterfall-tree-item:focus description {
472 color: var(--theme-selection-color) !important;
8c5bee4f
RK
473}
474
936e60fe
RK
475/**
476 * Marker left sidebar
477 */
8c5bee4f 478
936e60fe 479.waterfall-sidebar {
dae45075 480 border-inline-end: 1px solid var(--cell-border-color);
8c5bee4f
RK
481}
482
936e60fe
RK
483.waterfall-tree-item > .waterfall-sidebar:hover,
484.waterfall-tree-item:hover > .waterfall-sidebar,
485.waterfall-tree-item:focus > .waterfall-sidebar {
486 background: transparent;
8c5bee4f
RK
487}
488
489.waterfall-marker-bullet {
490 width: 8px;
491 height: 8px;
dae45075
RK
492 margin-inline-start: 8px;
493 margin-inline-end: 6px;
8c5bee4f
RK
494 border-radius: 1px;
495}
496
497.waterfall-marker-name {
498 font-size: 95%;
499 padding-bottom: 1px !important;
500}
501
936e60fe
RK
502/**
503 * Marker timebar
504 */
505
506.waterfall-marker {
507 overflow: hidden;
508}
509
8c5bee4f
RK
510.waterfall-marker-bar {
511 height: 9px;
8c5bee4f 512 transform-origin: left center;
a5cb6e53 513 border-radius: 1px;
8c5bee4f
RK
514}
515
936e60fe
RK
516.waterfall-marker > .theme-twisty {
517 /* Don't affect layout. */
518 width: 14px;
dae45075 519 margin-inline-end: -14px;
8c5bee4f
RK
520}
521
d0a8de80
RK
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
936e60fe
RK
533/**
534 * Marker details view
535 */
536
8c5bee4f 537#waterfall-details {
dae45075
RK
538 padding-inline-start: 8px;
539 padding-inline-end: 8px;
8c5bee4f
RK
540 padding-top: 2vh;
541 overflow: auto;
d74db938 542 min-width: 50px;
8c5bee4f
RK
543}
544
936e60fe
RK
545#waterfall-details > * {
546 padding-top: 3px;
547}
548
8c5bee4f
RK
549.marker-details-bullet {
550 width: 8px;
551 height: 8px;
8c5bee4f
RK
552 border-radius: 1px;
553}
554
d0a8de80 555.marker-details-name-label {
dae45075 556 padding-inline-end: 4px;
936e60fe
RK
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
e9fbfc3a
RK
568.marker-details-customcontainer .custom-button {
569 padding: 2px 5px;
570 border-width: 1px;
571}
572
936e60fe
RK
573/**
574 * Marker colors
575 */
576
6f751fd1 577menuitem.marker-color-graphs-full-red .menu-iconic-left::after,
d0a8de80
RK
578.marker-color-graphs-full-red {
579 background-color: var(--theme-graphs-full-red);
580 border-color: var(--theme-graphs-full-red);
581}
6f751fd1 582menuitem.marker-color-graphs-full-blue .menu-iconic-left::after,
d0a8de80
RK
583.marker-color-graphs-full-blue {
584 background-color: var(--theme-graphs-full-blue);
585 border-color: var(--theme-graphs-full-blue);
586}
6f751fd1 587menuitem.marker-color-graphs-green .menu-iconic-left::after,
e9fbfc3a
RK
588.marker-color-graphs-green {
589 background-color: var(--theme-graphs-green);
d0a8de80 590 border-color: var(--theme-graphs-green);
d74db938 591}
6f751fd1 592menuitem.marker-color-graphs-blue .menu-iconic-left::after,
e9fbfc3a
RK
593.marker-color-graphs-blue {
594 background-color: var(--theme-graphs-blue);
d0a8de80 595 border-color: var(--theme-graphs-blue);
a5cb6e53 596}
6f751fd1 597menuitem.marker-color-graphs-bluegrey .menu-iconic-left::after,
e9fbfc3a
RK
598.marker-color-graphs-bluegrey {
599 background-color: var(--theme-graphs-bluegrey);
d0a8de80 600 border-color: var(--theme-graphs-bluegrey);
e9fbfc3a 601}
6f751fd1 602menuitem.marker-color-graphs-purple .menu-iconic-left::after,
e9fbfc3a
RK
603.marker-color-graphs-purple {
604 background-color: var(--theme-graphs-purple);
d0a8de80 605 border-color: var(--theme-graphs-purple);
a5cb6e53 606}
6f751fd1 607menuitem.marker-color-graphs-yellow .menu-iconic-left::after,
d74db938
RK
608.marker-color-graphs-yellow {
609 background-color: var(--theme-graphs-yellow);
d0a8de80
RK
610 border-color: var(--theme-graphs-yellow);
611}
6f751fd1 612menuitem.marker-color-graphs-orange .menu-iconic-left::after,
d0a8de80
RK
613.marker-color-graphs-orange {
614 background-color: var(--theme-graphs-orange);
615 border-color: var(--theme-graphs-orange);
a5cb6e53 616}
6f751fd1 617menuitem.marker-color-graphs-red .menu-iconic-left::after,
d74db938
RK
618.marker-color-graphs-red {
619 background-color: var(--theme-graphs-red);
d0a8de80 620 border-color: var(--theme-graphs-red);
a5cb6e53 621}
6f751fd1 622menuitem.marker-color-graphs-grey .menu-iconic-left::after,
e9fbfc3a
RK
623.marker-color-graphs-grey{
624 background-color: var(--theme-graphs-grey);
d0a8de80 625 border-color: var(--theme-graphs-grey);
b336389b 626}
d74db938
RK
627
628/**
629 * Configurable Options
630 *
936e60fe
RK
631 * Elements can be tagged with a class and visibility is controlled via a
632 * preference being applied or removed.
d74db938
RK
633 */
634
635/**
636 * devtools.performance.ui.experimental
637 */
638menuitem.experimental-option::before {
639 content: "";
d0a8de80 640 background-image: url(chrome://devtools/skin/images/webconsole.svg);
d74db938 641 background-repeat: no-repeat;
2e389898
RK
642 background-size: 72px 60px;
643 width: 12px;
644 height: 12px;
d74db938 645 display: inline-block;
2e389898
RK
646
647 background-position: -24px -24px;
648 margin: 2px 5px 0 0;
649 max-height: 12px;
d74db938 650}
2e389898 651
d74db938
RK
652#performance-options-menupopup:not(.experimental-enabled) .experimental-option,
653#performance-options-menupopup:not(.experimental-enabled) .experimental-option::before {
654 display: none;
655}
d0a8de80
RK
656
657/* for call tree */
658description.opt-icon {
659 margin: 0px 0px 0px 0px;
660}
661description.opt-icon::before {
662 margin: 1px 4px 0px 0px;
663}