Simplify chained-setTimeout.html
diff --git a/html/user-activation/chained-setTimeout.html b/html/user-activation/chained-setTimeout.html index a530837..fa00507 100644 --- a/html/user-activation/chained-setTimeout.html +++ b/html/user-activation/chained-setTimeout.html
@@ -1,63 +1,34 @@ <!DOCTYPE html> <html> -<head> - <script src="/resources/testharness.js"></script> - <script src="/resources/testharnessreport.js"></script> - <script src="/resources/testdriver.js"></script> - <script src="/resources/testdriver-vendor.js"></script> - <script> - let chained_timeout_test = async_test("Chained setTimeout test"); + <head> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="/resources/testdriver.js"></script> + <script src="/resources/testdriver-vendor.js"></script> + <script> + function runTest() { + promise_test(async (t) => { + const { userActivation } = navigator; + assert_false(userActivation.isActive, "isActive must be false"); + assert_false(userActivation.hasBeenActive, "userActivation must be false"); - const max_call_depth = 3; - const delay_ms = 10; + await test_driver.click(document.body); - function testInitialStates(depth) { - assert_true(1 <= depth && depth <= max_call_depth); - - chained_timeout_test.step_timeout(() => { - let test_name = "Call-depth=" + depth + ": initial activation states are false"; - test(() => { - assert_false(navigator.userActivation.isActive); - assert_false(navigator.userActivation.hasBeenActive); - }, test_name); - - if (depth < max_call_depth) - testInitialStates(depth+1); - else - test_driver.click(document.body); - }, delay_ms); - } - - function testFinalStates(depth) { - assert_true(1 <= depth && depth <= max_call_depth); - - chained_timeout_test.step_timeout(() => { - let test_name = "Call-depth=" + depth + ": after-click activation states are true"; - test(() => { - assert_true(navigator.userActivation.isActive); - assert_true(navigator.userActivation.hasBeenActive); - }, test_name); - - if (depth < max_call_depth) - testFinalStates(depth+1); - else - chained_timeout_test.done(); - }, delay_ms) - } - - function run() { - window.addEventListener("click", event => { - testFinalStates(1); - }); - - testInitialStates(1); - } - </script> -</head> -<body onload="run()"> - <h1>User activation state in chained setTimeout calls</h1> - <p>Tests that user activation state is visible in arbitrary call depth of setTimeout.</p> - <ol id="instructions"> - <li>Click anywhere in the document. - </ol></body> + for (let depth = 1; depth <= 3; depth++) { + await new Promise((resolve) => { + t.step_timeout(resolve, 10); + }); + assert_true(userActivation.isActive, "isActive must be true"); + assert_true(userActivation.hasBeenActive, "hasBeenActive must be true"); + } + }, "Chained setTimeout test"); + } + </script> + <body onload="runTest()"> + <h1>User activation state in chained setTimeout calls</h1> + <p> + Tests that user activation state is visible in arbitrary call depth of + setTimeout. + </p> + </body> </html>