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 12namespace password_manager { 13 14class PasswordStoreChange { 15 public: 16 enum Type { 17 ADD, 18 UPDATE, 19 REMOVE, 20 }; 21 22 PasswordStoreChange(Type type, const autofill::PasswordForm& form) 23 : type_(type), form_(form) { 24 } 25 virtual ~PasswordStoreChange() {} 26 27 Type type() const { return type_; } 28 const autofill::PasswordForm& form() const { return form_; } 29 30 bool operator==(const PasswordStoreChange& other) const { 31 return type() == other.type() && 32 form().signon_realm == other.form().signon_realm && 33 form().origin == other.form().origin && 34 form().action == other.form().action && 35 form().submit_element == other.form().submit_element && 36 form().username_element == other.form().username_element && 37 form().username_value == other.form().username_value && 38 form().password_element == other.form().password_element && 39 form().password_value == other.form().password_value && 40 form().new_password_element == other.form().new_password_element && 41 form().new_password_value == other.form().new_password_value && 42 form().ssl_valid == other.form().ssl_valid && 43 form().preferred == other.form().preferred && 44 form().date_created == other.form().date_created && 45 form().blacklisted_by_user == other.form().blacklisted_by_user && 46 form().use_additional_authentication == 47 other.form().use_additional_authentication; 48 } 49 50 private: 51 Type type_; 52 autofill::PasswordForm form_; 53}; 54 55typedef std::vector<PasswordStoreChange> PasswordStoreChangeList; 56 57} // namespace password_manager 58 59#endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_STORE_CHANGE_H_ 60