password_form.cc revision 116680a4aac90f2aa7413d9095a592090648e557
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
11namespace autofill {
12
13PasswordForm::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}
23
24PasswordForm::~PasswordForm() {
25}
26
27bool PasswordForm::IsPublicSuffixMatch() const {
28  return !original_signon_realm.empty();
29}
30
31bool PasswordForm::operator==(const PasswordForm& form) const {
32  return signon_realm == form.signon_realm &&
33      origin == form.origin &&
34      action == form.action &&
35      submit_element == form.submit_element &&
36      username_element == form.username_element &&
37      username_value == form.username_value &&
38      other_possible_usernames == form.other_possible_usernames &&
39      password_element == form.password_element &&
40      password_value == form.password_value &&
41      password_autocomplete_set == form.password_autocomplete_set &&
42      new_password_element == form.new_password_element &&
43      new_password_value == form.new_password_value &&
44      ssl_valid == form.ssl_valid &&
45      preferred == form.preferred &&
46      date_created == form.date_created &&
47      date_synced == form.date_synced &&
48      blacklisted_by_user == form.blacklisted_by_user &&
49      type == form.type &&
50      times_used == form.times_used &&
51      use_additional_authentication == form.use_additional_authentication &&
52      form_data == form.form_data;
53}
54
55bool PasswordForm::operator!=(const PasswordForm& form) const {
56  return !operator==(form);
57}
58
59std::ostream& operator<<(std::ostream& os, const PasswordForm& form) {
60  return os << "scheme: " << form.scheme
61            << " signon_realm: " << form.signon_realm
62            << " origin: " << form.origin
63            << " action: " << form.action
64            << " submit_element: " << base::UTF16ToUTF8(form.submit_element)
65            << " username_elem: " << base::UTF16ToUTF8(form.username_element)
66            << " username_value: " << base::UTF16ToUTF8(form.username_value)
67            << " password_elem: " << base::UTF16ToUTF8(form.password_element)
68            << " password_value: " << base::UTF16ToUTF8(form.password_value)
69            << " new_password_element: "
70            << base::UTF16ToUTF8(form.new_password_element)
71            << " new_password_value: "
72            << base::UTF16ToUTF8(form.new_password_value)
73            << " autocomplete_set:" << form.password_autocomplete_set
74            << " blacklisted: " << form.blacklisted_by_user
75            << " preferred: " << form.preferred
76            << " ssl_valid: " << form.ssl_valid
77            << " date_created: " << form.date_created.ToDoubleT()
78            << " date_synced: " << form.date_synced.ToDoubleT()
79            << " type: " << form.type
80            << " times_used: " << form.times_used
81            << " use additional authentication: "
82            << form.use_additional_authentication
83            << " form_data: " << form.form_data;
84}
85
86}  // namespace autofill
87