Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: components/password_manager/core/browser/password_form_data.cc

Issue 866983003: GetLoginsRequest: Use ScopedVector to express ownership of forms (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@324291_scopedvector
Patch Set: Second fix of the rebase Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698