| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/strings/string_util.h" | 5 #include "base/strings/string_util.h" |
| 6 #include "base/strings/utf_string_conversions.h" | 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "components/password_manager/core/browser/password_form_data.h" | 7 #include "components/password_manager/core/browser/password_form_data.h" |
| 8 | 8 |
| 9 using autofill::PasswordForm; | 9 using autofill::PasswordForm; |
| 10 | 10 |
| 11 namespace password_manager { | 11 namespace password_manager { |
| 12 | 12 |
| 13 PasswordForm* CreatePasswordFormFromData(const PasswordFormData& form_data) { | 13 scoped_ptr<PasswordForm> CreatePasswordFormFromData( |
| 14 PasswordForm* form = new PasswordForm(); | 14 const PasswordFormData& form_data) { |
| 15 scoped_ptr<PasswordForm> form(new PasswordForm()); |
| 15 form->scheme = form_data.scheme; | 16 form->scheme = form_data.scheme; |
| 16 form->preferred = form_data.preferred; | 17 form->preferred = form_data.preferred; |
| 17 form->ssl_valid = form_data.ssl_valid; | 18 form->ssl_valid = form_data.ssl_valid; |
| 18 form->date_created = base::Time::FromDoubleT(form_data.creation_time); | 19 form->date_created = base::Time::FromDoubleT(form_data.creation_time); |
| 19 if (form_data.signon_realm) | 20 if (form_data.signon_realm) |
| 20 form->signon_realm = std::string(form_data.signon_realm); | 21 form->signon_realm = std::string(form_data.signon_realm); |
| 21 if (form_data.origin) | 22 if (form_data.origin) |
| 22 form->origin = GURL(form_data.origin); | 23 form->origin = GURL(form_data.origin); |
| 23 if (form_data.action) | 24 if (form_data.action) |
| 24 form->action = GURL(form_data.action); | 25 form->action = GURL(form_data.action); |
| 25 if (form_data.submit_element) | 26 if (form_data.submit_element) |
| 26 form->submit_element = base::WideToUTF16(form_data.submit_element); | 27 form->submit_element = base::WideToUTF16(form_data.submit_element); |
| 27 if (form_data.username_element) | 28 if (form_data.username_element) |
| 28 form->username_element = base::WideToUTF16(form_data.username_element); | 29 form->username_element = base::WideToUTF16(form_data.username_element); |
| 29 if (form_data.password_element) | 30 if (form_data.password_element) |
| 30 form->password_element = base::WideToUTF16(form_data.password_element); | 31 form->password_element = base::WideToUTF16(form_data.password_element); |
| 31 if (form_data.username_value) { | 32 if (form_data.username_value) { |
| 32 form->username_value = base::WideToUTF16(form_data.username_value); | 33 form->username_value = base::WideToUTF16(form_data.username_value); |
| 33 if (form_data.password_value) | 34 if (form_data.password_value) |
| 34 form->password_value = base::WideToUTF16(form_data.password_value); | 35 form->password_value = base::WideToUTF16(form_data.password_value); |
| 35 } else { | 36 } else { |
| 36 form->blacklisted_by_user = true; | 37 form->blacklisted_by_user = true; |
| 37 } | 38 } |
| 38 return form; | 39 return form.Pass(); |
| 39 } | 40 } |
| 40 | 41 |
| 41 typedef std::set<const autofill::PasswordForm*> SetOfForms; | 42 typedef std::set<const autofill::PasswordForm*> SetOfForms; |
| 42 | 43 |
| 43 bool ContainsSamePasswordFormsPtr(const std::vector<PasswordForm*>& first, | 44 bool ContainsSamePasswordFormsPtr(const std::vector<PasswordForm*>& first, |
| 44 const std::vector<PasswordForm*>& second) { | 45 const std::vector<PasswordForm*>& second) { |
| 45 if (first.size() != second.size()) | 46 if (first.size() != second.size()) |
| 46 return false; | 47 return false; |
| 47 | 48 |
| 48 // TODO(cramya): As per b/7079906, the STLport of Android causes a crash | 49 // TODO(cramya): As per b/7079906, the STLport of Android causes a crash |
| (...skipping 16 matching lines...) Expand all Loading... |
| 65 } | 66 } |
| 66 } | 67 } |
| 67 if (!found_match) { | 68 if (!found_match) { |
| 68 LOG(ERROR) << "No match for:" << std::endl << *actual; | 69 LOG(ERROR) << "No match for:" << std::endl << *actual; |
| 69 return false; | 70 return false; |
| 70 } | 71 } |
| 71 } | 72 } |
| 72 return true; | 73 return true; |
| 73 } | 74 } |
| 74 | 75 |
| 75 bool ContainsSamePasswordForms(std::vector<autofill::PasswordForm>& first, | |
| 76 std::vector<autofill::PasswordForm>& second) { | |
| 77 std::vector<PasswordForm*> first_ptr; | |
| 78 for (unsigned int i = 0; i < first.size(); ++i) { | |
| 79 first_ptr.push_back(&first[i]); | |
| 80 } | |
| 81 std::vector<PasswordForm*> second_ptr; | |
| 82 for (unsigned int i = 0; i < second.size(); ++i) { | |
| 83 second_ptr.push_back(&second[i]); | |
| 84 } | |
| 85 return ContainsSamePasswordFormsPtr(first_ptr, second_ptr); | |
| 86 } | |
| 87 | |
| 88 } // namespace password_manager | 76 } // namespace password_manager |
| OLD | NEW |