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

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

Issue 15871004: Handle failed signin when setting kAutofillDialogPayWithoutWallet pref. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: upload keeps failing Created 7 years, 6 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/base64.h" 10 #include "base/base64.h"
(...skipping 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 UpdateAccountChooserView(); 726 UpdateAccountChooserView();
727 727
728 if (view_) 728 if (view_)
729 view_->UpdateButtonStrip(); 729 view_->UpdateButtonStrip();
730 730
731 // On the first successful response, compute the initial user state metric. 731 // On the first successful response, compute the initial user state metric.
732 if (initial_user_state_ == AutofillMetrics::DIALOG_USER_STATE_UNKNOWN) 732 if (initial_user_state_ == AutofillMetrics::DIALOG_USER_STATE_UNKNOWN)
733 initial_user_state_ = GetInitialUserState(); 733 initial_user_state_ = GetInitialUserState();
734 } 734 }
735 735
736 void AutofillDialogControllerImpl::OnWalletSigninError() {
737 signin_helper_.reset();
738 account_chooser_model_.SetHadWalletSigninError();
739 GetWalletClient()->CancelRequests();
740 LogDialogLatencyToShow();
741 }
742
743 void AutofillDialogControllerImpl::EnsureLegalDocumentsText() { 736 void AutofillDialogControllerImpl::EnsureLegalDocumentsText() {
744 if (!wallet_items_ || wallet_items_->legal_documents().empty()) 737 if (!wallet_items_ || wallet_items_->legal_documents().empty())
745 return; 738 return;
746 739
747 // The text has already been constructed, no need to recompute. 740 // The text has already been constructed, no need to recompute.
748 if (!legal_documents_text_.empty()) 741 if (!legal_documents_text_.empty())
749 return; 742 return;
750 743
751 const std::vector<wallet::WalletItems::LegalDocument*>& documents = 744 const std::vector<wallet::WalletItems::LegalDocument*>& documents =
752 wallet_items_->legal_documents(); 745 wallet_items_->legal_documents();
(...skipping 1206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1959 chrome::FindBrowserWithWebContents(web_contents()), 1952 chrome::FindBrowserWithWebContents(web_contents()),
1960 url, 1953 url,
1961 content::PAGE_TRANSITION_AUTO_BOOKMARK); 1954 content::PAGE_TRANSITION_AUTO_BOOKMARK);
1962 params.disposition = NEW_FOREGROUND_TAB; 1955 params.disposition = NEW_FOREGROUND_TAB;
1963 chrome::Navigate(&params); 1956 chrome::Navigate(&params);
1964 #else 1957 #else
1965 // TODO(estade): use TabModelList? 1958 // TODO(estade): use TabModelList?
1966 #endif 1959 #endif
1967 } 1960 }
1968 1961
1962 void AutofillDialogControllerImpl::OnWalletSigninError() {
1963 signin_helper_.reset();
1964 account_chooser_model_.SetHadWalletSigninError();
1965 GetWalletClient()->CancelRequests();
1966 LogDialogLatencyToShow();
1967 }
1968
1969 void AutofillDialogControllerImpl::DisableWallet() { 1969 void AutofillDialogControllerImpl::DisableWallet() {
1970 signin_helper_.reset(); 1970 signin_helper_.reset();
1971 wallet_items_.reset(); 1971 wallet_items_.reset();
1972 GetWalletClient()->CancelRequests(); 1972 GetWalletClient()->CancelRequests();
1973 SetIsSubmitting(false); 1973 SetIsSubmitting(false);
1974 account_chooser_model_.SetHadWalletError(); 1974 account_chooser_model_.SetHadWalletError();
1975 } 1975 }
1976 1976
1977 void AutofillDialogControllerImpl::SuggestionsUpdated() { 1977 void AutofillDialogControllerImpl::SuggestionsUpdated() {
1978 suggested_email_.Reset(); 1978 suggested_email_.Reset();
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
2682 } 2682 }
2683 } 2683 }
2684 2684
2685 callback_.Run(&form_structure_, !wallet_items_ ? std::string() : 2685 callback_.Run(&form_structure_, !wallet_items_ ? std::string() :
2686 wallet_items_->google_transaction_id()); 2686 wallet_items_->google_transaction_id());
2687 callback_ = base::Callback<void(const FormStructure*, const std::string&)>(); 2687 callback_ = base::Callback<void(const FormStructure*, const std::string&)>();
2688 2688
2689 LogOnFinishSubmitMetrics(); 2689 LogOnFinishSubmitMetrics();
2690 2690
2691 // On a successful submit, if the user manually selected "pay without wallet", 2691 // On a successful submit, if the user manually selected "pay without wallet",
2692 // stop trying to pay with Wallet on future runs of the dialog. 2692 // stop trying to pay with Wallet on future runs of the dialog. On the other
2693 bool manually_selected_pay_without_wallet = 2693 // hand, if there was an error that prevented the user from having the choice
2694 !account_chooser_model_.WalletIsSelected() && 2694 // of using Wallet, leave the pref alone.
2695 !account_chooser_model_.had_wallet_error(); 2695 if (!account_chooser_model_.had_wallet_error() &&
2696 profile_->GetPrefs()->SetBoolean(::prefs::kAutofillDialogPayWithoutWallet, 2696 account_chooser_model_.HasAccountsToChoose()) {
2697 manually_selected_pay_without_wallet); 2697 profile_->GetPrefs()->SetBoolean(
2698 ::prefs::kAutofillDialogPayWithoutWallet,
2699 !account_chooser_model_.WalletIsSelected());
2700 }
2698 2701
2699 switch (GetDialogType()) { 2702 switch (GetDialogType()) {
2700 case DIALOG_TYPE_AUTOCHECKOUT: 2703 case DIALOG_TYPE_AUTOCHECKOUT:
2701 // Stop observing PersonalDataManager to avoid the dialog redrawing while 2704 // Stop observing PersonalDataManager to avoid the dialog redrawing while
2702 // in an Autocheckout flow. 2705 // in an Autocheckout flow.
2703 GetManager()->RemoveObserver(this); 2706 GetManager()->RemoveObserver(this);
2704 autocheckout_started_timestamp_ = base::Time::Now(); 2707 autocheckout_started_timestamp_ = base::Time::Now();
2705 DCHECK_EQ(AUTOCHECKOUT_NOT_STARTED, autocheckout_state_); 2708 DCHECK_EQ(AUTOCHECKOUT_NOT_STARTED, autocheckout_state_);
2706 autocheckout_state_ = AUTOCHECKOUT_IN_PROGRESS; 2709 autocheckout_state_ = AUTOCHECKOUT_IN_PROGRESS;
2707 view_->UpdateButtonStrip(); 2710 view_->UpdateButtonStrip();
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
2876 AutofillMetrics::DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL; 2879 AutofillMetrics::DIALOG_USER_SIGNED_IN_NO_WALLET_NO_AUTOFILL;
2877 } 2880 }
2878 2881
2879 // Has Wallet items. 2882 // Has Wallet items.
2880 return has_autofill_profiles ? 2883 return has_autofill_profiles ?
2881 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL : 2884 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_HAS_AUTOFILL :
2882 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL; 2885 AutofillMetrics::DIALOG_USER_SIGNED_IN_HAS_WALLET_NO_AUTOFILL;
2883 } 2886 }
2884 2887
2885 } // namespace autofill 2888 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698