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_CORE_COMMON_PASSWORD_FORM_H__ | 5 #ifndef COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_H__ |
6 #define COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_H__ | 6 #define COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_H__ |
7 | 7 |
8 #include <map> | 8 #include <map> |
9 #include <memory> | 9 #include <memory> |
10 #include <string> | 10 #include <string> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/time/time.h" | 13 #include "base/time/time.h" |
14 #include "components/autofill/core/common/form_data.h" | 14 #include "components/autofill/core/common/form_data.h" |
15 #include "url/gurl.h" | 15 #include "url/gurl.h" |
16 #include "url/origin.h" | 16 #include "url/origin.h" |
17 | 17 |
18 namespace autofill { | 18 namespace autofill { |
19 | 19 |
20 // Pair of possible username value and field name that contained this value. | |
21 using PossibleUsernamePair = std::pair<base::string16, base::string16>; | |
22 | |
23 // Vector of possible username values and corresponding field names. | |
24 using PossibleUsernamesVector = std::vector<PossibleUsernamePair>; | |
25 | |
26 // The PasswordForm struct encapsulates information about a login form, | 20 // The PasswordForm struct encapsulates information about a login form, |
27 // which can be an HTML form or a dialog with username/password text fields. | 21 // which can be an HTML form or a dialog with username/password text fields. |
28 // | 22 // |
29 // The Web Data database stores saved username/passwords and associated form | 23 // The Web Data database stores saved username/passwords and associated form |
30 // metdata using a PasswordForm struct, typically one that was created from | 24 // metdata using a PasswordForm struct, typically one that was created from |
31 // a parsed HTMLFormElement or LoginDialog, but the saved entries could have | 25 // a parsed HTMLFormElement or LoginDialog, but the saved entries could have |
32 // also been created by imported data from another browser. | 26 // also been created by imported data from another browser. |
33 // | 27 // |
34 // The PasswordManager implements a fuzzy-matching algorithm to compare saved | 28 // The PasswordManager implements a fuzzy-matching algorithm to compare saved |
35 // PasswordForm entries against PasswordForms that were created from a parsed | 29 // PasswordForm entries against PasswordForms that were created from a parsed |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 // | 134 // |
141 // When parsing an HTML form, this is typically empty unless the site | 135 // When parsing an HTML form, this is typically empty unless the site |
142 // has implemented some form of autofill. | 136 // has implemented some form of autofill. |
143 base::string16 username_value; | 137 base::string16 username_value; |
144 | 138 |
145 // This member is populated in cases where we there are multiple input | 139 // This member is populated in cases where we there are multiple input |
146 // elements that could possibly be the username. Used when our heuristics for | 140 // elements that could possibly be the username. Used when our heuristics for |
147 // determining the username are incorrect. Optional. | 141 // determining the username are incorrect. Optional. |
148 // | 142 // |
149 // When parsing an HTML form, this is typically empty. | 143 // When parsing an HTML form, this is typically empty. |
150 PossibleUsernamesVector other_possible_usernames; | 144 std::vector<base::string16> other_possible_usernames; |
151 | 145 |
152 // The name of the input element corresponding to the current password. | 146 // The name of the input element corresponding to the current password. |
153 // Optional (improves scoring). | 147 // Optional (improves scoring). |
154 // | 148 // |
155 // When parsing an HTML form, this will always be set, unless it is a sign-up | 149 // When parsing an HTML form, this will always be set, unless it is a sign-up |
156 // form or a change password form that does not ask for the current password. | 150 // form or a change password form that does not ask for the current password. |
157 // In these two cases the |new_password_element| will always be set. | 151 // In these two cases the |new_password_element| will always be set. |
158 base::string16 password_element; | 152 base::string16 password_element; |
159 | 153 |
160 // The current password. Must be non-empty for PasswordForm instances that are | 154 // The current password. Must be non-empty for PasswordForm instances that are |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 // (origin, username_element, username_value, password_element, signon_realm). | 294 // (origin, username_element, username_value, password_element, signon_realm). |
301 bool ArePasswordFormUniqueKeyEqual(const PasswordForm& left, | 295 bool ArePasswordFormUniqueKeyEqual(const PasswordForm& left, |
302 const PasswordForm& right); | 296 const PasswordForm& right); |
303 | 297 |
304 // A comparator for the unique key. | 298 // A comparator for the unique key. |
305 struct LessThanUniqueKey { | 299 struct LessThanUniqueKey { |
306 bool operator()(const std::unique_ptr<PasswordForm>& left, | 300 bool operator()(const std::unique_ptr<PasswordForm>& left, |
307 const std::unique_ptr<PasswordForm>& right) const; | 301 const std::unique_ptr<PasswordForm>& right) const; |
308 }; | 302 }; |
309 | 303 |
310 // Converts a vector of possible usernames to string. | |
311 base::string16 OtherPossibleUsernamesToString( | |
312 const PossibleUsernamesVector& possible_usernames); | |
313 | |
314 // For testing. | 304 // For testing. |
315 std::ostream& operator<<(std::ostream& os, PasswordForm::Layout layout); | 305 std::ostream& operator<<(std::ostream& os, PasswordForm::Layout layout); |
316 std::ostream& operator<<(std::ostream& os, const PasswordForm& form); | 306 std::ostream& operator<<(std::ostream& os, const PasswordForm& form); |
317 std::ostream& operator<<(std::ostream& os, PasswordForm* form); | 307 std::ostream& operator<<(std::ostream& os, PasswordForm* form); |
318 | 308 |
319 } // namespace autofill | 309 } // namespace autofill |
320 | 310 |
321 #endif // COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_H__ | 311 #endif // COMPONENTS_AUTOFILL_CORE_COMMON_PASSWORD_FORM_H__ |
OLD | NEW |