Make DOM geometry structs serializable (#38828)

Makes the following DOM geometry structs serializable:
- `DOMRect`
- `DOMRectReadOnly`
- `DOMQuad`
- `DOMMatrix`
- `DOMMatrixReadOnly`

Testing: Covered by WPT (`css/geometry/structured-serialization.html`).

---------

Signed-off-by: lumiscosity <averyrudelphe@gmail.com>
This commit is contained in:
lumiscosity 2025-08-22 01:19:42 +02:00 committed by GitHub
parent e00f39d827
commit 39f3ce7a2e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 529 additions and 89 deletions

View file

@ -5,7 +5,8 @@
// https://drafts.fxtf.org/geometry/#dommatrix
[Exposed=(Window,Worker,PaintWorklet),
LegacyWindowAlias=(SVGMatrix,WebKitCSSMatrix)]
LegacyWindowAlias=(SVGMatrix,WebKitCSSMatrix),
Serializable]
interface DOMMatrix : DOMMatrixReadOnly {
[Throws] constructor(optional (DOMString or sequence<unrestricted double>) init);

View file

@ -10,7 +10,8 @@
* related or neighboring rights to this work.
*/
[Exposed=(Window,Worker,PaintWorklet)]
[Exposed=(Window,Worker,PaintWorklet),
Serializable]
interface DOMMatrixReadOnly {
[Throws] constructor(optional (DOMString or sequence<unrestricted double>) init);

View file

@ -10,7 +10,8 @@
* related or neighboring rights to this work.
*/
[Exposed=(Window,Worker)]
[Exposed=(Window,Worker),
Serializable]
interface DOMQuad {
[Throws] constructor(optional DOMPointInit p1 = {}, optional DOMPointInit p2 = {},
optional DOMPointInit p3 = {}, optional DOMPointInit p4 = {});

View file

@ -5,7 +5,7 @@
// https://drafts.fxtf.org/geometry/#domrect
[Exposed=(Window,Worker),
/*Serializable,*/
Serializable,
LegacyWindowAlias=SVGRect]
interface DOMRect : DOMRectReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,

View file

@ -5,7 +5,7 @@
// https://drafts.fxtf.org/geometry/#domrect
[Exposed=(Window,Worker),
/*Serializable*/]
Serializable]
interface DOMRectReadOnly {
[Throws] constructor(optional unrestricted double x = 0, optional unrestricted double y = 0,
optional unrestricted double width = 0, optional unrestricted double height = 0);