aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/formdata.rs
diff options
context:
space:
mode:
authorJosh Matthews <josh@joshmatthews.net>2013-11-30 21:04:49 +0100
committerJosh Matthews <josh@joshmatthews.net>2014-02-24 15:16:42 -0500
commit625325434b5c7dc72e784a592f7e014c16cf1018 (patch)
tree9078f192cd7f41132a64124b7f70a3bb51e0936d /src/components/script/dom/formdata.rs
parent061269f9639199a7419e2467ebbe3c28cac1e8ff (diff)
downloadservo-625325434b5c7dc72e784a592f7e014c16cf1018.tar.gz
servo-625325434b5c7dc72e784a592f7e014c16cf1018.zip
Implement JSManaged for DOM objects.
Diffstat (limited to 'src/components/script/dom/formdata.rs')
-rw-r--r--src/components/script/dom/formdata.rs25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/components/script/dom/formdata.rs b/src/components/script/dom/formdata.rs
index b446c44a7d7..3beb7e996aa 100644
--- a/src/components/script/dom/formdata.rs
+++ b/src/components/script/dom/formdata.rs
@@ -4,27 +4,30 @@
use dom::bindings::utils::{Fallible, Reflectable, Reflector, reflect_dom_object};
use dom::bindings::codegen::FormDataBinding;
+use dom::bindings::js::JS;
use dom::blob::Blob;
-use dom::node::AbstractNode;
+use dom::htmlformelement::HTMLFormElement;
use dom::window::Window;
use servo_util::str::DOMString;
use std::hashmap::HashMap;
+#[deriving(Encodable)]
enum FormDatum {
StringData(DOMString),
- BlobData { blob: @mut Blob, name: DOMString }
+ BlobData { blob: JS<Blob>, name: DOMString }
}
+#[deriving(Encodable)]
pub struct FormData {
data: HashMap<DOMString, FormDatum>,
reflector_: Reflector,
- window: @mut Window,
- form: Option<AbstractNode>
+ window: JS<Window>,
+ form: Option<JS<HTMLFormElement>>
}
impl FormData {
- pub fn new_inherited(form: Option<AbstractNode>, window: @mut Window) -> FormData {
+ pub fn new_inherited(form: Option<JS<HTMLFormElement>>, window: JS<Window>) -> FormData {
FormData {
data: HashMap::new(),
reflector_: Reflector::new(),
@@ -33,18 +36,18 @@ impl FormData {
}
}
- pub fn new(form: Option<AbstractNode>, window: @mut Window) -> @mut FormData {
- reflect_dom_object(@mut FormData::new_inherited(form, window), window, FormDataBinding::Wrap)
+ pub fn new(form: Option<JS<HTMLFormElement>>, window: &JS<Window>) -> JS<FormData> {
+ reflect_dom_object(~FormData::new_inherited(form, window.clone()), window.get(), FormDataBinding::Wrap)
}
- pub fn Constructor(window: @mut Window, form: Option<AbstractNode>)
- -> Fallible<@mut FormData> {
+ pub fn Constructor(window: &JS<Window>, form: Option<JS<HTMLFormElement>>)
+ -> Fallible<JS<FormData>> {
Ok(FormData::new(form, window))
}
- pub fn Append(&mut self, name: DOMString, value: @mut Blob, filename: Option<DOMString>) {
+ pub fn Append(&mut self, name: DOMString, value: &JS<Blob>, filename: Option<DOMString>) {
let blob = BlobData {
- blob: value,
+ blob: value.clone(),
name: filename.unwrap_or(~"default")
};
self.data.insert(name.clone(), blob);