Settings

Theme

Installing every* Firefox extension

jack.cab

652 points by RohanAdwankar 2 days ago · 83 comments

Reader

ArneVogel a day ago

I won the "Middle Finger Emoji Sticker" Award! (https://jack.cab/blog/every-firefox-extension#the-middle-fin...)

I quickly wrote up how: https://www.arnevogel.com/firefox-permissions/

  • benlimanto 15 hours ago

    At least you put effort into it and break it.

    Yet Dr.B extension keep balooning and getting crazier day by day!

    Now as I write this, it has 97 extensions from prior 84 extension

    Man, how many slop will he keep putting out there.

  • thehias a day ago

    why dont you use your own extension?

    • ArneVogel a day ago

      I used it on my old pc, but I don't buy still that regularly online so I guess I forgot to reinstall it again. Also it is outdated by now as the domain list hasn't updated in two years.

BoppreH a day ago

Sad that no real pages can load successfully, but I thoroughly enjoyed the writing.

> We turned on crash reporting on the way.

I haven't burst out laughing like this in a while! You'll probably make for some horror stories to a poor Mozilla team.

gathered a day ago

I'm laughing so hard at the video, I imagine this is what browsing the web is like for the elderly that barely know how to use a computer. Can someone do this in Chrome?

  • m132 a day ago

    Loved the brutal realization that came when the seemingly broken Extensions button the author was mashing for solid 30 seconds turned out to be a fake, extension-supplied one. One... of three.

  • stratos123 a day ago

    My favorite part was the metal pipe sound effect. Wish the author investigated which extension does that.

  • xg15 20 hours ago

    There was also a nice dramatic arc to it, with the browser first (seemingly) behaving normally, then starting with a few scattered theme switches, then going increasingly off the rails as more and more extensions start up.

    Also the metal pipe.

  • amelius a day ago

    That will be one hell of a bug report.

  • walrus01 a day ago

    If you turn loose a completely untrained person to click yes/accept/download/OK/I agree on every type of user interface popup, particularly a person who has no ability to distinguish between a user interface question presented by the operating system itself and something inside of a browser window, that's what you'll get...

    • RussianCow a day ago

      I have a vivid memory of once looking over someone's shoulder in the IE days and being horrified to see toolbars taking up about 80% of the available screen real estate, leaving only maybe 150-200 pixels of vertical space for actual web browsing. I have no idea how they got anything done, and my guess was they never actually used any of the installed toolbars and just thought that was normal.

      • walthamstow a day ago

        You can see this today on macOS. I see people with this at work all the time. The defaults have quite inflated scaling and the dock at the bottom. The vertical space left for a website after the address bar is hardly anything.

      • weird-eye-issue a day ago

        I have this memory too lol. I was really quite young but it's like a core memory. Similar to when a middle school teacher told me about Firefox and I discovered tabs.

    • girvo a day ago

      I’m aware, that’s exactly what my grandfathers (rest in peace grandpa, I miss you) IE window looked and felt like in the early 2010s!

    • abustamam 19 hours ago

      I was recently doing some maintenance on my mom's iPhone SE and was quite shocked at how many random apps she had installed. Random forums, shopping apps, etc. Bespoke mobile app wrappers for simple web apps may be the new 'toolbar' or 'browser extension'

    • Shadowmist a day ago

      You can just say AI

  • Eddy_Viscosity2 a day ago

    Where is the video, I scanned through and only saw still images.

xnorswap a day ago

This article is wonderful crazy.

The icing on the cake is the discovery of a potential performance bug in one or more of the about: pages, that's definitely worthy of following up.

xg15 a day ago

> I did some research to find why this took so long. 13 years ago, extensions.json used to be extensions.sqlite. Nowadays, extensions.json is serialized and rewritten in full on every write debounced to 20 ms, which works fine for 15 extensions but not 84,194.

I'm slightly worried how they arrived at that debounce value. Which extensions need to write to extensions.json continuously, several times a second?

  • Someone a day ago

    I don’t think extensions ever write that file; Firefox writes it whenever its in-memory set of installed extensions is updated.

    When Firefox finds new extensions, it updates the in-memory set for each of them.

    In the typical case that series of updates will be small, and the denounce makes it likely the file gets written only once.

tech234a a day ago

Alternatively you may be able to list the extensions using the sitemap: https://addons.mozilla.org/sitemap.xml

Chrome Web Store has something similar: https://chromewebstore.google.com/sitemap

And Edge: https://microsoftedge.microsoft.com/sitemap.xml

username135 a day ago

"I got basically all the extensions with this, making everything I did before this look really stupid."

I geel this on a deep personal level.

cachius a day ago

Reminds me of the NPM package that depended es on all other NPM packages https://uncenter.dev/posts/npm-install-everything/

m132 a day ago

Brings back the memories of using Internet Explorer when every other installer was fighting for toolbar space!

Every Internet café had at least 2, with Ask.com, Google, Yahoo and later on, Bing being the main contenders.

mmsc a day ago

The website of this blog and their connections listed are a sight to behold. I miss that version of the internet.

codemog a day ago

I love the small few who take the time to do crazy stuff like this. Very entertaining.

evolve2k 15 hours ago

I’d like to image with a bit more work, the Firefox core dev team funding this into a CI test and chipping aaay at performance both of Firefox and policies around what goes in the store. Better scanners when extensizoms are unplosded would likely suppprt big gains in removing the poorest quality stuff here and addressing what is leaking memory and is over resource hungry.

egeozcan a day ago

In this blog post: Let's Game It Out[1] meets web browsing.

[1]: https://www.letsgameitout.tv/

mid-kid a day ago

Seeing this article, and how much webextensions manage to mess up the browser, I'm wondering how bad this experiment would've been with the legacy XUL extensions. Maybe they had a point in getting rid of them...

fulNamSexBoomer a day ago

This obviously showcases that Firefox needs to work on their support for having all browser extensions at once. Users want and need this.

  • Avamander a day ago

    I would suspect that some of the slowdown that the author encountered does occur with even a dozen or so add-ons. Why else would Firefox bother you about resetting your profile if you haven't returned in a while?

rossdavidh 21 hours ago

My favorite line: "I got basically all the extensions with this, making everything I did before this look really stupid."

Not at all; all good developers succeed by finding ways to make their past work look unnecessarily complicated.

majkinetor a day ago

What is amazing is that Firefox can actually run at all with that many extensions installed.

layer8 a day ago

> I did some research to find why this took so long. 13 years ago, extensions.json used to be extensions.sqlite. Nowadays, extensions.json is serialized and rewritten in full on every write debounced to 20 ms, which works fine for 15 extensions but not 84,194.

Occasionally, databases are useful. ;)

  • Waterluvian a day ago

    This is probably a good example of the opposite. It would be a mistake to design for the fleetingly rare case. If you’re dealing with a handful of extensions, a json file that’s rewritten is fine.

    • shakna a day ago

      But the software already has multiple database systems built in. There's not exactly overhead to use what plumbing is already there, instead of writing to disk.

      • Chaosvex a day ago

        Firefox is absolutely abysmal at not corrupting its JSON stores, too. I've had it crash and lose tabs so many times. Perhaps moving back to SQLite wouldn't be a bad idea.

        I had to recover somebody's bookmarks for them recently after it decided to destroy the main copy.

        • andOlga 11 hours ago

          The SQLite parts that exist in Firefox right now are no less fiddly. If you crash the thing and the journal files are still there, it starts back up and presents you with a blank profile. Absolutely horrifying if you don't know about this quirk (and about the fact that you can go in and delete those even after such a restart happens).

        • mockingloris a day ago

          > I had to recover somebody's bookmarks for them recently after it decided to destroy the main copy.

          @Chaosvex curious how you did that.

          • Chaosvex 20 hours ago

            Thankfully, it makes backups inside the profile folder and has a bookmarks file import option that'll accept them.

            It does the same for session tabs (minus the import options) but that never seems to actually work.

      • estimator7292 a day ago

        Easier for a user to edit.

    • HPsquared a day ago

      In an ideal world, software with 100 million users would be optimised for energy usage. It all adds up. This does pale in comparison to everything else, though.

