Like this!

Things we did:
- Fetch
- Set up the skeletons for Fetch. It was a tricky process. Fetch is defined in
WindowOrWorkerGlobalScope.webidlwhich is a newer addition to the spec and was not present in Servo. I had to add it to Servo, andWindowOrWorkerGlobalScopeis not a interface object, so no bindings were created. The compiler told me thatdom/window.rsanddom/workerglobalscope.rshad to implementFetch(). So what we decided to do is have ascript/fetch.rswhere the Fetch method will live, and havedom/window.rsanddom/workerglobalscope.rsdelegate 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.rsaroundnet/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.