Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: third_party/WebKit/LayoutTests/fast/dom/window-onerror-with-cross-frame-nested-event-listeners.html

Issue 2420223002: Dispatching errors across iframes don't match webplatform tests
Patch Set: Refactored ScriptStateForErrorEvent, added error handler to the test." Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698