aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/request.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2017-02-16 02:03:54 -0800
committerGitHub <noreply@github.com>2017-02-16 02:03:54 -0800
commit0cc6d3e99781394b76ad2725661ae8f6bb895f7b (patch)
treebcc391aba306ce52e66ad1227238c866ad33dba3 /components/script/dom/request.rs
parent84a44a401424852bc44ef5e751e84544ed892e70 (diff)
parentf7e2f0e641967ba78a0b6b057aec760f9a9ca519 (diff)
downloadservo-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.rs11
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(