password_form.cc revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks// Copyright 2013 The Chromium Authors. All rights reserved.
2227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks// Use of this source code is governed by a BSD-style license that can be
3227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks// found in the LICENSE file.
4227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
5227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks#include <ostream>
6227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
7227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks#include "base/strings/string16.h"
8227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks#include "base/strings/utf_string_conversions.h"
9227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks#include "components/autofill/core/common/password_form.h"
10227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
11227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksnamespace autofill {
12227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
13227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksPasswordForm::PasswordForm()
14227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks    : scheme(SCHEME_HTML),
15227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      password_autocomplete_set(true),
16227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      ssl_valid(false),
17227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      preferred(false),
18227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      blacklisted_by_user(false),
19227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      type(TYPE_MANUAL),
20227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      times_used(0),
21227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      use_additional_authentication(false),
22227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      is_zero_click(false) {
23227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks}
24227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
25227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksPasswordForm::~PasswordForm() {
26227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks}
27227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
28227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksbool PasswordForm::IsPublicSuffixMatch() const {
29227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks  return !original_signon_realm.empty();
30227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks}
31227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks
32227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksbool PasswordForm::operator==(const PasswordForm& form) const {
33227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks  return signon_realm == form.signon_realm &&
34227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      origin == form.origin &&
35227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      action == form.action &&
36227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      submit_element == form.submit_element &&
37227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      username_element == form.username_element &&
38227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      username_value == form.username_value &&
39227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      other_possible_usernames == form.other_possible_usernames &&
40227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      password_element == form.password_element &&
41227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      password_value == form.password_value &&
42227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      password_autocomplete_set == form.password_autocomplete_set &&
43227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      new_password_element == form.new_password_element &&
44227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      new_password_value == form.new_password_value &&
45227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      ssl_valid == form.ssl_valid &&
46227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      preferred == form.preferred &&
47227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      date_created == form.date_created &&
48227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks      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
60bool PasswordForm::operator!=(const PasswordForm& form) const {
61  return !operator==(form);
62}
63
64std::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