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.
7 #include "base/strings/string16.h"
8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h"
10 #include "components/autofill/core/common/password_form.h"
14 PasswordForm::PasswordForm()
15 : scheme(SCHEME_HTML),
16 password_autocomplete_set(true),
19 blacklisted_by_user(false),
22 is_zero_click(false) {
25 PasswordForm::~PasswordForm() {
28 bool PasswordForm::IsPublicSuffixMatch() const {
29 return !original_signon_realm.empty();
32 bool PasswordForm::operator==(const PasswordForm& form) const {
33 return signon_realm == form.signon_realm &&
34 origin == form.origin &&
35 action == form.action &&
36 submit_element == form.submit_element &&
37 username_element == form.username_element &&
38 username_value == form.username_value &&
39 other_possible_usernames == form.other_possible_usernames &&
40 password_element == form.password_element &&
41 password_value == form.password_value &&
42 password_autocomplete_set == form.password_autocomplete_set &&
43 new_password_element == form.new_password_element &&
44 new_password_value == form.new_password_value &&
45 ssl_valid == form.ssl_valid &&
46 preferred == form.preferred &&
47 date_created == form.date_created &&
48 date_synced == form.date_synced &&
49 blacklisted_by_user == form.blacklisted_by_user &&
51 times_used == form.times_used &&
52 form_data == form.form_data &&
53 display_name == form.display_name &&
54 avatar_url == form.avatar_url &&
55 federation_url == form.federation_url &&
56 is_zero_click == form.is_zero_click;
59 bool PasswordForm::operator!=(const PasswordForm& form) const {
60 return !operator==(form);
63 std::ostream& operator<<(std::ostream& os, const PasswordForm& form) {
64 return os << "scheme: " << form.scheme
65 << " signon_realm: " << form.signon_realm
66 << " origin: " << form.origin
67 << " action: " << form.action
68 << " submit_element: " << base::UTF16ToUTF8(form.submit_element)
69 << " username_elem: " << base::UTF16ToUTF8(form.username_element)
70 << " username_value: " << base::UTF16ToUTF8(form.username_value)
71 << " password_elem: " << base::UTF16ToUTF8(form.password_element)
72 << " password_value: " << base::UTF16ToUTF8(form.password_value)
73 << " new_password_element: "
74 << base::UTF16ToUTF8(form.new_password_element)
75 << " new_password_value: "
76 << base::UTF16ToUTF8(form.new_password_value)
77 << " other_possible_usernames: "
78 << JoinString(form.other_possible_usernames, '|')
79 << " autocomplete_set:" << form.password_autocomplete_set
80 << " blacklisted: " << form.blacklisted_by_user
81 << " preferred: " << form.preferred
82 << " ssl_valid: " << form.ssl_valid
83 << " date_created: " << form.date_created.ToDoubleT()
84 << " date_synced: " << form.date_synced.ToDoubleT()
85 << " type: " << form.type
86 << " times_used: " << form.times_used
87 << " form_data: " << form.form_data
88 << " display_name: " << base::UTF16ToUTF8(form.display_name)
89 << " avatar_url: " << form.avatar_url
90 << " federation_url: " << form.federation_url
91 << " is_zero_click: " << form.is_zero_click;
94 } // namespace autofill