summaryrefslogtreecommitdiff
path: root/dom/webidl
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2023-04-09 13:44:46 +0000
committerMoonchild <moonchild@palemoon.org>2023-04-09 13:44:46 +0000
commitbfeb62ceece166cc90de95f394c0313f35ac0fd1 (patch)
treec61991a79bfcee2ee57a5168ce87a8451adc45c6 /dom/webidl
parentb62bf0c4b7e70f3bfcc1915526e158712aef1211 (diff)
parentae19a0513ee353dbdee92de16fc7c1e83516a40f (diff)
downloaduxp-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.webidl4
-rw-r--r--dom/webidl/DedicatedWorkerGlobalScope.webidl4
-rw-r--r--dom/webidl/MessagePort.webidl9
-rw-r--r--dom/webidl/ServiceWorker.webidl5
-rw-r--r--dom/webidl/Window.webidl9
-rw-r--r--dom/webidl/WindowOrWorkerGlobalScope.webidl4
-rw-r--r--dom/webidl/Worker.webidl4
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;
};