
Mozilla Servo: the road to Acid2 - bpierre
https://groups.google.com/forum/#!topic/mozilla.dev.servo/WzBBITnZWMc
======
kibwen
_" Now that we've essentially passed Acid1 (once one remaining pull request is
merged), Acid2 is on the horizon!"_

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...](http://www.reddit.com/r/rust/comments/1kz0ue/servo_passes_acid1/cbu544i)

~~~
metajack
To be fair, I don't think the point of Acid1 was to show off form elements.
Floats, percentage widths, and how the flows are constructed were the
difficult bits.

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.

------
TorKlingberg
For anyone else that didn't know: Servo is a prototype web browser engine
written in the Rust language.

~~~
ars
What's it for? Just for fun? Or do they have a particular use case in mind?

~~~
kibwen
See
[https://github.com/mozilla/servo/wiki/Design](https://github.com/mozilla/servo/wiki/Design)
for some notes on rationale.

------
AndrewDucker
So, is this because they're microtargetting Acid compliance? Or do they
actually have 90% of a browser layout engine?

And if it's the latter, what would actually need to be done to build the rest
of a browser around it?

~~~
paraboul
IIRC Acid1 only targets basic CSS compliance
([http://en.wikipedia.org/wiki/Acid1](http://en.wikipedia.org/wiki/Acid1)).

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.

~~~
kibwen

      > 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/111](https://github.com/mozilla/servo/issues/111)

~~~
Ygg2
Both are references to thing that can be associated with rust - Servo,
Crow(bar), as well as references to MST3k?

