When Pants approached me in 2015 about publishing his Firefox user.js configuration file on Ghacks, I never imagined how far the project would come.
Now, 20 months later, the project has made a huge step by moving to GitHub. Among the many improvements are openness, better manageability, change tracking, faster releases, support for user contributions, and a lot more.
Pants was kind enough to keep the Ghacks name for the project, and I will publish information on new releases whenever they are made available here on Ghacks. This means that I will post a new article shortly after stable Firefox releases that highlight the changes of that particular release, and provide you with links to the latest versions of the user.js file on the Github project page.
You can use this link as an entry point on Github to explore the project there.
Without further Ado, here is Pants announcement:
After v11 (FF51), I decided to put the ghacks user.js on GitHub. This brings a lot of benefits that I don’t need to list here. It’s been a busy 6 weeks, and now that all the noise (number of posts and discussions and issues) have died down, I can tell you about it… here’s what we’ve done… so far:
PS: I’m crap at writing, so I’m doing this bullet style
PPS: I just want to say thanks to the guys (and gals) who have been contributing at GitHub, but a MASSIVE thanks to Earthlng, who is the only MEMBER (and I am the owner) of the ghacksuserjs GitHub organization, and as such he has full control over the repository. His contributions have really helped bring the ghacks user.js to another level in so many ways, and the work put in with generating diffs, research, and the changelog are fantastic.
- I wrote a short little readme that outlines a few things. Go read it. Seriously, go read it.
- Default readme.md is shown on the home page here ( https://github.com/ghacksuserjs/ghacks-user.js )
- Sexier themed version is here ( https://ghacksuserjs.github.io/ghacks-user.js/ )
- Changed version numbering to match Firefox stable (see the release section below)
- Stripped out all non essential sections, such as Firefox Add-ons and Test Sites to the wiki section, and Palemoon and Things to Investigate to issues
- Removed the troubleshooting list (see tags below)
- Super-simplified and shortened the original intro/readme – most of this moved to the “Wiki: Getting Started” pages
- Formatted the js so all multi-line text can collapse and fold
- Cleaned up all the typos, expanded acronyms, fixed grammar, used same syntax for parts (such as version start and end numbering)
- Added tags such as [WARNING], [SETUP], [SETTINGS], [TEST] and numbered references ,  etc.
- As a result the entire js is much easier to visually parse, read, and search
- Revamped entire sections to be more logically ordered, with section sub-grouping if needed, and better explanations, including section descriptions when required. Even made some groupings and order based on commenting them out for more convenience. These sections include:
- 0800: location bar / search bar / forms etc
- 1000: cache
- 1200: https / ciphers etc
- 1600: headers / referers
- 2800: shutdown
- Section revamps included improving some preferences (some were found to be deprecated or legacy, others were changed, some preferences are new, better descriptions and all that)
- Created a new section 2697: UA Spoofing
- Compared ghacks vs pyllyukko: we added 4 minor obscure preferences. (Documented in issue #10). Created a diff for pyllyukko to compare, and so far they have added almost 2 dozen items from ghacks, and still going
- Compared ghacks values vs pyllyukko values for what we have in common: no changes. We differ on only 8 preferences due to a slightly different strategy. That’s a good sign. (Documented in issue #18)
- Upgraded to Firefox 52 compliant
- Add-ons Appendix is more informational with flags for e10s, WebExtension etc
- Test Sites Appendix expanded as well
- References Appendix (Mozilla, MDN, TOR, CVE etc sites) added
- The “readme section” from the old js has become an in-depth “Getting Started” wiki section, and expanded (with pictures!), including a full overview of how a user.js works, how to backup properly, an implementation page, and even how to troubleshoot a preference.
- The implementation page led me to create a How To section on working with multiple profiles for both installed and portable Firefox, and how to run concurrent profiles. I will create the Lock Pref pages in due time.
- Added a “Scripts” section, including some greasemonkey (or similar) scripts and pointers for NoScript, uBlock Origin and uMatrix (this is a work in progress)
- Note: There are “sticky” issues for various wiki section suggestions
- Future plans include expanding the wiki even further with Tutorials and Articles and more How To’s
- As mentioned, we changed the version number to match Firefox stable
- You can read all about how we manage “releases” here ( https://github.com/ghacksuserjs/ghacks-user.js/issues/54 )
- Basically, the current “live” master user.js is always current stable and always being improved
- At the end of stable life-cycle, we now archive off a “release” for legacy and archival reasons
- Then we change the master version number and as quickly as we can test and add preferences and deprecate items as per the new stable version. We know in advance a lot of the changes due to Earthlng’s diffs
- As soon as we have worked through all the changes, we create a “pre-release”, and from this we can generate a user friendly changelog (Earthlng authors these, and they use the changelog label in issues). You can click labels to filter issues. We will always have an open “Changelog” issue, and older ones will be closed, but there for historical pruposes. They are a lot more user friendly than the atomic level commit history.
- Martin will republish Earthlng’s changelog here at ghacks as soon as we do them, just like he does a “What’s new in Firefox X”, there will be a “What’s new in ghacks user,js X”
- The delay last time was around 7 days from when stable landed. So expect that to be the approximate time frame, as we have to upgrade ourselves, test items and so on.
- Again, the “Pre-release” is a snapshot, the master user.js (here: https://github.com/ghacksuserjs/ghacks-user.js/blob/master/user.js ) is the one always being worked on.
- Besides the obvious
- stable compliant releases
- improving the js
- improving tags and info on breakage and setup
- updating and improving the wiki
- Providing branches
- preset versions eg: “Relaxed”, “Hardened”, “Social Media” etc for use with multiple profiles
- when Firefox 57 lands, maybe start an ESR branch
That’s about all. Everyone is welcome to come visit and contribute.