Hacker News new | ask | show | jobs
by tn123 1685 days ago
Hi Stefano, Nils here, long time no see.

Yeah, it was 2006 when I joined you and Federico, if I remember correctly, while you and Federico started DownThemAll! in 2004. #201 is correct :D

2006 was really a long time ago...

DownThemAll! went through a lot of revisions since that time, including the work it took to make it restartless, then make it compatible with "electrolysis" and so on. And in the meantime ensure it didn't break with every Firefox release. But at the core the functionality kept the same. People contacting me with questions could be quite overwhelming - and I am sorry if some of you HN'ers mailed me and I didn't answer - but it was very enjoyable to see what different kinds of people were using our creation and get in touch with all kinds of folks that way, from students downloading lecture videos to movie editors downloading the "dailies", and everything in between.

I am still not happy mozilla decided they had to break all extensions, and I had to do a full rewrite as a WebExtension, and thus abandon a lot of features that simply are not possible anymore with that new API, while at the same time reinvent the wheel for the UI (now being forced to use vanilla HTML, which can be quite hard to get performant enough when people queue a couple of tens of thousands downloads at once). But the very core of functionality, namely selecting and queuing up a lot of links quickly, is still there, so I hope some people still find this new DownThemAll! WebExtension useful.

Lastly, while the last release was indeed 2 years ago, I keep meaning to fix some bugs and make a new release. I was already planning to set aside a lot of time this month for that, even before seeing DTA pop up on HN again. I guess this HN post can only motivate me more :D

Federico's death was incredibly sad. We only met once in person, but he was such a nice and humble guy, not just in real life but online too. I miss him too, may he rest in peace.

3 comments

As a life-long Firefox user who has been increasingly angry with Mozilla's direction for the browser for the past ten years, I honestly don't know how developers like you could put up with it.

Trashing an entire swathe of extensions - hundreds of thousands of man-hours of work - and then making breaking changes in nearly every subsequent version after that... it's precisely why I've never even considered making a browser extension. It would be pure hell.

It's not exactly that they put up with it, but rather that projects under Mozilla - speaking from my TB experience - are ruled with an iron fist: Censorship, internal secret trials for supposed misconduct, summary expulsions etc. I don't know what it's like for core developers, but I suspect they either keep their head down or it gets chopped off (and thus, the developers who didn't put up with it are probably gone).
If you think that's bad, try developing native apps.
Specifically those for Apple's ecosystem.
> I am still not happy mozilla decided they had to break all extensions

Actually, the weird thing - for those who see FF or TB from the inside - is that the same kind of code we have in regular extensions is still what's used in FF and TB's own chrome (which is in many ways like a bunch of "core extension"). They haven't changed things in a way which makes using extensions impossible, they simply removed the loading mechanisms for them.

Interestingly, for Thunderbird, there's a loophole which most popular extensions use, that allows them to keep loading and running the same kind of extension code they always have:

https://github.com/thundernest/addon-developer-support/tree/...

https://github.com/thundernest/addon-developer-support/issue...

This isn't actually (entirely) true.

One of the core technologies of the old extension model, XBL, has been completely ripped out. XBL-defined elements and XBL overlays were how a lot of the old UI customisations functioned, so even if you enable loading the older code it just flat won't work. Obviously custom JavaScript, as in the example you linked, can still do whatever when loaded without restrictions, but then you're at the mercy of changing internals, instead of the supported stable WebExtensions API.

Additionally a lot of XUL in the chrome UI has been removed, replaced with HTML equivalents or custom elements (a descendant of XBL), and the root documents that make up the browser chrome have transitioned from being .xul XUL documents with some HTML elements in to .xhtml HTML documents with some XUL elements in.

As I said elsewhere, I reviewed thousands of addons for addons.mozilla.org back in the day. The number of extensions which used XBL directly were just a handful, and usually by the most capable developers. I have no doubt these developers would have adopted to XBL going away, especially as WebComponents is basically a replacement for most of it.

That some of XUL has gone or was moved to HTML doesn't really matter much either. People could have adopted to this as well. Adopting to ongoing changes in Firefox was the bread-and-butter of extension development before WebExtensions (or the add-on SDK/jetpack), a necessary cost of doing business with the reward of very powerful things you could then do in and to the browser. With JetPack and the Addon SDK mozilla tried to provide stable APIs with some success. Adding WebExtensions to the mix would have helped, just to make it easier for Chrome extensions devs to port their stuff. People not in need of anything besides these stable APIs could use these and be done. People who needed more powerful capabilities would have went the other route and tracked Firefox changes, just like they used to for over a decade already anyway.

There were tons of major breaking changes over the years (Firefox 3.5 to 4 was particularly "bad" IIRC), and while those caused some causalities over the years with abandoned extensions not getting updated (tho most popular add-ons affected got new maintainers or were forked), most extensions kept going, adapting as needed.

I am pretty sure that I could pick up my "legacy" DownThemAll! code now and today, spend a month adopting it, and have a working version for Firefox 94+. A month may sound like a lot for some hobby project, but in an alternate reality where "legacy" add-ons still would be supported, I would have spent that month over a duration of the last 5 years.

But in this reality, I have no supported way to actually load such a "legacy" extension. I could add such a capability back to a Firefox fork, but then only I would be able to use it, but nobody else would... Unless I released the fork, and really, I don't have the resources to maintain an entire Firefox public fork.

So all that was needed, was a hack to load it ?
Old extentions had way more access to the internals of the browser. When they disabled that access, they also meant they could change internal interfaces faster without breaking so many extensions. So I think it would be possible to make a small source-level tweak and compile a browser that loads old extentions, the individual extensions might not work anymore.
Thanks! This extension was great for archiving materials from MOOCs (Coursera and such) for future reference. Also finding it useful for retrieving a bunch of things from some collections on Internet Archive, where their previews don't work or are broken, etc.