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

Unified Diff: chrome/browser/ui/webui/options2/autofill_options_handler.cc

Issue 10837331: Options: s/options2/options/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: wut Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/options2/autofill_options_handler.cc
diff --git a/chrome/browser/ui/webui/options2/autofill_options_handler.cc b/chrome/browser/ui/webui/options2/autofill_options_handler.cc
deleted file mode 100644
index 6db1ec688ddf9eada723fd83348d6ed0a8bab9a6..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/webui/options2/autofill_options_handler.cc
+++ /dev/null
@@ -1,629 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/browser/ui/webui/options2/autofill_options_handler.h"
-
-#include <vector>
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/guid.h"
-#include "base/logging.h"
-#include "base/string16.h"
-#include "base/string_number_conversions.h"
-#include "base/utf_string_conversions.h"
-#include "base/values.h"
-#include "chrome/browser/autofill/autofill_country.h"
-#include "chrome/browser/autofill/autofill_profile.h"
-#include "chrome/browser/autofill/credit_card.h"
-#include "chrome/browser/autofill/personal_data_manager.h"
-#include "chrome/browser/autofill/personal_data_manager_factory.h"
-#include "chrome/browser/autofill/phone_number_i18n.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/ui/webui/web_ui_util.h"
-#include "chrome/common/url_constants.h"
-#include "content/public/browser/web_ui.h"
-#include "grit/generated_resources.h"
-#include "grit/webkit_resources.h"
-#include "ui/base/l10n/l10n_util.h"
-
-namespace {
-
-// Converts a credit card type to the appropriate resource ID of the CC icon.
-int CreditCardTypeToResourceID(const std::string& type) {
- if (type == kAmericanExpressCard)
- return IDR_AUTOFILL_CC_AMEX;
- else if (type == kDinersCard)
- return IDR_AUTOFILL_CC_DINERS;
- else if (type == kDiscoverCard)
- return IDR_AUTOFILL_CC_DISCOVER;
- else if (type == kGenericCard)
- return IDR_AUTOFILL_CC_GENERIC;
- else if (type == kJCBCard)
- return IDR_AUTOFILL_CC_JCB;
- else if (type == kMasterCard)
- return IDR_AUTOFILL_CC_MASTERCARD;
- else if (type == kSoloCard)
- return IDR_AUTOFILL_CC_SOLO;
- else if (type == kVisaCard)
- return IDR_AUTOFILL_CC_VISA;
-
- NOTREACHED();
- return 0;
-}
-
-// Converts a credit card type to the appropriate localized card type.
-string16 LocalizedCreditCardType(const std::string& type) {
- if (type == kAmericanExpressCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_AMEX);
- else if (type == kDinersCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_DINERS);
- else if (type == kDiscoverCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_DISCOVER);
- else if (type == kGenericCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_GENERIC);
- else if (type == kJCBCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_JCB);
- else if (type == kMasterCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_MASTERCARD);
- else if (type == kSoloCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_SOLO);
- else if (type == kVisaCard)
- return l10n_util::GetStringUTF16(IDS_AUTOFILL_CC_VISA);
-
- NOTREACHED();
- return string16();
-}
-
-// Returns a dictionary that maps country codes to data for the country.
-DictionaryValue* GetCountryData() {
- std::string app_locale = AutofillCountry::ApplicationLocale();
- std::vector<std::string> country_codes;
- AutofillCountry::GetAvailableCountries(&country_codes);
-
- DictionaryValue* country_data = new DictionaryValue();
- for (size_t i = 0; i < country_codes.size(); ++i) {
- const AutofillCountry country(country_codes[i], app_locale);
-
- DictionaryValue* details = new DictionaryValue();
- details->SetString("name", country.name());
- details->SetString("postalCodeLabel", country.postal_code_label());
- details->SetString("stateLabel", country.state_label());
-
- country_data->Set(country.country_code(), details);
- }
-
- return country_data;
-}
-
-// Get the multi-valued element for |type| and return it in |ListValue| form.
-void GetValueList(const AutofillProfile& profile,
- AutofillFieldType type,
- scoped_ptr<ListValue>* list) {
- list->reset(new ListValue);
-
- std::vector<string16> values;
- profile.GetMultiInfo(type, &values);
-
- // |GetMultiInfo()| always returns at least one, potentially empty, item.
- if (values.size() == 1 && values.front().empty())
- return;
-
- for (size_t i = 0; i < values.size(); ++i) {
- (*list)->Set(i, Value::CreateStringValue(values[i]));
- }
-}
-
-// Set the multi-valued element for |type| from input |list| values.
-void SetValueList(const ListValue* list,
- AutofillFieldType type,
- AutofillProfile* profile) {
- std::vector<string16> values(list->GetSize());
- for (size_t i = 0; i < list->GetSize(); ++i) {
- string16 value;
- if (list->GetString(i, &value))
- values[i] = value;
- }
- profile->SetMultiInfo(type, values);
-}
-
-// Get the multi-valued element for |type| and return it in |ListValue| form.
-void GetNameList(const AutofillProfile& profile,
- scoped_ptr<ListValue>* names) {
- names->reset(new ListValue);
-
- std::vector<string16> first_names;
- std::vector<string16> middle_names;
- std::vector<string16> last_names;
- profile.GetMultiInfo(NAME_FIRST, &first_names);
- profile.GetMultiInfo(NAME_MIDDLE, &middle_names);
- profile.GetMultiInfo(NAME_LAST, &last_names);
- DCHECK_EQ(first_names.size(), middle_names.size());
- DCHECK_EQ(first_names.size(), last_names.size());
-
- // |GetMultiInfo()| always returns at least one, potentially empty, item.
- if (first_names.size() == 1 && first_names.front().empty() &&
- middle_names.front().empty() && last_names.front().empty()) {
- return;
- }
-
- for (size_t i = 0; i < first_names.size(); ++i) {
- ListValue* name = new ListValue; // owned by |list|
- name->Set(0, Value::CreateStringValue(first_names[i]));
- name->Set(1, Value::CreateStringValue(middle_names[i]));
- name->Set(2, Value::CreateStringValue(last_names[i]));
- (*names)->Set(i, name);
- }
-}
-
-// Set the multi-valued element for |type| from input |list| values.
-void SetNameList(const ListValue* names, AutofillProfile* profile) {
- const size_t size = names->GetSize();
- std::vector<string16> first_names(size);
- std::vector<string16> middle_names(size);
- std::vector<string16> last_names(size);
-
- for (size_t i = 0; i < size; ++i) {
- const ListValue* name;
- bool success = names->GetList(i, &name);
- DCHECK(success);
-
- string16 first_name;
- success = name->GetString(0, &first_name);
- DCHECK(success);
- first_names[i] = first_name;
-
- string16 middle_name;
- success = name->GetString(1, &middle_name);
- DCHECK(success);
- middle_names[i] = middle_name;
-
- string16 last_name;
- success = name->GetString(2, &last_name);
- DCHECK(success);
- last_names[i] = last_name;
- }
-
- profile->SetMultiInfo(NAME_FIRST, first_names);
- profile->SetMultiInfo(NAME_MIDDLE, middle_names);
- profile->SetMultiInfo(NAME_LAST, last_names);
-}
-
-// Pulls the phone number |index|, |phone_number_list|, and |country_code| from
-// the |args| input.
-void ExtractPhoneNumberInformation(const ListValue* args,
- size_t* index,
- const ListValue** phone_number_list,
- std::string* country_code) {
- // Retrieve index as a |double|, as that is how it comes across from
- // JavaScript.
- double number = 0.0;
- if (!args->GetDouble(0, &number)) {
- NOTREACHED();
- return;
- }
- *index = number;
-
- if (!args->GetList(1, phone_number_list)) {
- NOTREACHED();
- return;
- }
-
- if (!args->GetString(2, country_code)) {
- NOTREACHED();
- return;
- }
-}
-
-// Searches the |list| for the value at |index|. If this value is present
-// in any of the rest of the list, then the item (at |index|) is removed.
-// The comparison of phone number values is done on normalized versions of the
-// phone number values.
-void RemoveDuplicatePhoneNumberAtIndex(size_t index,
- const std::string& country_code,
- ListValue* list) {
- string16 new_value;
- if (!list->GetString(index, &new_value)) {
- NOTREACHED() << "List should have a value at index " << index;
- return;
- }
-
- bool is_duplicate = false;
- for (size_t i = 0; i < list->GetSize() && !is_duplicate; ++i) {
- if (i == index)
- continue;
-
- string16 existing_value;
- if (!list->GetString(i, &existing_value)) {
- NOTREACHED() << "List should have a value at index " << i;
- continue;
- }
- is_duplicate = autofill_i18n::PhoneNumbersMatch(new_value,
- existing_value,
- country_code);
- }
-
- if (is_duplicate)
- list->Remove(index, NULL);
-}
-
-scoped_ptr<ListValue> ValidatePhoneArguments(const ListValue* args) {
- size_t index = 0;
- std::string country_code;
- const ListValue* extracted_list = NULL;
- ExtractPhoneNumberInformation(args, &index, &extracted_list, &country_code);
-
- scoped_ptr<ListValue> list(extracted_list->DeepCopy());
- RemoveDuplicatePhoneNumberAtIndex(index, country_code, list.get());
- return list.Pass();
-}
-
-} // namespace
-
-namespace options {
-
-AutofillOptionsHandler::AutofillOptionsHandler()
- : personal_data_(NULL) {
-}
-
-AutofillOptionsHandler::~AutofillOptionsHandler() {
- if (personal_data_)
- personal_data_->RemoveObserver(this);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// OptionsPageUIHandler implementation:
-void AutofillOptionsHandler::GetLocalizedValues(
- DictionaryValue* localized_strings) {
- DCHECK(localized_strings);
-
- static OptionsStringResource resources[] = {
- { "autofillAddresses", IDS_AUTOFILL_ADDRESSES_GROUP_NAME },
- { "autofillCreditCards", IDS_AUTOFILL_CREDITCARDS_GROUP_NAME },
- { "autofillAddAddress", IDS_AUTOFILL_ADD_ADDRESS_BUTTON },
- { "autofillAddCreditCard", IDS_AUTOFILL_ADD_CREDITCARD_BUTTON },
- { "autofillEditProfileButton", IDS_AUTOFILL_EDIT_PROFILE_BUTTON },
- { "helpButton", IDS_AUTOFILL_HELP_LABEL },
- { "addAddressTitle", IDS_AUTOFILL_ADD_ADDRESS_CAPTION },
- { "editAddressTitle", IDS_AUTOFILL_EDIT_ADDRESS_CAPTION },
- { "addCreditCardTitle", IDS_AUTOFILL_ADD_CREDITCARD_CAPTION },
- { "editCreditCardTitle", IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION },
-#if defined(OS_MACOSX)
- { "auxiliaryProfilesEnabled", IDS_AUTOFILL_USE_MAC_ADDRESS_BOOK },
-#endif // defined(OS_MACOSX)
- };
-
- RegisterStrings(localized_strings, resources, arraysize(resources));
- RegisterTitle(localized_strings, "autofillOptionsPage",
- IDS_AUTOFILL_OPTIONS_TITLE);
-
- localized_strings->SetString("helpUrl", chrome::kAutofillHelpURL);
- SetAddressOverlayStrings(localized_strings);
- SetCreditCardOverlayStrings(localized_strings);
-}
-
-void AutofillOptionsHandler::InitializeHandler() {
- personal_data_ = PersonalDataManagerFactory::GetForProfile(
- Profile::FromWebUI(web_ui()));
- // personal_data_ is NULL in guest mode on Chrome OS.
- if (personal_data_)
- personal_data_->SetObserver(this);
-}
-
-void AutofillOptionsHandler::InitializePage() {
- if (personal_data_)
- LoadAutofillData();
-}
-
-void AutofillOptionsHandler::RegisterMessages() {
- web_ui()->RegisterMessageCallback(
- "removeAddress",
- base::Bind(&AutofillOptionsHandler::RemoveAddress,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "removeCreditCard",
- base::Bind(&AutofillOptionsHandler::RemoveCreditCard,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "loadAddressEditor",
- base::Bind(&AutofillOptionsHandler::LoadAddressEditor,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "loadCreditCardEditor",
- base::Bind(&AutofillOptionsHandler::LoadCreditCardEditor,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "setAddress",
- base::Bind(&AutofillOptionsHandler::SetAddress, base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "setCreditCard",
- base::Bind(&AutofillOptionsHandler::SetCreditCard,
- base::Unretained(this)));
- web_ui()->RegisterMessageCallback(
- "validatePhoneNumbers",
- base::Bind(&AutofillOptionsHandler::ValidatePhoneNumbers,
- base::Unretained(this)));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// PersonalDataManagerObserver implementation:
-void AutofillOptionsHandler::OnPersonalDataChanged() {
- LoadAutofillData();
-}
-
-void AutofillOptionsHandler::SetAddressOverlayStrings(
- DictionaryValue* localized_strings) {
- localized_strings->SetString("autofillEditAddressTitle",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_ADDRESS_CAPTION));
- localized_strings->SetString("autofillFirstNameLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_FIRST_NAME));
- localized_strings->SetString("autofillMiddleNameLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_MIDDLE_NAME));
- localized_strings->SetString("autofillLastNameLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_LAST_NAME));
- localized_strings->SetString("autofillCompanyNameLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COMPANY_NAME));
- localized_strings->SetString("autofillAddrLine1Label",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_1));
- localized_strings->SetString("autofillAddrLine2Label",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_2));
- localized_strings->SetString("autofillCityLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CITY));
- localized_strings->SetString("autofillCountryLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COUNTRY));
- localized_strings->SetString("autofillPhoneLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_PHONE));
- localized_strings->SetString("autofillEmailLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EMAIL));
- localized_strings->SetString("autofillAddFirstNamePlaceholder",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_FIRST_NAME));
- localized_strings->SetString("autofillAddMiddleNamePlaceholder",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_MIDDLE_NAME));
- localized_strings->SetString("autofillAddLastNamePlaceholder",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_LAST_NAME));
- localized_strings->SetString("autofillAddPhonePlaceholder",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_PHONE));
- localized_strings->SetString("autofillAddEmailPlaceholder",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_EMAIL));
-
- std::string app_locale = AutofillCountry::ApplicationLocale();
- std::string default_country_code =
- AutofillCountry::CountryCodeForLocale(app_locale);
- localized_strings->SetString("defaultCountryCode", default_country_code);
- localized_strings->Set("autofillCountryData", GetCountryData());
-}
-
-void AutofillOptionsHandler::SetCreditCardOverlayStrings(
- DictionaryValue* localized_strings) {
- localized_strings->SetString("autofillEditCreditCardTitle",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION));
- localized_strings->SetString("nameOnCardLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_NAME_ON_CARD));
- localized_strings->SetString("creditCardNumberLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER));
- localized_strings->SetString("creditCardExpirationDateLabel",
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EXPIRATION_DATE));
-}
-
-void AutofillOptionsHandler::LoadAutofillData() {
- if (!IsPersonalDataLoaded())
- return;
-
- ListValue addresses;
- for (std::vector<AutofillProfile*>::const_iterator i =
- personal_data_->web_profiles().begin();
- i != personal_data_->web_profiles().end(); ++i) {
- ListValue* entry = new ListValue();
- entry->Append(new StringValue((*i)->guid()));
- entry->Append(new StringValue((*i)->Label()));
- addresses.Append(entry);
- }
-
- web_ui()->CallJavascriptFunction("AutofillOptions.setAddressList", addresses);
-
- ListValue credit_cards;
- for (std::vector<CreditCard*>::const_iterator i =
- personal_data_->credit_cards().begin();
- i != personal_data_->credit_cards().end(); ++i) {
- ListValue* entry = new ListValue();
- entry->Append(new StringValue((*i)->guid()));
- entry->Append(new StringValue((*i)->Label()));
- int res = CreditCardTypeToResourceID((*i)->type());
- entry->Append(
- new StringValue(web_ui_util::GetImageDataUrlFromResource(res)));
- entry->Append(new StringValue(LocalizedCreditCardType((*i)->type())));
- credit_cards.Append(entry);
- }
-
- web_ui()->CallJavascriptFunction("AutofillOptions.setCreditCardList",
- credit_cards);
-}
-
-void AutofillOptionsHandler::RemoveAddress(const ListValue* args) {
- DCHECK(IsPersonalDataLoaded());
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- personal_data_->RemoveProfile(guid);
-}
-
-void AutofillOptionsHandler::RemoveCreditCard(const ListValue* args) {
- DCHECK(IsPersonalDataLoaded());
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- personal_data_->RemoveCreditCard(guid);
-}
-
-void AutofillOptionsHandler::LoadAddressEditor(const ListValue* args) {
- DCHECK(IsPersonalDataLoaded());
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- AutofillProfile* profile = personal_data_->GetProfileByGUID(guid);
- if (!profile) {
- // There is a race where a user can click once on the close button and
- // quickly click again on the list item before the item is removed (since
- // the list is not updated until the model tells the list an item has been
- // removed). This will activate the editor for a profile that has been
- // removed. Do nothing in that case.
- return;
- }
-
- DictionaryValue address;
- address.SetString("guid", profile->guid());
- scoped_ptr<ListValue> list;
- GetNameList(*profile, &list);
- address.Set("fullName", list.release());
- address.SetString("companyName", profile->GetInfo(COMPANY_NAME));
- address.SetString("addrLine1", profile->GetInfo(ADDRESS_HOME_LINE1));
- address.SetString("addrLine2", profile->GetInfo(ADDRESS_HOME_LINE2));
- address.SetString("city", profile->GetInfo(ADDRESS_HOME_CITY));
- address.SetString("state", profile->GetInfo(ADDRESS_HOME_STATE));
- address.SetString("postalCode", profile->GetInfo(ADDRESS_HOME_ZIP));
- address.SetString("country", profile->CountryCode());
- GetValueList(*profile, PHONE_HOME_WHOLE_NUMBER, &list);
- address.Set("phone", list.release());
- GetValueList(*profile, EMAIL_ADDRESS, &list);
- address.Set("email", list.release());
-
- web_ui()->CallJavascriptFunction("AutofillOptions.editAddress", address);
-}
-
-void AutofillOptionsHandler::LoadCreditCardEditor(const ListValue* args) {
- DCHECK(IsPersonalDataLoaded());
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- CreditCard* credit_card = personal_data_->GetCreditCardByGUID(guid);
- if (!credit_card) {
- // There is a race where a user can click once on the close button and
- // quickly click again on the list item before the item is removed (since
- // the list is not updated until the model tells the list an item has been
- // removed). This will activate the editor for a profile that has been
- // removed. Do nothing in that case.
- return;
- }
-
- DictionaryValue credit_card_data;
- credit_card_data.SetString("guid", credit_card->guid());
- credit_card_data.SetString("nameOnCard",
- credit_card->GetInfo(CREDIT_CARD_NAME));
- credit_card_data.SetString("creditCardNumber",
- credit_card->GetInfo(CREDIT_CARD_NUMBER));
- credit_card_data.SetString("expirationMonth",
- credit_card->GetInfo(CREDIT_CARD_EXP_MONTH));
- credit_card_data.SetString(
- "expirationYear",
- credit_card->GetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
-
- web_ui()->CallJavascriptFunction("AutofillOptions.editCreditCard",
- credit_card_data);
-}
-
-void AutofillOptionsHandler::SetAddress(const ListValue* args) {
- if (!IsPersonalDataLoaded())
- return;
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- AutofillProfile profile(guid);
-
- std::string country_code;
- string16 value;
- const ListValue* list_value;
- if (args->GetList(1, &list_value))
- SetNameList(list_value, &profile);
- if (args->GetString(2, &value))
- profile.SetInfo(COMPANY_NAME, value);
- if (args->GetString(3, &value))
- profile.SetInfo(ADDRESS_HOME_LINE1, value);
- if (args->GetString(4, &value))
- profile.SetInfo(ADDRESS_HOME_LINE2, value);
- if (args->GetString(5, &value))
- profile.SetInfo(ADDRESS_HOME_CITY, value);
- if (args->GetString(6, &value))
- profile.SetInfo(ADDRESS_HOME_STATE, value);
- if (args->GetString(7, &value))
- profile.SetInfo(ADDRESS_HOME_ZIP, value);
- if (args->GetString(8, &country_code))
- profile.SetCountryCode(country_code);
- if (args->GetList(9, &list_value))
- SetValueList(list_value, PHONE_HOME_WHOLE_NUMBER, &profile);
- if (args->GetList(10, &list_value))
- SetValueList(list_value, EMAIL_ADDRESS, &profile);
-
- if (!base::IsValidGUID(profile.guid())) {
- profile.set_guid(base::GenerateGUID());
- personal_data_->AddProfile(profile);
- } else {
- personal_data_->UpdateProfile(profile);
- }
-}
-
-void AutofillOptionsHandler::SetCreditCard(const ListValue* args) {
- if (!IsPersonalDataLoaded())
- return;
-
- std::string guid;
- if (!args->GetString(0, &guid)) {
- NOTREACHED();
- return;
- }
-
- CreditCard credit_card(guid);
-
- string16 value;
- if (args->GetString(1, &value))
- credit_card.SetInfo(CREDIT_CARD_NAME, value);
- if (args->GetString(2, &value))
- credit_card.SetInfo(CREDIT_CARD_NUMBER, value);
- if (args->GetString(3, &value))
- credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, value);
- if (args->GetString(4, &value))
- credit_card.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, value);
-
- if (!base::IsValidGUID(credit_card.guid())) {
- credit_card.set_guid(base::GenerateGUID());
- personal_data_->AddCreditCard(credit_card);
- } else {
- personal_data_->UpdateCreditCard(credit_card);
- }
-}
-
-void AutofillOptionsHandler::ValidatePhoneNumbers(const ListValue* args) {
- if (!IsPersonalDataLoaded())
- return;
-
- scoped_ptr<ListValue> list_value = ValidatePhoneArguments(args);
-
- web_ui()->CallJavascriptFunction(
- "AutofillEditAddressOverlay.setValidatedPhoneNumbers", *list_value);
-}
-
-bool AutofillOptionsHandler::IsPersonalDataLoaded() const {
- return personal_data_ && personal_data_->IsDataLoaded();
-}
-
-} // namespace options

Powered by Google App Engine
This is Rietveld 408576698