From 654b47642fe354a27dbd5485867a85481e2005b1 Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Thu, 9 Apr 2020 18:21:52 +0200 Subject: [PATCH 1/7] feat: add resize-observer typs --- inputfiles/idl/Resize Observer.widl | 39 +++++++++++++++++++++++++++++ inputfiles/idlSources.json | 4 +++ 2 files changed, 43 insertions(+) create mode 100644 inputfiles/idl/Resize Observer.widl diff --git a/inputfiles/idl/Resize Observer.widl b/inputfiles/idl/Resize Observer.widl new file mode 100644 index 000000000..d7a6d6f27 --- /dev/null +++ b/inputfiles/idl/Resize Observer.widl @@ -0,0 +1,39 @@ +enum ResizeObserverBoxOptions { + "border-box", "content-box", "device-pixel-content-box" +}; + +dictionary ResizeObserverOptions { + ResizeObserverBoxOptions box = "content-box"; +}; + +[Exposed=(Window), + Constructor(ResizeObserverCallback callback)] +interface ResizeObserver { + void observe(Element target, optional ResizeObserverOptions options); + void unobserve(Element target); + void disconnect(); +}; + +callback ResizeObserverCallback = void (sequence entries, ResizeObserver observer); + +[Exposed=Window] +interface ResizeObserverEntry { + readonly attribute Element target; + readonly attribute DOMRectReadOnly contentRect; + readonly attribute sequence borderBoxSize; + readonly attribute sequence contentBoxSize; + readonly attribute sequence devicePixelContentBoxSize; +}; + +interface ResizeObserverSize { + readonly attribute unrestricted double inlineSize; + readonly attribute unrestricted double blockSize; +}; + +[Constructor(Element target) +] +interface ResizeObservation { + readonly attribute Element target; + readonly attribute ResizeObserverBoxOptions observedBox; + readonly attribute sequence lastReportedSizes; +}; diff --git a/inputfiles/idlSources.json b/inputfiles/idlSources.json index da35b2b38..faed73457 100644 --- a/inputfiles/idlSources.json +++ b/inputfiles/idlSources.json @@ -430,6 +430,10 @@ "url": "https://www.w3.org/TR/referrer-policy/", "title": "Referrer Policy" }, + { + "url": "https://www.w3.org/TR/resize-observer/", + "title": "Resize Observer" + }, { "url": "https://w3c.github.io/resource-timing/", "title": "Resource Timing" From 3ed06f51876b4f843c716eaf21bbf87d600e54f8 Mon Sep 17 00:00:00 2001 From: Manu MA Date: Fri, 3 Jul 2020 20:23:33 +0200 Subject: [PATCH 2/7] Update Resize Observer.widl --- inputfiles/idl/Resize Observer.widl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/idl/Resize Observer.widl b/inputfiles/idl/Resize Observer.widl index d7a6d6f27..385cdfd31 100644 --- a/inputfiles/idl/Resize Observer.widl +++ b/inputfiles/idl/Resize Observer.widl @@ -14,7 +14,7 @@ interface ResizeObserver { void disconnect(); }; -callback ResizeObserverCallback = void (sequence entries, ResizeObserver observer); +callback ResizeObserverCallback = void (FrozenArray entries, ResizeObserver observer); [Exposed=Window] interface ResizeObserverEntry { From 636651072ddf8f3e7f6a83ffd471cfcfb1e3440a Mon Sep 17 00:00:00 2001 From: Evgeniy Timokhov Date: Mon, 26 Oct 2020 13:09:53 +0300 Subject: [PATCH 3/7] Replaced `sequence` with `FrozenArray` in Resize Observer spec See: - https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/847#issuecomment-636933119 - https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/847#issuecomment-659427016 - https://github.com/w3c/webidl2.js/issues/392#issuecomment-524596523 --- inputfiles/idl/Resize Observer.widl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inputfiles/idl/Resize Observer.widl b/inputfiles/idl/Resize Observer.widl index 385cdfd31..53468b79e 100644 --- a/inputfiles/idl/Resize Observer.widl +++ b/inputfiles/idl/Resize Observer.widl @@ -20,9 +20,9 @@ callback ResizeObserverCallback = void (FrozenArray entries interface ResizeObserverEntry { readonly attribute Element target; readonly attribute DOMRectReadOnly contentRect; - readonly attribute sequence borderBoxSize; - readonly attribute sequence contentBoxSize; - readonly attribute sequence devicePixelContentBoxSize; + readonly attribute FrozenArray borderBoxSize; + readonly attribute FrozenArray contentBoxSize; + readonly attribute FrozenArray devicePixelContentBoxSize; }; interface ResizeObserverSize { @@ -35,5 +35,5 @@ interface ResizeObserverSize { interface ResizeObservation { readonly attribute Element target; readonly attribute ResizeObserverBoxOptions observedBox; - readonly attribute sequence lastReportedSizes; + readonly attribute FrozenArray lastReportedSizes; }; From 510a6aa11faa0496a133a99ffcd70ad255aa28da Mon Sep 17 00:00:00 2001 From: Evgeniy Timokhov Date: Mon, 26 Oct 2020 13:19:26 +0300 Subject: [PATCH 4/7] Updated baselines according widl for Resize Observer --- baselines/dom.generated.d.ts | 54 ++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 07b47aaac..f317775cf 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -1587,6 +1587,10 @@ interface RequestInit { window?: any; } +interface ResizeObserverOptions { + box?: ResizeObserverBoxOptions; +} + interface ResponseInit { headers?: HeadersInit; status?: number; @@ -12642,6 +12646,51 @@ declare var Request: { new(input: RequestInfo, init?: RequestInit): Request; }; +interface ResizeObservation { + readonly lastReportedSizes: ReadonlyArray; + readonly observedBox: ResizeObserverBoxOptions; + readonly target: Element; +} + +declare var ResizeObservation: { + prototype: ResizeObservation; + new(target: Element): ResizeObservation; +}; + +interface ResizeObserver { + disconnect(): void; + observe(target: Element, options?: ResizeObserverOptions): void; + unobserve(target: Element): void; +} + +declare var ResizeObserver: { + prototype: ResizeObserver; + new(callback: ResizeObserverCallback): ResizeObserver; +}; + +interface ResizeObserverEntry { + readonly borderBoxSize: ReadonlyArray; + readonly contentBoxSize: ReadonlyArray; + readonly contentRect: DOMRectReadOnly; + readonly devicePixelContentBoxSize: ReadonlyArray; + readonly target: Element; +} + +declare var ResizeObserverEntry: { + prototype: ResizeObserverEntry; + new(): ResizeObserverEntry; +}; + +interface ResizeObserverSize { + readonly blockSize: number; + readonly inlineSize: number; +} + +declare var ResizeObserverSize: { + prototype: ResizeObserverSize; + new(): ResizeObserverSize; +}; + /** This Fetch API interface represents the response to a request. */ interface Response extends Body { readonly headers: Headers; @@ -19281,6 +19330,10 @@ interface ReadableStreamErrorCallback { (reason: any): void | PromiseLike; } +interface ResizeObserverCallback { + (entries: ReadonlyArray, observer: ResizeObserver): void; +} + interface TransformStreamDefaultControllerCallback { (controller: TransformStreamDefaultController): void | PromiseLike; } @@ -20113,6 +20166,7 @@ type RequestDestination = "" | "audio" | "audioworklet" | "document" | "embed" | type RequestMode = "cors" | "navigate" | "no-cors" | "same-origin"; type RequestRedirect = "error" | "follow" | "manual"; type ResidentKeyRequirement = "discouraged" | "preferred" | "required"; +type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box"; type ResizeQuality = "high" | "low" | "medium" | "pixelated"; type ResponseType = "basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect"; type ScopedCredentialType = "ScopedCred"; From a85006d2445685d0753bd259c75cfcecea9fd5d4 Mon Sep 17 00:00:00 2001 From: Evgeniy Timokhov Date: Mon, 26 Oct 2020 19:12:26 +0300 Subject: [PATCH 5/7] Replaced Resize Observer idl with draft one --- baselines/dom.generated.d.ts | 2 +- inputfiles/idl/Resize Observer.widl | 16 ++++++++-------- inputfiles/idlSources.json | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index f317775cf..b5c22d3ec 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -19331,7 +19331,7 @@ interface ReadableStreamErrorCallback { } interface ResizeObserverCallback { - (entries: ReadonlyArray, observer: ResizeObserver): void; + (entries: ResizeObserverEntry[], observer: ResizeObserver): void; } interface TransformStreamDefaultControllerCallback { diff --git a/inputfiles/idl/Resize Observer.widl b/inputfiles/idl/Resize Observer.widl index 53468b79e..35d6fb153 100644 --- a/inputfiles/idl/Resize Observer.widl +++ b/inputfiles/idl/Resize Observer.widl @@ -6,15 +6,15 @@ dictionary ResizeObserverOptions { ResizeObserverBoxOptions box = "content-box"; }; -[Exposed=(Window), - Constructor(ResizeObserverCallback callback)] +[Exposed=(Window)] interface ResizeObserver { - void observe(Element target, optional ResizeObserverOptions options); - void unobserve(Element target); - void disconnect(); + constructor(ResizeObserverCallback callback); + undefined observe(Element target, optional ResizeObserverOptions options = {}); + undefined unobserve(Element target); + undefined disconnect(); }; -callback ResizeObserverCallback = void (FrozenArray entries, ResizeObserver observer); +callback ResizeObserverCallback = undefined (sequence entries, ResizeObserver observer); [Exposed=Window] interface ResizeObserverEntry { @@ -25,14 +25,14 @@ interface ResizeObserverEntry { readonly attribute FrozenArray devicePixelContentBoxSize; }; +[Exposed=Window] interface ResizeObserverSize { readonly attribute unrestricted double inlineSize; readonly attribute unrestricted double blockSize; }; -[Constructor(Element target) -] interface ResizeObservation { + constructor(Element target); readonly attribute Element target; readonly attribute ResizeObserverBoxOptions observedBox; readonly attribute FrozenArray lastReportedSizes; diff --git a/inputfiles/idlSources.json b/inputfiles/idlSources.json index 24433c62b..7daba5f0e 100644 --- a/inputfiles/idlSources.json +++ b/inputfiles/idlSources.json @@ -439,7 +439,7 @@ "title": "Referrer Policy" }, { - "url": "https://www.w3.org/TR/resize-observer/", + "url": "https://drafts.csswg.org/resize-observer/", "title": "Resize Observer" }, { From 1c327018ea9ccf40a13ac8e13783c3cf7854dd6c Mon Sep 17 00:00:00 2001 From: Evgeniy Timokhov Date: Mon, 26 Oct 2020 19:19:05 +0300 Subject: [PATCH 6/7] Removed ResizeObservation from types --- baselines/dom.generated.d.ts | 11 ----------- inputfiles/removedTypes.json | 1 + 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index b5c22d3ec..d2abd40c6 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -12646,17 +12646,6 @@ declare var Request: { new(input: RequestInfo, init?: RequestInit): Request; }; -interface ResizeObservation { - readonly lastReportedSizes: ReadonlyArray; - readonly observedBox: ResizeObserverBoxOptions; - readonly target: Element; -} - -declare var ResizeObservation: { - prototype: ResizeObservation; - new(target: Element): ResizeObservation; -}; - interface ResizeObserver { disconnect(): void; observe(target: Element, options?: ResizeObserverOptions): void; diff --git a/inputfiles/removedTypes.json b/inputfiles/removedTypes.json index 021272ef0..7bed115f7 100644 --- a/inputfiles/removedTypes.json +++ b/inputfiles/removedTypes.json @@ -246,6 +246,7 @@ "PasswordCredential": null, "Position": null, "PositionError": null, + "ResizeObservation": null, "RTCDataChannel": { "properties": { "property": { From 1601cca672e5e70a28355deecc13ac6cf5800d90 Mon Sep 17 00:00:00 2001 From: Evgeniy Timokhov Date: Mon, 26 Oct 2020 19:43:42 +0300 Subject: [PATCH 7/7] Removed `devicePixelContentBoxSize` from `ResizeObserverEntry` because it's experimental at the moment --- baselines/dom.generated.d.ts | 1 - inputfiles/removedTypes.json | 7 +++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index d2abd40c6..712131562 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -12661,7 +12661,6 @@ interface ResizeObserverEntry { readonly borderBoxSize: ReadonlyArray; readonly contentBoxSize: ReadonlyArray; readonly contentRect: DOMRectReadOnly; - readonly devicePixelContentBoxSize: ReadonlyArray; readonly target: Element; } diff --git a/inputfiles/removedTypes.json b/inputfiles/removedTypes.json index 7bed115f7..8b9255f7a 100644 --- a/inputfiles/removedTypes.json +++ b/inputfiles/removedTypes.json @@ -247,6 +247,13 @@ "Position": null, "PositionError": null, "ResizeObservation": null, + "ResizeObserverEntry": { + "properties": { + "property": { + "devicePixelContentBoxSize": null + } + } + }, "RTCDataChannel": { "properties": { "property": {