Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / components / autofill / core / common / password_form.cc
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/string_util.h"
9 #include "base/strings/utf_string_conversions.h"
10 #include "components/autofill/core/common/password_form.h"
11
12 namespace autofill {
13
14 PasswordForm::PasswordForm()
15     : scheme(SCHEME_HTML),
16       password_autocomplete_set(true),
17       ssl_valid(false),
18       preferred(false),
19       blacklisted_by_user(false),
20       type(TYPE_MANUAL),
21       times_used(0),
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       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;
57 }
58
59 bool PasswordForm::operator!=(const PasswordForm& form) const {
60   return !operator==(form);
61 }
62
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;
92 }
93
94 }  // namespace autofill