<Glazblog/>

Death of XUL-based add-ons to Firefox

I will not discuss here right now the big image of the message sent a few weeks ago (although my company is deeply, very deeply worried about it) but I would like instead to dive into a major technical detail that seems to me left blatantly unresolved: the XUL tree element was introduced to handle very long lists of items with performance. Add-ons touching bookmarks, lists of URLs, list of email adresses, contacts, anti-spam lists, advertisement blocking lists and more all need a performant tree solution.

As far as I am concerned, there is nothing on the html side approaching the performance of the XUL tree for very long lists. Having no replacement for it before the removal of XUL-based add-ons is only a death signal sent to all the add-ons needing the XUL tree, and almost a "we don't care about you" signal sent to the authors of these add-ons. From an ecosystem's point of view, I find it purely suicidal.

So I have a question: what's the plan for the limited number of XUL elements that have no current replacement in html for deep technical reasons?

Update: yes, there are some OSS packages to deal with trees in html, but until the XUL tree is removed from Firefox's UI, how do we deal with it if access to the XUL element is not reachable from add-ons?

Comments

1. On Sunday 13 September 2015, 15:16 by Robert O'Callahan

We don't see demand from Web sites for an equivalent to XUL trees, so apparently it's possible to provide equivalent functionality in a performant way.

I think generally this is done by avoiding putting all the elements in a single scrolling list, and instead subdividing the elements in some way, e.g. by grouping elements into pages, and/or filtering. Scrolling through huge lists is generally a bad user experience anyway.

2. On Sunday 13 September 2015, 18:58 by Gijs

See https://bugzilla.mozilla.org/show_b... .

I've been thinking about it for a while now, and I have some ideas, but I haven't had/made time to work on it.

Regarding "you announced this before you had a replacement" - well, it was either that or do all the work and then say "oh, by the way, we will flip the switch in the next 3 months because we've been doing all this work for a while now and we weren't public about it". Whichever way you look at this, you will always end up making people unhappy, either because you didn't tell them long enough in advance or because you didn't have everything figured out when you made the announcement. I have no interest in a discussion where no matter when the announcement is made, it's always the wrong time.

Let's have a constructive discussion instead. For instance, considering this hasn't yet been figured out: why don't you make a concrete suggestion about the <tree> situation?