diff options
Diffstat (limited to 'components/script/dom/validitystate.rs')
-rw-r--r-- | components/script/dom/validitystate.rs | 92 |
1 files changed, 86 insertions, 6 deletions
diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs index ae48a1624b0..bd2cbb21aa7 100644 --- a/components/script/dom/validitystate.rs +++ b/components/script/dom/validitystate.rs @@ -3,29 +3,109 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::Bindings::ValidityStateBinding; +use dom::bindings::codegen::Bindings::ValidityStateBinding::ValidityStateMethods; use dom::bindings::global::GlobalRef; -use dom::bindings::js::Root; +use dom::bindings::js::{JS, Root}; use dom::bindings::reflector::{Reflector, reflect_dom_object}; +use dom::element::Element; use dom::window::Window; +// https://html.spec.whatwg.org/multipage/#validity-states +#[derive_JSTraceable] +#[derive_HeapSizeOf] +pub enum ValidityStatus { + ValueMissing, + TypeMismatch, + PatternMismatch, + TooLong, + TooShort, + RangeUnderflow, + RangeOverflow, + StepMismatch, + BadInput, + CustomError, + Valid +} + // https://html.spec.whatwg.org/multipage/#validitystate #[dom_struct] pub struct ValidityState { reflector_: Reflector, - state: u8, + element: JS<Element>, + state: ValidityStatus } + impl ValidityState { - fn new_inherited() -> ValidityState { + fn new_inherited(element: &Element) -> ValidityState { ValidityState { reflector_: Reflector::new(), - state: 0, + element: JS::from_ref(element), + state: ValidityStatus::Valid } } - pub fn new(window: &Window) -> Root<ValidityState> { - reflect_dom_object(box ValidityState::new_inherited(), + pub fn new(window: &Window, element: &Element) -> Root<ValidityState> { + reflect_dom_object(box ValidityState::new_inherited(element), GlobalRef::Window(window), ValidityStateBinding::Wrap) } } + +impl ValidityStateMethods for ValidityState { + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-valuemissing + fn ValueMissing(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-typemismatch + fn TypeMismatch(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-patternmismatch + fn PatternMismatch(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-toolong + fn TooLong(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-tooshort + fn TooShort(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-rangeunderflow + fn RangeUnderflow(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-rangeoverflow + fn RangeOverflow(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-stepmismatch + fn StepMismatch(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-badinput + fn BadInput(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-customerror + fn CustomError(&self) -> bool { + false + } + + // https://html.spec.whatwg.org/multipage/#dom-validitystate-valid + fn Valid(&self) -> bool { + false + } +} |