diff options
author | Moonchild <moonchild@palemoon.org> | 2023-04-09 13:44:46 +0000 |
---|---|---|
committer | Moonchild <moonchild@palemoon.org> | 2023-04-09 13:44:46 +0000 |
commit | bfeb62ceece166cc90de95f394c0313f35ac0fd1 (patch) | |
tree | c61991a79bfcee2ee57a5168ce87a8451adc45c6 /dom/webidl | |
parent | b62bf0c4b7e70f3bfcc1915526e158712aef1211 (diff) | |
parent | ae19a0513ee353dbdee92de16fc7c1e83516a40f (diff) | |
download | uxp-bfeb62ceece166cc90de95f394c0313f35ac0fd1.tar.gz |
Merge pull request 'Implement `self.structuredClone()`' (#2206) from FranklinDM/UXP-contrib:work_js-structuredclone into master
Reviewed-on: https://repo.palemoon.org/MoonchildProductions/UXP/pulls/2206
Diffstat (limited to 'dom/webidl')
-rw-r--r-- | dom/webidl/Client.webidl | 4 | ||||
-rw-r--r-- | dom/webidl/DedicatedWorkerGlobalScope.webidl | 4 | ||||
-rw-r--r-- | dom/webidl/MessagePort.webidl | 9 | ||||
-rw-r--r-- | dom/webidl/ServiceWorker.webidl | 5 | ||||
-rw-r--r-- | dom/webidl/Window.webidl | 9 | ||||
-rw-r--r-- | dom/webidl/WindowOrWorkerGlobalScope.webidl | 4 | ||||
-rw-r--r-- | dom/webidl/Worker.webidl | 4 |
7 files changed, 31 insertions, 8 deletions
diff --git a/dom/webidl/Client.webidl b/dom/webidl/Client.webidl index 3e79c6a635..c961c2b31f 100644 --- a/dom/webidl/Client.webidl +++ b/dom/webidl/Client.webidl @@ -15,7 +15,9 @@ interface Client { readonly attribute DOMString id; [Throws] - void postMessage(any message, optional sequence<Transferable> transfer); + void postMessage(any message, sequence<object> transferable); + [Throws] + void postMessage(any message, optional StructuredSerializeOptions options); }; [Exposed=ServiceWorker] diff --git a/dom/webidl/DedicatedWorkerGlobalScope.webidl b/dom/webidl/DedicatedWorkerGlobalScope.webidl index 26dca58dab..80c7c8decb 100644 --- a/dom/webidl/DedicatedWorkerGlobalScope.webidl +++ b/dom/webidl/DedicatedWorkerGlobalScope.webidl @@ -16,7 +16,9 @@ Exposed=DedicatedWorker] interface DedicatedWorkerGlobalScope : WorkerGlobalScope { [Throws] - void postMessage(any message, optional sequence<any> transfer); + void postMessage(any message, sequence<object> transfer); + [Throws] + void postMessage(any message, optional StructuredSerializeOptions options); attribute EventHandler onmessage; }; diff --git a/dom/webidl/MessagePort.webidl b/dom/webidl/MessagePort.webidl index 59c61a7149..0b36c47d94 100644 --- a/dom/webidl/MessagePort.webidl +++ b/dom/webidl/MessagePort.webidl @@ -10,7 +10,9 @@ [Exposed=(Window,Worker,System)] interface MessagePort : EventTarget { [Throws] - void postMessage(any message, optional sequence<Transferable> transferable); + void postMessage(any message, sequence<object> transferable); + [Throws] + void postMessage(any message, optional StructuredSerializeOptions options); void start(); void close(); @@ -19,3 +21,8 @@ interface MessagePort : EventTarget { attribute EventHandler onmessage; }; // MessagePort implements Transferable; + +// Used to declare which objects should be transferred. +dictionary StructuredSerializeOptions { + sequence<object> transfer = []; +};
\ No newline at end of file diff --git a/dom/webidl/ServiceWorker.webidl b/dom/webidl/ServiceWorker.webidl index 8c3749e940..ff80fafc21 100644 --- a/dom/webidl/ServiceWorker.webidl +++ b/dom/webidl/ServiceWorker.webidl @@ -19,9 +19,10 @@ interface ServiceWorker : EventTarget { attribute EventHandler onstatechange; - // FIXME(catalinb): Should inherit this from Worker. [Throws] - void postMessage(any message, optional sequence<Transferable> transferable); + void postMessage(any message, sequence<object> transferable); + [Throws] + void postMessage(any message, optional StructuredSerializeOptions options); }; ServiceWorker implements AbstractWorker; diff --git a/dom/webidl/Window.webidl b/dom/webidl/Window.webidl index 6020f71dce..2ba9f4f124 100644 --- a/dom/webidl/Window.webidl +++ b/dom/webidl/Window.webidl @@ -22,7 +22,6 @@ interface IID; interface nsIBrowserDOMWindow; interface nsIMessageBroadcaster; interface nsIDOMCrypto; -typedef any Transferable; // http://www.whatwg.org/specs/web-apps/current-work/ [PrimaryGlobal, LegacyUnenumerableNamedProperties, NeedResolve] @@ -81,7 +80,9 @@ typedef any Transferable; [Throws, UnsafeInPrerendering] void print(); [Throws, CrossOriginCallable, NeedsSubjectPrincipal] - void postMessage(any message, DOMString targetOrigin, optional sequence<Transferable> transfer); + void postMessage(any message, DOMString targetOrigin, optional sequence<object> transfer = []); + [Throws, CrossOriginCallable, NeedsSubjectPrincipal] + void postMessage(any message, optional WindowPostMessageOptions options); // also has obsolete members }; @@ -487,3 +488,7 @@ callback IdleRequestCallback = void (IdleDeadline deadline); partial interface Window { [ChromeOnly] readonly attribute boolean isSecureContextIfOpenerIgnored; }; + +dictionary WindowPostMessageOptions : StructuredSerializeOptions { + USVString targetOrigin = "/"; +}; diff --git a/dom/webidl/WindowOrWorkerGlobalScope.webidl b/dom/webidl/WindowOrWorkerGlobalScope.webidl index 652a46ffcb..9e639db5f4 100644 --- a/dom/webidl/WindowOrWorkerGlobalScope.webidl +++ b/dom/webidl/WindowOrWorkerGlobalScope.webidl @@ -44,6 +44,10 @@ interface WindowOrWorkerGlobalScope { Promise<ImageBitmap> createImageBitmap(ImageBitmapSource aImage); [Throws] Promise<ImageBitmap> createImageBitmap(ImageBitmapSource aImage, long aSx, long aSy, long aSw, long aSh); + + // structured cloning + [Throws] + any structuredClone(any value, optional StructuredSerializeOptions options); }; // https://fetch.spec.whatwg.org/#fetch-method diff --git a/dom/webidl/Worker.webidl b/dom/webidl/Worker.webidl index 158a502d60..c13357cd7e 100644 --- a/dom/webidl/Worker.webidl +++ b/dom/webidl/Worker.webidl @@ -19,7 +19,9 @@ interface Worker : EventTarget { void terminate(); [Throws] - void postMessage(any message, optional sequence<any> transfer); + void postMessage(any message, sequence<object> transfer); + [Throws] + void postMessage(any message, optional StructuredSerializeOptions options); attribute EventHandler onmessage; }; |