Hacker News new | past | comments | ask | show | jobs | submit login

You could consider downloading the source for firefox, modifying the UI and building. Swap patches with other people and you have your "promiscuous" extensions.

Take a look at browser/base/content/browser.xhtml




... and then maintain it all yourself. Depending on what your patches do you might need to be a skilled systems level polyglot programmer. And make sure not to fall behind tracking mainline because there's new zero days all the time! Related, I sure hope you're not trying to compile on a laptop with limited RAM.


If you go in with the intention of writing an extension rather than a general case fork then it becomes a bit easier. You know from the start that you will rebase on top of upstream over and over again, and you should write code taking that into account. Minimal changes to existing code, ideally put your code in separate files and make single line changes to existing code to install hooks. Consider what code and interfaces are stable and what changes a lot.


I mean that's basically how the old XPCOM extensions worked for developers.


Sort of? But the amount of effort required is much higher. Source patches require having a full dev environment, it takes much longer to build the entire browser and you also have to take on responsibility for rebasing onto upstream, dealing with security releases for the browser itself _and_ every one of the patches, and running an update infrastructure.

Extensions from other people (which is 90%+ of them even for extension developers) just need to be loaded, and your own extensions only need a text editor and something that can make zip files.

Maintaining Firefox build and update environments is a multiple-employee full-time job at Mozilla, and that's before you've even started modifying anything. It's just too much to expect an end user to do this (and even extension developers are end users most of the time).


If you just need to modify the UI, consider userChrome.css and userChrome.js files: https://www.userchrome.org




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: