Removing Proton tabs from Firefox 91 with userchrome customizations

![noproton|720x487](upload://a7uo8kZp6YPhClr22hrlyOFNKBk.jpeg) # background I recently updated firefox to version 91, but the firefox team disabled the about:config tweaks of `browser.proton.enabled = false` without adding a feature to disable proton tabs

solution

A search resulted in the following question
https://support.mozilla.org/en-US/questions/1346685#answer-1434276
The answer suggested using userchrome tweaks from the userchrome.org guide for disabling proton styling
Firefox 89+ – Styling the New Proton UI

setting up userchrome

I followed the instructions and adapted them from this guide
https://www.userchrome.org/how-create-userchrome-css.html
If you run into issues with my guide, you can always go back and read the original for a in depth explanation

  1. go to about:support
  2. look for your directory location, and hit the open directory tab. I edited my directory to say {your-directory}
  3. make a new folder called chrome inside of your profile directory
  4. create or generate a new userchrome.css file. If you use the generated file, make sure to rename it to userchrome.css.
  5. place the userchrome.css file into the chrome folder
  6. Now we will enable userchrome tweaks. Go to about:config paste toolkit.legacyUserProfileCustomizations.stylesheets in the search box, and set the variable to true.
  7. Restart firefox. Go to about:profiles, click Restart Normally...
  8. Congratulations, proton tabs should be disabled.

my userchrome customizations

these are my customizations


/*** Proton Tabs Tweaks ***/

/* Adjust tab corner shape, optionally remove space below tabs */

#tabbrowser-tabs {
    --user-tab-rounding: 0px;
}

.tab-background {
    border-radius: var(--user-tab-rounding) var(--user-tab-rounding) 0px 0px !important;
    margin-block: 1px 0 !important;
}
#scrollbutton-up, #scrollbutton-down { /* 6/10/2021 */
    border-top-width: 1px !important;
    border-bottom-width: 0 !important;
}
/* Container color bar visibility */
.tabbrowser-tab[usercontextid] > .tab-stack > .tab-background > .tab-context-line {
    margin: 0px max(calc(var(--user-tab-rounding) - 3px), 0px) !important;
}

/* Inactive tabs: Separator line style */

.tabbrowser-tab:not([selected=true]):not([multiselected=true]):not([beforeselected-visible="true"]) .tab-background {
    border-right: 1px solid var(--lwt-background-tab-separator-color, rgba(0, 0, 0, .20)) !important;
}
/* For dark backgrounds */
[brighttext="true"] .tabbrowser-tab:not([selected=true]):not([multiselected=true]):not([beforeselected-visible="true"]) .tab-background {
    border-right: 1px solid var(--lwt-background-tab-separator-color, var(--lwt-selected-tab-background-color, rgba(255, 255, 255, .20))) !important;
}
.tabbrowser-tab:not([selected=true]):not([multiselected=true]) .tab-background {
    border-radius: 0 !important;
}
/* Remove padding between tabs */
.tabbrowser-tab {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/*** Audio Playing / Mute Button side-by-side when sound is playing ***/

#TabsToolbar {
    --user-mute-button-height: 20px;  /* default size is 12px, site icon is 16px */
}

/* Move the mute/unmute button to the right and enlarge it */
.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]) {
    width: var(--user-mute-button-height) !important;
    height: var(--user-mute-button-height) !important;
    margin-left: calc(var(--user-mute-button-height) / 2 + 2px) !important; /* pushes icon to the right */
    margin-right: 2px !important; /* closes up some space before the text */
    padding: 0 !important; /* allows icon to expand to full size */
}

/* Move the site icon to the left a bit and adjust position */
.tab-icon-stack:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]) > :not(.tab-icon-overlay) {
    margin-left: -4px !important; /* pushes icon to the left */
    margin-top: calc((var(--user-mute-button-height) - 16px) / 2) !important;  /* keep site icon reasonably positioned */
}

/* Override the rules for hover/not hover visibility */
   /* for mute button */
.tabbrowser-tab:not(:hover) .tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]), 
   /* for site icon */
.tabbrowser-tab:hover .tab-icon-stack:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]) > :not(.tab-icon-overlay), 
   /* for site icon with Compact density */
:root[uidensity="compact"] .tab-icon-stack:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]) > :not(.tab-icon-overlay) {
    opacity: 1 !important; /* overrides full transparency with full opacity */
}

/* Color the icon on hover for confirmation or avoidance */
.tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]):hover {
    fill: green !important;
}
[lwthemetextcolor="bright"] .tab-icon-overlay:not([pinned], [sharing], [crashed]):is([soundplaying], [muted]):hover {
    fill: lightgreen !important; /* for dark themes */
}

/* Tweaked Audio playing/Mute button rules for pinned tabs */
.tab-icon-overlay:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]) {
    width: var(--user-mute-button-height) !important;
    height: var(--user-mute-button-height) !important;
    margin-left: 2px !important; /* allow some overlap to reduce expanded width */
    margin-right: -2px !important; /* reduce empty space on the right */
    padding: 0 !important; /* allows icon to expand to full size */
    top: 0 !important; /* align button with site icon */
}
.tab-icon-stack:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]) > :not(.tab-icon-overlay) {
    margin-left: -6px !important; /* reduce empty space on the left */
    margin-top: calc((var(--user-mute-button-height) - 16px) / 2) !important;  /* keep site icon reasonably positioned */
}
.tabbrowser-tab:not(:hover) .tab-icon-overlay:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]), 
   /* for site icon */
.tabbrowser-tab:hover .tab-icon-stack:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]) > :not(.tab-icon-overlay), 
   /* for site icon with Compact density */
:root[uidensity="compact"] .tab-icon-stack:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]) > :not(.tab-icon-overlay) {
    opacity: 1 !important; /* overrides full transparency with full opacity */
}
.tab-icon-overlay:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]):hover {
    fill: green !important;
}
[lwthemetextcolor="bright"] .tab-icon-overlay:not([crashed]):is([pinned], [sharing]):is([soundplaying], [muted]):hover {
    fill: lightgreen !important; /* for dark themes */
}

/* Override font-size for tabs */

.tabbrowser-tab {
    font-size: 12px !important;
}

/* Tweak Options as of 8/13/2021; Generated Sun Sep 19 2021 23:38:10 GMT-0500 (Central Daylight Time) */
6 Likes

You see? I knew they would disable the way to disable Proton UI via about:config. I already started to use userChromeJS to bring back old pages:

2 Likes

I’m not sure what you mean. I understand the source of frustration, but I don’t think they made a serious mistake removing it from about:config. The guides and firefox support forum posts I looked at mentioned the team was going to disable the about:config tweaks in later versions.

Proton isn’t my cup of tea, so that’s why I posted the guide. If anything, I’m more annoyed the firefox team didn’t give us an option to disable it from the menu.
The ui changes were probably planned much earlier, but the update makes me wonder why other major bugs and requested features weren’t a higher priority.

From a half glass full view, forced protom got me to explore userchrome css customizations. I doubt it will make me release my own theme, but it’s a neat thing I learned.

I would have never learned about userChromeJS and the restored old pages if I was fine with Lockwise (which I’m not)

More opportunities for Mozilla telemetry is not a good thing. Lockwise adds those extra opportunities. It’s also so integrated no userChrome modifications can affect Lockwise pages.

I really hate the trend of making everything chunky. If ppl want big chonk title bars, just change your UI scaling percent. ezpz

2 Likes