diff --git a/testing/web-platform/tests/html/browsers/the-window-object/focus.window.js b/testing/web-platform/tests/html/browsers/the-window-object/focus.window.js
new file mode 100644
index 0000000000000..0a906a1e372b6
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/the-window-object/focus.window.js
@@ -0,0 +1,123 @@
+async_test
+(
+t
+=
+>
+{
+const
+input
+=
+document
+.
+body
+.
+appendChild
+(
+document
+.
+createElement
+(
+"
+input
+"
+)
+)
+;
+input
+.
+onfocus
+=
+t
+.
+step_func
+(
+(
+)
+=
+>
+{
+const
+frame
+=
+document
+.
+body
+.
+appendChild
+(
+document
+.
+createElement
+(
+"
+iframe
+"
+)
+)
+frameW
+=
+frame
+.
+contentWindow
+;
+frameW
+.
+onfocus
+=
+t
+.
+unreached_func
+(
+)
+;
+frame
+.
+remove
+(
+)
+;
+frameW
+.
+focus
+(
+)
+;
+t
+.
+step_timeout
+(
+(
+)
+=
+>
+{
+assert_equals
+(
+document
+.
+activeElement
+input
+)
+;
+t
+.
+done
+(
+)
+;
+}
+100
+)
+;
+}
+)
+;
+input
+.
+focus
+(
+)
+;
+}
+)
+;