Index: third_party/WebKit/LayoutTests/http/tests/security/dangling-markup/resources/helper.js |
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/dangling-markup/resources/helper.js b/third_party/WebKit/LayoutTests/http/tests/security/dangling-markup/resources/helper.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7d5ad6d10d025e836701eeb96754bad2e17076ed |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/security/dangling-markup/resources/helper.js |
@@ -0,0 +1,37 @@ |
+function assert_no_message_from_frame(test, frame) { |
+ window.addEventListener("message", test.step_func(e => { |
+ assert_not_equals(e.source, frame.contentWindow); |
+ })); |
+} |
+ |
+function appendAndSubmit(test, frame) { |
+ return new Promise((resolve, reject) => { |
+ frame.onload = test.step_func(_ => { |
+ frame.onload = null; |
+ frame.contentDocument.querySelector('form').addEventListener("error", _ => { |
+ resolve("error"); |
+ }); |
+ frame.contentDocument.querySelector('form').addEventListener("submit", _ => { |
+ resolve("submit"); |
+ }); |
+ frame.contentDocument.querySelector('[type=submit]').click(); |
+ }); |
+ document.body.appendChild(frame); |
+ }); |
+} |
+ |
+function assert_no_submission(test, frame) { |
+ assert_no_message_from_frame(test, frame); |
+ |
+ appendAndSubmit(test, frame) |
+ .then(test.step_func_done(result => { |
+ assert_equals(result, "error"); |
+ frame.remove(); |
+ })); |
+} |
+ |
+function createFrame(markup) { |
+ var i = document.createElement('iframe'); |
+ i.srcdoc = `${markup}sekrit`; |
+ return i; |
+} |