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 c2e985a33de9701cea7eb1674e55d8c5a4d2ce01..0ac504d2444e167e87e20839e5815850bad0d61c 100644 |
--- a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
+++ b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc |
@@ -25,10 +25,13 @@ |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/prefs/scoped_user_pref_update.h" |
#include "chrome/browser/profiles/profile.h" |
-#include "chrome/browser/ui/autofill/autofill_credit_card_bubble_controller.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_common.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_view.h" |
#include "chrome/browser/ui/autofill/data_model_wrapper.h" |
+#if !defined(OS_ANDROID) |
+#include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h" |
+#include "chrome/browser/ui/autofill/new_credit_card_bubble_controller.h" |
+#endif |
#include "chrome/browser/ui/browser.h" |
#include "chrome/browser/ui/browser_finder.h" |
#include "chrome/browser/ui/browser_navigator.h" |
@@ -2287,6 +2290,16 @@ bool AutofillDialogControllerImpl::TransmissionWillBeSecure() const { |
return source_url_.SchemeIs(chrome::kHttpsScheme); |
} |
+void AutofillDialogControllerImpl::ShowNewCreditCardBubble( |
+ scoped_ptr<CreditCard> new_card, |
+ scoped_ptr<AutofillProfile> billing_profile) { |
+#if !defined(OS_ANDROID) |
+ NewCreditCardBubbleController::Show(profile(), |
+ new_card.Pass(), |
+ billing_profile.Pass()); |
+#endif |
+} |
+ |
AutofillDialogControllerImpl::AutofillDialogControllerImpl( |
content::WebContents* contents, |
const FormData& form_structure, |
@@ -3397,8 +3410,28 @@ void AutofillDialogControllerImpl::MaybeShowCreditCardBubble() { |
return; |
if (newly_saved_card_) { |
- AutofillCreditCardBubbleController::ShowNewCardSavedBubble( |
- web_contents(), newly_saved_card_->TypeAndLastFourDigits()); |
+ scoped_ptr<AutofillProfile> billing_profile; |
+ if (IsManuallyEditingSection(SECTION_BILLING)) { |
+ // Scrape the view as the user's entering or updating information. |
+ DetailOutputMap outputs; |
+ view_->GetUserInput(SECTION_BILLING, &outputs); |
+ billing_profile.reset(new AutofillProfile); |
+ FillFormGroupFromOutputs(outputs, billing_profile.get()); |
+ } else { |
+ // Just snag the currently suggested profile. |
+ std::string item_key = SuggestionsMenuModelForSection(SECTION_BILLING)-> |
+ GetItemKeyForCheckedItem(); |
+ AutofillProfile* profile = GetManager()->GetProfileByGUID(item_key); |
+ billing_profile.reset(new AutofillProfile(*profile)); |
+ } |
+ |
+ // The bubble also needs the associated email address. |
+ billing_profile->SetRawInfo( |
+ EMAIL_ADDRESS, |
+ GetValueFromSection(SECTION_EMAIL, EMAIL_ADDRESS)); |
+ |
+ ShowNewCreditCardBubble(newly_saved_card_.Pass(), |
+ billing_profile.Pass()); |
return; |
} |
@@ -3421,8 +3454,12 @@ void AutofillDialogControllerImpl::MaybeShowCreditCardBubble() { |
GetBillingInfoFromOutputs(output, &card, NULL, NULL); |
backing_last_four = card.TypeAndLastFourDigits(); |
} |
- AutofillCreditCardBubbleController::ShowGeneratedCardUI( |
- web_contents(), backing_last_four, full_wallet_->TypeAndLastFourDigits()); |
+#if !defined(OS_ANDROID) |
+ GeneratedCreditCardBubbleController::Show( |
+ web_contents(), |
+ backing_last_four, |
+ full_wallet_->TypeAndLastFourDigits()); |
+#endif |
} |
} // namespace autofill |