These Months In Servo 112

In the last few months (whoops!), we merged 498 PRs in the Servo organization’s repositories. It should be easier to return to a regular publishing schedule now that we’re caught up!

Planning and Status

Our roadmap is available online, including the overall plans for 2018. It has been updated to account for Servo’s new role in Mozilla’s mixed reality team.

This week’s status updates are here.

Exciting Work in Progress

asajeffrey is trying to get all supported platforms building Servo with an upgraded JavaScript engine.

paulrouget is completely redesigning how the Android port works; we’ll have a usable browser application on Android once it merges.

Manishearth and ferjm are implementing the DOM APIs required for WebAudio content to work.

gterzian is making Window.open work.

KiChjang is adding support for the MessagePort and MessageChannel DOM APIs.

Notable Additions

bobthekingofegypt improved the layout of absolutely positioned replaced block elements.

DonatJr implemented the FileReaderSync API for web workers.

API for web workers. gterzian added support for the beforeunload event when navigating a web page.

event when navigating a web page. talklittle removed the need to have the adb binary in the path when making android builds.

binary in the path when making android builds. jdm added support for x86 android builds.

jonleighton improved the font fallback behaviour.

KiChjang implemented the missing indexed window getter API.

simartin corrected a number of WebGL APIs.

fabricedesre implemented several API for MutationObserver .

. gterzian moved all UI-related code for prompts and alerts to the embedding layer.

kvark added support to webrender for debug output that chases a display item through the entire rendering pipeline.

mrobinson corrected an infinite loop when calculating ellipse arc lengths.

pyfisch added support for rendering the border-image-outset CSS property.

CSS property. pyfisch corrected an edge case for clipping background colours.

mbrubeck implemented pinch zoom support on Android.

nox added support for a bunch of WebGL getParameter values.

values. arthurps made it possible to reduce the size of SmallVec values using unions.

asajeffrey performed several magic tricks to make mozjs rely on the bindgen tool.

SimonSapin updated our SIMD code to use the new std::simd module.

module. gterzian improved the implementation of window.close to better match the specification.

to better match the specification. nical moved blob rasterization into a separate thread in webrender.

nox implemented several WebGL extensions.

jrmuizel fixed a problem in WebRender with fonts over a certain size completely disappearing.

tigercosmos implemented several WebIDL properties for text input elements.

gw3583 avoided a panic when dealing with zero-size borders in WebRender.

gterzian corrected an edge case when fetching from URLs with active HTTP cache entries.

SimonSapin added automation to prepare an Android build environment and verify that the Android port runs correctly in an emulator.

mrobinson extended the border gradient implementation in WebRender to support all current CSS features.

nox moved WebGL vertex attribute information into the DOM to improve performance of getter APIs.

nox implemented instanced WebGL drawing calls.

SimonSapin added automation to verify the android-x86 build as part of every change.

nupurbaghel implemented several specification algorithms as part of supporting responsive images.

nox improved the correctness of the WebGL uniform APIs.

jdm fixed a regression that prevented clicking on HiDPI screens.

nox implemented the missing WebGL getUniform API.

API. mbrubeck fixed a memory-safety error in the smallvec crate.

New Contributors

Interested in helping build a web browser? Take a look at our curated list of issues that are good for new contributors!