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

Unified Diff: chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc

Issue 23930002: [rAc] Reset the user's selection to the new default when the default Wallet item changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 3 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/autofill/autofill_dialog_controller_impl.cc
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
index a7406ad0ff8f434b1e73a0779cdfef9cadd1564d..7fe21d65ed65ac9fcd194c26d8112c9be14ac02a 100644
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
@@ -842,13 +842,18 @@ bool AutofillDialogControllerImpl::IsSubmitPausedOn(
}
void AutofillDialogControllerImpl::GetWalletItems() {
- DCHECK(previously_selected_instrument_id_.empty());
- DCHECK(previously_selected_shipping_address_id_.empty());
ScopedViewUpdates updates(view_.get());
+ previously_selected_instrument_id_.clear();
+ previously_selected_shipping_address_id_.clear();
if (wallet_items_) {
- if (ActiveInstrument())
- previously_selected_instrument_id_ = ActiveInstrument()->object_id();
+ previous_default_instrument_id_ = wallet_items_->default_instrument_id();
+ previous_default_shipping_address_id_ = wallet_items_->default_address_id();
+
+ const wallet::WalletItems::MaskedInstrument* instrument =
+ ActiveInstrument();
+ if (instrument)
+ previously_selected_instrument_id_ = instrument->object_id();
const wallet::Address* address = ActiveShippingAddress();
if (address)
@@ -2377,6 +2382,14 @@ void AutofillDialogControllerImpl::SuggestionsUpdated() {
account_chooser_model_.active_wallet_account_name());
}
+ // If the default address changed since the last fetch of the Wallet data,
+ // select it rather than the previously selected address, as the user's
+ // intention in changing the default address was probably to use it.
+ if (previous_default_shipping_address_id_ !=
+ wallet_items_->default_address_id()) {
+ previously_selected_shipping_address_id_.clear();
+ }
+
const std::vector<wallet::Address*>& addresses =
wallet_items_->addresses();
for (size_t i = 0; i < addresses.size(); ++i) {
@@ -2396,6 +2409,14 @@ void AutofillDialogControllerImpl::SuggestionsUpdated() {
previously_selected_shipping_address_id_.clear();
if (!IsSubmitPausedOn(wallet::VERIFY_CVV)) {
+ // If the default address changed since the last fetch of the Wallet data,
+ // select it rather than the previously selected address, as the user's
+ // intention in changing the default address was probably to use it.
+ if (previous_default_instrument_id_ !=
+ wallet_items_->default_instrument_id()) {
+ previously_selected_instrument_id_.clear();
Evan Stade 2013/09/04 19:25:28 can you keep all this default instrument logic in
Ilya Sherman 2013/09/05 01:13:59 Done.
+ }
+
const std::vector<wallet::WalletItems::MaskedInstrument*>& instruments =
wallet_items_->instruments();
std::string first_active_instrument_key;

Powered by Google App Engine
This is Rietveld 408576698