Skip to content
Lars Bergstrom edited this page Oct 16, 2013 · 23 revisions

These projects are high-impact, and could take longer than 24-45 hours of work. They are often comprised of many smaller parts, so simply completing a subset of prioritized work would also be totally acceptable. This is a live document, so check back often.

  • The 2D canvas API (Canvas spec, 2D spec) - this should largely be a matter of delegating to the Azure APIs that support these operations already.

  • The WebGL canvas API (Canvas spec, WebGL spec)

  • Implement XMLHttpRequest (reference, spec) - can focus on basic, same-origin synchronous XHR, expand to cross-origin if time permits

  • Implement CSS transforms (spec)

  • Table layout (spec) - hard to do perfectly; getting a first approximation would be super. See Firefox's code for reference, too.

  • Implement Element.innerHTML and Element.outerHTML getters (spec, reference)

  • Implement Window.sessionStorage (and shim Window.localStorage too) (spec)

  • Dynamic style additions/removals (issue #976)

  • Cookie support for network requests, and Document.cookie (spec)

  • Investigate the Webkit embedding API - we want Servo to be embeddable with as few changes as possible. Research the API, report on what we need to change/make available, perform prototyping.

  • Multi-platform windowing system support. Currently Servo runs on Linux, OSX, and Android. We use both the new GLFW and old GLUT to access the windowing systems on these platforms, as GLFW does not yet fully support Android. This project would involve adding support to the GLFW project to target Android devices and integrate that support into the glfw-rs Rust bindings and ultimately Servo.

  • Performance analysis against Firefox/Gecko. In Servo, we want to be able to compare the time it takes us to lay out and render a page with the Firefox engine, Gecko. To do that properly, we need to report the same events and timings in the same way. This project entails learning how to profile the display of web pages in Gecko, instrumenting Servo with similar reporting, and helping to generally build up the Servo performance infrastructure and benchmarking suite.

Clone this wiki locally