You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.)
about:config Tweaks
✓ = Equivalent functionality is built into Chromium or available as an addon
N/AStumbleUpon extension is now
garbage beyond my ability to
fix it.
StumbleUpon - Hide Facebook/Twitter in Share Menu
StumbleUpon - Ultra-Compact Toolbar
StumbleUpon - Undo "always show referred count"
DownThemAll Successor
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?)
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)
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.)
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.)
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:
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
[14]
(1, 2, 3, 4, 5) 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.
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.csscan be used to implement it.
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 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.)
Beef Taco is incompatible with Self-Destructing Cookies but may
come into use again if the latter is completely impossible to port.
[27]
(1, 2) DOM Inspector and InspectorWidget are used to inspect XUL in
order to produce XUL Userstyles.
[28]
(1, 2) 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.
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.)
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.)
/* 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,#contentAreaContextMenumenu[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;
}
[35]
(1, 2, 3, 4) 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.
Новое расширение TiddlyFox 2.0.1 (от января сего года) тупо не выполняет свою задачу ни на какой версии ФФ. На любой версии оно предлагает сохранить новую версию файла. Ну и естественно, даже если мы её сохраняем - изменений в новом файле нет.
Новое расширение TiddlyFox 2.0.1 (от января сего года) тупо не выполняет свою задачу ни на какой версии ФФ. На любой версии оно предлагает сохранить новую версию файла. Ну и естественно, даже если мы её сохраняем - изменений в новом файле нет.
Версия 1.0alpha18.1 такой херни лишена.
TiddlyFox 2.0.1 работает для меня с Firefox 52 ESR и TiddlyWiki Classic. (Я прошу прощения за то, что я полагаюсь на Google Translate.)
Новое расширение TiddlyFox 2.0.1 (от января сего года) тупо не выполняет свою задачу ни на какой версии ФФ. На любой версии оно предлагает сохранить новую версию файла. Ну и естественно, даже если мы её сохраняем - изменений в новом файле нет.
Версия 1.0alpha18.1 такой херни лишена.