diff options
Diffstat (limited to 'components/script/dom/htmlinputelement.rs')
-rw-r--r-- | components/script/dom/htmlinputelement.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 71edf5c7abb..6c3b008bfc8 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -302,6 +302,14 @@ impl HTMLInputElementMethods for HTMLInputElement { self.form_owner() } + // https://html.spec.whatwg.org/multipage/#dom-input-files + fn GetFiles(&self) -> Option<Root<FileList>> { + match self.filelist.get() { + Some(ref fl) => Some(fl.clone()), + None => None, + } + } + // https://html.spec.whatwg.org/multipage/#dom-input-defaultchecked make_bool_getter!(DefaultChecked, "checked"); @@ -796,6 +804,12 @@ impl VirtualMethods for HTMLInputElement { el.set_read_write_state(false); } + if new_type == InputType::InputFile { + let window = window_from_node(self); + let filelist = FileList::new(window.r(), vec![]); + self.filelist.set(Some(&filelist)); + } + let new_value_mode = self.value_mode(); match (&old_value_mode, old_idl_value.is_empty(), new_value_mode) { |