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

Side by Side Diff: components/autofill/core/common/password_form.cc

Issue 2747733004: [Password Manager] Send username correction votes (Closed)
Patch Set: Minor changes Created 3 years, 9 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
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 #include <ostream> 5 #include <ostream>
6 #include <sstream> 6 #include <sstream>
7 7
8 #include "base/json/json_writer.h" 8 #include "base/json/json_writer.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "base/values.h" 12 #include "base/values.h"
13 #include "components/autofill/core/common/password_form.h" 13 #include "components/autofill/core/common/password_form.h"
14 14
15 namespace autofill { 15 namespace autofill {
16 16
17 namespace { 17 namespace {
18 18
19 base::string16 OtherPossibleUsernamesToString(
vabr (Chromium) 2017/03/16 21:00:42 You can also implement it as two pass processing:
kolos1 2017/03/17 14:09:34 Done.
20 PossibleUsernamesVector possible_usernames) {
vabr (Chromium) 2017/03/16 21:00:42 const PossibleUsernamesVector&
kolos1 2017/03/17 14:09:34 Done.
21 base::string16 result;
22 for (const PossibleUsernamePair pair : possible_usernames) {
vabr (Chromium) 2017/03/16 21:00:41 use const ref not const value: const PossibleUsern
kolos1 2017/03/17 14:09:34 Done.
23 if (!result.empty())
24 result += base::ASCIIToUTF16(", ");
25 result += pair.first + base::ASCIIToUTF16("+") + pair.second;
26 }
27 return result;
28 }
29
19 // Serializes a PasswordForm to a JSON object. Used only for logging in tests. 30 // Serializes a PasswordForm to a JSON object. Used only for logging in tests.
20 void PasswordFormToJSON(const PasswordForm& form, 31 void PasswordFormToJSON(const PasswordForm& form,
21 base::DictionaryValue* target) { 32 base::DictionaryValue* target) {
22 target->SetInteger("scheme", form.scheme); 33 target->SetInteger("scheme", form.scheme);
23 target->SetString("signon_realm", form.signon_realm); 34 target->SetString("signon_realm", form.signon_realm);
24 target->SetBoolean("is_public_suffix_match", form.is_public_suffix_match); 35 target->SetBoolean("is_public_suffix_match", form.is_public_suffix_match);
25 target->SetBoolean("is_affiliation_based_match", 36 target->SetBoolean("is_affiliation_based_match",
26 form.is_affiliation_based_match); 37 form.is_affiliation_based_match);
27 target->SetString("origin", form.origin.possibly_invalid_spec()); 38 target->SetString("origin", form.origin.possibly_invalid_spec());
28 target->SetString("action", form.action.possibly_invalid_spec()); 39 target->SetString("action", form.action.possibly_invalid_spec());
29 target->SetString("submit_element", form.submit_element); 40 target->SetString("submit_element", form.submit_element);
30 target->SetString("username_elem", form.username_element); 41 target->SetString("username_elem", form.username_element);
31 target->SetBoolean("username_marked_by_site", form.username_marked_by_site); 42 target->SetBoolean("username_marked_by_site", form.username_marked_by_site);
32 target->SetString("username_value", form.username_value); 43 target->SetString("username_value", form.username_value);
33 target->SetString("password_elem", form.password_element); 44 target->SetString("password_elem", form.password_element);
34 target->SetString("password_value", form.password_value); 45 target->SetString("password_value", form.password_value);
35 target->SetBoolean("password_value_is_default", 46 target->SetBoolean("password_value_is_default",
36 form.password_value_is_default); 47 form.password_value_is_default);
37 target->SetString("new_password_element", form.new_password_element); 48 target->SetString("new_password_element", form.new_password_element);
38 target->SetString("new_password_value", form.new_password_value); 49 target->SetString("new_password_value", form.new_password_value);
39 target->SetBoolean("new_password_value_is_default", 50 target->SetBoolean("new_password_value_is_default",
40 form.new_password_value_is_default); 51 form.new_password_value_is_default);
41 target->SetBoolean("new_password_marked_by_site", 52 target->SetBoolean("new_password_marked_by_site",
42 form.new_password_marked_by_site); 53 form.new_password_marked_by_site);
43 target->SetString("other_possible_usernames", 54 target->SetString(
44 base::JoinString(form.other_possible_usernames, 55 "other_possible_usernames",
45 base::ASCIIToUTF16("|"))); 56 OtherPossibleUsernamesToString(form.other_possible_usernames));
46 target->SetBoolean("blacklisted", form.blacklisted_by_user); 57 target->SetBoolean("blacklisted", form.blacklisted_by_user);
47 target->SetBoolean("preferred", form.preferred); 58 target->SetBoolean("preferred", form.preferred);
48 target->SetDouble("date_created", form.date_created.ToDoubleT()); 59 target->SetDouble("date_created", form.date_created.ToDoubleT());
49 target->SetDouble("date_synced", form.date_synced.ToDoubleT()); 60 target->SetDouble("date_synced", form.date_synced.ToDoubleT());
50 target->SetInteger("type", form.type); 61 target->SetInteger("type", form.type);
51 target->SetInteger("times_used", form.times_used); 62 target->SetInteger("times_used", form.times_used);
52 std::ostringstream form_data_string_stream; 63 std::ostringstream form_data_string_stream;
53 form_data_string_stream << form.form_data; 64 form_data_string_stream << form.form_data;
54 target->SetString("form_data", form_data_string_stream.str()); 65 target->SetString("form_data", form_data_string_stream.str());
55 target->SetInteger("generation_upload_status", form.generation_upload_status); 66 target->SetInteger("generation_upload_status", form.generation_upload_status);
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 base::JSONWriter::WriteWithOptions( 211 base::JSONWriter::WriteWithOptions(
201 form_json, base::JSONWriter::OPTIONS_PRETTY_PRINT, &form_as_string); 212 form_json, base::JSONWriter::OPTIONS_PRETTY_PRINT, &form_as_string);
202 base::TrimWhitespaceASCII(form_as_string, base::TRIM_ALL, &form_as_string); 213 base::TrimWhitespaceASCII(form_as_string, base::TRIM_ALL, &form_as_string);
203 return os << "PasswordForm(" << form_as_string << ")"; 214 return os << "PasswordForm(" << form_as_string << ")";
204 } 215 }
205 216
206 std::ostream& operator<<(std::ostream& os, PasswordForm* form) { 217 std::ostream& operator<<(std::ostream& os, PasswordForm* form) {
207 return os << "&" << *form; 218 return os << "&" << *form;
208 } 219 }
209 220
221 base::string16 OtherPossibleUsernamesToStr(const PasswordForm& form) {
222 return OtherPossibleUsernamesToString(form.other_possible_usernames);
223 }
224
210 } // namespace autofill 225 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698