OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef COMPONENTS_AUTOFILL_COMMON_PASSWORD_FORM_FILL_DATA_H_ | |
6 #define COMPONENTS_AUTOFILL_COMMON_PASSWORD_FORM_FILL_DATA_H_ | |
7 | |
8 #include <map> | |
9 | |
10 #include "base/memory/scoped_ptr.h" | |
11 #include "components/autofill/common/form_data.h" | |
12 #include "content/public/common/password_form.h" | |
13 | |
14 namespace autofill { | |
15 | |
16 // Helper struct for PasswordFormFillData | |
17 struct UsernamesCollectionKey { | |
18 UsernamesCollectionKey(); | |
19 ~UsernamesCollectionKey(); | |
20 | |
21 // Defined so that this struct can be used as a key in a std::map. | |
22 bool operator<(const UsernamesCollectionKey& other) const; | |
23 | |
24 base::string16 username; | |
25 base::string16 password; | |
26 }; | |
27 | |
28 // Structure used for autofilling password forms. | |
29 // basic_data identifies the HTML form on the page and preferred username/ | |
30 // password for login, while | |
31 // additional_logins is a list of other matching user/pass pairs for the form. | |
32 // other_possible_usernames is a list of possible usernames in the case where we | |
33 // aren't completely sure that the original saved username is correct. | |
34 // This data is keyed by the saved username/password to ensure uniqueness, | |
35 // though the username is not used. | |
36 // wait_for_username tells us whether we need to wait for the user to enter | |
37 // a valid username before we autofill the password. By default, this is off | |
38 // unless the PasswordManager determined there is an additional risk | |
39 // associated with this form. This can happen, for example, if action URI's | |
40 // of the observed form and our saved representation don't match up. | |
41 struct PasswordFormFillData { | |
42 typedef std::map<base::string16, base::string16> LoginCollection; | |
43 typedef std::map<UsernamesCollectionKey, | |
44 std::vector<base::string16> > UsernamesCollection; | |
45 | |
46 FormData basic_data; | |
47 LoginCollection additional_logins; | |
48 UsernamesCollection other_possible_usernames; | |
49 bool wait_for_username; | |
50 PasswordFormFillData(); | |
51 ~PasswordFormFillData(); | |
52 }; | |
53 | |
54 // Create a FillData structure in preparation for autofilling a form, | |
55 // from basic_data identifying which form to fill, and a collection of | |
56 // matching stored logins to use as username/password values. | |
57 // |preferred_match| should equal (address) one of matches. | |
58 // |wait_for_username_before_autofill| is true if we should not autofill | |
59 // anything until the user typed in a valid username and blurred the field. | |
60 // If |enable_possible_usernames| is true, we will populate possible_usernames | |
61 // in |result|. | |
62 void InitPasswordFormFillData( | |
63 const content::PasswordForm& form_on_page, | |
64 const content::PasswordFormMap& matches, | |
65 const content::PasswordForm* const preferred_match, | |
66 bool wait_for_username_before_autofill, | |
67 bool enable_other_possible_usernames, | |
68 PasswordFormFillData* result); | |
69 | |
70 } // namespace autofill | |
71 | |
72 #endif // COMPONENTS_AUTOFILL_COMMON_PASSWORD_FORM_FILL_DATA_H__ | |
OLD | NEW |