TB, Electrolysis & Quantum

Robert Kaiser kairo at kairo.at
Thu Dec 29 14:35:41 UTC 2016

Disaster Master schrieb:
> This was very interesting to me since I've never heard of Quantum. I had
> read about what I thought was another new engine being developed by
> Mozilla called Servo some time ago, but it had sounded like it was a
> long way off, and a little googling reveals that Quantum is apparently
> the official name of the new engine which is written (I think) in Rust,
> and uses the 'high performance components of Servo', so I guess 'Servo'
> is just the 'tech' behind it? Also, the expectation of Quantum being
> implemented *this year* is significant news (to me at least) too.

Servo is a new engine completely written in Rust.

Quantum is not a new engine, it is a collection of projects for 
(radically) improving Gecko, including using some parts of Servo in 
Gecko, and including some other changes that will improve performance 
deep in the internals of Gecko. From what I understand, in all that, the 
new code is only targeted at improving HTML - so my guess is that if it 
seamlessly works for XUL as well, it will benefit it as well, if not, 
the old code may live on for XUL only and the new code will do HTML 
only. At least that's what I expect will happen there.

The goal for the long run is to make HTML be great for UI (and Firefox 
already uses it for some UI pieces, mostly the in-content UI and 
devtools parts right now, but there will be more and more of it). The 
CSS flex box model is a great help for this, I guess CSS grid will also 
be helpful, and using SVG for images/icons is another change I see a lot 
and which is quite nice.
There are IMHO still some things that HTML cannot do as well as XUL 
(performance-wise there are some issues at times e.g. in devtools, but 
that may be because of using React to generate a lot of controls; and in 
general, HTML does not have a highly performant list/tree control, which 
esp. impacts email, I guess) - but in general, a lot of UI can be done 
well in HTML nowadays, even more when you can ignore cross-browser 
compat and only care about a known, modern version of Gecko.

> I don't recall ever hearing mention of Electrolysis in relation to TB,
> and the same goes for Servo/Quantum, so - is this 'the problem'? Gecko
> is being replaced by Quantum, which apparently has no XUL/XBL glue? Thus
> these are two of the new features of Firefox that TB will never benefit
> from due to the growing incompatibilities from XUL/XBL?

Electrolysis should not have too much impact, but there may be some if 
in-process content may ever be unsupported. That said, running email 
display and esp. feed display in separate processes would be nice for TB 
responsiveness and security as well, and I think it wouldn't even be 
that hard to do as there's not as much direct access to that content, I 
think. That said, it could be hard for add-ons once again if those 
interact with email/feed content.

> It sounds to me like Quantum, while being implemented incrementally, is
> really ultimately deprecating Gecko itself, not just a couple of
> components of it (XUL/XBL).

Quantum is basically just a (major) step to improve Gecko and bring it 
closer to where Servo is targeted to land, so it can be done 
incrementally. That said, whole subsystems of Gecko are being replaced 
(like the style system which is basically being exchanged for that of 
Servo). In the end, Quantum is in my eyes a middle step on the road from 
where Gecko was until now towards the target of where Servo aims to land 
when it's ready. Basically "let's get some of what Servo will be into 
Gecko right now". If you want to call a major revision/improvement of 
Gecko a "new engine", maybe you can, but I wouldn't - but then, I'm more 
a fan of evolutions than revolutions in general (though I'm not so sure 
if the evolutionary path can still work for TB right now, but I would 
prefer it to other paths).


More information about the tb-planning mailing list