Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 <!-- | |
| 2 This page enables to simulate the following scenario: | |
| 3 On password form submit, the page's JavaScript creates another | |
|
engedy
2014/07/11 17:05:35
nit: Spell it out here more that there is a static
vabr (Chromium)
2014/07/11 18:15:47
Done.
| |
| 4 form, copies the user's password into it, and submits that. | |
| 5 | |
| 6 The issue demonstrated here is that there is very little time | |
| 7 between creating and submitting the second form. As observed in | |
| 8 http://crbug.com/367768, PasswordManager is not able to process | |
|
engedy
2014/07/11 17:05:35
nit: Add one more line here to describe the proble
vabr (Chromium)
2014/07/11 18:15:47
Done.
| |
| 9 the form quickly enough in such cases. This test checks that it | |
| 10 still makes use of the first form and works in this scenario. | |
| 11 --> | |
| 12 <html> | |
| 13 <head> | |
| 14 <script src="form_utils.js"></script> | |
| 15 <script> | |
| 16 function preCreatePasswordForm() { | |
| 17 // Remember the filled in password + destroy the old form. | |
| 18 var old_password = document.getElementById('password').value; | |
| 19 document.getElementById('contains-form').innerText = ''; | |
| 20 // Spin the message loop to let the deletion settle in. | |
|
engedy
2014/07/11 17:05:35
Could you please describe more why this is needed?
vabr (Chromium)
2014/07/11 18:15:47
Done. The problem is I'm not sure it is needed. It
engedy
2014/07/11 18:26:11
Acknowledged.
| |
| 21 window.setTimeout(createPasswordForm, 0, old_password); | |
| 22 } | |
| 23 function createPasswordForm(old_password) { | |
| 24 // Create and append the new password form. It is almost the | |
| 25 // same as the deleted one, only with a different action. | |
| 26 addForm(createForm()); | |
|
engedy
2014/07/11 17:05:36
This might be a terribly bad idea, but perhaps thi
vabr (Chromium)
2014/07/11 18:15:47
I'm not sure if it is a bad idea, I just don't see
engedy
2014/07/11 18:26:11
Yes, I wanted to reduce the duplication, but I thi
| |
| 27 // Spin the message loop to let the creation settle in. | |
| 28 window.setTimeout(postCreatePasswordForm, 0, old_password); | |
| 29 } | |
| 30 function postCreatePasswordForm(old_password) { | |
| 31 // Copy over the old password + add a dummy username, and submit | |
| 32 // the new form. | |
| 33 document.getElementById('username').value = 'test'; | |
| 34 document.getElementById('password').value = old_password; | |
| 35 document.getElementById('submit-button').click(); | |
| 36 } | |
| 37 </script> | |
| 38 <title>Test dynamically created password form</title> | |
| 39 </head> | |
| 40 <body> | |
| 41 <div id="contains-form"> | |
| 42 <form action="none.html"> | |
| 43 Old Form (to visually distinguish it from the form it is replaced with): | |
| 44 <label for="username">Username</label> | |
| 45 <input type="text" id="username" name="username"> | |
| 46 <label for="password">Password</label> | |
| 47 <input type="password" id="password" name="password"> | |
| 48 <input type="submit" id="submit-button" value="Don't click!"> | |
| 49 </form> | |
| 50 <button id="non-form-button" onclick="preCreatePasswordForm();"> | |
| 51 Click! | |
| 52 </button> | |
| 53 </div> | |
| 54 </body> | |
| 55 </html> | |
| OLD | NEW |