Skip to content

Introduce Messageable and Transferable for postMessage #534

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jul 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions baselines/dom.generated.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9914,7 +9914,7 @@ interface MessagePort extends EventTarget {
* transfer contains duplicate objects or port, or if message
* could not be cloned.
*/
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
/**
* Begins dispatching messages received on the port.
*/
Expand Down Expand Up @@ -13943,7 +13943,7 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
readonly scriptURL: string;
readonly state: ServiceWorkerState;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
Expand Down Expand Up @@ -16376,7 +16376,7 @@ interface Window extends EventTarget, WindowTimers, WindowSessionStorage, Window
moveTo(x: number, y: number): void;
msWriteProfilerMark(profilerMarkName: string): void;
open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;
postMessage(message: any, targetOrigin: string, transfer?: any[]): void;
postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
print(): void;
prompt(message?: string, _default?: string): string | null;
/** @deprecated */
Expand Down Expand Up @@ -16489,7 +16489,7 @@ interface WorkerEventMap extends AbstractWorkerEventMap {

interface Worker extends EventTarget, AbstractWorker {
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
terminate(): void;
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
Expand Down Expand Up @@ -17230,7 +17230,7 @@ declare function moveBy(x: number, y: number): void;
declare function moveTo(x: number, y: number): void;
declare function msWriteProfilerMark(profilerMarkName: string): void;
declare function open(url?: string, target?: string, features?: string, replace?: boolean): Window | null;
declare function postMessage(message: any, targetOrigin: string, transfer?: any[]): void;
declare function postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;
declare function print(): void;
declare function prompt(message?: string, _default?: string): string | null;
/** @deprecated */
Expand Down Expand Up @@ -17574,6 +17574,7 @@ type ConstrainDouble = number | ConstrainDoubleRange;
type ConstrainLong = number | ConstrainLongRange;
type CryptoOperationData = ArrayBufferView;
type IDBKeyPath = string;
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
type RTCIceGatherCandidate = RTCIceCandidateDictionary | RTCIceCandidateComplete;
type RTCTransport = RTCDtlsTransport | RTCSrtpSdesTransport;
type WindowProxy = Window;
Expand Down
13 changes: 7 additions & 6 deletions baselines/webworker.generated.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@ interface Client {
readonly id: string;
readonly type: ClientTypes;
readonly url: string;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
}

declare var Client: {
Expand Down Expand Up @@ -829,7 +829,7 @@ interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap {
interface DedicatedWorkerGlobalScope extends WorkerGlobalScope {
onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
close(): void;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
Expand Down Expand Up @@ -1744,7 +1744,7 @@ interface MessagePort extends EventTarget {
* transfer contains duplicate objects or port, or if message
* could not be cloned.
*/
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
/**
* Begins dispatching messages received on the port.
*/
Expand Down Expand Up @@ -2188,7 +2188,7 @@ interface ServiceWorker extends EventTarget, AbstractWorker {
onstatechange: ((this: ServiceWorker, ev: Event) => any) | null;
readonly scriptURL: string;
readonly state: ServiceWorkerState;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
addEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof ServiceWorkerEventMap>(type: K, listener: (this: ServiceWorker, ev: ServiceWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
Expand Down Expand Up @@ -2514,7 +2514,7 @@ interface WorkerEventMap extends AbstractWorkerEventMap {

interface Worker extends EventTarget, AbstractWorker {
onmessage: ((this: Worker, ev: MessageEvent) => any) | null;
postMessage(message: any, transfer?: any[]): void;
postMessage(message: any, transfer?: Transferable[]): void;
terminate(): void;
addEventListener<K extends keyof WorkerEventMap>(type: K, listener: (this: Worker, ev: WorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
Expand Down Expand Up @@ -2747,7 +2747,7 @@ interface PerformanceObserverCallback {

declare var onmessage: ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) | null;
declare function close(): void;
declare function postMessage(message: any, transfer?: any[]): void;
declare function postMessage(message: any, transfer?: Transferable[]): void;
/**
* Dispatches a synthetic event event to target and returns true
* if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise.
Expand Down Expand Up @@ -2805,6 +2805,7 @@ type BufferSource = ArrayBufferView | ArrayBuffer;
type DOMTimeStamp = number;
type FormDataEntryValue = File | string;
type IDBValidKey = number | string | Date | BufferSource | IDBArrayKey;
type Transferable = ArrayBuffer | MessagePort | ImageBitmap;
type BinaryType = "blob" | "arraybuffer";
type ClientTypes = "window" | "worker" | "sharedworker" | "all";
type IDBCursorDirection = "next" | "nextunique" | "prev" | "prevunique";
Expand Down
4 changes: 4 additions & 0 deletions inputfiles/addedTypes.json
Original file line number Diff line number Diff line change
Expand Up @@ -2528,6 +2528,10 @@
"new-type": "IDBKeyPath",
"override-type": "string"
},
{
"new-type": "Transferable",
"override-type": "ArrayBuffer | MessagePort | ImageBitmap"
},
{
"new-type": "RTCIceGatherCandidate",
"override-type": "RTCIceCandidateDictionary | RTCIceCandidateComplete"
Expand Down
4 changes: 3 additions & 1 deletion inputfiles/knownTypes.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,13 @@
"RsaKeyGenParams",
"RsaOaepParams",
"RsaPssParams",
"Transferable",
"VideoFacingModeEnum"
],
"Worker": [
"ClientTypes",
"IDBArrayKey",
"IDBValidKey"
"IDBValidKey",
"Transferable"
]
}
73 changes: 72 additions & 1 deletion inputfiles/overridingTypes.json
Original file line number Diff line number Diff line change
Expand Up @@ -270,6 +270,12 @@
"override-signatures": [
"alert(message?: any): void"
]
},
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void"
]
}
}
},
Expand Down Expand Up @@ -1897,6 +1903,16 @@
"override-type": "ClientTypes"
}
}
},
"methods": {
"method": {
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any, transfer?: Transferable[]): void"
]
}
}
}
},
"RTCDataChannel": {
Expand Down Expand Up @@ -2237,7 +2253,10 @@
"methods": {
"method": {
"postMessage": {
"deprecated": 0
"deprecated": 0,
"override-signatures": [
"postMessage(message: any, transfer?: Transferable[]): void"
]
}
}
}
Expand Down Expand Up @@ -2318,6 +2337,58 @@
}
]
}
},
"BroadcastChannel": {
"name": "BroadcastChannel",
"methods": {
"method": {
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any): void"
]
}
}
}
},
"MessagePort": {
"name": "MessagePort",
"methods": {
"method": {
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any, transfer?: Transferable[]): void"
]
}
}
}
},
"ServiceWorker": {
"name": "ServiceWorker",
"methods": {
"method": {
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any, transfer?: Transferable[]): void"
]
}
}
}
},
"DedicatedWorkerGlobalScope": {
"name": "DedicatedWorkerGlobalScope",
"methods": {
"method": {
"postMessage": {
"name": "postMessage",
"override-signatures": [
"postMessage(message: any, transfer?: Transferable[]): void"
]
}
}
}
}
}
},
Expand Down