| Index: third_party/WebKit/LayoutTests/fast/dom/window-onerror-with-cross-frame-nested-event-listeners.html
|
| diff --git a/third_party/WebKit/LayoutTests/fast/dom/window-onerror-with-cross-frame-nested-event-listeners.html b/third_party/WebKit/LayoutTests/fast/dom/window-onerror-with-cross-frame-nested-event-listeners.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f4b78b26ad6699a50c40790bb08d80e4f7006c08
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/fast/dom/window-onerror-with-cross-frame-nested-event-listeners.html
|
| @@ -0,0 +1,53 @@
|
| +<!doctype html>
|
| +<script src=../../resources/testharness.js></script>
|
| +<script src=../../resources/testharnessreport.js></script>
|
| +<iframe></iframe>
|
| +<iframe></iframe>
|
| +<iframe></iframe>
|
| +<script>
|
| +test(function() {
|
| + var frame0ErrorFired = false;
|
| + var frame1ErrorFired = false;
|
| + var frame2ErrorFired = false;
|
| + var f1 = new frames[0].Function("arguments[0].target.dispatchEvent(new Event('myevent2')); NoSuchFunction1();");
|
| + frames[1].document.addEventListener("myevent1", f1);
|
| + var f2 = new frames[1].Function("NoSuchFunction2();");
|
| + frames[1].document.addEventListener("myevent2", f2);
|
| + var f3 = new frames[2].Function("NoSuchFunction3();");
|
| +
|
| + var ourErrorFired = false;
|
| + frames[0].addEventListener("error", () => {
|
| + assert_false(frame0ErrorFired);
|
| + assert_true(frame1ErrorFired);
|
| + assert_true(frame2ErrorFired);
|
| + frame0ErrorFired = true;
|
| + });
|
| +
|
| + frames[1].addEventListener("error", () => {
|
| + assert_false(frame0ErrorFired);
|
| + assert_false(frame1ErrorFired);
|
| + assert_false(frame2ErrorFired);
|
| + frame1ErrorFired = true;
|
| + });
|
| +
|
| + frames[1].onerror = f3;
|
| +
|
| + frames[2].addEventListener("error", () => {
|
| + assert_false(frame0ErrorFired);
|
| + assert_true(frame1ErrorFired);
|
| + assert_false(frame2ErrorFired);
|
| + frame2ErrorFired = true;
|
| + });
|
| +
|
| + addEventListener("error", () => {
|
| + ourErrorFired = true;
|
| + });
|
| +
|
| + frames[1].document.dispatchEvent(new Event("myevent1"));
|
| +
|
| + assert_true(frame0ErrorFired);
|
| + assert_true(frame1ErrorFired);
|
| + assert_true(frame2ErrorFired);
|
| + assert_false(ourErrorFired);
|
| +}, "Test for Issue 606900: Dispatching errors across iframes don't match webplatform tests");
|
| +</script>
|
|
|