Skip to content

Summer of Code 2016: File support

Josh Matthews edited this page Feb 18, 2016 · 3 revisions

Contact: Manish Goregaokar (Manishearth, manishearth@gmail.com), Josh Matthews (jdm, josh@joshmatthews.net).

This project will be focused on implementing the bulk of the File and Blob APIs in Servo, which are used for manipulating files and interacting with uploads. We currently support basic functionality on in-memory Blobs only.

Project breakdown

This project may include:

  • Filling in missing portions of the File, Blob, and FileList APIs
  • Making it possible for Blob to refer to data on disk
  • The ability to create and manipulate Blob URLs
  • Working file upload dialogs for at least one operating system (perhaps by binding into nativefiledialog or some existing UI toolkit library), and integration with form submission (<input type="file">)

Spec: https://w3c.github.io/FileAPI/

Reference:

Current implementation:

Suggestions for preparation

(Feel free to ask questions in #servo on irc.mozilla.org, or our mailing list!)

  • Read the existing File and Blob code; try to understand it and its relation to the spec; as well as how WebIDL works
  • Read the code related to form submission and file handling (htmlformelement.rs, formdata.rs)
  • Play around with https://github.com/mlabbe/nativefiledialog (perhaps try to call it from Rust!)
  • Gain experience using Rust by solving an easy DOM issue. Please leave a comment saying that you're working on it.
Clone this wiki locally