diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2017-02-16 02:03:54 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-16 02:03:54 -0800 |
commit | 0cc6d3e99781394b76ad2725661ae8f6bb895f7b (patch) | |
tree | bcc391aba306ce52e66ad1227238c866ad33dba3 /components/script/dom/request.rs | |
parent | 84a44a401424852bc44ef5e751e84544ed892e70 (diff) | |
parent | f7e2f0e641967ba78a0b6b057aec760f9a9ca519 (diff) | |
download | servo-0cc6d3e99781394b76ad2725661ae8f6bb895f7b.tar.gz servo-0cc6d3e99781394b76ad2725661ae8f6bb895f7b.zip |
Auto merge of #15544 - servo:RootedTraceable-dict, r=nox
Root dictionaries that contain any or object.
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15544)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom/request.rs')
-rw-r--r-- | components/script/dom/request.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/components/script/dom/request.rs b/components/script/dom/request.rs index 2b26d5e1e8c..a81d9f767b6 100644 --- a/components/script/dom/request.rs +++ b/components/script/dom/request.rs @@ -20,6 +20,7 @@ use dom::bindings::error::{Error, Fallible}; use dom::bindings::js::{MutNullableJS, Root}; use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object}; use dom::bindings::str::{ByteString, DOMString, USVString}; +use dom::bindings::trace::RootedTraceableBox; use dom::globalscope::GlobalScope; use dom::headers::{Guard, Headers}; use dom::promise::Promise; @@ -80,7 +81,7 @@ impl Request { // https://fetch.spec.whatwg.org/#dom-request pub fn Constructor(global: &GlobalScope, input: RequestInfo, - init: &RequestInit) + init: RootedTraceableBox<RequestInit>) -> Fallible<Root<Request>> { // Step 1 let temporary_request: NetTraitsRequest; @@ -139,12 +140,12 @@ impl Request { // TODO: `environment settings object` is not implemented in Servo yet. // Step 10 - if !init.window.is_undefined() && !init.window.is_null() { + if !init.window.handle().is_null_or_undefined() { return Err(Error::Type("Window is present and is not null".to_string())) } // Step 11 - if !init.window.is_undefined() { + if !init.window.handle().is_undefined() { window = Window::NoWindow; } @@ -179,7 +180,7 @@ impl Request { init.redirect.is_some() || init.referrer.is_some() || init.referrerPolicy.is_some() || - !init.window.is_undefined() { + !init.window.handle().is_undefined() { // Step 13.1 if request.mode == NetTraitsRequestMode::Navigate { return Err(Error::Type( @@ -311,7 +312,7 @@ impl Request { if let Some(possible_header) = init.headers.as_ref() { match possible_header { &HeadersInit::Headers(ref init_headers) => { - headers_copy = init_headers.clone(); + headers_copy = Root::from_ref(&*init_headers); } &HeadersInit::ByteStringSequenceSequence(ref init_sequence) => { try!(headers_copy.fill(Some( |