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

Side by Side Diff: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc

Issue 12094069: [autofill] Hook the sign-in button up to required actions. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: bored Created 7 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 | Annotate | Revision Log
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/autofill/autofill_dialog_controller_impl.h" 5 #include "chrome/browser/ui/autofill/autofill_dialog_controller_impl.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string_split.h" 10 #include "base/string_split.h"
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 string16 AutofillDialogControllerImpl::SignInText() const { 263 string16 AutofillDialogControllerImpl::SignInText() const {
264 // TODO(abodenha): real strings and l10n. 264 // TODO(abodenha): real strings and l10n.
265 return string16(ASCIIToUTF16("Sign in to use Google Wallet")); 265 return string16(ASCIIToUTF16("Sign in to use Google Wallet"));
266 } 266 }
267 267
268 string16 AutofillDialogControllerImpl::CancelSignInText() const { 268 string16 AutofillDialogControllerImpl::CancelSignInText() const {
269 // TODO(abodenha): real strings and l10n. 269 // TODO(abodenha): real strings and l10n.
270 return string16(ASCIIToUTF16("Don't sign in.")); 270 return string16(ASCIIToUTF16("Don't sign in."));
271 } 271 }
272 272
273 DialogSignedInState AutofillDialogControllerImpl::SignedIn() const {
274 if (!wallet_items_)
275 return REQUIRES_RESPONSE;
276
277 if (HasRequiredAction(wallet::GAIA_AUTH))
278 return REQUIRES_SIGN_IN;
279
280 if (HasRequiredAction(wallet::PASSIVE_GAIA_AUTH))
281 return REQUIRES_PASSIVE_SIGN_IN;
282
283 return SIGNED_IN;
284 }
285
273 string16 AutofillDialogControllerImpl::SaveLocallyText() const { 286 string16 AutofillDialogControllerImpl::SaveLocallyText() const {
274 return l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_CHECKBOX); 287 return l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_SAVE_LOCALLY_CHECKBOX);
275 } 288 }
276 289
277 string16 AutofillDialogControllerImpl::ProgressBarText() const { 290 string16 AutofillDialogControllerImpl::ProgressBarText() const {
278 return l10n_util::GetStringUTF16( 291 return l10n_util::GetStringUTF16(
279 IDS_AUTOFILL_DIALOG_AUTOCHECKOUT_PROGRESS_BAR); 292 IDS_AUTOFILL_DIALOG_AUTOCHECKOUT_PROGRESS_BAR);
280 } 293 }
281 294
282 const DetailInputs& AutofillDialogControllerImpl::RequestedFieldsForSection( 295 const DetailInputs& AutofillDialogControllerImpl::RequestedFieldsForSection(
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 } 528 }
516 529
517 delete this; 530 delete this;
518 } 531 }
519 532
520 void AutofillDialogControllerImpl::UpdateProgressBar(double value) { 533 void AutofillDialogControllerImpl::UpdateProgressBar(double value) {
521 view_->UpdateProgressBar(value); 534 view_->UpdateProgressBar(value);
522 } 535 }
523 536
524 DialogNotification AutofillDialogControllerImpl::CurrentNotification() const { 537 DialogNotification AutofillDialogControllerImpl::CurrentNotification() const {
525 if (wallet_items_ && !wallet_items_->required_actions().empty()) { 538 if (HasRequiredAction(wallet::VERIFY_CVV)) {
526 switch (wallet_items_->required_actions()[0]) { 539 return DialogNotification(
527 case wallet::UNKNOWN_TYPE: 540 DialogNotification::REQUIRED_ACTION,
528 NOTREACHED(); 541 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_VERIFY_CVV));
529 break;
530 // TODO(dbeam): da real i18nz.
531 case wallet::SETUP_WALLET:
532 return DialogNotification(DialogNotification::REQUIRED_ACTION,
533 ASCIIToUTF16("Set up da walletz"));
534 case wallet::ACCEPT_TOS:
535 return DialogNotification(DialogNotification::REQUIRED_ACTION,
536 ASCIIToUTF16("Accept da ToS"));
537 case wallet::GAIA_AUTH:
538 return DialogNotification(DialogNotification::REQUIRED_ACTION,
539 ASCIIToUTF16("Sign in to da Googlez"));
540 case wallet::UPDATE_EXPIRATION_DATE:
541 return DialogNotification(DialogNotification::REQUIRED_ACTION,
542 ASCIIToUTF16("Update da expiration datez"));
543 case wallet::UPGRADE_MIN_ADDRESS:
544 return DialogNotification(DialogNotification::REQUIRED_ACTION,
545 ASCIIToUTF16("Upgrade da min addrezz"));
546 case wallet::INVALID_FORM_FIELD:
547 return DialogNotification(DialogNotification::REQUIRED_ACTION,
548 ASCIIToUTF16("Da form field is invalid"));
549 case wallet::VERIFY_CVV:
550 return DialogNotification(DialogNotification::REQUIRED_ACTION,
551 ASCIIToUTF16("Verify da CVVz"));
552 case wallet::PASSIVE_GAIA_AUTH:
553 return DialogNotification(DialogNotification::REQUIRED_ACTION,
554 ASCIIToUTF16("Passively sign in to Googlez"));
555 }
556 } 542 }
557 543
558 if (RequestingCreditCardInfo() && !TransmissionWillBeSecure()) { 544 if (RequestingCreditCardInfo() && !TransmissionWillBeSecure()) {
559 return DialogNotification( 545 return DialogNotification(
560 DialogNotification::SECURITY_WARNING, 546 DialogNotification::SECURITY_WARNING,
561 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_SECURITY_WARNING)); 547 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_SECURITY_WARNING));
562 } 548 }
563 549
564 if (!invoked_from_same_origin_) { 550 if (!invoked_from_same_origin_) {
565 return DialogNotification( 551 return DialogNotification(
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 //////////////////////////////////////////////////////////////////////////////// 624 ////////////////////////////////////////////////////////////////////////////////
639 // content::NotificationObserver 625 // content::NotificationObserver
640 626
641 void AutofillDialogControllerImpl::Observe( 627 void AutofillDialogControllerImpl::Observe(
642 int type, 628 int type,
643 const content::NotificationSource& source, 629 const content::NotificationSource& source,
644 const content::NotificationDetails& details) { 630 const content::NotificationDetails& details) {
645 DCHECK_EQ(type, content::NOTIFICATION_NAV_ENTRY_COMMITTED); 631 DCHECK_EQ(type, content::NOTIFICATION_NAV_ENTRY_COMMITTED);
646 content::LoadCommittedDetails* load_details = 632 content::LoadCommittedDetails* load_details =
647 content::Details<content::LoadCommittedDetails>(details).ptr(); 633 content::Details<content::LoadCommittedDetails>(details).ptr();
648 if (wallet::IsSignInContinueUrl(load_details->entry->GetVirtualURL())) 634 if (wallet::IsSignInContinueUrl(load_details->entry->GetVirtualURL())) {
649 EndSignInFlow(); 635 EndSignInFlow();
636 // TODO(dbeam): the fetcher can't handle being called multiple times.
637 // Address this soon as we will be re-fetching wallet items after every
638 // required action is resolved.
639 wallet_client_.GetWalletItems(this);
640 }
650 } 641 }
651 642
652 //////////////////////////////////////////////////////////////////////////////// 643 ////////////////////////////////////////////////////////////////////////////////
653 // SuggestionsMenuModelDelegate 644 // SuggestionsMenuModelDelegate
654 645
655 void AutofillDialogControllerImpl::SuggestionItemSelected( 646 void AutofillDialogControllerImpl::SuggestionItemSelected(
656 const SuggestionsMenuModel& model) { 647 const SuggestionsMenuModel& model) {
657 DialogSection section = SectionForSuggestionsMenuModel(model); 648 DialogSection section = SectionForSuggestionsMenuModel(model);
658 section_editing_state_[section] = false; 649 section_editing_state_[section] = false;
659 view_->UpdateSection(section); 650 view_->UpdateSection(section);
(...skipping 18 matching lines...) Expand all
678 } 669 }
679 670
680 void AutofillDialogControllerImpl::OnDidGetFullWallet( 671 void AutofillDialogControllerImpl::OnDidGetFullWallet(
681 scoped_ptr<wallet::FullWallet> full_wallet) { 672 scoped_ptr<wallet::FullWallet> full_wallet) {
682 NOTIMPLEMENTED(); 673 NOTIMPLEMENTED();
683 } 674 }
684 675
685 void AutofillDialogControllerImpl::OnDidGetWalletItems( 676 void AutofillDialogControllerImpl::OnDidGetWalletItems(
686 scoped_ptr<wallet::WalletItems> wallet_items) { 677 scoped_ptr<wallet::WalletItems> wallet_items) {
687 wallet_items_ = wallet_items.Pass(); 678 wallet_items_ = wallet_items.Pass();
679 view_->UpdateAccountChooser();
688 view_->UpdateNotificationArea(); 680 view_->UpdateNotificationArea();
689 } 681 }
690 682
691 void AutofillDialogControllerImpl::OnDidSaveAddress( 683 void AutofillDialogControllerImpl::OnDidSaveAddress(
692 const std::string& address_id) { 684 const std::string& address_id) {
693 NOTIMPLEMENTED() << " address_id=" << address_id; 685 NOTIMPLEMENTED() << " address_id=" << address_id;
694 } 686 }
695 687
696 void AutofillDialogControllerImpl::OnDidSaveInstrument( 688 void AutofillDialogControllerImpl::OnDidSaveInstrument(
697 const std::string& instrument_id) { 689 const std::string& instrument_id) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 737
746 return false; 738 return false;
747 } 739 }
748 740
749 bool AutofillDialogControllerImpl::TransmissionWillBeSecure() const { 741 bool AutofillDialogControllerImpl::TransmissionWillBeSecure() const {
750 return source_url_.SchemeIs(chrome::kHttpsScheme) && 742 return source_url_.SchemeIs(chrome::kHttpsScheme) &&
751 !net::IsCertStatusError(ssl_status_.cert_status) && 743 !net::IsCertStatusError(ssl_status_.cert_status) &&
752 !net::IsCertStatusMinorError(ssl_status_.cert_status); 744 !net::IsCertStatusMinorError(ssl_status_.cert_status);
753 } 745 }
754 746
747 bool AutofillDialogControllerImpl::HasRequiredAction(
748 wallet::RequiredAction action) const {
749 if (!wallet_items_)
750 return false;
751
752 const std::vector<wallet::RequiredAction>& actions =
753 wallet_items_->required_actions();
754 return std::find(actions.begin(), actions.end(), action) != actions.end();
755 }
756
755 void AutofillDialogControllerImpl::GenerateSuggestionsModels() { 757 void AutofillDialogControllerImpl::GenerateSuggestionsModels() {
756 PersonalDataManager* manager = GetManager(); 758 PersonalDataManager* manager = GetManager();
757 const std::vector<CreditCard*>& cards = manager->credit_cards(); 759 const std::vector<CreditCard*>& cards = manager->credit_cards();
758 for (size_t i = 0; i < cards.size(); ++i) { 760 for (size_t i = 0; i < cards.size(); ++i) {
759 suggested_cc_.AddKeyedItem(cards[i]->guid(), cards[i]->Label()); 761 suggested_cc_.AddKeyedItem(cards[i]->guid(), cards[i]->Label());
760 } 762 }
761 // TODO(estade): real strings and i18n. 763 // TODO(estade): real strings and i18n.
762 suggested_cc_.AddKeyedItem("", ASCIIToUTF16("Enter new card")); 764 suggested_cc_.AddKeyedItem("", ASCIIToUTF16("Enter new card"));
763 765
764 const std::vector<AutofillProfile*>& profiles = manager->GetProfiles(); 766 const std::vector<AutofillProfile*>& profiles = manager->GetProfiles();
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
931 } 933 }
932 934
933 void AutofillDialogControllerImpl::HidePopup() { 935 void AutofillDialogControllerImpl::HidePopup() {
934 if (popup_controller_) { 936 if (popup_controller_) {
935 popup_controller_->Hide(); 937 popup_controller_->Hide();
936 ControllerDestroyed(); 938 ControllerDestroyed();
937 } 939 }
938 } 940 }
939 941
940 } // namespace autofill 942 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698