performance.css 18 KB

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