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

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

Issue 13877016: Revert 195316 "Remove "Use billing for shipping" checkbox in fav..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 7 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 side-by-side diff with in-line comments
Download patch
Index: trunk/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc
===================================================================
--- trunk/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc (revision 195318)
+++ trunk/src/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc (working copy)
@@ -80,10 +80,6 @@
const int kCartMax = 1850;
const char kCartCurrency[] = "USD";
-const char kAddNewItemKey[] = "add-new-item";
-const char kManageItemsKey[] = "manage-items";
-const char kSameAsBillingKey[] = "same-as-billing";
-
// Returns true if |input| should be shown when |field| has been requested.
bool InputTypeMatchesFieldType(const DetailInput& input,
const AutofillField& field) {
@@ -416,6 +412,11 @@
return l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EDIT);
}
+string16 AutofillDialogControllerImpl::UseBillingForShippingText() const {
+ return l10n_util::GetStringUTF16(
+ IDS_AUTOFILL_DIALOG_USE_BILLING_FOR_SHIPPING);
+}
+
string16 AutofillDialogControllerImpl::CancelButtonText() const {
return l10n_util::GetStringUTF16(IDS_CANCEL);
}
@@ -724,7 +725,6 @@
SuggestionState AutofillDialogControllerImpl::SuggestionStateForSection(
DialogSection section) {
return SuggestionState(SuggestionTextForSection(section),
- SuggestionTextStyleForSection(section),
SuggestionIconForSection(section),
ExtraSuggestionTextForSection(section),
ExtraSuggestionIconForSection(section),
@@ -744,12 +744,7 @@
SuggestionsMenuModel* model = SuggestionsMenuModelForSection(section);
std::string item_key = model->GetItemKeyForCheckedItem();
- if (item_key == kSameAsBillingKey) {
- return l10n_util::GetStringUTF16(
- IDS_AUTOFILL_DIALOG_USING_BILLING_FOR_SHIPPING);
- }
-
- if (!IsASuggestionItemKey(item_key))
+ if (item_key.empty())
return string16();
if (section == SECTION_EMAIL)
@@ -759,16 +754,6 @@
return wrapper->GetDisplayText();
}
-gfx::Font::FontStyle
- AutofillDialogControllerImpl::SuggestionTextStyleForSection(
- DialogSection section) const {
- const SuggestionsMenuModel* model = SuggestionsMenuModelForSection(section);
- if (model->GetItemKeyForCheckedItem() == kSameAsBillingKey)
- return gfx::Font::ITALIC;
-
- return gfx::Font::NORMAL;
-}
-
string16 AutofillDialogControllerImpl::RequiredActionTextForSection(
DialogSection section) const {
if (section == SECTION_CC_BILLING && IsSubmitPausedOn(wallet::VERIFY_CVV)) {
@@ -811,10 +796,11 @@
}
}
+ if (IsManuallyEditingSection(section))
+ return scoped_ptr<DataModelWrapper>();
+
SuggestionsMenuModel* model = SuggestionsMenuModelForSection(section);
std::string item_key = model->GetItemKeyForCheckedItem();
- if (!IsASuggestionItemKey(item_key) || IsManuallyEditingSection(section))
- return scoped_ptr<DataModelWrapper>();
if (IsPayingWithWallet()) {
int index;
@@ -876,15 +862,7 @@
bool AutofillDialogControllerImpl::EditEnabledForSection(
DialogSection section) const {
- if (SuggestionsMenuModelForSection(section)->GetItemKeyForCheckedItem() ==
- kSameAsBillingKey) {
- return false;
- }
-
- if (section == SECTION_CC_BILLING && IsSubmitPausedOn(wallet::VERIFY_CVV))
- return false;
-
- return true;
+ return section != SECTION_CC_BILLING || !IsSubmitPausedOn(wallet::VERIFY_CVV);
}
void AutofillDialogControllerImpl::EditClickedForSection(
@@ -1379,17 +1357,11 @@
// SuggestionsMenuModelDelegate implementation.
void AutofillDialogControllerImpl::SuggestionItemSelected(
- SuggestionsMenuModel* model,
- size_t index) {
- if (model->GetItemKeyAt(index) == kManageItemsKey) {
- // TODO(estade): show chrome://settings or a wallet URL.
- return;
- }
+ const SuggestionsMenuModel& model) {
+ const DialogSection section = SectionForSuggestionsMenuModel(model);
+ EditCancelledForSection(section);
- model->SetCheckedIndex(index);
- EditCancelledForSection(SectionForSuggestionsMenuModel(*model));
-
- LogSuggestionItemSelectedMetric(*model);
+ LogSuggestionItemSelectedMetric(model);
}
////////////////////////////////////////////////////////////////////////////////
@@ -1706,10 +1678,6 @@
suggested_shipping_.Reset();
HidePopup();
- suggested_shipping_.AddKeyedItem(
- kSameAsBillingKey,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_USE_BILLING_FOR_SHIPPING));
-
if (IsPayingWithWallet()) {
if (!account_chooser_model_.active_wallet_account_name().empty()) {
suggested_email_.AddKeyedItem(
@@ -1725,7 +1693,6 @@
base::IntToString(i),
addresses[i]->DisplayName(),
addresses[i]->DisplayNameDetail());
-
}
if (!IsSubmitPausedOn(wallet::VERIFY_CVV)) {
@@ -1740,14 +1707,9 @@
instruments[i]->CardIcon());
}
- // TODO(estade): this should have a URL sublabel.
suggested_cc_billing_.AddKeyedItem(
- kAddNewItemKey,
+ std::string(),
l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_BILLING_DETAILS));
- suggested_cc_billing_.AddKeyedItem(
- kManageItemsKey,
- l10n_util::GetStringUTF16(
- IDS_AUTOFILL_DIALOG_MANAGE_BILLING_DETAILS));
}
} else {
PersonalDataManager* manager = GetManager();
@@ -1784,42 +1746,20 @@
}
suggested_cc_.AddKeyedItem(
- kAddNewItemKey,
+ std::string(),
l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_CREDIT_CARD));
- suggested_cc_.AddKeyedItem(
- kManageItemsKey,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_MANAGE_CREDIT_CARD));
suggested_billing_.AddKeyedItem(
- kAddNewItemKey,
+ std::string(),
l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_BILLING_ADDRESS));
- suggested_billing_.AddKeyedItem(
- kManageItemsKey,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_MANAGE_BILLING_ADDRESS));
}
suggested_email_.AddKeyedItem(
- kAddNewItemKey,
+ std::string(),
l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_EMAIL_ADDRESS));
- if (!IsPayingWithWallet()) {
- suggested_email_.AddKeyedItem(
- kManageItemsKey,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_MANAGE_EMAIL_ADDRESS));
- }
-
suggested_shipping_.AddKeyedItem(
- kAddNewItemKey,
+ std::string(),
l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADD_SHIPPING_ADDRESS));
- suggested_shipping_.AddKeyedItem(
- kManageItemsKey,
- l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_MANAGE_SHIPPING_ADDRESS));
- // Default shipping address is the first suggestion, if one exists. Otherwise
- // it's the "Use shipping for billing" item.
- const std::string& first_real_suggestion_item_key =
- suggested_shipping_.GetItemKeyAt(1);
- if (IsASuggestionItemKey(first_real_suggestion_item_key))
- suggested_shipping_.SetCheckedItem(first_real_suggestion_item_key);
-
if (view_)
view_->ModelChanged();
}
@@ -1920,6 +1860,14 @@
SuggestionsMenuModel* AutofillDialogControllerImpl::
SuggestionsMenuModelForSection(DialogSection section) {
+ const AutofillDialogControllerImpl* const_this =
+ static_cast<const AutofillDialogControllerImpl*>(this);
+ return const_cast<SuggestionsMenuModel*>(
+ const_this->SuggestionsMenuModelForSection(section));
+}
+
+const SuggestionsMenuModel* AutofillDialogControllerImpl::
+ SuggestionsMenuModelForSection(DialogSection section) const {
switch (section) {
case SECTION_EMAIL:
return &suggested_email_;
@@ -1937,12 +1885,6 @@
return NULL;
}
-const SuggestionsMenuModel* AutofillDialogControllerImpl::
- SuggestionsMenuModelForSection(DialogSection section) const {
- return const_cast<AutofillDialogControllerImpl*>(this)->
- SuggestionsMenuModelForSection(section);
-}
-
DialogSection AutofillDialogControllerImpl::SectionForSuggestionsMenuModel(
const SuggestionsMenuModel& model) {
if (&model == &suggested_email_)
@@ -2012,17 +1954,9 @@
section_editing_state_.find(section);
return (it != section_editing_state_.end() && it->second) ||
SuggestionsMenuModelForSection(section)->
- GetItemKeyForCheckedItem() == kAddNewItemKey;
+ GetItemKeyForCheckedItem().empty();
}
-bool AutofillDialogControllerImpl::IsASuggestionItemKey(
- const std::string& key) {
- return !key.empty() &&
- key != kAddNewItemKey &&
- key != kManageItemsKey &&
- key != kSameAsBillingKey;
-}
-
bool AutofillDialogControllerImpl::IsManuallyEditingAnySection() const {
for (size_t section = SECTION_MIN; section <= SECTION_MAX; ++section) {
if (IsManuallyEditingSection(static_cast<DialogSection>(section)))
@@ -2050,7 +1984,13 @@
}
bool AutofillDialogControllerImpl::ShouldUseBillingForShipping() {
- return suggested_shipping_.GetItemKeyForCheckedItem() == kSameAsBillingKey;
+ // If the user is editing or inputting data, ask the view.
+ if (IsManuallyEditingSection(SECTION_SHIPPING))
+ return view_->UseBillingForShipping();
+
+ // Otherwise, the checkbox should be hidden so its state is irrelevant.
+ // Always use the shipping suggestion model.
+ return false;
}
bool AutofillDialogControllerImpl::ShouldSaveDetailsLocally() {
@@ -2085,7 +2025,7 @@
if (!section_editing_state_[SECTION_CC_BILLING]) {
SuggestionsMenuModel* billing =
SuggestionsMenuModelForSection(SECTION_CC_BILLING);
- if (IsASuggestionItemKey(billing->GetItemKeyForCheckedItem()) &&
+ if (!billing->GetItemKeyForCheckedItem().empty() &&
billing->checked_item() <
static_cast<int>(wallet_items_->instruments().size())) {
const wallet::WalletItems::MaskedInstrument* active_instrument =
@@ -2101,11 +2041,11 @@
if (!section_editing_state_[SECTION_SHIPPING] && active_address_id_.empty()) {
SuggestionsMenuModel* shipping =
SuggestionsMenuModelForSection(SECTION_SHIPPING);
- if (IsASuggestionItemKey(shipping->GetItemKeyForCheckedItem()) &&
- shipping->checked_item() - 1 <
+ if (!shipping->GetItemKeyForCheckedItem().empty() &&
+ shipping->checked_item() <
static_cast<int>(wallet_items_->addresses().size())) {
active_address_id_ =
- wallet_items_->addresses()[shipping->checked_item() - 1]->object_id();
+ wallet_items_->addresses()[shipping->checked_item()]->object_id();
}
}
@@ -2262,17 +2202,13 @@
DialogSection section = SectionForSuggestionsMenuModel(model);
AutofillMetrics::DialogUiEvent dialog_ui_event;
- if (model.GetItemKeyForCheckedItem() == kAddNewItemKey) {
+ if (model.GetItemKeyForCheckedItem().empty()) {
// Selected to add a new item.
dialog_ui_event = DialogSectionToUiItemAddedEvent(section);
- } else if (IsASuggestionItemKey(model.GetItemKeyForCheckedItem())) {
+ } else {
// Selected an existing item.
DCHECK(!section_editing_state_[section]);
dialog_ui_event = DialogSectionToUiSelectionChangedEvent(section);
- } else {
- // TODO(estade): add logging for "Manage items" or "Use billing for
- // shipping"?
- return;
}
GetMetricLogger().LogDialogUiEvent(dialog_type_, dialog_ui_event);
@@ -2281,11 +2217,11 @@
AutofillMetrics::DialogInitialUserStateMetric
AutofillDialogControllerImpl::GetInitialUserState() const {
// Consider a user to be an Autofill user if the user has any credit cards
- // or addresses saved. Check that the item count is greater than 2 because
- // an "empty" menu still has the "add new" menu item and "manage" menu item.
+ // or addresses saved. Check that the item count is greater than 1 because
+ // an "empty" menu still has the "add new" menu item.
const bool has_autofill_profiles =
- suggested_cc_.GetItemCount() > 2 ||
- suggested_billing_.GetItemCount() > 2;
+ suggested_cc_.GetItemCount() > 1 ||
+ suggested_billing_.GetItemCount() > 1;
if (SignedInState() != SIGNED_IN) {
// Not signed in.

Powered by Google App Engine
This is Rietveld 408576698