| Index: chrome/browser/autofill/autofill_external_delegate.cc
|
| diff --git a/chrome/browser/autofill/autofill_external_delegate.cc b/chrome/browser/autofill/autofill_external_delegate.cc
|
| index 501f8ec9269fc9fe5647d79ed43198addbd2cb8d..f8243179bc96304f8a8357a17c7e8e354e147268 100644
|
| --- a/chrome/browser/autofill/autofill_external_delegate.cc
|
| +++ b/chrome/browser/autofill/autofill_external_delegate.cc
|
| @@ -46,7 +46,6 @@ AutofillExternalDelegate::AutofillExternalDelegate(
|
| AutofillManager* autofill_manager)
|
| : web_contents_(web_contents),
|
| autofill_manager_(autofill_manager),
|
| - controller_(NULL),
|
| password_autofill_manager_(web_contents),
|
| autofill_query_id_(0),
|
| display_warning_if_disabled_(false),
|
| @@ -192,8 +191,6 @@ void AutofillExternalDelegate::ApplyAutofillSuggestions(
|
| autofill_labels,
|
| autofill_icons,
|
| autofill_unique_ids);
|
| -
|
| - web_contents()->GetRenderViewHost()->AddKeyboardListener(controller_);
|
| }
|
|
|
| void AutofillExternalDelegate::SetCurrentDataListValues(
|
| @@ -207,6 +204,18 @@ void AutofillExternalDelegate::SetCurrentDataListValues(
|
| data_list_unique_ids_ = data_list_unique_ids;
|
| }
|
|
|
| +void AutofillExternalDelegate::OnPopupShown(
|
| + content::KeyboardListener* listener) {
|
| + if (web_contents_)
|
| + web_contents_->GetRenderViewHost()->AddKeyboardListener(listener);
|
| +}
|
| +
|
| +void AutofillExternalDelegate::OnPopupHidden(
|
| + content::KeyboardListener* listener) {
|
| + if (web_contents_)
|
| + web_contents_->GetRenderViewHost()->RemoveKeyboardListener(listener);
|
| +}
|
| +
|
| void AutofillExternalDelegate::DidSelectSuggestion(int identifier) {
|
| ClearPreviewedForm();
|
|
|
| @@ -268,18 +277,9 @@ void AutofillExternalDelegate::ClearPreviewedForm() {
|
| }
|
| }
|
|
|
| -void AutofillExternalDelegate::ControllerDestroyed() {
|
| - web_contents()->GetRenderViewHost()->RemoveKeyboardListener(controller_);
|
| - controller_ = NULL;
|
| -}
|
| -
|
| void AutofillExternalDelegate::HideAutofillPopup() {
|
| - if (controller_) {
|
| + if (controller_)
|
| controller_->Hide();
|
| - // Go ahead and invalidate |controller_|. After calling Hide(), it won't
|
| - // inform |this| of its destruction.
|
| - ControllerDestroyed();
|
| - }
|
| }
|
|
|
| void AutofillExternalDelegate::Reset() {
|
|
|