diff --git a/Libraries/LibWeb/HTML/Canvas/CanvasTextDrawingStyles.h b/Libraries/LibWeb/HTML/Canvas/CanvasTextDrawingStyles.h
index 94556736e9c..6d1544b95a7 100644
--- a/Libraries/LibWeb/HTML/Canvas/CanvasTextDrawingStyles.h
+++ b/Libraries/LibWeb/HTML/Canvas/CanvasTextDrawingStyles.h
@@ -116,10 +116,7 @@ public:
if (!font_list)
return;
- if (font_list->is_empty())
- return;
-
- my_drawing_state().current_font_cascade_list = font_list->first();
+ my_drawing_state().current_font_cascade_list = font_list;
}
Bindings::CanvasTextAlign text_align() const { return my_drawing_state().text_align; }
diff --git a/Tests/LibWeb/Text/expected/Worker/Worker-offscreencanvas.txt b/Tests/LibWeb/Text/expected/Worker/Worker-offscreencanvas.txt
new file mode 100644
index 00000000000..eb1f829eae7
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/Worker/Worker-offscreencanvas.txt
@@ -0,0 +1,3 @@
+Message received from worker: "{\"w\":10,\"h\":10}"
+Message received from worker: "normal normal 20px SerenitySans"
+Message received from worker: "normal normal 20px SerenitySans"
diff --git a/Tests/LibWeb/Text/expected/canvas/2d-offscreencanvas-create-imagedata.txt b/Tests/LibWeb/Text/expected/canvas/2d-offscreencanvas-create-imagedata.txt
new file mode 100644
index 00000000000..437b6add2c0
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/canvas/2d-offscreencanvas-create-imagedata.txt
@@ -0,0 +1 @@
+FAIL: NotSupportedError: (STUBBED) OffscreenCanvasRenderingContext2D::create_image_data(int, int)
diff --git a/Tests/LibWeb/Text/expected/canvas/export-offscreencanvas.txt b/Tests/LibWeb/Text/expected/canvas/export-offscreencanvas.txt
new file mode 100644
index 00000000000..42b776fbee9
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/canvas/export-offscreencanvas.txt
@@ -0,0 +1,2 @@
+1.Success: {"size":119,"type":"image/png"}
+2.Success: {"size":823,"type":"image/jpeg"}
diff --git a/Tests/LibWeb/Text/expected/canvas/offscreencanvas-basic.txt b/Tests/LibWeb/Text/expected/canvas/offscreencanvas-basic.txt
new file mode 100644
index 00000000000..4ae6a033d8a
--- /dev/null
+++ b/Tests/LibWeb/Text/expected/canvas/offscreencanvas-basic.txt
@@ -0,0 +1,3 @@
+{"w":10,"h":10}
+normal normal 20px SerenitySans
+normal normal 20px SerenitySans
diff --git a/Tests/LibWeb/Text/input/Worker/Worker-offscreencanvas.html b/Tests/LibWeb/Text/input/Worker/Worker-offscreencanvas.html
new file mode 100644
index 00000000000..97ba3c728d0
--- /dev/null
+++ b/Tests/LibWeb/Text/input/Worker/Worker-offscreencanvas.html
@@ -0,0 +1,36 @@
+
+
+
diff --git a/Tests/LibWeb/Text/input/canvas/2d-offscreencanvas-create-imagedata.html b/Tests/LibWeb/Text/input/canvas/2d-offscreencanvas-create-imagedata.html
new file mode 100644
index 00000000000..9cd7f26c09b
--- /dev/null
+++ b/Tests/LibWeb/Text/input/canvas/2d-offscreencanvas-create-imagedata.html
@@ -0,0 +1,19 @@
+
+
+
diff --git a/Tests/LibWeb/Text/input/canvas/export-offscreencanvas.html b/Tests/LibWeb/Text/input/canvas/export-offscreencanvas.html
new file mode 100644
index 00000000000..621842919af
--- /dev/null
+++ b/Tests/LibWeb/Text/input/canvas/export-offscreencanvas.html
@@ -0,0 +1,32 @@
+
+
+
diff --git a/Tests/LibWeb/Text/input/canvas/offscreencanvas-basic.html b/Tests/LibWeb/Text/input/canvas/offscreencanvas-basic.html
new file mode 100644
index 00000000000..50c20d7b23c
--- /dev/null
+++ b/Tests/LibWeb/Text/input/canvas/offscreencanvas-basic.html
@@ -0,0 +1,13 @@
+
+
+