| <!DOCTYPE html> |
| <head> |
| <title>Accessibility: slow document load</title> |
| <script src="../../../resources/testharness.js"></script> |
| <script src="../../../resources/testharnessreport.js"></script> |
| </head> |
| <body> |
| |
| <script> |
| async_test((t) => { |
| startTime = new Date(); |
| gotLayoutCompleteBeforeOneSecond = false; |
| |
| accessibilityController.addNotificationListener( |
| t.step_func((target, notification) => { |
| elapsedTime = new Date() - startTime; |
| if (notification == "LayoutComplete" && elapsedTime < 500) { |
| // See comment below if you're confused by this |
| gotLayoutCompleteBeforeOneSecond = true; |
| } |
| |
| if (notification == "LoadComplete") { |
| accessibilityController.removeNotificationListener(); |
| assert_greater_than_equal(elapsedTime, 500); |
| assert_true(gotLayoutCompleteBeforeOneSecond); |
| t.done(); |
| } |
| })); |
| |
| window.setTimeout(function() { |
| assert_unreached("Did not receive all accessibility notifications"); |
| t.done(); |
| }, 1500); |
| }, "This tests that accessibility events will be fired after the first layout, rather than only after the document loads."); |
| |
| setTimeout(function() { |
| // Cause a lifecycle update |
| document.body.click(); |
| }, 0); |
| </script> |
| |
| <!-- This is a cgi script that waits 1 second before loading. |
| In practice, it seems to sometimes load after less time, so |
| that's why we use 500 ms as the threshold in the tests, above. |
| --> |
| <script src="slow-loading-script.cgi"></script> |
| |
| </body> |
| </html> |