diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/script/dom/document.rs | 2 | ||||
-rw-r--r-- | src/components/script/dom/event.rs | 15 | ||||
-rw-r--r-- | src/components/script/dom/xmlhttprequest.rs | 6 | ||||
-rw-r--r-- | src/components/script/script_task.rs | 12 |
4 files changed, 22 insertions, 13 deletions
diff --git a/src/components/script/dom/document.rs b/src/components/script/dom/document.rs index f6f67f93747..06c6099aa6b 100644 --- a/src/components/script/dom/document.rs +++ b/src/components/script/dom/document.rs @@ -546,7 +546,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { "uievents" | "uievent" => Ok(EventCast::from_temporary(UIEvent::new_uninitialized(&*window))), "mouseevents" | "mouseevent" => Ok(EventCast::from_temporary(MouseEvent::new_uninitialized(&*window))), "customevent" => Ok(EventCast::from_temporary(CustomEvent::new_uninitialized(&*window))), - "htmlevents" | "events" | "event" => Ok(Event::new(&*window)), + "htmlevents" | "events" | "event" => Ok(Event::new_uninitialized(&*window)), _ => Err(NotSupported) } } diff --git a/src/components/script/dom/event.rs b/src/components/script/dom/event.rs index 8da845845a1..2ac357f7e16 100644 --- a/src/components/script/dom/event.rs +++ b/src/components/script/dom/event.rs @@ -83,18 +83,25 @@ impl Event { } } - pub fn new(window: &JSRef<Window>) -> Temporary<Event> { + pub fn new_uninitialized(window: &JSRef<Window>) -> Temporary<Event> { reflect_dom_object(box Event::new_inherited(HTMLEventTypeId), window, EventBinding::Wrap) } + pub fn new(window: &JSRef<Window>, + type_: DOMString, + can_bubble: bool, + cancelable: bool) -> Temporary<Event> { + let mut event = Event::new_uninitialized(window).root(); + event.InitEvent(type_, can_bubble, cancelable); + Temporary::from_rooted(&*event) + } + pub fn Constructor(global: &JSRef<Window>, type_: DOMString, init: &EventBinding::EventInit) -> Fallible<Temporary<Event>> { - let mut ev = Event::new(global).root(); - ev.InitEvent(type_, init.bubbles, init.cancelable); - Ok(Temporary::from_rooted(&*ev)) + Ok(Event::new(global, type_, init.bubbles, init.cancelable)) } } diff --git a/src/components/script/dom/xmlhttprequest.rs b/src/components/script/dom/xmlhttprequest.rs index 3630b912d70..9cbf478e5d9 100644 --- a/src/components/script/dom/xmlhttprequest.rs +++ b/src/components/script/dom/xmlhttprequest.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::BindingDeclarations::XMLHttpRequestBinding::XMLHttpR use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast, XMLHttpRequestDerived}; use dom::bindings::error::{ErrorResult, InvalidState, Network, Syntax, Security}; use dom::document::Document; -use dom::event::{Event, EventMethods}; +use dom::event::Event; use dom::eventtarget::{EventTarget, EventTargetHelpers, XMLHttpRequestTargetTypeId}; use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::Fallible; @@ -564,8 +564,8 @@ impl<'a> PrivateXMLHttpRequestHelpers for JSRef<'a, XMLHttpRequest> { fn change_ready_state(&mut self, rs: XMLHttpRequestState) { self.ready_state = rs; let win = &*self.global.root(); - let mut event = Event::new(win).root(); - event.InitEvent("readystatechange".to_owned(), false, true); + let mut event = + Event::new(win, "readystatechange".to_owned(), false, true).root(); let target: &JSRef<EventTarget> = EventTargetCast::from_ref(self); target.dispatch_event_with_target(None, &mut *event).ok(); } diff --git a/src/components/script/script_task.rs b/src/components/script/script_task.rs index ce268d35ff9..ac05680b122 100644 --- a/src/components/script/script_task.rs +++ b/src/components/script/script_task.rs @@ -15,7 +15,7 @@ use dom::bindings::utils::{wrap_for_same_compartment, pre_wrap}; use dom::document::{Document, HTMLDocument, DocumentMethods, DocumentHelpers}; use dom::element::{Element, AttributeHandlers}; use dom::event::{Event_, ResizeEvent, ReflowEvent, ClickEvent, MouseDownEvent, MouseMoveEvent, MouseUpEvent}; -use dom::event::{Event, EventMethods}; +use dom::event::Event; use dom::uievent::UIEvent; use dom::eventtarget::{EventTarget, EventTargetHelpers}; use dom::node; @@ -1036,8 +1036,8 @@ impl ScriptTask { // We have no concept of a document loader right now, so just dispatch the // "load" event as soon as we've finished executing all scripts parsed during // the initial load. - let mut event = Event::new(&*window).root(); - event.InitEvent("load".to_owned(), false, false); + let mut event = + Event::new(&*window, "load".to_owned(), false, false).root(); let doctarget: &JSRef<EventTarget> = EventTargetCast::from_ref(&*document); let wintarget: &JSRef<EventTarget> = EventTargetCast::from_ref(&*window); let _ = wintarget.dispatch_event_with_target(Some((*doctarget).clone()), @@ -1133,8 +1133,10 @@ impl ScriptTask { match *page.frame() { Some(ref frame) => { let window = frame.window.root(); - let mut event = Event::new(&*window).root(); - event.InitEvent("click".to_owned(), true, true); + let mut event = + Event::new(&*window, + "click".to_owned(), + true, true).root(); let eventtarget: &JSRef<EventTarget> = EventTargetCast::from_ref(&node); let _ = eventtarget.dispatch_event_with_target(None, &mut *event); } |