Merge remote-tracking branch 'origin/tracking' into custom

This commit is contained in:
roytam1 2023-04-10 07:27:58 +08:00
commit 20b787a4df
37 changed files with 523 additions and 153 deletions

View file

@ -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]

View file

@ -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;
};

View file

@ -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 = [];
};

View file

@ -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;

View file

@ -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]
@ -51,6 +50,7 @@ typedef any Transferable;
[Throws] void stop();
[Throws, CrossOriginCallable, UnsafeInPrerendering] void focus();
[Throws, CrossOriginCallable] void blur();
[Replaceable, Pref="dom.window.event.enabled"] readonly attribute any event;
// other browsing contexts
[Replaceable, Throws, CrossOriginReadable] readonly attribute WindowProxy frames;
@ -80,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
};
@ -486,3 +488,7 @@ callback IdleRequestCallback = void (IdleDeadline deadline);
partial interface Window {
[ChromeOnly] readonly attribute boolean isSecureContextIfOpenerIgnored;
};
dictionary WindowPostMessageOptions : StructuredSerializeOptions {
USVString targetOrigin = "/";
};

View file

@ -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

View file

@ -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;
};