Repository: servo/servo (language: python)

Issue:
Intermittent CRASH in ` /html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.worker.html`
https://github.com/servo/servo/actions/runs/11700626471/job/32585230942

```
  ▶ CRASH [expected OK] /html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.worker.html
  │ 
  │ capacity overflow (thread Canvas, at library/alloc/src/raw_vec.rs:25)
  │    0: servoshell::backtrace::print
  │    1: servoshell::panic_hook::panic_hook
  │    2: std::panicking::rust_panic_with_hook
  │    3: std::panicking::begin_panic_handler::{{closure}}
  │    4: std::sys_common::backtrace::__rust_end_short_backtrace
  │    5: rust_begin_unwind
  │    6: core::panicking::panic_fmt
  │    7: alloc::raw_vec::capacity_overflow
  │    8: alloc::raw_vec::handle_error
  │    9: raqote::draw_target::DrawTarget::new
  │   10: <canvas::raqote_backend::RaqoteBackend as canvas::canvas_data::Backend>::create_drawtarget
  │   11: canvas::canvas_data::CanvasData::recreate
  │   12: std::sys_common::backtrace::__rust_begin_short_backtrace
  │   13: core::ops::function::FnOnce::call_once{{vtable.shim}}
  │   14: std::sys::pal::unix::thread::Thread::new::thread_start
  │   15: <unknown>
  └   16: <unknown>
```


Discussion / hints:

Fix patch:
diff --git a/components/script/dom/webidls/OffscreenCanvas.webidl b/components/script/dom/webidls/OffscreenCanvas.webidl
index 8bb87b178f97a..110af8a8f9997 100644
--- a/components/script/dom/webidls/OffscreenCanvas.webidl
+++ b/components/script/dom/webidls/OffscreenCanvas.webidl
@@ -16,8 +16,8 @@ dictionary ImageEncodeOptions {
 [Exposed=(Window,Worker)/*, Transferable*/, Pref="dom.offscreen_canvas.enabled"]
 interface OffscreenCanvas : EventTarget {
   [Throws] constructor([EnforceRange] unsigned long long width, [EnforceRange] unsigned long long height);
-  attribute /*[EnforceRange]*/ unsigned long long width;
-  attribute /*[EnforceRange]*/ unsigned long long height;
+  attribute [EnforceRange] unsigned long long width;
+  attribute [EnforceRange] unsigned long long height;
 
   OffscreenRenderingContext? getContext(DOMString contextId, optional any options = null);
   //ImageBitmap transferToImageBitmap();


Test patch:
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html.ini
deleted file mode 100644
index d8ccbed5caa55..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.em.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.worker.js.ini
deleted file mode 100644
index aa70cb2a565b9..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.em.worker.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html.ini
deleted file mode 100644
index 2c79d5c389f11..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.junk.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.worker.js.ini
deleted file mode 100644
index 3d1ba9cd750c8..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.junk.worker.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini
deleted file mode 100644
index abcdc2821c8c9..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[2d.canvas.host.size.attributes.parse.minus.html]
-  expected: CRASH
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.worker.js.ini
deleted file mode 100644
index f40514bce36c4..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.minus.worker.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html.ini
deleted file mode 100644
index 83d334905c685..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.percent.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.worker.js.ini
deleted file mode 100644
index 864ce77b029d5..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.percent.worker.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html.ini
deleted file mode 100644
index bbac2296e3d72..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.trailingjunk.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.worker.js.ini
deleted file mode 100644
index 3535cc12f380c..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.attributes.parse.trailingjunk.worker.html]
-  [Parsing of non-negative integers]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.html.ini
deleted file mode 100644
index 672798f3f81a6..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.invalid.attributes.idl.html]
-  [Getting/setting width/height IDL attributes]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.worker.js.ini
deleted file mode 100644
index acf2210f82b12..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.invalid.attributes.idl.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[2d.canvas.host.size.invalid.attributes.idl.worker.html]
-  [Getting/setting width/height IDL attributes]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.html.ini
deleted file mode 100644
index ab97c6fc5c9fd..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[offscreencanvas.constructor.html]
-  [Test that OffscreenCanvas constructor handles invalid arguments correctly]
-    expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.js.ini
deleted file mode 100644
index dee7f75d061c6..0000000000000
--- a/tests/wpt/meta/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.constructor.worker.js.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[offscreencanvas.constructor.worker.html]
-  [Test that OffscreenCanvas constructor handles invalid arguments correctly in a worker]
-    expected: FAIL