aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2013-10-21 20:04:10 +0200
committerMs2ger <ms2ger@gmail.com>2013-10-23 09:05:06 +0200
commit66a76961cc372cdd40d51288cc6a425c4cf0fb44 (patch)
tree37ee0ed421eac9a99f70d7ce84991e9b1bdb9d31 /src
parentf3f6e62f7fda50d77742f9527f8dc7171d7b8624 (diff)
downloadservo-66a76961cc372cdd40d51288cc6a425c4cf0fb44.tar.gz
servo-66a76961cc372cdd40d51288cc6a425c4cf0fb44.zip
Wrap ValidityState eagerly.
Diffstat (limited to 'src')
-rw-r--r--src/components/script/dom/htmlbuttonelement.rs3
-rw-r--r--src/components/script/dom/htmlfieldsetelement.rs3
-rw-r--r--src/components/script/dom/htmlobjectelement.rs3
-rw-r--r--src/components/script/dom/htmloutputelement.rs3
-rw-r--r--src/components/script/dom/htmlselectelement.rs5
-rw-r--r--src/components/script/dom/validitystate.rs22
6 files changed, 26 insertions, 13 deletions
diff --git a/src/components/script/dom/htmlbuttonelement.rs b/src/components/script/dom/htmlbuttonelement.rs
index 9bab84c2ae0..7710d5a364c 100644
--- a/src/components/script/dom/htmlbuttonelement.rs
+++ b/src/components/script/dom/htmlbuttonelement.rs
@@ -104,7 +104,8 @@ impl HTMLButtonElement {
}
pub fn Validity(&self) -> @mut ValidityState {
- @mut ValidityState::valid()
+ let global = self.htmlelement.element.node.owner_doc().document().window;
+ ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {
diff --git a/src/components/script/dom/htmlfieldsetelement.rs b/src/components/script/dom/htmlfieldsetelement.rs
index e109ccb9d32..643ada80058 100644
--- a/src/components/script/dom/htmlfieldsetelement.rs
+++ b/src/components/script/dom/htmlfieldsetelement.rs
@@ -47,7 +47,8 @@ impl HTMLFieldSetElement {
}
pub fn Validity(&self) -> @mut ValidityState {
- @mut ValidityState::valid()
+ let global = self.htmlelement.element.node.owner_doc().document().window;
+ ValidityState::new(global)
}
pub fn ValidationMessage(&self) -> DOMString {
diff --git a/src/components/script/dom/htmlobjectelement.rs b/src/components/script/dom/htmlobjectelement.rs
index d1c5cb7a6f7..7591b1c5180 100644
--- a/src/components/script/dom/htmlobjectelement.rs
+++ b/src/components/script/dom/htmlobjectelement.rs
@@ -79,7 +79,8 @@ impl HTMLObjectElement {
}
pub fn Validity(&self) -> @mut ValidityState {
- @mut ValidityState::valid()
+ let global = self.htmlelement.element.node.owner_doc().document().window;
+ ValidityState::new(global)
}
pub fn ValidationMessage(&self) -> DOMString {
diff --git a/src/components/script/dom/htmloutputelement.rs b/src/components/script/dom/htmloutputelement.rs
index ce957b8e2d4..b3f0f80a0fe 100644
--- a/src/components/script/dom/htmloutputelement.rs
+++ b/src/components/script/dom/htmloutputelement.rs
@@ -52,7 +52,8 @@ impl HTMLOutputElement {
}
pub fn Validity(&self) -> @mut ValidityState {
- @mut ValidityState::valid()
+ let global = self.htmlelement.element.node.owner_doc().document().window;
+ ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {
diff --git a/src/components/script/dom/htmlselectelement.rs b/src/components/script/dom/htmlselectelement.rs
index bab7b93796d..14b5de595d1 100644
--- a/src/components/script/dom/htmlselectelement.rs
+++ b/src/components/script/dom/htmlselectelement.rs
@@ -113,7 +113,7 @@ impl HTMLSelectElement {
pub fn SetValue(&mut self, _value: &DOMString) {
}
- pub fn WillValidate(&self) -> bool {
+ pub fn WillValidate(&self) -> bool {
false
}
@@ -121,7 +121,8 @@ impl HTMLSelectElement {
}
pub fn Validity(&self) -> @mut ValidityState {
- @mut ValidityState::valid()
+ let global = self.htmlelement.element.node.owner_doc().document().window;
+ ValidityState::new(global)
}
pub fn SetValidity(&mut self, _validity: @mut ValidityState) {
diff --git a/src/components/script/dom/validitystate.rs b/src/components/script/dom/validitystate.rs
index 20c0cf211b0..bb89f11e1d7 100644
--- a/src/components/script/dom/validitystate.rs
+++ b/src/components/script/dom/validitystate.rs
@@ -2,22 +2,30 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
-use dom::bindings::utils::{Reflectable, Reflector};
+use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::bindings::codegen::ValidityStateBinding;
+use dom::window::Window;
use js::jsapi::{JSContext, JSObject};
pub struct ValidityState {
reflector_: Reflector,
- state: u8
+ window: @mut Window,
+ state: u8,
}
impl ValidityState {
- pub fn valid() -> ValidityState {
+ pub fn new_inherited(window: @mut Window) -> ValidityState {
ValidityState {
reflector_: Reflector::new(),
- state: 0
+ window: window,
+ state: 0,
}
}
+
+ pub fn new(window: @mut Window) -> @mut ValidityState {
+ reflect_dom_object(@mut ValidityState::new_inherited(window), window,
+ ValidityStateBinding::Wrap)
+ }
}
impl ValidityState {
@@ -67,11 +75,11 @@ impl Reflectable for ValidityState {
&mut self.reflector_
}
- fn wrap_object_shared(@mut self, cx: *JSContext, scope: *JSObject) -> *JSObject {
- ValidityStateBinding::Wrap(cx, scope, self)
+ fn wrap_object_shared(@mut self, _cx: *JSContext, _scope: *JSObject) -> *JSObject {
+ unreachable!();
}
fn GetParentObject(&self, _cx: *JSContext) -> Option<@mut Reflectable> {
- None
+ Some(self.window as @mut Reflectable)
}
}