diff --git a/html/dom/resources/interfaces.idl b/html/dom/resources/interfaces.idl index 26c8cff17a9b26..ff8e46cac9c7f4 100644 --- a/html/dom/resources/interfaces.idl +++ b/html/dom/resources/interfaces.idl @@ -1621,19 +1621,22 @@ interface DocumentAndElementEventHandlers { [NoInterfaceObject] interface WindowEventHandlers { - attribute EventHandler onafterprint; - attribute EventHandler onbeforeprint; - attribute OnBeforeUnloadEventHandler onbeforeunload; - attribute EventHandler onhashchange; - attribute EventHandler onlanguagechange; - attribute EventHandler onmessage; - attribute EventHandler onoffline; - attribute EventHandler ononline; - attribute EventHandler onpagehide; - attribute EventHandler onpageshow; - attribute EventHandler onpopstate; - attribute EventHandler onstorage; - attribute EventHandler onunload; + attribute EventHandler onafterprint; + attribute EventHandler onbeforeprint; + attribute OnBeforeUnloadEventHandler onbeforeunload; + attribute EventHandler onhashchange; + attribute EventHandler onlanguagechange; + attribute EventHandler onmessage; + attribute EventHandler onmessageerror; + attribute EventHandler onoffline; + attribute EventHandler ononline; + attribute EventHandler onpagehide; + attribute EventHandler onpageshow; + attribute EventHandler onpopstate; + attribute EventHandler onrejectionhandled; + attribute EventHandler onstorage; + attribute EventHandler onunhandledrejection; + attribute EventHandler onunload; }; typedef (DOMString or Function) TimerHandler; @@ -1871,23 +1874,24 @@ interface MessageChannel { readonly attribute MessagePort port2; }; -[Exposed=(Window,Worker)] +[Exposed=(Window,Worker), Transferable] interface MessagePort : EventTarget { - void postMessage(any message, optional sequence transfer); + void postMessage(any message, optional sequence transfer = []); void start(); void close(); // event handlers - attribute EventHandler onmessage; + attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; -// MessagePort implements Transferable; -[Constructor(DOMString channel), Exposed=(Window,Worker)] +[Constructor(DOMString name), Exposed=(Window,Worker)] interface BroadcastChannel : EventTarget { readonly attribute DOMString name; void postMessage(any message); void close(); - attribute EventHandler onmessage; + attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; [Exposed=Worker] @@ -1906,9 +1910,13 @@ interface WorkerGlobalScope : EventTarget { }; [Global=(Worker,DedicatedWorker),Exposed=DedicatedWorker] -/*sealed*/ interface DedicatedWorkerGlobalScope : WorkerGlobalScope { - void postMessage(any message, optional sequence transfer); - attribute EventHandler onmessage; +interface DedicatedWorkerGlobalScope : WorkerGlobalScope { + void postMessage(any message, optional sequence transfer = []); + + void close(); + + attribute EventHandler onmessage; + attribute EventHandler onmessageerror; }; [Global=(Worker,SharedWorker),Exposed=SharedWorker] diff --git a/webmessaging/messageerror.html b/webmessaging/messageerror.html new file mode 100644 index 00000000000000..a320e5509b817a --- /dev/null +++ b/webmessaging/messageerror.html @@ -0,0 +1,54 @@ + +onmessageerror content attribute + + + + + + + +