proactivesvcs a day ago

"In terms of implementation, the most interesting one is “Іron Wаllеt” (the I, a, and e are Cyrillic). Three seconds after install, it fetches the phishing page’s URL from the first record of a NocoDB spreadsheet and opens it [...] The API key had write access, so I wiped the spreadsheet."

  • methodist a day ago

    The extension is actually still up: hxxps://addons[.]mozilla[.]org/en-US/firefox/addon/%D1%96ron-w%D0%B0ll%D0%B5t/

  • thephyber a day ago

    Did you just admit to a CFAA violation?

    • weird-eye-issue a day ago

      What do you mean by "you"? Do you know what quotes are?

    • sunaookami a day ago

      Won't someone think of the poor phishers!

    • prmoustache 17 hours ago

      Blatant USDefaultism

      • thephyber 13 hours ago

        It’s a reasonable default when commenting on a US-based site in English to an English comment about an English article.

        Quit being a useless scold.

        • prmoustache 2 hours ago

          You do realize that the english speaking world is much bigger than the USA right? The fact it is the default language for business/trade means that it is known and spoken all over the world. So no, there is no "reasonnable default".

          In case you didn't know, it is called english for a reason, USA didn't create it.

          Also there is absolutely 0 correlation between where a website is based or hosted and its visitors origins unless it tackles only topic that are specific to a particular area ou in a language known by a very limited population.

        • hsbauauvhabzb 9 hours ago

          I hope you don’t expect us to use imperial measurements.

ryanisnan a day ago

Dang this is so good. Well done.

alberto-m 21 hours ago

Really great writing and interesting experiment! I love the small details like the “clueless user”-style crash report in the `about:telemetry` section (“it just crashed out of nowhere”)

xg15 a day ago

The eternal tension between "this service mesh is completely overengineered for our usecase" and "our broker is far to slow for our 84.205 microservices"...

walrus01 a day ago

