diff options
Diffstat (limited to 'components/script')
-rw-r--r-- | components/script/dom/document.rs | 3 | ||||
-rw-r--r-- | components/script/dom/htmlelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlinputelement.rs | 3 | ||||
-rw-r--r-- | components/script/dom/macros.rs | 16 | ||||
-rw-r--r-- | components/script/dom/webidls/EventHandler.webidl | 2 | ||||
-rw-r--r-- | components/script/dom/window.rs | 3 |
6 files changed, 22 insertions, 7 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index f282aa3b483..fad44638f64 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -966,7 +966,6 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { self.ready_state.get() } - event_handler!(click, GetOnclick, SetOnclick) - event_handler!(load, GetOnload, SetOnload) + global_event_handlers!() event_handler!(readystatechange, GetOnreadystatechange, SetOnreadystatechange) } diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index 7467ea56fdf..010946fabc4 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -75,7 +75,7 @@ impl<'a> HTMLElementMethods for JSRef<'a, HTMLElement> { make_bool_getter!(Hidden) make_bool_setter!(SetHidden, "hidden") - event_handler!(click, GetOnclick, SetOnclick) + global_event_handlers!(NoOnload) fn GetOnload(self) -> Option<EventHandlerNonNull> { if self.is_body_or_frameset() { diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index be3b52b4ae6..bfe686330fe 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -633,8 +633,7 @@ impl<'a> Activatable for JSRef<'a, HTMLInputElement> { Some(o) => { // Avoiding iterating through the whole tree here, instead // we can check if the conditions for radio group siblings apply - if name != None && // unless self no longer has a button group - name == o.get_radio_group_name() && // TODO should be compatibility caseless + if name == o.get_radio_group_name() && // TODO should be compatibility caseless self.form_owner() == o.form_owner() && // TODO Both a and b are in the same home subtree o.input_type.get() == InputRadio { diff --git a/components/script/dom/macros.rs b/components/script/dom/macros.rs index 630a112c032..b98d67a090f 100644 --- a/components/script/dom/macros.rs +++ b/components/script/dom/macros.rs @@ -211,3 +211,19 @@ macro_rules! error_event_handler( define_event_handler!(OnErrorEventHandlerNonNull, $event_type, $getter, $setter) ) ) + +// https://html.spec.whatwg.org/multipage/webappapis.html#globaleventhandlers +// see webidls/EventHandler.webidl +// As more methods get added, just update them here. +macro_rules! global_event_handlers( + () => ( + event_handler!(load, GetOnload, SetOnload) + global_event_handlers!(NoOnload) + + ); + (NoOnload) => ( + event_handler!(click, GetOnclick, SetOnclick) + event_handler!(input, GetOninput, SetOninput) + event_handler!(change, GetOnchange, SetOnchange) + ) +)
\ No newline at end of file diff --git a/components/script/dom/webidls/EventHandler.webidl b/components/script/dom/webidls/EventHandler.webidl index 1278d7467fd..de491455302 100644 --- a/components/script/dom/webidls/EventHandler.webidl +++ b/components/script/dom/webidls/EventHandler.webidl @@ -23,6 +23,8 @@ typedef OnErrorEventHandlerNonNull? OnErrorEventHandler; interface GlobalEventHandlers { attribute EventHandler onclick; attribute EventHandler onload; + attribute EventHandler oninput; + attribute EventHandler onchange; }; [NoInterfaceObject] diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 0e6e00ed200..da0cc228b0a 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -270,8 +270,7 @@ impl<'a> WindowMethods for JSRef<'a, Window> { self.performance.or_init(|| Performance::new(self)) } - event_handler!(click, GetOnclick, SetOnclick) - event_handler!(load, GetOnload, SetOnload) + global_event_handlers!() event_handler!(unload, GetOnunload, SetOnunload) error_event_handler!(error, GetOnerror, SetOnerror) |