4 ms·
Mozilla's research render engine Servo sounds like the best bet, rather than redesigning all of Gecko's API space. It already implements the CEF, and was built
by chc4 11y ago
Mozilla's research render engine Servo sounds like the best bet, rather than redesigning all of Gecko's API space. It already implements the CEF, and was built specifically for embedding. The fact that it's an order of magnitude faster than all other rendering engines can't hurt, either.
- bobajeff 11y agoThat what I was thinking. Gecko had it's time. Servo would serve mobile devices better as a technology too. I also imagine Mozilla's legacy will live on in Servo after Firefox has lost its remaining market share.
- steveklabnik 11y ago> The fact that it's an order of magnitude faster than all > other rendering engines can't hurt, either. For some recent citations on this, check the first half hour of https://air.mozilla.org/bay-area-rust-meetup-february-2016/ https://air.mozilla.org/bay-area-rust-meetup-february-2016/ > There is essentially no webpage out there that it cannot > get through at multiple hundreds of frames-per-second
- Manishearth 11y agoYeah, embedding is an explicit goal for us. If a Servo browser UI ever happens (one prospect is https://github.com/mozilla/browser.html/ https://github.com/mozilla/browser.html/), it would probably be developed separately, with a minimal API surface between the two. (At least, I hope so)
- fabrice_d 11y agoYes Servo is the future. But it's far from being ready as a web runtime that you can use for your day to day browsing. The web is a large, and moving, target... So in the meantime it would still be interesting to get a nice embedding for Gecko. I like the Electron approach a lot, and this looks like a moderate size effort to bring something like that to Gecko.
- bobajeff 11y agoWhat would be the advantages of using Gecko over Webkit or Chromium/Blink today? Would it run faster? Would it be more compatible? Is it more familiar to Devs? Is the code base easier to understand? At least with Servo the answer to some of those questions would be a definite yes.
- cpeterso 11y agoIt's possible that Servo replaces Gecko incrementally, from the inside out. Mozilla recently landed support for writing Gecko code in Rust and is importing bits of Servo's CSS system: https://bugzil.la/oxidation https://bugzil.la/oxidation https://bugzil.la/stylo https://bugzil.la/stylo
- kodablah 11y agoI don't think CEF API compat is good enough. Look at other Chromium based applications in Electron or nw.js. They use up multiple processes and are bulky. What is needed is a low level embedding API that does not have IPC and process forking baked in. Sadly we are on the path to losing a lot of that...even the Servo devs said that while they expect it to work at that low of a level, multi process is all they are concerned about supporting[1]. 1 - https://news.ycombinator.com/item?id=9541721 https://news.ycombinator.com/item?id=9541721
- Manishearth 11y agoI think, like Patrick said there, there's not much reason for Servo to stop working single process (in fact, we still are single process by default?) aside from cruft buildup and lack of interest. If there's a need for maintaining a single process mode that's not too much effort.
- kodablah 11y agoI would love to be able to embed Servo with this approach. With the serious lack of cross-platform AND cross-language UI toolkits available these days, everyone is turning to embedded browsers (I am looking at 7 Slack processes averaging 40MB each, though the Slack devs may deserve blame). I think bit rot is what has made --single-process for Chromium no longer viable. Heck, I'd say even making it easily embeddable before feature complete would still get adopters due to app devs knowing what they need to support unlike the open web. Granted I cannot really put my money/skills where my mouth is here so it's just wishful thinking on my part. I am not familiar w/ where Servo stands on the embedding front today, I have not looked in a while.
- Manishearth 11y agoUsing Servo to build apps is an explicit goal, and part of the browser.html project (https://github.com/browserhtml/browserhtml https://github.com/browserhtml/browserhtml) includes developing a privileged set of APIs and other things ("Graphene") that work in Servo and let you build applications. This is more towards creating standalone applications (no need for actual embedding) that use Servo, though. As far as the embedding story is concerned we do support the CEF API (if you need something more there, please file an issue and we'll look into it), and we do want to eventually make it into a webview-esque thing which you can embed in Android and elsewhere.