This bug (input field doesn't scroll automatically, but spills its text into the surrounding elements) is a good demonstration of just how many, many small details you have take care of when implementing a browser engine.
A really monumental task. The servo devs have my respect!
Maybe I'm missing something hugely obvious, but shouldn't the input field be rendered using a native control which would preemptively eliminate that bug and reduce the need for rewriting code that's been written countless times before?
> shouldn't the input field be rendered using a native control which would preemptively eliminate that bug and reduce the need for rewriting code that's been written countless times before?
Broadly speaking, native controls don't like being composited into OpenGL scenes (which are necessary for things like 3D transforms).
I used kazam to make this (and ffmpeg/convert to make it into a gif). But yeah, recordmydesktop works too.
Though it has a small bug where, when recording a single window, the mouse position isn't shown correctly in the final video. (Instead of showing where the mouse was relative to the window, it takes the absolute position of the mouse and scales it down to the window size)
And for anyone wondering how to do this on OSX, QuickTime Player v10 (né QuickTime X) File > New Screen Recording > click big red button > select display section > Start Recording
Just to repeat, because this was somewhat buried in the article: Servo is now a multiprocess browser, using the gaol crate for sandboxing. This adds (a) an extra layer of defense against remote code execution vulnerabilities beyond that which the Rust safety features provide; (b) a safety net in case Servo code is tricked into performing insecure actions.
There are still plenty of bugs to shake out, but this is a major milestone in the project.