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

Side by Side Diff: chrome/browser/ui/webui/options/autofill_options_handler.cc

Issue 399003002: Parse full name set in chrome://settings/autofill (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: satisfy msvc? Created 6 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_profile.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/ui/webui/options/autofill_options_handler.h" 5 #include "chrome/browser/ui/webui/options/autofill_options_handler.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 18 matching lines...) Expand all
29 #include "grit/components_strings.h" 29 #include "grit/components_strings.h"
30 #include "grit/generated_resources.h" 30 #include "grit/generated_resources.h"
31 #include "third_party/libaddressinput/messages.h" 31 #include "third_party/libaddressinput/messages.h"
32 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui .h" 32 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui .h"
33 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui _component.h" 33 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/address_ui _component.h"
34 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/localizati on.h" 34 #include "third_party/libaddressinput/src/cpp/include/libaddressinput/localizati on.h"
35 #include "ui/base/l10n/l10n_util.h" 35 #include "ui/base/l10n/l10n_util.h"
36 #include "ui/base/webui/web_ui_util.h" 36 #include "ui/base/webui/web_ui_util.h"
37 37
38 using autofill::AutofillCountry; 38 using autofill::AutofillCountry;
39 using autofill::AutofillType;
39 using autofill::ServerFieldType; 40 using autofill::ServerFieldType;
40 using autofill::AutofillProfile; 41 using autofill::AutofillProfile;
41 using autofill::CreditCard; 42 using autofill::CreditCard;
42 using autofill::PersonalDataManager; 43 using autofill::PersonalDataManager;
43 using i18n::addressinput::AddressUiComponent; 44 using i18n::addressinput::AddressUiComponent;
44 45
45 namespace { 46 namespace {
46 47
47 const char kSettingsOrigin[] = "Chrome settings"; 48 const char kSettingsOrigin[] = "Chrome settings";
48 49
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
193 194
194 // |GetRawMultiInfo()| always returns at least one, potentially empty, item. 195 // |GetRawMultiInfo()| always returns at least one, potentially empty, item.
195 if (values.size() == 1 && values.front().empty()) 196 if (values.size() == 1 && values.front().empty())
196 return; 197 return;
197 198
198 for (size_t i = 0; i < values.size(); ++i) { 199 for (size_t i = 0; i < values.size(); ++i) {
199 (*list)->Set(i, new base::StringValue(values[i])); 200 (*list)->Set(i, new base::StringValue(values[i]));
200 } 201 }
201 } 202 }
202 203
203 // Set the multi-valued element for |type| from input |list| values. 204 // Converts a ListValue of StringValues to a vector of string16s.
204 void SetValueList(const base::ListValue* list, 205 void ListValueToStringVector(const base::ListValue& list,
205 ServerFieldType type, 206 std::vector<base::string16>* output) {
206 AutofillProfile* profile) { 207 output->resize(list.GetSize());
207 std::vector<base::string16> values(list->GetSize()); 208 for (size_t i = 0; i < list.GetSize(); ++i) {
208 for (size_t i = 0; i < list->GetSize(); ++i) {
209 base::string16 value; 209 base::string16 value;
210 if (list->GetString(i, &value)) 210 if (list.GetString(i, &value))
211 values[i] = value; 211 (*output)[i].swap(value);
212 } 212 }
213 profile->SetRawMultiInfo(type, values);
214 } 213 }
215 214
216 // Pulls the phone number |index|, |phone_number_list|, and |country_code| from 215 // Pulls the phone number |index|, |phone_number_list|, and |country_code| from
217 // the |args| input. 216 // the |args| input.
218 void ExtractPhoneNumberInformation(const base::ListValue* args, 217 void ExtractPhoneNumberInformation(const base::ListValue* args,
219 size_t* index, 218 size_t* index,
220 const base::ListValue** phone_number_list, 219 const base::ListValue** phone_number_list,
221 std::string* country_code) { 220 std::string* country_code) {
222 // Retrieve index as a |double|, as that is how it comes across from 221 // Retrieve index as a |double|, as that is how it comes across from
223 // JavaScript. 222 // JavaScript.
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 std::string guid; 593 std::string guid;
595 if (!args->GetString(arg_counter++, &guid)) { 594 if (!args->GetString(arg_counter++, &guid)) {
596 NOTREACHED(); 595 NOTREACHED();
597 return; 596 return;
598 } 597 }
599 598
600 AutofillProfile profile(guid, kSettingsOrigin); 599 AutofillProfile profile(guid, kSettingsOrigin);
601 600
602 base::string16 value; 601 base::string16 value;
603 const base::ListValue* list_value; 602 const base::ListValue* list_value;
604 if (args->GetList(arg_counter++, &list_value)) 603 if (args->GetList(arg_counter++, &list_value)) {
605 SetValueList(list_value, autofill::NAME_FULL, &profile); 604 std::vector<base::string16> values;
605 ListValueToStringVector(*list_value, &values);
606 profile.SetMultiInfo(AutofillType(autofill::NAME_FULL),
607 values,
608 g_browser_process->GetApplicationLocale());
609 }
606 610
607 if (args->GetString(arg_counter++, &value)) 611 if (args->GetString(arg_counter++, &value))
608 profile.SetRawInfo(autofill::COMPANY_NAME, value); 612 profile.SetRawInfo(autofill::COMPANY_NAME, value);
609 613
610 if (args->GetString(arg_counter++, &value)) 614 if (args->GetString(arg_counter++, &value))
611 profile.SetRawInfo(autofill::ADDRESS_HOME_STREET_ADDRESS, value); 615 profile.SetRawInfo(autofill::ADDRESS_HOME_STREET_ADDRESS, value);
612 616
613 if (args->GetString(arg_counter++, &value)) 617 if (args->GetString(arg_counter++, &value))
614 profile.SetRawInfo(autofill::ADDRESS_HOME_DEPENDENT_LOCALITY, value); 618 profile.SetRawInfo(autofill::ADDRESS_HOME_DEPENDENT_LOCALITY, value);
615 619
616 if (args->GetString(arg_counter++, &value)) 620 if (args->GetString(arg_counter++, &value))
617 profile.SetRawInfo(autofill::ADDRESS_HOME_CITY, value); 621 profile.SetRawInfo(autofill::ADDRESS_HOME_CITY, value);
618 622
619 if (args->GetString(arg_counter++, &value)) 623 if (args->GetString(arg_counter++, &value))
620 profile.SetRawInfo(autofill::ADDRESS_HOME_STATE, value); 624 profile.SetRawInfo(autofill::ADDRESS_HOME_STATE, value);
621 625
622 if (args->GetString(arg_counter++, &value)) 626 if (args->GetString(arg_counter++, &value))
623 profile.SetRawInfo(autofill::ADDRESS_HOME_ZIP, value); 627 profile.SetRawInfo(autofill::ADDRESS_HOME_ZIP, value);
624 628
625 if (args->GetString(arg_counter++, &value)) 629 if (args->GetString(arg_counter++, &value))
626 profile.SetRawInfo(autofill::ADDRESS_HOME_SORTING_CODE, value); 630 profile.SetRawInfo(autofill::ADDRESS_HOME_SORTING_CODE, value);
627 631
628 if (args->GetString(arg_counter++, &value)) 632 if (args->GetString(arg_counter++, &value))
629 profile.SetRawInfo(autofill::ADDRESS_HOME_COUNTRY, value); 633 profile.SetRawInfo(autofill::ADDRESS_HOME_COUNTRY, value);
630 634
631 if (args->GetList(arg_counter++, &list_value)) 635 if (args->GetList(arg_counter++, &list_value)) {
632 SetValueList(list_value, autofill::PHONE_HOME_WHOLE_NUMBER, &profile); 636 std::vector<base::string16> values;
637 ListValueToStringVector(*list_value, &values);
638 profile.SetRawMultiInfo(autofill::PHONE_HOME_WHOLE_NUMBER, values);
639 }
633 640
634 if (args->GetList(arg_counter++, &list_value)) 641 if (args->GetList(arg_counter++, &list_value)) {
635 SetValueList(list_value, autofill::EMAIL_ADDRESS, &profile); 642 std::vector<base::string16> values;
643 ListValueToStringVector(*list_value, &values);
644 profile.SetRawMultiInfo(autofill::EMAIL_ADDRESS, values);
645 }
636 646
637 if (args->GetString(arg_counter++, &value)) 647 if (args->GetString(arg_counter++, &value))
638 profile.set_language_code(base::UTF16ToUTF8(value)); 648 profile.set_language_code(base::UTF16ToUTF8(value));
639 649
640 if (!base::IsValidGUID(profile.guid())) { 650 if (!base::IsValidGUID(profile.guid())) {
641 profile.set_guid(base::GenerateGUID()); 651 profile.set_guid(base::GenerateGUID());
642 personal_data_->AddProfile(profile); 652 personal_data_->AddProfile(profile);
643 } else { 653 } else {
644 personal_data_->UpdateProfile(profile); 654 personal_data_->UpdateProfile(profile);
645 } 655 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 696
687 web_ui()->CallJavascriptFunction( 697 web_ui()->CallJavascriptFunction(
688 "AutofillEditAddressOverlay.setValidatedPhoneNumbers", *list_value); 698 "AutofillEditAddressOverlay.setValidatedPhoneNumbers", *list_value);
689 } 699 }
690 700
691 bool AutofillOptionsHandler::IsPersonalDataLoaded() const { 701 bool AutofillOptionsHandler::IsPersonalDataLoaded() const {
692 return personal_data_ && personal_data_->IsDataLoaded(); 702 return personal_data_ && personal_data_->IsDataLoaded();
693 } 703 }
694 704
695 } // namespace options 705 } // namespace options
OLDNEW
« no previous file with comments | « no previous file | components/autofill/core/browser/autofill_profile.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698