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

Side by Side Diff: components/autofill/common/password_form_fill_data.h

Issue 15660018: [autofill] Add support for PSL domain matching for password autofill. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed compile error for browsertests Created 7 years, 6 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
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__
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698