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