| Index: chrome/browser/ui/autofill/chrome_autofill_client.cc
|
| diff --git a/chrome/browser/ui/autofill/chrome_autofill_client.cc b/chrome/browser/ui/autofill/chrome_autofill_client.cc
|
| index 5aa836cb049d6db5be3714bec1df0670c3f5b2e3..a3cbdd2dc9e90f0b3de2eea257a50021fa4a9cdc 100644
|
| --- a/chrome/browser/ui/autofill/chrome_autofill_client.cc
|
| +++ b/chrome/browser/ui/autofill/chrome_autofill_client.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/profiles/profile.h"
|
| #include "chrome/browser/ui/autofill/autofill_dialog_controller.h"
|
| #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
|
| +#include "chrome/browser/ui/autofill/card_unmask_prompt_view.h"
|
| #include "chrome/browser/ui/autofill/credit_card_scanner_controller.h"
|
| #include "chrome/browser/ui/browser.h"
|
| #include "chrome/browser/ui/browser_finder.h"
|
| @@ -40,7 +41,7 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(autofill::ChromeAutofillClient);
|
| namespace autofill {
|
|
|
| ChromeAutofillClient::ChromeAutofillClient(content::WebContents* web_contents)
|
| - : content::WebContentsObserver(web_contents), web_contents_(web_contents) {
|
| + : content::WebContentsObserver(web_contents), weak_pointer_factory_(this) {
|
| DCHECK(web_contents);
|
|
|
| #if !defined(OS_ANDROID)
|
| @@ -79,20 +80,20 @@ void ChromeAutofillClient::TabActivated() {
|
|
|
| PersonalDataManager* ChromeAutofillClient::GetPersonalDataManager() {
|
| Profile* profile =
|
| - Profile::FromBrowserContext(web_contents_->GetBrowserContext());
|
| + Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
| return PersonalDataManagerFactory::GetForProfile(
|
| profile->GetOriginalProfile());
|
| }
|
|
|
| scoped_refptr<AutofillWebDataService> ChromeAutofillClient::GetDatabase() {
|
| Profile* profile =
|
| - Profile::FromBrowserContext(web_contents_->GetBrowserContext());
|
| + Profile::FromBrowserContext(web_contents()->GetBrowserContext());
|
| return WebDataServiceFactory::GetAutofillWebDataForProfile(
|
| profile, Profile::EXPLICIT_ACCESS);
|
| }
|
|
|
| PrefService* ChromeAutofillClient::GetPrefs() {
|
| - return Profile::FromBrowserContext(web_contents_->GetBrowserContext())
|
| + return Profile::FromBrowserContext(web_contents()->GetBrowserContext())
|
| ->GetPrefs();
|
| }
|
|
|
| @@ -100,17 +101,29 @@ void ChromeAutofillClient::ShowAutofillSettings() {
|
| #if defined(OS_ANDROID)
|
| chrome::android::ChromiumApplication::ShowAutofillSettings();
|
| #else
|
| - Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
|
| + Browser* browser = chrome::FindBrowserWithWebContents(web_contents());
|
| if (browser)
|
| chrome::ShowSettingsSubPage(browser, chrome::kAutofillSubPage);
|
| #endif // #if defined(OS_ANDROID)
|
| }
|
|
|
| +void ChromeAutofillClient::ShowUnmaskPrompt() {
|
| + // TODO(estade): we'll need to store the returned pointer at some point when
|
| + // the view object gets more complicated.
|
| + CardUnmaskPromptView::CreateAndShow(
|
| + web_contents(), base::Bind(&ChromeAutofillClient::OnUnmaskResponse,
|
| + weak_pointer_factory_.GetWeakPtr()));
|
| +}
|
| +
|
| +void ChromeAutofillClient::OnUnmaskResponse(const base::string16& response) {
|
| + NOTIMPLEMENTED() << " I should probably do something with this: " << response;
|
| +}
|
| +
|
| void ChromeAutofillClient::ConfirmSaveCreditCard(
|
| const AutofillMetrics& metric_logger,
|
| const base::Closure& save_card_callback) {
|
| InfoBarService* infobar_service =
|
| - InfoBarService::FromWebContents(web_contents_);
|
| + InfoBarService::FromWebContents(web_contents());
|
| AutofillCCInfoBarDelegate::Create(
|
| infobar_service, &metric_logger, save_card_callback);
|
| }
|
| @@ -130,8 +143,8 @@ void ChromeAutofillClient::ShowRequestAutocompleteDialog(
|
| const ResultCallback& callback) {
|
| HideRequestAutocompleteDialog();
|
|
|
| - dialog_controller_ = AutofillDialogController::Create(
|
| - web_contents_, form, source_url, callback);
|
| + dialog_controller_ = AutofillDialogController::Create(web_contents(), form,
|
| + source_url, callback);
|
| if (dialog_controller_) {
|
| dialog_controller_->Show();
|
| } else {
|
| @@ -151,7 +164,7 @@ void ChromeAutofillClient::ShowAutofillPopup(
|
| const std::vector<int>& identifiers,
|
| base::WeakPtr<AutofillPopupDelegate> delegate) {
|
| // Convert element_bounds to be in screen space.
|
| - gfx::Rect client_area = web_contents_->GetContainerBounds();
|
| + gfx::Rect client_area = web_contents()->GetContainerBounds();
|
| gfx::RectF element_bounds_in_screen_space =
|
| element_bounds + client_area.OffsetFromOrigin();
|
|
|
| @@ -181,7 +194,7 @@ void ChromeAutofillClient::HideAutofillPopup() {
|
| // Password generation popups behave in the same fashion and should also
|
| // be hidden.
|
| ChromePasswordManagerClient* password_client =
|
| - ChromePasswordManagerClient::FromWebContents(web_contents_);
|
| + ChromePasswordManagerClient::FromWebContents(web_contents());
|
| if (password_client)
|
| password_client->HidePasswordGenerationPopup();
|
| }
|
|
|