Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / components / password_manager / core / browser / password_store_change.h
1 // Copyright 2014 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 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_CHANGE_H__
6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_CHANGE_H__
7
8 #include <vector>
9
10 #include "components/autofill/core/common/password_form.h"
11
12 class PasswordStoreChange {
13  public:
14   enum Type {
15     ADD,
16     UPDATE,
17     REMOVE,
18   };
19
20   PasswordStoreChange(Type type, const autofill::PasswordForm& form)
21       : type_(type), form_(form) {
22   }
23   virtual ~PasswordStoreChange() {}
24
25   Type type() const { return type_; }
26   const autofill::PasswordForm& form() const { return form_; }
27
28   bool operator==(const PasswordStoreChange& other) const {
29     return type() == other.type() &&
30            form().signon_realm == other.form().signon_realm &&
31            form().origin == other.form().origin &&
32            form().action == other.form().action &&
33            form().submit_element == other.form().submit_element &&
34            form().username_element == other.form().username_element &&
35            form().username_value == other.form().username_value &&
36            form().password_element == other.form().password_element &&
37            form().password_value == other.form().password_value &&
38            form().old_password_element == other.form().old_password_element &&
39            form().old_password_value == other.form().old_password_value &&
40            form().ssl_valid == other.form().ssl_valid &&
41            form().preferred == other.form().preferred &&
42            form().date_created == other.form().date_created &&
43            form().blacklisted_by_user == other.form().blacklisted_by_user &&
44            form().use_additional_authentication ==
45                other.form().use_additional_authentication;
46   }
47
48  private:
49   Type type_;
50   autofill::PasswordForm form_;
51 };
52
53 typedef std::vector<PasswordStoreChange> PasswordStoreChangeList;
54
55 #endif  // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_CHANGE_H_