4 ms·
Can someone explain to me in a few words what exactly from servo is already in Firefox and how quantum is related to servo exactly? Some CSS processing is alrea
by red023 9y ago
Can someone explain to me in a few words what exactly from servo is already in Firefox and how quantum is related to servo exactly? Some CSS processing is already in Firefox I think. But the main thing of servo is the rendering right? That seems to be pretty far away from ready.
- NiLSPACE 9y agoFrom Servo Stylo, the style system and WebRender, the renderer are used in Quantum. Stylo is more parallel which will bring a big performance improvement, especially on multi-core and mobile devices while WebRender uses the GPU to render websites which will also bring a huge performance improvement to mobile devices and computers with an (integrated) GPU.
- red023 9y agoWell yes I know that servo is about to make use of multi core but looking at its issues its far from ready for displaying websites correctly. So I am confused about this still as you have not really addressed what parts of servo are in fact in Firefox right now and what parts are not. I am not sure how "Rendering" is defined the way I understand it, its the part where servo has a looong was to go until its ready.
- NiLSPACE 9y agoIf you have the time there is a nice talk about WebRender: https://www.youtube.com/watch?v=BTURkjYJ_uk https://www.youtube.com/watch?v=BTURkjYJ_uk Here is another great talk: https://www.youtube.com/watch?v=an5abNFba4Q https://www.youtube.com/watch?v=an5abNFba4Q At ~25:30 he'll also talk a bit about Quantum. In a nutshell WebRender is used to send a web page to the GPU which will paint all divs, borders, shadows, images etc. Currently WebRender is the only component I'm aware of that is inside Firefox Nightly. It's still behind a config though.
- wlesieutre 9y agoIIRC the first part to be used in Firefox is the URL parser: https://bugzilla.mozilla.org/show_bug.cgi?id=1151899 https://bugzilla.mozilla.org/show_bug.cgi?id=1151899
- Manishearth 9y agoNote that the parser is off by default unless on nighty or aurora, and even in those cases it will run both rust-url and the regular parser to figure out what differences exist. https://news.ycombinator.com/item?id=14167305 https://news.ycombinator.com/item?id=14167305 In nightly currently IPV6 urls are unconditionally serialized with rust code, and this will ride the trains to a release without being turned off.
- kibwen 9y agoServo is still far from ready to use as a complete browser, but Servo is modular, and some modules are far more mature than others (intentionally so, because Mozilla wants to integrate those bits into Firefox ASAP, and so focuses most development there).
- clouddrover 9y agoHere's the Quantum page on MozillaWiki: https://wiki.mozilla.org/Quantum https://wiki.mozilla.org/Quantum And a recent blog post about the first piece of the project landing in Firefox: https://blog.mozilla.org/blog/2017/04/19/first-big-bytes-project-quantum/ https://blog.mozilla.org/blog/2017/04/19/first-big-bytes-pro...
- metajack 9y agoQuantum is the name of the new web engine for Firefox. It started landing in the current release, and will land piece by piece over the next several releases. Servo is related because several of the big parts of this new engine are taken directly from Servo. I don't know that any Servo code is shipping today, but a few little things will happen like the url parser. The first big pieces will be the style system (Quantum Style or Stylo) and WebRender (Quantum Render), in that order. Once the style system is done, it probably makes sense to figure out how to get Servo's layout engine into Quantum, although that is a larger project since it requires us to implement a few large bits of layout that aren't done in Servo yet. There's a lot of main things in Servo, but if we had style, layout, and WebRender, that would be a sizeable chunk. Our DOM engine and basic architecture is also pretty interesting, but it's unclear how to move that over incrementally.
- kibwen 9y agoFor those playing along at home, metajack is the Servo project lead.
- Manishearth 9y agoAdding more info on what's shipping: Quantum Compositor (an architectural improvement written in C++) just shipped. Quantum Render/Webrender (Servo's pure rust renderer that uses the GPU a lot) is in nightly, off by default (there's an about:config prefer, though it may not work depending on your drivers. about:support has more info). The current version of quantum render actually kind of renders twice -- first using webrender and then the regular one to fill in the missing bits. So don't expect it to be fast just yet. Quantum Style (Stylo), servo's pure rust styling system, can be enabled at build time. We're discussing making it a preference in nightly, there are a couple of blockers for that. The Rust URL parser (rust-url) can be enabled via network.standard-url.enable-rust. This will parse URLs using both rust-url and the regular parser, and complain about differences. I believe it's on by default in nightly and Aurora. It will fall back to the result of the regular parser if there is a difference, though there's a build time option to disable this. There are still some discrepancies which need fixing (most of them are actually gecko side bugs, we've fixed most if not all of the rust-url side spec issues), and this project is on the back burner for a bit since I'm busy with Stylo, but I hope to get back to pushing this soon! On nightly, regardless of prefs, IPV6 URLs will always be serialized using rust-url. There were some spec bugs in geckos implementation and we decided to just use the rust stuff since we had bindings for it already. This landed a month ago, and should be in the Firefox 55 release in august. The MP4 metadata parser in rust has been in Firefox releases for a while now.