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. 4 5 #include <ostream> 6 7 #include "base/strings/string16.h" 8 #include "base/strings/utf_string_conversions.h" 9 #include "components/autofill/core/common/password_form.h" 10 11 namespace autofill { 12 13 PasswordForm::PasswordForm() 14 : scheme(SCHEME_HTML), 15 password_autocomplete_set(true), 16 ssl_valid(false), 17 preferred(false), 18 blacklisted_by_user(false), 19 type(TYPE_MANUAL), 20 times_used(0), 21 use_additional_authentication(false), 22 is_zero_click(false) { 23 } 24 25 PasswordForm::~PasswordForm() { 26 } 27 28 bool PasswordForm::IsPublicSuffixMatch() const { 29 return !original_signon_realm.empty(); 30 } 31 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 && 50 type == form.type && 51 times_used == form.times_used && 52 use_additional_authentication == form.use_additional_authentication && 53 form_data == form.form_data && 54 display_name == form.display_name && 55 avatar_url == form.avatar_url && 56 federation_url == form.federation_url && 57 is_zero_click == form.is_zero_click; 58 } 59 60 bool PasswordForm::operator!=(const PasswordForm& form) const { 61 return !operator==(form); 62 } 63 64 std::ostream& operator<<(std::ostream& os, const PasswordForm& form) { 65 return os << "scheme: " << form.scheme 66 << " signon_realm: " << form.signon_realm 67 << " origin: " << form.origin 68 << " action: " << form.action 69 << " submit_element: " << base::UTF16ToUTF8(form.submit_element) 70 << " username_elem: " << base::UTF16ToUTF8(form.username_element) 71 << " username_value: " << base::UTF16ToUTF8(form.username_value) 72 << " password_elem: " << base::UTF16ToUTF8(form.password_element) 73 << " password_value: " << base::UTF16ToUTF8(form.password_value) 74 << " new_password_element: " 75 << base::UTF16ToUTF8(form.new_password_element) 76 << " new_password_value: " 77 << base::UTF16ToUTF8(form.new_password_value) 78 << " autocomplete_set:" << form.password_autocomplete_set 79 << " blacklisted: " << form.blacklisted_by_user 80 << " preferred: " << form.preferred 81 << " ssl_valid: " << form.ssl_valid 82 << " date_created: " << form.date_created.ToDoubleT() 83 << " date_synced: " << form.date_synced.ToDoubleT() 84 << " type: " << form.type 85 << " times_used: " << form.times_used 86 << " use additional authentication: " 87 << form.use_additional_authentication 88 << " form_data: " << form.form_data 89 << " display_name: " << base::UTF16ToUTF8(form.display_name) 90 << " avatar_url: " << form.avatar_url 91 << " federation_url: " << form.federation_url 92 << " is_zero_click: " << form.is_zero_click; 93 } 94 95 } // namespace autofill 96