Stylo shipping in Firefox Nightly
reddit.com
reddit.com
We don't see any gecko based apps like we see WebKit based apps (electron, etc) because gecko is so tightly developed around Firefox.
I suppose the idea was largely ahead of its time; in 2006 computers just didn't have enough RAM/CPU to get away with running a full web browser stack for every app like we (sort of) can today.
I still think that building a html+javascript package, and have the default browser run it chromeless with some expanded privileges (or near chromeless) is a great approach for cross-platform apps, sadly it doesn't seem like anyone is working seriously on such an approach.
You think so? I find that running a whole second OS for every process is hugely bloated and slow, and that we can do much, much better when there are already very good languages that run cross-platformly, they just need bindings to a good cross-platform UI toolkit.
Unfortunately, nothing looks as good on OS X as Cocoa does.
Look at R studio. Wonderful IDE, runs as a safari app. Having a whole extra browser and a node backend running for each app seems a waste, but using the browser that is already running as a runtime environment seems much saner.
I do most of my work in the browser, I wouldn't mind if some of that had better integrated UI.
I also wouldn't mind writing small, easy to produce apps that will work across systems.
I think the thing that kills that approach is the default browser, which on Windows is IE 12 (Edge).
Edge isn't actually that bad to work with these days. But almost no web developers will use that when they could ship Chromium / Electron just as easily and get the exact same browser on all three platforms.
Even Microsoft's own teams will sometimes make that choice (VS Code using Electron.js and not Edge, for example)
You can see bits and pieces where Microsoft's teams are also experimenting with Node on ChakraCore and Electron on Edge.
If I want to use a web version I can do it using a browser of my choosing not the one developers want.
Also, why are you celebrating an alternative for WebKit? Isn't it already supported by most major browsers?
It is, Firefox can do CSS and styles just now. Stylo is a replacement for that.
> To me it seems like Stylo is just a parallelized replacement for the old system, Servo. What am I missing here?
Servo isn’t the old system. Servo is a research project to build a layout engine (analogous to Gecko which Firefox currently uses) in Rust, of which Stylo is a part.
> Also, why are you celebrating an alternative for WebKit? Isn't it already supported by most major browsers?
It sounds like you’re confused about what WebKit is. WebKit and its forks are used by a number of browsers (Chrome, Safari etc.).
EdgeHTML, Gecko and WebKit are, broadly speaking, competitors which attempt to implement certain standards and frequently disagree about how to do so. It’s important that there be alternatives to WebKit with significant market share because otherwise how WebKit implements a feature becomes the de facto reference implementation.
WebKit is technically only used by Safari. Chrome uses a WebKit fork called Blink, and MS Edge uses its own engine called Chakra.
I assume the above commenter was expressing relief that someone besides Google is making a fast, modern web browser these days.
The layout engine bits in Edge are https://en.wikipedia.org/wiki/EdgeHTML
Stylo takes Servo's styling engine and puts it inside Gecko.
Was there a real alternative to WebKit in the embedded browser space before? (genuine question)
It's still pretty cool though :)
It won't be for dev edition; dev edition didn't build it by default.
about:config isn't user-facing so it will show prefs that do nothing on the current release channel or build.
What parts of Servo are already in Firefox? What is missing? Is there a list of what will get into Firefox over time?
- Stylo, built by default, off by default
- Webrender, built by default, off by default, current pref makes it render things through both engines.
- rust-url for url parsing, built by default, off by default, current pref makes it parse through both parsers and compare. I intend to bring this across the finish line once done with stylo
- encoding_rs for dealing with string encodings. built and on by default. Not exactly a servo component (servo used to use rust-encoding), but i think servo uses it now.
Currently Quantum CSS (Stylo) and Quantum Render (Webrender) are both in Firefox Nightly, but they are unstable and can cause really bad performance, especially Quantum Render. They won't be done until at least Firefox 57 and some most likely later.
Quantum Compositor is in Release already I believe. It's the out of process compositor for Firefox.
Changes from Quantum Flow are continuing to be implemented into Nightly and later on Beta.
I haven't ready much about the progress around Quantum DOM, and I have no idea for which release it is targeted.
Servo is the experimental browser (engine?)?
Quantum is the project that ports parts of Servo to Firefox over time?
The old system will still be needed post-WebRender for printing at the very least.
Isn't it possible to take a frame from WebRender and print that? Having two separate systems seems like allot of unnecessary maintenance. Especially if one of those systems is only used on rare occasions like printing.
gfx.webrender.enabled = true (restart required)
- You could switch to that too (I run it even on my job Ubuntu machine, never saw any benefit to using the official Ubuntu PPA apart from proper packaging, which I don't care about, this Firefox lives in /opt/firefox and that's okay with me, and getting updates are a matter of hitting Help -> About, easy).
- Or just wait a few days for the PPA to serve a fresher build. EDIT forget about this and read bzbarsky's answer above. Thanks, Boris :)
In fact it's likely: Firefox nightlies on Linux have been shipping stylo (preffed off) for close to three weeks, so if a two-day-old Ubuntu build doesn't have it, chances are neither will a newer one until they change their build configuration to use --enable-stylo.