| 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 c58ff06f4634fa71c58143a13a12b06eb253064e..ad27460300dd29f0cae7f94174e0ec6bf42faa61 100644
 | 
| --- a/chrome/browser/autofill/autofill_external_delegate.cc
 | 
| +++ b/chrome/browser/autofill/autofill_external_delegate.cc
 | 
| @@ -68,14 +68,6 @@ AutofillExternalDelegate::~AutofillExternalDelegate() {
 | 
|      controller_->Hide();
 | 
|  }
 | 
|  
 | 
| -void AutofillExternalDelegate::SelectAutofillSuggestion(int unique_id) {
 | 
| -  ClearPreviewedForm();
 | 
| -
 | 
| -  // Only preview the data if it is a profile.
 | 
| -  if (unique_id > 0)
 | 
| -    FillAutofillFormData(unique_id, true);
 | 
| -}
 | 
| -
 | 
|  void AutofillExternalDelegate::OnQuery(int query_id,
 | 
|                                         const FormData& form,
 | 
|                                         const FormFieldData& field,
 | 
| @@ -205,60 +197,56 @@ void AutofillExternalDelegate::SetCurrentDataListValues(
 | 
|    data_list_unique_ids_ = data_list_unique_ids;
 | 
|  }
 | 
|  
 | 
| -void AutofillExternalDelegate::RemoveAutocompleteEntry(const string16& value) {
 | 
| -  if (web_contents_) {
 | 
| -    autofill_manager_->RemoveAutocompleteEntry(
 | 
| -        autofill_query_field_.name, value);
 | 
| -  }
 | 
| -}
 | 
| -
 | 
| -void AutofillExternalDelegate::RemoveAutofillProfileOrCreditCard(
 | 
| -    int unique_id) {
 | 
| -  autofill_manager_->RemoveAutofillProfileOrCreditCard(unique_id);
 | 
| -}
 | 
| -
 | 
| -void AutofillExternalDelegate::DidEndTextFieldEditing() {
 | 
| -  HideAutofillPopup();
 | 
| +void AutofillExternalDelegate::DidSelectSuggestion(int identifier) {
 | 
| +  ClearPreviewedForm();
 | 
|  
 | 
| -  has_shown_autofill_popup_for_current_edit_ = false;
 | 
| +  // Only preview the data if it is a profile.
 | 
| +  if (identifier > 0)
 | 
| +    FillAutofillFormData(identifier, true);
 | 
|  }
 | 
|  
 | 
| -bool AutofillExternalDelegate::DidAcceptAutofillSuggestion(
 | 
| -    const string16& value,
 | 
| -    int unique_id,
 | 
| -    unsigned index) {
 | 
| -  // If the selected element is a warning we don't want to do anything.
 | 
| -  if (unique_id == WebAutofillClient::MenuItemIDWarningMessage)
 | 
| -    return false;
 | 
| -
 | 
| +void AutofillExternalDelegate::DidAcceptSuggestion(const string16& value,
 | 
| +                                                   int identifier) {
 | 
|    RenderViewHost* host = web_contents_->GetRenderViewHost();
 | 
|  
 | 
| -  if (unique_id == WebAutofillClient::MenuItemIDAutofillOptions) {
 | 
| +  if (identifier == WebAutofillClient::MenuItemIDAutofillOptions) {
 | 
|      // User selected 'Autofill Options'.
 | 
|      autofill_manager_->OnShowAutofillDialog();
 | 
| -  } else if (unique_id == WebAutofillClient::MenuItemIDClearForm) {
 | 
| +  } else if (identifier == WebAutofillClient::MenuItemIDClearForm) {
 | 
|      // User selected 'Clear form'.
 | 
|      host->Send(new AutofillMsg_ClearForm(host->GetRoutingID()));
 | 
| -  } else if (unique_id == WebAutofillClient::MenuItemIDPasswordEntry &&
 | 
| +  } else if (identifier == WebAutofillClient::MenuItemIDPasswordEntry &&
 | 
|               password_autofill_manager_.DidAcceptAutofillSuggestion(
 | 
|                   autofill_query_field_, value)) {
 | 
|      // DidAcceptAutofillSuggestion has already handled the work to fill in
 | 
|      // the page as required.
 | 
| -  } else if (unique_id == WebAutofillClient::MenuItemIDDataListEntry) {
 | 
| +  } else if (identifier == WebAutofillClient::MenuItemIDDataListEntry) {
 | 
|      host->Send(new AutofillMsg_AcceptDataListSuggestion(host->GetRoutingID(),
 | 
|                                                          value));
 | 
| -  } else if (unique_id == WebAutofillClient::MenuItemIDAutocompleteEntry) {
 | 
| +  } else if (identifier == WebAutofillClient::MenuItemIDAutocompleteEntry) {
 | 
|      // User selected an Autocomplete, so we fill directly.
 | 
| -    host->Send(new AutofillMsg_SetNodeText(
 | 
| -        host->GetRoutingID(),
 | 
| -        value));
 | 
| +    host->Send(new AutofillMsg_SetNodeText(host->GetRoutingID(), value));
 | 
|    } else {
 | 
| -    FillAutofillFormData(unique_id, false);
 | 
| +    FillAutofillFormData(identifier, false);
 | 
|    }
 | 
|  
 | 
|    HideAutofillPopup();
 | 
| +}
 | 
|  
 | 
| -  return true;
 | 
| +void AutofillExternalDelegate::RemoveSuggestion(const string16& value,
 | 
| +                                                int identifier) {
 | 
| +  if (identifier > 0) {
 | 
| +    autofill_manager_->RemoveAutofillProfileOrCreditCard(identifier);
 | 
| +  } else if (web_contents_) {
 | 
| +    autofill_manager_->RemoveAutocompleteEntry(autofill_query_field_.name,
 | 
| +                                               value);
 | 
| +  }
 | 
| +}
 | 
| +
 | 
| +void AutofillExternalDelegate::DidEndTextFieldEditing() {
 | 
| +  HideAutofillPopup();
 | 
| +
 | 
| +  has_shown_autofill_popup_for_current_edit_ = false;
 | 
|  }
 | 
|  
 | 
|  void AutofillExternalDelegate::ClearPreviewedForm() {
 | 
| @@ -299,6 +287,10 @@ void AutofillExternalDelegate::AddPasswordFormMapping(
 | 
|  
 | 
|  void AutofillExternalDelegate::FillAutofillFormData(int unique_id,
 | 
|                                                      bool is_preview) {
 | 
| +  // If the selected element is a warning we don't want to do anything.
 | 
| +  if (unique_id == WebAutofillClient::MenuItemIDWarningMessage)
 | 
| +    return;
 | 
| +
 | 
|    RenderViewHost* host = web_contents_->GetRenderViewHost();
 | 
|  
 | 
|    if (is_preview) {
 | 
| 
 |