Mozilla Servo: the road to Acid2
groups.google.com
groups.google.com
I applaud the Servo team for reaching such a concrete milestone on the long path to implementing a modern layout engine (in an experimental and highly unstable programming language, no less). I do want to point out an amusing anecdote, though. As the Acid1 test states:
"All 100%-conformant CSS1 agents should be able to render the document elements above this paragraph indistinguishably (to the pixel) from this reference rendering, (except font rasterization and form widgets)."
The point of the parenthetical disclaimer at the end was probably to account for differences in appearance in native platform elements, but the language is weaselly enough that Servo still manages to qualify as compliant despite the fact that it doesn't have form elements at all yet. :)
http://www.reddit.com/r/rust/comments/1kz0ue/servo_passes_ac...
Note that we tried to support everything else even if the language allowed for us to skip it. For example, line-height is used in a few places, but we waited until we had line-height support before we considered ourselves passing.
Currently you cant use gecko like you can use webkit, servo is meant to change that.
And if it's the latter, what would actually need to be done to build the rest of a browser around it?
I guess that most of the DOM API (end user level) has yet to be done along with the javascript API (binding) controlling it (e.g. XHR, Websocket, DOM manipulation, domain security control, etc...).
Next : the browser itself (chrome, modules, tabs, external interfaces, UI, ...).
So, no, not 90%. But I would attribute 50% for starting the project itself and having created something as awesome as Rust.
We do have JavaScript and DOM bindings but they're incomplete. (None of the items you mentioned are implemented, except for basic DOM manipulation.)
> Next : the browser itself (chrome, modules, tabs,
> external interfaces, UI, ...).
I'd like to note that Servo itself is intended to be a layout engine independent of any specific front-end. The forthcoming UI reference implementation, a.k.a. Crow (seeing a theme yet?), can be tracked here: https://github.com/mozilla/servo/issues/111Acid2-passing layout engine doesn't need to be that big. http://weasyprint.org/ is known to pass Acid2 and renders the web pretty well. It does all layout by itself in less than 15,000 lines of Python.