| <!doctype html><!-- webkit-test-runner [ experimental:RequestIdleCallbackEnabled=true ] --> |
| <meta charset=utf-8> |
| <title>requestIdleCallback on removed frame shouldn't call back</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script> |
| async_test(function (t) { |
| assert_false(document.hidden, "document.hidden must exist and be false to run this test properly"); |
| |
| function start() { |
| var frame = document.createElement('iframe'); |
| frame.addEventListener('load', _ => connect(frame), {once:true}); |
| frame.src = "about:blank"; |
| document.body.appendChild(frame); |
| } |
| |
| function connect(frame) { |
| var contentWindow = frame.contentWindow; |
| contentWindow.requestIdleCallback(_ => callback0(frame, contentWindow)); |
| t.step_timeout(function() { t.done(); }, 1000); |
| } |
| |
| function callback0(f, w) { |
| document.body.removeChild(f); |
| w.requestIdleCallback(t.unreached_func("requestIdleCallback callback should not trigger the callback")); |
| } |
| |
| addEventListener('load', start, {once:true}); |
| }, "calling requestIdleCallback on a contentWindow from a removed iframe should not trigger the callback"); |
| </script> |