Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(214)

Side by Side Diff: chrome/test/data/password/create_form_copy_on_submit.html

Issue 331593008: Only consider PasswordFromManager which HasCompletedMatching when provisionally saving passwords (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added missing copyright notice in the JavaScript file Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!--
2 This page enables to simulate the following scenario:
3 On password form submit, the page's JavaScript deletes that form, creates
4 another one, almost an exact copy of the deleted form, just with a different
5 action, and submits the new one.
6
7 The issue demonstrated here is that there is very little time between
8 creating and submitting the second form. As observed in
9 http://crbug.com/367768, PasswordManager is not able to process the form
10 quickly enough in such cases: the PasswordFormManager associated with the
11 created form has not enough time to asynchronously get matching results from
12 the password store, and is hence not ready to provisionally save the new
13 credential. This test checks that PasswordManager still makes use of the
14 PasswordFormManager associated with the first form (which is a reasonable
15 match for the credential, though worse than the newer PasswordFormManager)
16 and works in this scenario.
17 -->
18 <html>
19 <head>
20 <script src="form_utils.js"></script>
21 <script>
22 function preCreatePasswordForm() {
23 // Remember the filled in password + destroy the old form.
24 var old_password = document.getElementById('password').value;
25 document.getElementById('contains-form').innerText = '';
26 // Spin the message loop: it's not clear spinning it is needed, but
27 // let's make sure the deletion side effects, if any, have time to
28 // propagate and don't cause flakes.
29 window.setTimeout(createPasswordForm, 0, old_password);
30 }
31 function createPasswordForm(old_password) {
32 // Create and append the new password form. It is almost the
33 // same as the deleted one, only with a different action.
34 document.body.appendChild(createSimplePasswordForm());
35 // Spin the message loop again, to let the creation settle in.
36 window.setTimeout(postCreatePasswordForm, 0, old_password);
37 }
38 function postCreatePasswordForm(old_password) {
39 // Copy over the old password + add a dummy username, and submit
40 // the new form.
41 document.getElementById('username').value = 'test';
42 document.getElementById('password').value = old_password;
43 document.getElementById('submit-button').click();
44 }
45 </script>
46 <title>Test dynamically created password form</title>
47 </head>
48 <body>
49 <div id="contains-form">
50 <form action="none.html">
51 Old Form (to visually distinguish it from the form it is replaced with):
52 <label for="username">Username</label>
53 <input type="text" id="username" name="username">
54 <label for="password">Password</label>
55 <input type="password" id="password" name="password">
56 <input type="submit" id="submit-button" value="Don't click!">
57 </form>
58 <button id="non-form-button" onclick="preCreatePasswordForm();">
59 Click!
60 </button>
61 </div>
62 </body>
63 </html>
OLDNEW
« no previous file with comments | « chrome/test/data/password/between_parsing_and_rendering.html ('k') | chrome/test/data/password/form_utils.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698