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

Side by Side Diff: chrome/browser/ui/webui/options2/autofill_options_handler2.cc

Issue 10081023: Fix a crash when trying to input phone number in the autofill settings page while running as guest … (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 8 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
« no previous file with comments | « chrome/browser/ui/webui/options2/autofill_options_handler2.h ('k') | no next file » | 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/options2/autofill_options_handler2.h" 5 #include "chrome/browser/ui/webui/options2/autofill_options_handler2.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 387 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION)); 398 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION));
399 localized_strings->SetString("nameOnCardLabel", 399 localized_strings->SetString("nameOnCardLabel",
400 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_NAME_ON_CARD)); 400 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_NAME_ON_CARD));
401 localized_strings->SetString("creditCardNumberLabel", 401 localized_strings->SetString("creditCardNumberLabel",
402 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER)); 402 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER));
403 localized_strings->SetString("creditCardExpirationDateLabel", 403 localized_strings->SetString("creditCardExpirationDateLabel",
404 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EXPIRATION_DATE)); 404 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EXPIRATION_DATE));
405 } 405 }
406 406
407 void AutofillOptionsHandler::LoadAutofillData() { 407 void AutofillOptionsHandler::LoadAutofillData() {
408 if (!personal_data_->IsDataLoaded()) 408 if (!IsPersonalDataLoaded())
409 return; 409 return;
410 410
411 ListValue addresses; 411 ListValue addresses;
412 for (std::vector<AutofillProfile*>::const_iterator i = 412 for (std::vector<AutofillProfile*>::const_iterator i =
413 personal_data_->web_profiles().begin(); 413 personal_data_->web_profiles().begin();
414 i != personal_data_->web_profiles().end(); ++i) { 414 i != personal_data_->web_profiles().end(); ++i) {
415 ListValue* entry = new ListValue(); 415 ListValue* entry = new ListValue();
416 entry->Append(new StringValue((*i)->guid())); 416 entry->Append(new StringValue((*i)->guid()));
417 entry->Append(new StringValue((*i)->Label())); 417 entry->Append(new StringValue((*i)->Label()));
418 addresses.Append(entry); 418 addresses.Append(entry);
(...skipping 13 matching lines...) Expand all
432 new StringValue(web_ui_util::GetImageDataUrlFromResource(res))); 432 new StringValue(web_ui_util::GetImageDataUrlFromResource(res)));
433 entry->Append(new StringValue(LocalizedCreditCardType((*i)->type()))); 433 entry->Append(new StringValue(LocalizedCreditCardType((*i)->type())));
434 credit_cards.Append(entry); 434 credit_cards.Append(entry);
435 } 435 }
436 436
437 web_ui()->CallJavascriptFunction("AutofillOptions.setCreditCardList", 437 web_ui()->CallJavascriptFunction("AutofillOptions.setCreditCardList",
438 credit_cards); 438 credit_cards);
439 } 439 }
440 440
441 void AutofillOptionsHandler::RemoveAddress(const ListValue* args) { 441 void AutofillOptionsHandler::RemoveAddress(const ListValue* args) {
442 DCHECK(personal_data_->IsDataLoaded()); 442 DCHECK(IsPersonalDataLoaded());
443 443
444 std::string guid; 444 std::string guid;
445 if (!args->GetString(0, &guid)) { 445 if (!args->GetString(0, &guid)) {
446 NOTREACHED(); 446 NOTREACHED();
447 return; 447 return;
448 } 448 }
449 449
450 personal_data_->RemoveProfile(guid); 450 personal_data_->RemoveProfile(guid);
451 } 451 }
452 452
453 void AutofillOptionsHandler::RemoveCreditCard(const ListValue* args) { 453 void AutofillOptionsHandler::RemoveCreditCard(const ListValue* args) {
454 DCHECK(personal_data_->IsDataLoaded()); 454 DCHECK(IsPersonalDataLoaded());
455 455
456 std::string guid; 456 std::string guid;
457 if (!args->GetString(0, &guid)) { 457 if (!args->GetString(0, &guid)) {
458 NOTREACHED(); 458 NOTREACHED();
459 return; 459 return;
460 } 460 }
461 461
462 personal_data_->RemoveCreditCard(guid); 462 personal_data_->RemoveCreditCard(guid);
463 } 463 }
464 464
465 void AutofillOptionsHandler::LoadAddressEditor(const ListValue* args) { 465 void AutofillOptionsHandler::LoadAddressEditor(const ListValue* args) {
466 DCHECK(personal_data_->IsDataLoaded()); 466 DCHECK(IsPersonalDataLoaded());
467 467
468 std::string guid; 468 std::string guid;
469 if (!args->GetString(0, &guid)) { 469 if (!args->GetString(0, &guid)) {
470 NOTREACHED(); 470 NOTREACHED();
471 return; 471 return;
472 } 472 }
473 473
474 AutofillProfile* profile = personal_data_->GetProfileByGUID(guid); 474 AutofillProfile* profile = personal_data_->GetProfileByGUID(guid);
475 if (!profile) { 475 if (!profile) {
476 // There is a race where a user can click once on the close button and 476 // There is a race where a user can click once on the close button and
(...skipping 18 matching lines...) Expand all
495 address.SetString("country", profile->CountryCode()); 495 address.SetString("country", profile->CountryCode());
496 GetValueList(*profile, PHONE_HOME_WHOLE_NUMBER, &list); 496 GetValueList(*profile, PHONE_HOME_WHOLE_NUMBER, &list);
497 address.Set("phone", list.release()); 497 address.Set("phone", list.release());
498 GetValueList(*profile, EMAIL_ADDRESS, &list); 498 GetValueList(*profile, EMAIL_ADDRESS, &list);
499 address.Set("email", list.release()); 499 address.Set("email", list.release());
500 500
501 web_ui()->CallJavascriptFunction("AutofillOptions.editAddress", address); 501 web_ui()->CallJavascriptFunction("AutofillOptions.editAddress", address);
502 } 502 }
503 503
504 void AutofillOptionsHandler::LoadCreditCardEditor(const ListValue* args) { 504 void AutofillOptionsHandler::LoadCreditCardEditor(const ListValue* args) {
505 DCHECK(personal_data_->IsDataLoaded()); 505 DCHECK(IsPersonalDataLoaded());
506 506
507 std::string guid; 507 std::string guid;
508 if (!args->GetString(0, &guid)) { 508 if (!args->GetString(0, &guid)) {
509 NOTREACHED(); 509 NOTREACHED();
510 return; 510 return;
511 } 511 }
512 512
513 CreditCard* credit_card = personal_data_->GetCreditCardByGUID(guid); 513 CreditCard* credit_card = personal_data_->GetCreditCardByGUID(guid);
514 if (!credit_card) { 514 if (!credit_card) {
515 // There is a race where a user can click once on the close button and 515 // There is a race where a user can click once on the close button and
(...skipping 14 matching lines...) Expand all
530 credit_card->GetInfo(CREDIT_CARD_EXP_MONTH)); 530 credit_card->GetInfo(CREDIT_CARD_EXP_MONTH));
531 credit_card_data.SetString( 531 credit_card_data.SetString(
532 "expirationYear", 532 "expirationYear",
533 credit_card->GetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR)); 533 credit_card->GetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR));
534 534
535 web_ui()->CallJavascriptFunction("AutofillOptions.editCreditCard", 535 web_ui()->CallJavascriptFunction("AutofillOptions.editCreditCard",
536 credit_card_data); 536 credit_card_data);
537 } 537 }
538 538
539 void AutofillOptionsHandler::SetAddress(const ListValue* args) { 539 void AutofillOptionsHandler::SetAddress(const ListValue* args) {
540 if (!personal_data_->IsDataLoaded()) 540 if (!IsPersonalDataLoaded())
541 return; 541 return;
542 542
543 std::string guid; 543 std::string guid;
544 if (!args->GetString(0, &guid)) { 544 if (!args->GetString(0, &guid)) {
545 NOTREACHED(); 545 NOTREACHED();
546 return; 546 return;
547 } 547 }
548 548
549 AutofillProfile profile(guid); 549 AutofillProfile profile(guid);
550 550
(...skipping 23 matching lines...) Expand all
574 574
575 if (!guid::IsValidGUID(profile.guid())) { 575 if (!guid::IsValidGUID(profile.guid())) {
576 profile.set_guid(guid::GenerateGUID()); 576 profile.set_guid(guid::GenerateGUID());
577 personal_data_->AddProfile(profile); 577 personal_data_->AddProfile(profile);
578 } else { 578 } else {
579 personal_data_->UpdateProfile(profile); 579 personal_data_->UpdateProfile(profile);
580 } 580 }
581 } 581 }
582 582
583 void AutofillOptionsHandler::SetCreditCard(const ListValue* args) { 583 void AutofillOptionsHandler::SetCreditCard(const ListValue* args) {
584 if (!personal_data_->IsDataLoaded()) 584 if (!IsPersonalDataLoaded())
585 return; 585 return;
586 586
587 std::string guid; 587 std::string guid;
588 if (!args->GetString(0, &guid)) { 588 if (!args->GetString(0, &guid)) {
589 NOTREACHED(); 589 NOTREACHED();
590 return; 590 return;
591 } 591 }
592 592
593 CreditCard credit_card(guid); 593 CreditCard credit_card(guid);
594 594
595 string16 value; 595 string16 value;
596 if (args->GetString(1, &value)) 596 if (args->GetString(1, &value))
597 credit_card.SetInfo(CREDIT_CARD_NAME, value); 597 credit_card.SetInfo(CREDIT_CARD_NAME, value);
598 if (args->GetString(2, &value)) 598 if (args->GetString(2, &value))
599 credit_card.SetInfo(CREDIT_CARD_NUMBER, value); 599 credit_card.SetInfo(CREDIT_CARD_NUMBER, value);
600 if (args->GetString(3, &value)) 600 if (args->GetString(3, &value))
601 credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, value); 601 credit_card.SetInfo(CREDIT_CARD_EXP_MONTH, value);
602 if (args->GetString(4, &value)) 602 if (args->GetString(4, &value))
603 credit_card.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, value); 603 credit_card.SetInfo(CREDIT_CARD_EXP_4_DIGIT_YEAR, value);
604 604
605 if (!guid::IsValidGUID(credit_card.guid())) { 605 if (!guid::IsValidGUID(credit_card.guid())) {
606 credit_card.set_guid(guid::GenerateGUID()); 606 credit_card.set_guid(guid::GenerateGUID());
607 personal_data_->AddCreditCard(credit_card); 607 personal_data_->AddCreditCard(credit_card);
608 } else { 608 } else {
609 personal_data_->UpdateCreditCard(credit_card); 609 personal_data_->UpdateCreditCard(credit_card);
610 } 610 }
611 } 611 }
612 612
613 void AutofillOptionsHandler::ValidatePhoneNumbers(const ListValue* args) { 613 void AutofillOptionsHandler::ValidatePhoneNumbers(const ListValue* args) {
614 if (!personal_data_->IsDataLoaded()) 614 if (!IsPersonalDataLoaded())
615 return; 615 return;
616 616
617 ListValue* list_value = NULL; 617 ListValue* list_value = NULL;
618 ValidatePhoneArguments(args, &list_value); 618 ValidatePhoneArguments(args, &list_value);
619 619
620 web_ui()->CallJavascriptFunction( 620 web_ui()->CallJavascriptFunction(
621 "AutofillEditAddressOverlay.setValidatedPhoneNumbers", *list_value); 621 "AutofillEditAddressOverlay.setValidatedPhoneNumbers", *list_value);
622 } 622 }
623 623
624 bool AutofillOptionsHandler::IsPersonalDataLoaded() const {
625 return personal_data_ && personal_data_->IsDataLoaded();
626 }
627
624 } // namespace options2 628 } // namespace options2
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/options2/autofill_options_handler2.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698