Like this!
Things we did:
- Fetch
- Set up the skeletons for Fetch. It was a tricky process. Fetch is defined in
WindowOrWorkerGlobalScope.webidl
which is a newer addition to the spec and was not present in Servo. I had to add it to Servo, andWindowOrWorkerGlobalScope
is not a interface object, so no bindings were created. The compiler told me thatdom/window.rs
anddom/workerglobalscope.rs
had to implementFetch()
. So what we decided to do is have ascript/fetch.rs
where the Fetch method will live, and havedom/window.rs
anddom/workerglobalscope.rs
delegate the Fetch method toscript/fetch.rs
.
- Set up the skeletons for Fetch. It was a tricky process. Fetch is defined in
- Response
- Ended up having to replace instances of
RawStatus
(which takes a utf-8 encoded Cow-str) in Servo’s codebase with(u16, Vec<u8>)
, which is not UTF-8-dependent. I spent the whole day re-building and finding new places in the codebase which were affected by this change, fixing, and re-building again! Finally the relevant test is passing though :)
- Ended up having to replace instances of
Things we learned:
- Don’t spend too much time trying to predict the repercussions of a change in your Rust code. (I do this a lot - Malisa) Often-times the Rust compiler will tell you what those repercussions are, and save you a lot of time, even though you might get surprised by some unexpected errors while building your project!
TODO:
- Fetch
- It seems like a huge chunk of Fetch is already implemented in
net/fetch/method.rs
. Figure out how to wrapscript/fetch.rs
aroundnet/fetch
.
- It seems like a huge chunk of Fetch is already implemented in
- Response
- update tests, clean up code, and submit the PR already!
- Miscellaneous
- Publish a blog post about move, clone, and copy! (Jeena)
- Before Josh goes on a vacation, ask him what we should work on next week.