- Public URL
- Status
Incomplete
- Last Updated
2018-08-23 04:10 EDT
In their November blog post, Add-ons in 2017, Mozilla announced an aggressive plan to deprecate XUL APIs without having assured a porting path for existing APIs.
Most significantly, this will kill off the Classic Theme Restorer extension which I rely on to keep the UI suitably comfortable, as the Australis theme has elements (eg. the "toolbar in a panel" hamburger menu) which are even more unappealing to me than Google Chrome's crippled design.
As such, this document tracks my plans to investigate alternatives to my current Firefox extension load-out, both within Firefox (possibly with custom source patches) and on other browsers.
(The latter case will be necessary as a plan B in case addon ports are planned but their developers or the developers of APIs they depend on miss the Firefox 57 deadline.)
UPDATE 2018-02-03: Thanks to the continued availability of userChrome.css
, Classic Theme Restorer is no longer my biggest concern. Instead, it's extensions such as DownThemAll! and Tiddlyfox.
Timeline1
— | January 23rd, 2017 | Firefox 52.0b1 enters beta channel |
— | March 7th, 2017 | Firefox 52 enters ESR channel. |
— | April 18th, 2017 | No new XUL addons will be signed by AMO |
☑ | April 22nd, 2017 | Switch to Firefox ESR builds when 53.0a2 enters Ubuntu Aurora PPA |
— | June 12th, 2017 | Firefox 57.0a1 moves XUL behind a pref in nightly channel |
— | August 7th, 2017 | Firefox 57.0a2 moves XUL behind a pref in aurora channel |
— | October 2nd, 2017 | Firefox 57.0b1 removes XUL from beta channel |
— | November 14th, 2017 | Firefox 57.0 removes XUL support from stable channel |
— | August 28th, 2018 | Firefox 52 ESR is replaced with Firefox 60 ESR |
☐ | TBD | Migrate off Firefox if extension support is insufficient |
☐ Investigate SeaMonkey's future plans
☐ Investigate compatibility between my extensions and SeaMonkey
☐ Investigate compatibility between my extensions and Pale Moon
☐ Investigate compatibility between my extensions and Waterfox
☐ Investigate options for setting up a forced transparent DNS proxy to work
around Google pinning the DNS for YouTube ads in Chromium.
☐ Complete extension/feature porting matrices
☑ Decide whether to stick with Tree Style Tab now that e10s should be keeping things snappy or go back to my old workflow. (Yes.)
☐ Saved Session/Open Tabs
☐ Bookmarks
☐ ScrapBook storage
☐ Extension preferences:
├─☐ Greasemonkey scripts & script data stores
├─☐ HistoryBlock blacklist
├─☑ HTTPS Everywhere preferences and custom rules (N/A2)
├─☑ NoScript settings (N/A3)
├─☑ RefControl settings & whitelist (N/A4)
├─☐ Stylish styles
├─☐ uBlock Origin settings
└─☐ uMatrix settings and whitelist
- Turn off Firefox updates:
- Find an equivalent set of extensions for Pale Moon, SeaMonkey, or Chromium.
- Migrate security extensions to an HTTP proxy, completely independent of any specific browser.
- Convert most of TiddlyFox's functionality into a local HTTP daemon which re-creates the old XULConnect APIs as HTTP APIs which trigger prompt dialogs.
If I can think of a good design for a mechanism for extensions to securely prompt to be added to the extension manifest's allowed origins, this might actually do better as a generic "extended capabilities" host for the native messaging API, which any extension can make use of if installed.
The downside being, since Firefox doesn't have a way to opt out of extensions signing in all builds, I may have to stick to an HTTPS CORS API to get anything even remotely signable.
(Either way, I'd want to use Rust, do a lot of fuzzing, and iterate a lot on the design of the permissions prompts and extra protections like a blacklist/whitelist for what filesystem permissions can be requested without a power user pre-emptively adjusting the configuration file.)
✗ = Must implement replacement myself
Key | Firefox | Chrome Solution |
---|---|---|
beacon.enabled |
false |
|
|
|
✗6 |
|
|
✗ (Requires Source Patch) |
|
|
✗8 |
|
|
|
xpinstall.signatures.required |
false |
✓ --enable-easy-off-store-extension-install |
+-----------------------------------------------------------------------------+ | Legend | +===+=========================================================================+ | ✓ | Port or direct equivalent available (or planned to be available on time)| +---+-------------------------------------------------------------------------+ | ~ | Low confidence in developer's plans (ie. expect disruption with Fx 60) | +---+-------------------------------------------------------------------------+ | … | Waiting for an acceptably concrete response from the developer(s) | +---+-------------------------------------------------------------------------+ | ✗ | Must implement replacement myself | +---+-------------------------------------------------------------------------+ Addition or removal of a browser feature renders replacement unnecessary| +---+-------------------------------------------------------------------------+
Extension | Firefox WebExtension | Chrome |
---|---|---|
BetterPrivacy | N/A10 | |
Classic Theme Restorer | See List | See List |
✓ (Issue 124) ✗ (Bug 1325692)11 |
||
Download Panel Tweaker | N/A (Bug 1269957) | N/A |
DownThemAll | ~12 / ~ Download Star | ✗13 |
Greasemonkey | ✓14 | ✓ Tampermonkey_ |
✓ ✓ (Bug 1334266) |
✓ |
|
HTTPS Everywhere | ✓ (Issue 7389) | ✓ |
✓ InlineDisposition Reloaded N/A (Issue 39) N/A16 ✓17 |
✓ Undisposition_ |
|
RefControl | N/A18 | ~19 |
ScrapBook | ✓20 | ✗ |
✓ Cookie AutoDelete … (Bug 1427928) |
||
Shift + Scroll | N/A (built-in) | N/A (built-in) |
Show Keyword | N/A?21 | N/A |
✓ |
||
✓23 |
||
Tab Wheel Scroll | ✓2425 | N/A (built-in) |
TiddlyFox | ✓ File Backups | ✗ |
Toggle Animated GIFs | ~ (Issue 43) | ✓26 |
uBlock Origin | ✓ (Bug 1309926) | ✓ + uBO-Extra |
uMatrix | ✓ | ✓ |
withExEditor | ✓ (Issue 23) | Multiple27 |
Extension | Firefox Solution | Chrome Solution |
---|---|---|
Automatic Save Folder Beef Taco28 Cookie Time Cookies Export/Import |
N/A29 N/A N/A30 ✓ cookies.txt |
✗31 |
✗ |
||
FindBar Tweak Flattr Form History Control |
N/A (built-in) ✓ ✓ |
N/A |
InspectorWidget34 | N/A35 | ✗ |
JSONView Live HTTP Headers Password Exporter |
✓36 |
|
Private Tab Reddit Enhancement Suite |
N/A37 ✓ |
N/A38 |
restartFox Save Text To File StumbleUpon Stylish Sync User Agent Switcher Video DownloadHelper |
✗39 ✓ (See Issue 85) N/A40 N/A ✓41 ✓ (Bug 1310316) |
✓ |
Tweak | Firefox Solution | Chrome Solution |
---|---|---|
Hamburger button on left end | N/A | ✗ |
Hide 'all tabs' button | ✓ userChrome.css 43 |
N/A |
Limit AutoCompl to AddrBar Width | ✓ userChrome.css 44 |
✗ |
Private: mask in tabs instead Remove page context menu icons RSS icon in Awesomebar |
N/A45 ✓ |
N/A47 |
Square Tabs | N/A (built-in) | ✗ |
Stop/Reload button in address bar | ✓ Reload in address bar | ✗ |
Truly blank about:newtab |
✓ userContent.css 48 |
✓ |
+-----------------------------------------------------+----------------------------------------------+ Status | +=====================================================+==============================================+ ✓ See sub-features | +-+---------------------------------------------------+----------------------------------------------+ | ✓ userChrome.css
if necessary. | + +---------------------------------------------------+----------------------------------------------+ | ✓ built-in | +-+---------------------------------------------------+----------------------------------------------+ ✓ userChrome.css
if necessary. | +-----------------------------------------------------+----------------------------------------------+ ✓ userContent.css
if necessary. | +-----------------------------------------------------+----------------------------------------------+ ✓ userChrome.css
49 | +-----------------------------------------------------+----------------------------------------------+ ✓ Reload in address bar is fine as-is | +-----------------------------------------------------+----------------------------------------------+ ✓ Obsolete without InspectorWidget | +-----------------------------------------------------+----------------------------------------------+ ✓ Obsolete with the switch to Stylus | +-----------------------------------------------------+----------------------------------------------+ N/A StumbleUpon extension is now | +-----------------------------------------------------+ garbage beyond my ability to | fix it. | +-----------------------------------------------------+ | | +-----------------------------------------------------+ | | +-----------------------------------------------------+----------------------------------------------+
TODO: Explore options for integrating an external download manager with suitably comfortable support for selecting extracted URLs and sharing cookies (How's FlashGot's future looking?)
Candidates so far:
- JDownloader (I need to keep a copy around anyway for file lockers) [JD Extension]
- KGet
- FatRat
- GWGET
- uGet
- Aria
- Steadyflow
- wxDownload Fast
- Xtreme Download Manager [XDM Extension]
Sources:
- The Road to Firefox 57 - Compatibility Milestones
- Mozilla Wiki: Rapid Release Calendar
- A conversation in irc://irc.mozilla.org/firefox to clarify the sunset point for non-stable channels.
- Add-ons/Firefox57 - MozillaWiki
I now operate on the default settings.↩
The requisite functionality has been swallowed up by uMatrix to a degree which makes having a whole extension for the remaining scraps not worth the CPU time.↩
The requisite functionality has been swallowed up by uMatrix to a degree which makes having a whole extension for the remaining scraps not worth the CPU time.↩
browser.startup.page: -11
means "Prompt for session to load" and is provided by the Session Manager extension.↩Chrome doesn't provide this internally and the extension API disallows this level of control, but it can be hacked around by some combination of the following:
- Setting the Download directory to the filesystem root
- Using an
inotify
-based watcher to move files out of the download directory once they finish downloading. - Using an extension like Downloads Router to give the
inotify
helper more information about where the downloads came from. - Just replacing the browser's built-in download support with an integration extension for an external download manager with routing support. (See DownThemAll Successor)
image.animation_mode: none
is just used to enforce the starting state by the Toggle Animated GIFs extension. It's insufficient alone.↩Chrome apparently has no way to disable service workers outright, but
chrome://serviceworker-internals/
can be used to manage them.↩Chrome has a different mitigation.↩
With Flash being click-to-play and so ridiculously rare to legitimately need outside of old Flash games these days, expiring LSOs while the browser is still running is unnecessary.
Apparently it's possible for addons to flush them, but the Clear Service Worker extension has an ominous "Added Analytics Plugin" message in its description, so I'll have to write my own flusher. (Which may be better anyway, since it'd let me implement the behaviour I desire, which is more akin to what Self-Destructing Cookies does for cookies.)
I'm assuming it has something to do with service workers counting as cookies/site data.↩
I have written a Python proof-of-concept for this which is available at https://github.com/ssokolow/firefox_ctrlq_fix↩
The author of DownThemAll! is working on a necessarily crippled "DownThemAll! Lite" which may still satisfy my immediate needs for batch-downloading of images without attaching a helper app as a backend. However, it's running behind schedule.
That status update includes a comment on how to workaround potential hiccups in getting classic DTA installed into Waterfox. (grab an old Firefox 56 installer, install in a fresh profile, then import that profile into Waterfox.)
Download Star currently lacks features like automatic naming.↩
By design, the Chrome extension API doesn't give extensions sufficient disk access to implement things like resume, piecewise downloading, and writing to arbitrary filesystem locations, so DTA! can only be replaced by an integration shim for an external download manager:
- DownThemAll - No Google Chrome support
- Quora - Is there any Chrome extension similar to Firefox's DownThemAll?
- superuser - A DownThemAll equivalent for Chrome
Greasemonkey status is tracked in the following bugs and threads:
- Design Doc: Greasemonkey as a WebExtension - Google Groups
- Bug 1334174: Enable Greasemonkey to be a WebExtension
- Bug 1323433: Implement a declarative content script API
NoScript is used only for the following features:
- Click-to-play for embeddings, audio/video tags, and WebGL
- Forbid
<a ping...>
- Forbid
meta
redirections inside<noscript>
elements. - Forbid XSLT
- Attempt to fix JavaScript links
- XSS Filter
- Automatic Secure Cookies Management
- ABE (Application Boundaries Enforcer)
- ClearClick protection
The requisite functionality has been swallowed up by uMatrix to a degree which makes having a whole extension for the remaining scraps not worth the CPU time.↩
The author has plans similar to mine with regards to Firefox ESR and responded as follows:
It is possible to port Pure URL to WebExtensions, and I'd like to do it someday. But it requires time, and currently I'm planning to stay on Firefox 52 ESR for 1.5 years at least. So, I don't know when I'll port this extension. Unfortunately, I can't promise that I'll do it before Firefox 57 release.
The requisite functionality has been swallowed up by uMatrix to a degree which makes having a whole extension for the remaining scraps not worth the CPU time.↩
Multiple options, none very good:
- https://chrome.google.com/webstore/detail/referer-control/acehenlbileblompmkkoimgobmcdkgeb?hl=en
- https://chrome.google.com/webstore/detail/negotiator/lfopjlendebbnfddpgpoaahmpbgmffii?hl=en
Two successor extensions:
- ScrapbookQ tries to replicate the experience of the original more faithfully using a native messaging helper, but I couldn't get it working.
- Web ScrapBook lacks the sidebar and automatic indexing, but I was able to configure it for the effortless saving I'm used to.
I remember people wanting to kill off bookmark keywords in the process of unifying the search integration.
TODO: Determine what the current plans are. (Will I have to create fake search engines which don't actually search to preserve my keywords?)↩
Stylis has gone snoopy. Stylus is the ethical replacement.↩
https://chrome.google.com/webstore/detail/tab-counter/feeoiklfggbaibpdhkkngbpkppdmcjal↩
Tab Wheel Scroll progress was tracked in issue 19 but bug bug 1246706 which would provide the necessary API was declared
WONTFIX
, so the only non-hacky option is to implement it in Firefox itself, which is tracked in bug 1285812 and has an uncertain future.However,
userChrome.css
can be used to implement it.↩Apply the following fixes via
userChrome.css
:↩/* Remove distracting/unappealing icons from addon menu items */ #contentAreaContextMenu .menu-iconic-left { visibility: hidden !important; } /* Remove pointless thumbnail in the Bookmark popup */ #editBookmarkPanelImage, #editBookmarkPanelFaviconContainer { display: none !important; } /* Restore scroll-wheel tab switching */ .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox { /* Place bindings.xml in the same folder as userChrome.css */ -moz-binding: url("bindings.xml#tabs-scroll") !important; } /* Ensure unwanted cruft can't appear in content-area context menus * (eg. I access Screenshots via the page action instead) * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1146394 */ #context-back, #context-forward, #context-bookmarkpage, #context-pocket, #context-savelinktopocket, #context-sendimage, #context-setDesktopBackground, #screenshots_mozilla_org_create-screenshot, #contentAreaContextMenu menu[label="Tree Style Tab"], #ublock0_raymondhill_net_uBlock0-blockElement { display: none !important; } /* De-iconify stop/reload entries in the context menu */ #context-navigation * { max-height: 1ex; } #context-reload::after { content: " Reload"; } #context-stop::after { content: " Stop"; } #context-reload, #context-stop { list-style-image: none !important; -moz-box-align: start !important; -moz-box-pack: start !important; } /* Hide unwanted page actions in overflow menu * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ #pageAction-panel-emailLink { display: none !important; } /* Pin "Reload in address bar" extension's page action to the right edge * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ image[aria-label="Reload page"], image[aria-label="Stop"] { -moz-box-ordinal-group: 2 !important; } /* Hide unwanted "All Tabs" button * WONTFIX'D: https://bugzilla.mozilla.org/show_bug.cgi?id=1435229 */ #alltabs-button { display: none !important; } /* Compact sidebar header to match my compact toolbars * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1435184 */ #sidebar-header { height: 32px !important; padding: 0 !important; font-size: 12px !important; } /* Narrow the address bar dropdown to something more in line with system-native * widget styling. */ #PopupAutoCompleteRichResult { margin-left: 0px !important; max-width: 1087px !important; }
Multiple "Toggle Animated GIFs" extensions available:
- Gif Jam (Animation Stopper)
- Animation Policy (Works on all formats. License uncertain.)
- GIF Blocker (License uncertain. Can't re-stop after starting.)
Multiple withExEditor-like Chrome extensions are available:
- superuser: It's All Text for Chrome?
- superuser: Chrome: Edit html with external editor
- Browser's external editor
Beef Taco is incompatible with Self-Destructing Cookies but may come into use again if the latter is completely impossible to port.↩
Automatic Save Folder is no longer be necessary, since using it temporarily toggled a hidden setting to enable remembering the previous save folder on a by-origin basis and that covers all of the uses where I wouldn't have to write my own extension anyway due to the nature of the filter rules I'd want to write.↩
The requisite functionality has been swallowed up by uMatrix to a degree which makes having a whole extension for the remaining scraps not worth the CPU time.↩
The Chrome extension API is too crippled to implement this functionality, so I'll need to use an external download manager, an inotify-based sorter for the downloads folder, or both. (In the latter case, possibly with a helper like Downloads Router to translate things like source domains into paths the inotify code can see.)↩
DOM Inspector and InspectorWidget are used to inspect XUL in order to produce XUL Userstyles.↩
The functionality I used to use the DOM inspector for is now available as part of Firefox's built-in debugging tools. See either of these URLs for instructions:↩
DOM Inspector and InspectorWidget are used to inspect XUL in order to produce XUL Userstyles.↩
The functionality I used to use the DOM inspector for is now available as part of Firefox's built-in debugging tools. See either of these URLs for instructions:↩
JSONView for Chrome exists as a 3rd-party port, but, because of the same Chrome API limitations, which cripple it, Ben Hollis never produced an official Chrome port and he is no longer working on JSONView for Firefox either.↩
Firefox Quantum resolved the "opening a new window is a horrendously heavy operation" problem which was my primary reason for wanting private tabs in the same window. For the rest, container tabs.↩
Firefox Quantum resolved the "opening a new window is a horrendously heavy operation" problem which was my primary reason for wanting private tabs in the same window. For the rest, container tabs.↩
Restarting Firefox like this currently requires an external helper (unless there's some kind of userChrome+bindings hack possible?) and the only extension which currently offers it charges for the Windows-specific helper.
(That alone is a bit of an affront to me, so I might take advantage of the MPL license on the extension itself and write a free, cross-platform helper to go with it.)↩
Official addon has become garbage. Devs apparently don't care.↩
Multiple choices depending on desired functionality:
- Random User-Agent ("Set it and forget it" randomization based on picking OS+Browser combos to include)
- User Agent Switcher by Alexander Schlarb (supports randomization and setting a specific UA, but it looks like you have to keep the list updated yourself. Closest in use to the original extension of that name.)
- User-Agent Switcher by RayLo (Appears to have the nicest UI for working with large numbers of choices.)
- User-Agent Switcher by Linder (Provides a tablet-friendly way to pick from 26 different UA strings)
Add
chrome://restart
to the bookmarks toolbar for a suitable analogue to restartFox.- /r/firefox - Guide How To Edit Your Context Menu
- CustomCSSforFx - How to find item ids and attributes?
Apply the following fixes via
userChrome.css
:↩/* Remove distracting/unappealing icons from addon menu items */ #contentAreaContextMenu .menu-iconic-left { visibility: hidden !important; } /* Remove pointless thumbnail in the Bookmark popup */ #editBookmarkPanelImage, #editBookmarkPanelFaviconContainer { display: none !important; } /* Restore scroll-wheel tab switching */ .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox { /* Place bindings.xml in the same folder as userChrome.css */ -moz-binding: url("bindings.xml#tabs-scroll") !important; } /* Ensure unwanted cruft can't appear in content-area context menus * (eg. I access Screenshots via the page action instead) * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1146394 */ #context-back, #context-forward, #context-bookmarkpage, #context-pocket, #context-savelinktopocket, #context-sendimage, #context-setDesktopBackground, #screenshots_mozilla_org_create-screenshot, #contentAreaContextMenu menu[label="Tree Style Tab"], #ublock0_raymondhill_net_uBlock0-blockElement { display: none !important; } /* De-iconify stop/reload entries in the context menu */ #context-navigation * { max-height: 1ex; } #context-reload::after { content: " Reload"; } #context-stop::after { content: " Stop"; } #context-reload, #context-stop { list-style-image: none !important; -moz-box-align: start !important; -moz-box-pack: start !important; } /* Hide unwanted page actions in overflow menu * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ #pageAction-panel-emailLink { display: none !important; } /* Pin "Reload in address bar" extension's page action to the right edge * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ image[aria-label="Reload page"], image[aria-label="Stop"] { -moz-box-ordinal-group: 2 !important; } /* Hide unwanted "All Tabs" button * WONTFIX'D: https://bugzilla.mozilla.org/show_bug.cgi?id=1435229 */ #alltabs-button { display: none !important; } /* Compact sidebar header to match my compact toolbars * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1435184 */ #sidebar-header { height: 32px !important; padding: 0 !important; font-size: 12px !important; } /* Narrow the address bar dropdown to something more in line with system-native * widget styling. */ #PopupAutoCompleteRichResult { margin-left: 0px !important; max-width: 1087px !important; }
Apply the following fixes via
userChrome.css
:↩/* Remove distracting/unappealing icons from addon menu items */ #contentAreaContextMenu .menu-iconic-left { visibility: hidden !important; } /* Remove pointless thumbnail in the Bookmark popup */ #editBookmarkPanelImage, #editBookmarkPanelFaviconContainer { display: none !important; } /* Restore scroll-wheel tab switching */ .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox { /* Place bindings.xml in the same folder as userChrome.css */ -moz-binding: url("bindings.xml#tabs-scroll") !important; } /* Ensure unwanted cruft can't appear in content-area context menus * (eg. I access Screenshots via the page action instead) * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1146394 */ #context-back, #context-forward, #context-bookmarkpage, #context-pocket, #context-savelinktopocket, #context-sendimage, #context-setDesktopBackground, #screenshots_mozilla_org_create-screenshot, #contentAreaContextMenu menu[label="Tree Style Tab"], #ublock0_raymondhill_net_uBlock0-blockElement { display: none !important; } /* De-iconify stop/reload entries in the context menu */ #context-navigation * { max-height: 1ex; } #context-reload::after { content: " Reload"; } #context-stop::after { content: " Stop"; } #context-reload, #context-stop { list-style-image: none !important; -moz-box-align: start !important; -moz-box-pack: start !important; } /* Hide unwanted page actions in overflow menu * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ #pageAction-panel-emailLink { display: none !important; } /* Pin "Reload in address bar" extension's page action to the right edge * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ image[aria-label="Reload page"], image[aria-label="Stop"] { -moz-box-ordinal-group: 2 !important; } /* Hide unwanted "All Tabs" button * WONTFIX'D: https://bugzilla.mozilla.org/show_bug.cgi?id=1435229 */ #alltabs-button { display: none !important; } /* Compact sidebar header to match my compact toolbars * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1435184 */ #sidebar-header { height: 32px !important; padding: 0 !important; font-size: 12px !important; } /* Narrow the address bar dropdown to something more in line with system-native * widget styling. */ #PopupAutoCompleteRichResult { margin-left: 0px !important; max-width: 1087px !important; }
Firefox Quantum resolved the "opening a new window is a horrendously heavy operation" problem which was my primary reason for wanting private tabs in the same window. For the rest, container tabs.↩
Apply the following fixes via
userChrome.css
:↩/* Remove distracting/unappealing icons from addon menu items */ #contentAreaContextMenu .menu-iconic-left { visibility: hidden !important; } /* Remove pointless thumbnail in the Bookmark popup */ #editBookmarkPanelImage, #editBookmarkPanelFaviconContainer { display: none !important; } /* Restore scroll-wheel tab switching */ .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox { /* Place bindings.xml in the same folder as userChrome.css */ -moz-binding: url("bindings.xml#tabs-scroll") !important; } /* Ensure unwanted cruft can't appear in content-area context menus * (eg. I access Screenshots via the page action instead) * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1146394 */ #context-back, #context-forward, #context-bookmarkpage, #context-pocket, #context-savelinktopocket, #context-sendimage, #context-setDesktopBackground, #screenshots_mozilla_org_create-screenshot, #contentAreaContextMenu menu[label="Tree Style Tab"], #ublock0_raymondhill_net_uBlock0-blockElement { display: none !important; } /* De-iconify stop/reload entries in the context menu */ #context-navigation * { max-height: 1ex; } #context-reload::after { content: " Reload"; } #context-stop::after { content: " Stop"; } #context-reload, #context-stop { list-style-image: none !important; -moz-box-align: start !important; -moz-box-pack: start !important; } /* Hide unwanted page actions in overflow menu * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ #pageAction-panel-emailLink { display: none !important; } /* Pin "Reload in address bar" extension's page action to the right edge * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ image[aria-label="Reload page"], image[aria-label="Stop"] { -moz-box-ordinal-group: 2 !important; } /* Hide unwanted "All Tabs" button * WONTFIX'D: https://bugzilla.mozilla.org/show_bug.cgi?id=1435229 */ #alltabs-button { display: none !important; } /* Compact sidebar header to match my compact toolbars * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1435184 */ #sidebar-header { height: 32px !important; padding: 0 !important; font-size: 12px !important; } /* Narrow the address bar dropdown to something more in line with system-native * widget styling. */ #PopupAutoCompleteRichResult { margin-left: 0px !important; max-width: 1087px !important; }
Firefox Quantum resolved the "opening a new window is a horrendously heavy operation" problem which was my primary reason for wanting private tabs in the same window. For the rest, container tabs.↩
Apply the following fixes via
userContent.css
:↩/* Truly blank new tab page * Adapted from https://superuser.com/a/1289224 * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1179593 */ @-moz-document url("about:newtab") { body { background-color: #ffffff !important; } body * { display: none !important; } } /* Fix rendering glitch-esque default style in uMatrix scope selector * WONTFIX'd: https://github.com/gorhill/uMatrix/issues/936 */ @-moz-document url-prefix("moz-extension://19c6955d-eec7-44a2-a3da-c58f4daa2329/") { body .toolbar #specificScope { padding: 0 !important; border: 0 !important; } body .toolbar #specificScope > span { padding-right: 3px !important; padding-left: 3px !important; border-left: 1px dotted #77f !important; } body .toolbar #specificScope > span:first-of-type { border-left: none !important; } /* ...and fix text contrast on deselected scope buttons for readability */ body .toolbar .scope:not(.on), body .toolbar #specificScope > span:not(.on) { background-color: #aaa !important; border-color: #aaa !important; } }
Apply the following fixes via
userChrome.css
:↩/* Remove distracting/unappealing icons from addon menu items */ #contentAreaContextMenu .menu-iconic-left { visibility: hidden !important; } /* Remove pointless thumbnail in the Bookmark popup */ #editBookmarkPanelImage, #editBookmarkPanelFaviconContainer { display: none !important; } /* Restore scroll-wheel tab switching */ .tabbrowser-arrowscrollbox > .arrowscrollbox-scrollbox { /* Place bindings.xml in the same folder as userChrome.css */ -moz-binding: url("bindings.xml#tabs-scroll") !important; } /* Ensure unwanted cruft can't appear in content-area context menus * (eg. I access Screenshots via the page action instead) * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1146394 */ #context-back, #context-forward, #context-bookmarkpage, #context-pocket, #context-savelinktopocket, #context-sendimage, #context-setDesktopBackground, #screenshots_mozilla_org_create-screenshot, #contentAreaContextMenu menu[label="Tree Style Tab"], #ublock0_raymondhill_net_uBlock0-blockElement { display: none !important; } /* De-iconify stop/reload entries in the context menu */ #context-navigation * { max-height: 1ex; } #context-reload::after { content: " Reload"; } #context-stop::after { content: " Stop"; } #context-reload, #context-stop { list-style-image: none !important; -moz-box-align: start !important; -moz-box-pack: start !important; } /* Hide unwanted page actions in overflow menu * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ #pageAction-panel-emailLink { display: none !important; } /* Pin "Reload in address bar" extension's page action to the right edge * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1407972 */ image[aria-label="Reload page"], image[aria-label="Stop"] { -moz-box-ordinal-group: 2 !important; } /* Hide unwanted "All Tabs" button * WONTFIX'D: https://bugzilla.mozilla.org/show_bug.cgi?id=1435229 */ #alltabs-button { display: none !important; } /* Compact sidebar header to match my compact toolbars * BUG: https://bugzilla.mozilla.org/show_bug.cgi?id=1435184 */ #sidebar-header { height: 32px !important; padding: 0 !important; font-size: 12px !important; } /* Narrow the address bar dropdown to something more in line with system-native * widget styling. */ #PopupAutoCompleteRichResult { margin-left: 0px !important; max-width: 1087px !important; }
Новое расширение TiddlyFox 2.0.1 (от января сего года) тупо не выполняет свою задачу ни на какой версии ФФ. На любой версии оно предлагает сохранить новую версию файла. Ну и естественно, даже если мы её сохраняем - изменений в новом файле нет.
Версия 1.0alpha18.1 такой херни лишена.