| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/extensions/api/autofill_private/autofill_util.h" | 5 #include "chrome/browser/extensions/api/autofill_private/autofill_util.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
| 8 | 9 |
| 9 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| 10 #include "base/strings/string_split.h" | 11 #include "base/strings/string_split.h" |
| 11 #include "base/strings/utf_string_conversions.h" | 12 #include "base/strings/utf_string_conversions.h" |
| 12 #include "chrome/browser/browser_process.h" | 13 #include "chrome/browser/browser_process.h" |
| 13 #include "chrome/browser/extensions/api/settings_private/prefs_util.h" | 14 #include "chrome/browser/extensions/api/settings_private/prefs_util.h" |
| 14 #include "chrome/browser/profiles/profile.h" | 15 #include "chrome/browser/profiles/profile.h" |
| 15 #include "chrome/common/extensions/api/autofill_private.h" | 16 #include "chrome/common/extensions/api/autofill_private.h" |
| 16 #include "chrome/common/pref_names.h" | 17 #include "chrome/common/pref_names.h" |
| 17 #include "components/autofill/core/browser/autofill_profile.h" | 18 #include "components/autofill/core/browser/autofill_profile.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 37 values.push_back( | 38 values.push_back( |
| 38 profile.GetInfo(autofill::AutofillType(type), | 39 profile.GetInfo(autofill::AutofillType(type), |
| 39 g_browser_process->GetApplicationLocale())); | 40 g_browser_process->GetApplicationLocale())); |
| 40 } else { | 41 } else { |
| 41 values.push_back(profile.GetRawInfo(type)); | 42 values.push_back(profile.GetRawInfo(type)); |
| 42 } | 43 } |
| 43 | 44 |
| 44 // |Get[Raw]MultiInfo()| always returns at least one, potentially empty, item. | 45 // |Get[Raw]MultiInfo()| always returns at least one, potentially empty, item. |
| 45 // If this is the case, there is no info to return, so return an empty vector. | 46 // If this is the case, there is no info to return, so return an empty vector. |
| 46 if (values.size() == 1 && values.front().empty()) | 47 if (values.size() == 1 && values.front().empty()) |
| 47 return list.Pass(); | 48 return list; |
| 48 | 49 |
| 49 for (const base::string16& value16 : values) | 50 for (const base::string16& value16 : values) |
| 50 list->push_back(base::UTF16ToUTF8(value16)); | 51 list->push_back(base::UTF16ToUTF8(value16)); |
| 51 | 52 |
| 52 return list.Pass(); | 53 return list; |
| 53 } | 54 } |
| 54 | 55 |
| 55 // Gets the string corresponding to |type| from |profile|. | 56 // Gets the string corresponding to |type| from |profile|. |
| 56 scoped_ptr<std::string> GetStringFromProfile( | 57 scoped_ptr<std::string> GetStringFromProfile( |
| 57 const autofill::AutofillProfile& profile, | 58 const autofill::AutofillProfile& profile, |
| 58 const autofill::ServerFieldType& type) { | 59 const autofill::ServerFieldType& type) { |
| 59 return make_scoped_ptr( | 60 return make_scoped_ptr( |
| 60 new std::string(base::UTF16ToUTF8(profile.GetRawInfo(type)))); | 61 new std::string(base::UTF16ToUTF8(profile.GetRawInfo(type)))); |
| 61 } | 62 } |
| 62 | 63 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 base::SplitStringUsingSubstr(label, separator, &label_pieces); | 99 base::SplitStringUsingSubstr(label, separator, &label_pieces); |
| 99 | 100 |
| 100 // Create address metadata and add it to |address|. | 101 // Create address metadata and add it to |address|. |
| 101 scoped_ptr<autofill_private::AutofillMetadata> | 102 scoped_ptr<autofill_private::AutofillMetadata> |
| 102 metadata(new autofill_private::AutofillMetadata); | 103 metadata(new autofill_private::AutofillMetadata); |
| 103 metadata->summary_label = base::UTF16ToUTF8(label_pieces[0]); | 104 metadata->summary_label = base::UTF16ToUTF8(label_pieces[0]); |
| 104 metadata->summary_sublabel.reset(new std::string(base::UTF16ToUTF8( | 105 metadata->summary_sublabel.reset(new std::string(base::UTF16ToUTF8( |
| 105 label.substr(label_pieces[0].size())))); | 106 label.substr(label_pieces[0].size())))); |
| 106 metadata->is_local.reset(new bool( | 107 metadata->is_local.reset(new bool( |
| 107 profile.record_type() == autofill::AutofillProfile::LOCAL_PROFILE)); | 108 profile.record_type() == autofill::AutofillProfile::LOCAL_PROFILE)); |
| 108 address->metadata = metadata.Pass(); | 109 address->metadata = std::move(metadata); |
| 109 | 110 |
| 110 return address.Pass(); | 111 return address; |
| 111 } | 112 } |
| 112 | 113 |
| 113 scoped_ptr<autofill_private::CreditCardEntry> CreditCardToCreditCardEntry( | 114 scoped_ptr<autofill_private::CreditCardEntry> CreditCardToCreditCardEntry( |
| 114 const autofill::CreditCard& credit_card) { | 115 const autofill::CreditCard& credit_card) { |
| 115 scoped_ptr<autofill_private::CreditCardEntry> | 116 scoped_ptr<autofill_private::CreditCardEntry> |
| 116 card(new autofill_private::CreditCardEntry); | 117 card(new autofill_private::CreditCardEntry); |
| 117 | 118 |
| 118 // Add all credit card fields to the entry. | 119 // Add all credit card fields to the entry. |
| 119 card->guid.reset(new std::string(credit_card.guid())); | 120 card->guid.reset(new std::string(credit_card.guid())); |
| 120 card->name.reset(new std::string(base::UTF16ToUTF8( | 121 card->name.reset(new std::string(base::UTF16ToUTF8( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 131 metadata(new autofill_private::AutofillMetadata); | 132 metadata(new autofill_private::AutofillMetadata); |
| 132 std::pair<base::string16, base::string16> label_pieces = | 133 std::pair<base::string16, base::string16> label_pieces = |
| 133 credit_card.LabelPieces(); | 134 credit_card.LabelPieces(); |
| 134 metadata->summary_label = base::UTF16ToUTF8(label_pieces.first); | 135 metadata->summary_label = base::UTF16ToUTF8(label_pieces.first); |
| 135 metadata->summary_sublabel.reset(new std::string(base::UTF16ToUTF8( | 136 metadata->summary_sublabel.reset(new std::string(base::UTF16ToUTF8( |
| 136 label_pieces.second))); | 137 label_pieces.second))); |
| 137 metadata->is_local.reset(new bool( | 138 metadata->is_local.reset(new bool( |
| 138 credit_card.record_type() == autofill::CreditCard::LOCAL_CARD)); | 139 credit_card.record_type() == autofill::CreditCard::LOCAL_CARD)); |
| 139 metadata->is_cached.reset(new bool( | 140 metadata->is_cached.reset(new bool( |
| 140 credit_card.record_type() == autofill::CreditCard::FULL_SERVER_CARD)); | 141 credit_card.record_type() == autofill::CreditCard::FULL_SERVER_CARD)); |
| 141 card->metadata = metadata.Pass(); | 142 card->metadata = std::move(metadata); |
| 142 | 143 |
| 143 return card.Pass(); | 144 return card; |
| 144 } | 145 } |
| 145 | 146 |
| 146 } // namespace | 147 } // namespace |
| 147 | 148 |
| 148 namespace extensions { | 149 namespace extensions { |
| 149 | 150 |
| 150 namespace autofill_util { | 151 namespace autofill_util { |
| 151 | 152 |
| 152 scoped_ptr<AddressEntryList> GenerateAddressList( | 153 scoped_ptr<AddressEntryList> GenerateAddressList( |
| 153 const autofill::PersonalDataManager& personal_data) { | 154 const autofill::PersonalDataManager& personal_data) { |
| 154 const std::vector<autofill::AutofillProfile*>& profiles = | 155 const std::vector<autofill::AutofillProfile*>& profiles = |
| 155 personal_data.GetProfiles(); | 156 personal_data.GetProfiles(); |
| 156 std::vector<base::string16> labels; | 157 std::vector<base::string16> labels; |
| 157 autofill::AutofillProfile::CreateDifferentiatingLabels( | 158 autofill::AutofillProfile::CreateDifferentiatingLabels( |
| 158 profiles, | 159 profiles, |
| 159 g_browser_process->GetApplicationLocale(), | 160 g_browser_process->GetApplicationLocale(), |
| 160 &labels); | 161 &labels); |
| 161 DCHECK_EQ(labels.size(), profiles.size()); | 162 DCHECK_EQ(labels.size(), profiles.size()); |
| 162 | 163 |
| 163 scoped_ptr<AddressEntryList> list(new AddressEntryList); | 164 scoped_ptr<AddressEntryList> list(new AddressEntryList); |
| 164 for (size_t i = 0; i < profiles.size(); ++i) { | 165 for (size_t i = 0; i < profiles.size(); ++i) { |
| 165 autofill_private::AddressEntry* entry = | 166 autofill_private::AddressEntry* entry = |
| 166 ProfileToAddressEntry(*profiles[i], labels[i]).release(); | 167 ProfileToAddressEntry(*profiles[i], labels[i]).release(); |
| 167 list->push_back(linked_ptr<autofill_private::AddressEntry>(entry)); | 168 list->push_back(linked_ptr<autofill_private::AddressEntry>(entry)); |
| 168 } | 169 } |
| 169 | 170 |
| 170 return list.Pass(); | 171 return list; |
| 171 } | 172 } |
| 172 | 173 |
| 173 scoped_ptr<CreditCardEntryList> GenerateCreditCardList( | 174 scoped_ptr<CreditCardEntryList> GenerateCreditCardList( |
| 174 const autofill::PersonalDataManager& personal_data) { | 175 const autofill::PersonalDataManager& personal_data) { |
| 175 const std::vector<autofill::CreditCard*>& cards = | 176 const std::vector<autofill::CreditCard*>& cards = |
| 176 personal_data.GetCreditCards(); | 177 personal_data.GetCreditCards(); |
| 177 | 178 |
| 178 scoped_ptr<CreditCardEntryList> list(new CreditCardEntryList); | 179 scoped_ptr<CreditCardEntryList> list(new CreditCardEntryList); |
| 179 for (const autofill::CreditCard* card : cards) { | 180 for (const autofill::CreditCard* card : cards) { |
| 180 autofill_private::CreditCardEntry* entry = | 181 autofill_private::CreditCardEntry* entry = |
| 181 CreditCardToCreditCardEntry(*card).release(); | 182 CreditCardToCreditCardEntry(*card).release(); |
| 182 list->push_back(linked_ptr<autofill_private::CreditCardEntry>(entry)); | 183 list->push_back(linked_ptr<autofill_private::CreditCardEntry>(entry)); |
| 183 } | 184 } |
| 184 | 185 |
| 185 return list.Pass(); | 186 return list; |
| 186 } | 187 } |
| 187 | 188 |
| 188 } // namespace autofill_util | 189 } // namespace autofill_util |
| 189 | 190 |
| 190 } // namespace extensions | 191 } // namespace extensions |
| OLD | NEW |