In general concept this reminds me a bit of adding every possible installer .EXE based Internet Explorer browser toolbar to Windows 98

https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Fz...

https://fergido.wordpress.com/wp-content/uploads/2011/06/too...

butterlesstoast 16 hours ago

I got so much joy out of seeing it take 32 gigs of RAM. Bravo.

Kholin a day ago

Firefox should provide an option to disable the auto popup pages after any extension installed.

danlitt a day ago

Is the scraping code available? (in order to regenerate the dataset later)

curioussquirrel a day ago

Absolutely unhinged and very entertaining. Thanks for sharing!

lapcat a day ago

> It turns out there’s only 84 thousand Firefox extensions.

On addons.mozilla.org, but you can distribute Firefox extensions without posting on addons.mozilla.org. I do.

  • pndy a day ago

    I'm pretty sure that there were much more XUL and XPCOM extensions back then +10 years ago before mozilla pulled out the plug for that platform and moved to WebExtensions

  • tech234a a day ago

    Other examples I recall when looking into this: Zotero browser connector for Firefox, Chrome Remote Desktop for Firefox (I think it adds a few features for connections to remote desktops)

jason1cho a day ago

This article is interesting but hard to read in certain places because it contains distracting information.

Better to organize it into main findings and side stories.

throwatdem12311 a day ago

Turns out even browser extensions can be comedy.

anthk a day ago

GNU Abrowser and Icecat both point to a curated list of FLOSS licensed extensions.

youknownothing a day ago

Is this the digital version of Supersize Me?

3abiton a day ago

> Dr. B is the king of slop, with 84 extensions published, all of them vibe coded. > How do I know? Most of their extensions has a README.md in them describing their process of getting these through addon review, and mention Grok 3. Also, not a single one of them have icons or screenshots. > Personally, I’m shocked this number is this low. I expected to see some developers with hundreds!

This is really surprising. Either because Firefox is not that popular ir mozilla has an automatic filter?

6510 9 hours ago

There use to be lots of "handy" programs and toolbars for windows xp and internet explorer. You know, the kind of things no one in their right mind would install. I think people learned to code and wanted to make something?

My theory was that if you are going to make something you will at least try to make something useful. The free extra toolbar, context or menu button will need some selling point.

So I did what every senseless person would do and started gathering lots and lots of "handy" programs and "tools". I install them one by one and then I try to use them as if I was entirely serious about it.

IMHO the important part of the process is to identify useless things early (and convincingly) and get rid of it.

Quite a lot of them looked like someone put some real work into it and they all got to stay. It took quite some effort to learn to use all of them the way intended but to my complete surprise some of them were actually useful.

Besides google toolbar the only one I remember by name is slickrun[0]. Out of all addons competing for search this one also launched applications and opened folders by typing the first letters of a configured keyword and had a hot key.

One truly fabulous tool was an extra windows toolbar button that folded out a context menu with a full blown web directory with 10 layers of nested sub menus. What made it fabulous was the sheer amount of effort someone (or multiple someones) made in organizing and curating thousands of websites into sub sub sub sub menus. Every time I thought (for laughs) I'd try find something there it not just was there but it lived in a very obvious place, surrounded by related stuff worth checking out.

I had 3 different spelling and autocomplete tools competing for the best suggestion. IEspel usually won as they send all text input to the server. Most shocking was that if you shifted your hands one character to the right it guessed flawlessly what you wanted to type even if non of the characters were correct. I loaded one with some popular phrases.

One of the text complete tools also competed with several clipboard history laboratories.

Without a license one could install limited Microsoft desktop buddies[2] but after installing many trial applications that had them I gathered a big team of different ones that were shared between applications. This is important because some tools offered screen reading that worked really well in any application. Being "serous" about the process I carefully configured everything which naturally resulted in configuring trillian reading irc out loud, each user with a different voice and a different desktop buddy. IRC had transformed into theater. I just let it run all day and repeatedly cried from laughter. I couldn't remember all the names but different voices are hard to forget.

The context menu of "every firefox extension" was nowhere near as terrible as mine. Mine had arrows to scroll and it kept going.

[1] - https://web.archive.org/web/20050211033123/https://www.bayde... (the image in the center at the top is the entire ui, one can drag it around and it floats on top of other windows)

[2] - https://the-microsoft-windows-xp.fandom.com/wiki/Rover

  • efreak 6 hours ago

    Bayden SlickRun is still around, I use it daily for launching most of my programs (the only annoyance is the `hide` magicword gets interpreted as `hibernate` occasionally due to my typing `hi` and hitting enter). Unlike many other launchers, SlickRun uses minimal resources and can be configured to show useful information if you leave it on-screen (these days I have it set to auto-hide, as I have enough memory to not worry about it). Typing three keys to get auto complete and hitting enter is faster than searching the run menu (regardless of what implementation you use). I was very annoyed when I installed windows 10 and had to change my hotkey. (Much like I'm now annoyed at Windows 11 for hijacking the printscreen key I use for ShareX)

thegdsks a day ago

Good Luck Remembering all those icons.. Amazing

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection