diff options
author | Zhen Zhang <izgzhen@gmail.com> | 2016-07-15 01:02:21 +0800 |
---|---|---|
committer | Zhen Zhang <izgzhen@gmail.com> | 2016-07-15 20:33:51 +0800 |
commit | fdc3a8e3ac7ea5512e6fa09be892cd67ff6e8657 (patch) | |
tree | 51410a9abbf6d58aee8df62bd84d9737952c75dd /components/script/dom/htmlinputelement.rs | |
parent | 4b78b9adab916cc4fdde6248e785030b79f406da (diff) | |
download | servo-fdc3a8e3ac7ea5512e6fa09be892cd67ff6e8657.tar.gz servo-fdc3a8e3ac7ea5512e6fa09be892cd67ff6e8657.zip |
Put Blob URL online
Diffstat (limited to 'components/script/dom/htmlinputelement.rs')
-rw-r--r-- | components/script/dom/htmlinputelement.rs | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index 45964355382..7f524cac29d 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -35,6 +35,7 @@ use ipc_channel::ipc::{self, IpcSender}; use mime_guess; use msg::constellation_msg::Key; use net_traits::IpcSend; +use net_traits::blob_url_store::get_blob_origin; use net_traits::filemanager_thread::{FileManagerThreadMsg, FilterPattern}; use script_traits::ScriptMsg as ConstellationMsg; use std::borrow::ToOwned; @@ -749,7 +750,7 @@ impl HTMLInputElement { // Select files by invoking UI or by passed in argument fn select_files(&self, opt_test_paths: Option<Vec<DOMString>>) { let window = window_from_node(self); - let origin = window.get_url().origin().unicode_serialization(); + let origin = get_blob_origin(&window.get_url()); let filemanager = window.resource_threads().sender(); let mut files: Vec<Root<File>> = vec![]; @@ -770,13 +771,6 @@ impl HTMLInputElement { for selected in selected_files { files.push(File::new_from_selected(window.r(), selected)); } - - target.fire_event("input", - EventBubbles::Bubbles, - EventCancelable::NotCancelable); - target.fire_event("change", - EventBubbles::Bubbles, - EventCancelable::NotCancelable); }, Err(err) => error = Some(err), }; @@ -799,13 +793,6 @@ impl HTMLInputElement { match recv.recv().expect("IpcSender side error") { Ok(selected) => { files.push(File::new_from_selected(window.r(), selected)); - - target.fire_event("input", - EventBubbles::Bubbles, - EventCancelable::NotCancelable); - target.fire_event("change", - EventBubbles::Bubbles, - EventCancelable::NotCancelable); }, Err(err) => error = Some(err), }; @@ -816,6 +803,13 @@ impl HTMLInputElement { } else { let filelist = FileList::new(window.r(), files); self.filelist.set(Some(&filelist)); + + target.fire_event("input", + EventBubbles::Bubbles, + EventCancelable::NotCancelable); + target.fire_event("change", + EventBubbles::Bubbles, + EventCancelable::NotCancelable); } } } |