Index: third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
diff --git a/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js b/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1e00b9dc1c20a35a83514a0861e8eba4ee2bbb32 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/custom-elements/spec/resources/custom-elements-helpers.js |
@@ -0,0 +1,29 @@ |
+function create_window() { |
+ let p = new Promise((resolve) => { |
+ let f = document.createElement('iframe'); |
+ f.srcdoc = ''; |
+ f.onload = (event) => { |
+ let w = f.contentWindow; |
+ w.tearDown = () => f.remove(); |
+ resolve(w); |
+ }; |
+ document.body.appendChild(f); |
+ }); |
+ return p; |
+} |
+ |
+function async_test_with_window(f, name) { |
domenic
2016/05/05 19:15:28
In general async_test is worse than promise_test;
|
+ async_test((t) => { |
+ create_window().then((w) => { |
+ t.add_cleanup(() => w.tearDown()); |
+ t.step(() => f(t, w)); |
+ }); |
+ }, name); |
+} |
+ |
+function test_with_window(f, name) { |
+ async_test_with_window((t, w) => { |
+ f(w); |
+ t.done(); |
+ }, name); |
+} |