OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE HTML> |
| 2 <script src="../../../resources/testharness.js"></script> |
| 3 <script src="../../../resources/testharnessreport.js"></script> |
| 4 <button id="button"></button> |
| 5 <iframe id="iframe"></iframe> |
| 6 <script> |
| 7 // This is a crash reproduction case for crbug.com/626750. |
| 8 |
| 9 // Things are expected to happen in this order: |
| 10 // 1. window.onload event fires |
| 11 // 2. button.focus() |
| 12 // 3. button's focus event handler is called |
| 13 // 4. iframe.contentWindow.focus() |
| 14 // 5. button's blur event handler is called (due to 4) |
| 15 // 6. document.open() (detaches <iframe>) |
| 16 // 7. focus in iframe blurs |
| 17 // 8. iframe is set to active while detached <- crash due to crbug.com/626750 |
| 18 // 9. script execution gets back to button's focus event handler |
| 19 // (4-8 happen while iframe.contentWindow.focus() is handled) |
| 20 |
| 21 async_test((test) => { |
| 22 button.addEventListener('focus', test.step_func_done(() => { |
| 23 iframe.contentWindow.focus(); |
| 24 assert_equals(document.activeElement, null, 'blur handler properly finis
hed.'); |
| 25 })); |
| 26 |
| 27 button.addEventListener('blur', test.step_func(() => { |
| 28 // This detaches <iframe>. |
| 29 document.open(); |
| 30 })); |
| 31 |
| 32 window.addEventListener('load', () => button.focus()); |
| 33 }, 'focusing on detached frame should not crash'); |
| 34 </script> |
OLD | NEW |