| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Inputs remain focusable upon changing type</title> |
| <link rel="help" href="https://wicg.github.io/auxclick"> |
| <link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=981248"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-actions.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <h1>Can still focus on inputs that change types</h1> |
| <input type="text" value="123" onfocus="javascript:event.target.type='number'" |
| onblur="javascript:event.target.type='text'"> |
| <script> |
| promise_test(() => { |
| // Click the input to attempt to focus on it |
| const target = document.querySelector("input"); |
| const actions = new test_driver.Actions(); |
| return actions.pointerMove(0, 0, {origin: target}) |
| .pointerDown({button: actions.ButtonType.LEFT}) |
| .pointerUp({button: actions.ButtonType.LEFT}) |
| .send() |
| .then(() => assert_equals(document.activeElement, target, |
| "The element was correctly focused")); |
| }, "Can change an input's type during focus handler without breaking focus"); |
| </script> |