diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs index 88202081bf35..6c1f3ddd436f 100644 --- a/components/script/dom/blob.rs +++ b/components/script/dom/blob.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::BlobBinding; use dom::bindings::codegen::Bindings::BlobBinding::BlobMethods; use dom::bindings::error::Fallible; -use dom::bindings::global::{GlobalField, GlobalRef}; +use dom::bindings::global::{GlobalRef, global_root_from_reflector}; use dom::bindings::js::Root; use dom::bindings::reflector::{Reflector, reflect_dom_object}; use dom::bindings::trace::JSTraceable; @@ -76,7 +76,6 @@ pub struct Blob { #[ignore_heap_size_of = "No clear owner"] data: DataSlice, typeString: String, - global: GlobalField, isClosed_: Cell, } @@ -87,8 +86,7 @@ fn is_ascii_printable(string: &str) -> bool { } impl Blob { - pub fn new_inherited(global: GlobalRef, - bytes: Arc>, + pub fn new_inherited(bytes: Arc>, bytes_start: Option, bytes_end: Option, typeString: &str) -> Blob { @@ -96,13 +94,12 @@ impl Blob { reflector_: Reflector::new(), data: DataSlice::new(bytes, bytes_start, bytes_end), typeString: typeString.to_owned(), - global: GlobalField::from_rooted(&global), isClosed_: Cell::new(false), } } pub fn new(global: GlobalRef, bytes: Vec, typeString: &str) -> Root { - let boxed_blob = box Blob::new_inherited(global, Arc::new(bytes), None, None, typeString); + let boxed_blob = box Blob::new_inherited(Arc::new(bytes), None, None, typeString); reflect_dom_object(boxed_blob, global, BlobBinding::Wrap) } @@ -112,7 +109,7 @@ impl Blob { bytes_end: Option, typeString: &str) -> Root { - let boxed_blob = box Blob::new_inherited(global, bytes, bytes_start, bytes_end, typeString); + let boxed_blob = box Blob::new_inherited(bytes, bytes_start, bytes_end, typeString); reflect_dom_object(boxed_blob, global, BlobBinding::Wrap) } @@ -171,7 +168,7 @@ impl BlobMethods for Blob { } } }; - let global = self.global.root(); + let global = global_root_from_reflector(self); let bytes = self.data.bytes.clone(); Blob::new_sliced(global.r(), bytes, start, end, &relativeContentType) } diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs index bdf06afb54ab..8628c0ee6f67 100644 --- a/components/script/dom/file.rs +++ b/components/script/dom/file.rs @@ -18,11 +18,10 @@ pub struct File { } impl File { - fn new_inherited(global: GlobalRef, - _file_bits: &Blob, name: DOMString) -> File { + fn new_inherited(_file_bits: &Blob, name: DOMString) -> File { File { //TODO: get type from the underlying filesystem instead of "".to_string() - blob: Blob::new_inherited(global, Arc::new(Vec::new()), None, None, ""), + blob: Blob::new_inherited(Arc::new(Vec::new()), None, None, ""), name: name, } // XXXManishearth Once Blob is able to store data @@ -30,7 +29,7 @@ impl File { } pub fn new(global: GlobalRef, file_bits: &Blob, name: DOMString) -> Root { - reflect_dom_object(box File::new_inherited(global, file_bits, name), + reflect_dom_object(box File::new_inherited(file_bits, name), global, FileBinding::Wrap) }