CSC/ECE 517 Fall 2015/oss M1504 JJD: Difference between revisions
mNo edit summary |
|||
Line 1: | Line 1: | ||
==''' | =='''M1504: Implement support for missing XMLHttpRequest APIs'''== | ||
The goal of this project was to implement support for missing less-common features of the XMLHttpRequest API for [https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo]. | The goal of this project was to implement support for missing less-common features of the XMLHttpRequest API for [https://en.wikipedia.org/wiki/Servo_(layout_engine) Servo]. | ||
Line 25: | Line 25: | ||
===Accepted Pull Request=== | ===Accepted Pull Request=== | ||
Here is our | Here is our [https://github.com/servo/servo/pull/8182 pull request]. In the link you can see all code snippets changed, as well as integration test progression information. | ||
===Design Patterns and Principles=== | ===Design Patterns and Principles=== |
Revision as of 23:04, 31 October 2015
M1504: Implement support for missing XMLHttpRequest APIs
The goal of this project was to implement support for missing less-common features of the XMLHttpRequest API for Servo.
Servo
Servo <ref> https://github.com/servo/servo </ref> is a web browser layout engine written in Rust<ref>https://github.com/rust-lang/rust</ref> and is currently being developed by Mozilla Research. The aim of the project is to create a highly parallel environment that allows for many components be handled by fine-grained, isolated tasks.<ref>https://en.wikipedia.org/wiki/Servo_(layout_engine)</ref>
Rust
Rust is a multi-paradigm, compiled programming language that is a good language for creating highly safe systems. Rust and Servo have a symbiotic relationship as the development of servo has influenced the design of the language.
XMLHttpRequest
"XMLHttpRequest is a definition of an API that provides scripted client functionality for transferring data between a client and a server."<ref>https://xhr.spec.whatwg.org/</ref> XMLHttpRequest provides a way for data to be retrieved from a URL without having to retrieve the entire page. It supports protocols other than HTTP and can be used to retrieve any type of data.<ref>https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest</ref>
Implementation
Initial Steps
The following steps were followed to meet the project requirements as per this github page.
- compile Servo and ensure that it runs on tests/html/about-mozilla.html
- uncomment the overrideMimeType API in XMLHttpRequest.webidl, and add a stub method that allows Servo to compile again to xmlhttprequest.rs.
- run the tests via ./mach test-wpt tests/wpt/web-platform-tests/XMLHttpRequest/ and adjust the expectations for any that now pass (tests/wpt/metadata/XMLHttpRequest/)
- add new override_charset and override_mime_type fields to the XMLHttpRequest structure
- implement the overrideMimeType steps described in the specifications
- update any tests that now pass
Accepted Pull Request
Here is our pull request. In the link you can see all code snippets changed, as well as integration test progression information.
Design Patterns and Principles
References
<references/>