Invalid type attribute for HTMLInputElement now fallback as text type (fixes #8773)

This commit is contained in:
Ying-Ruei Liang (KK) 2016-01-01 21:24:19 +08:00
parent 5ad9207a99
commit 74905f0f3c
4 changed files with 5058 additions and 6 deletions

View file

@ -358,16 +358,21 @@ impl LayoutElementHelpers for LayoutJS<Element> {
let size = if let Some(this) = self.downcast::<HTMLInputElement>() {
// FIXME(pcwalton): More use of atoms, please!
// FIXME(Ms2ger): this is nonsense! Invalid values also end up as
// a text field
match (*self.unsafe_get()).get_attr_val_for_layout(&ns!(), &atom!("type")) {
Some("text") | Some("password") => {
// Not text entry widget
Some("hidden") | Some("date") | Some("month") | Some("week") |
Some("time") | Some("datetime-local") | Some("number") | Some("range") |
Some("color") | Some("checkbox") | Some("radio") | Some("file") |
Some("submit") | Some("image") | Some("reset") | Some("button") => {
None
},
// Others
_ => {
match this.get_size_for_layout() {
0 => None,
s => Some(s as i32),
}
}
_ => None,
},
}
} else {
None