| <!doctype html> |
| <html> |
| <head> |
| <base href="done"> |
| |
| <script> |
| |
| function state_changed(xhr) { |
| if (xhr.readyState == 4) { |
| // Make form action mutation delayed so as that AjaxSucceeded handler |
| // can be run first. AjaxSucceded handler should start observing form |
| // mutations by form tracker. |
| setTimeout(function() { |
| document.getElementById('form_with_action_mutation').setAttribute('action', 'done.html'); |
| |
| // Event on XHR finish should be sent a bit later to make browser react |
| // on form action mutation. |
| setTimeout(function() { |
| window.domAutomationController.send("XHR_FINISHED"); |
| }, 0) |
| }, 0); |
| } |
| } |
| |
| function send_xhr() { |
| var xhr = new XMLHttpRequest(); |
| xhr.onreadystatechange = function() { state_changed(xhr); }; |
| xhr.open("GET", "password_form_action_mutation.html", true); |
| xhr.send(null); |
| } |
| |
| </script> |
| </head> |
| <body> |
| |
| <form method="POST" action="dummy" id="form_with_action_mutation" |
| onsubmit="send_xhr(); return false;"> |
| <input type="text" id="username_action_mutation" name="username_action_mutation"> |
| <input type="password" id="password_action_mutation" name="password_action_mutation"> |
| <input type="submit" id="submit_action_mutation" name="submit_action_mutation"> |
| </form> |
| |
| </body> |
| </html> |