| Index: components/autofill/browser/autocomplete_history_manager.cc
 | 
| diff --git a/components/autofill/browser/autocomplete_history_manager.cc b/components/autofill/browser/autocomplete_history_manager.cc
 | 
| index 2f6ce6356e20b0887005d98542ec8c9338fdc875..3fb915810fec7cd6dbd861f4107d1350a7e99ab1 100644
 | 
| --- a/components/autofill/browser/autocomplete_history_manager.cc
 | 
| +++ b/components/autofill/browser/autocomplete_history_manager.cc
 | 
| @@ -9,6 +9,7 @@
 | 
|  #include "base/prefs/pref_service.h"
 | 
|  #include "base/strings/string16.h"
 | 
|  #include "base/strings/utf_string_conversions.h"
 | 
| +#include "components/autofill/browser/autofill_driver.h"
 | 
|  #include "components/autofill/browser/autofill_external_delegate.h"
 | 
|  #include "components/autofill/browser/validation.h"
 | 
|  #include "components/autofill/common/autofill_messages.h"
 | 
| @@ -18,6 +19,7 @@
 | 
|  #include "content/public/browser/browser_context.h"
 | 
|  #include "content/public/browser/render_view_host.h"
 | 
|  #include "content/public/browser/web_contents.h"
 | 
| +#include "ipc/ipc_message_macros.h"
 | 
|  
 | 
|  using content::BrowserContext;
 | 
|  using content::WebContents;
 | 
| @@ -41,15 +43,15 @@ bool IsTextField(const FormFieldData& field) {
 | 
|  
 | 
|  }  // namespace
 | 
|  
 | 
| -AutocompleteHistoryManager::AutocompleteHistoryManager(
 | 
| -    WebContents* web_contents)
 | 
| -    : content::WebContentsObserver(web_contents),
 | 
| -      browser_context_(web_contents->GetBrowserContext()),
 | 
| +AutocompleteHistoryManager::AutocompleteHistoryManager(AutofillDriver* driver)
 | 
| +    : browser_context_(driver->GetWebContents()->GetBrowserContext()),
 | 
| +      driver_(driver),
 | 
|        autofill_data_(
 | 
|            AutofillWebDataService::FromBrowserContext(browser_context_)),
 | 
|        pending_query_handle_(0),
 | 
|        query_id_(0),
 | 
| -      external_delegate_(NULL) {
 | 
| +      external_delegate_(NULL),
 | 
| +      send_ipc_(true) {
 | 
|    autofill_enabled_.Init(
 | 
|        prefs::kAutofillEnabled,
 | 
|        user_prefs::UserPrefs::Get(browser_context_));
 | 
| @@ -59,17 +61,6 @@ AutocompleteHistoryManager::~AutocompleteHistoryManager() {
 | 
|    CancelPendingQuery();
 | 
|  }
 | 
|  
 | 
| -bool AutocompleteHistoryManager::OnMessageReceived(
 | 
| -    const IPC::Message& message) {
 | 
| -  bool handled = true;
 | 
| -  IPC_BEGIN_MESSAGE_MAP(AutocompleteHistoryManager, message)
 | 
| -    IPC_MESSAGE_HANDLER(AutofillHostMsg_RemoveAutocompleteEntry,
 | 
| -                        OnRemoveAutocompleteEntry)
 | 
| -    IPC_MESSAGE_UNHANDLED(handled = false)
 | 
| -  IPC_END_MESSAGE_MAP()
 | 
| -  return handled;
 | 
| -}
 | 
| -
 | 
|  void AutocompleteHistoryManager::OnWebDataServiceRequestDone(
 | 
|      WebDataServiceBase::Handle h,
 | 
|      const WDTypedResult* result) {
 | 
| @@ -207,12 +198,16 @@ void AutocompleteHistoryManager::SendSuggestions(
 | 
|          autofill_icons_,
 | 
|          autofill_unique_ids_);
 | 
|    } else {
 | 
| -    Send(new AutofillMsg_SuggestionsReturned(routing_id(),
 | 
| -                                             query_id_,
 | 
| -                                             autofill_values_,
 | 
| -                                             autofill_labels_,
 | 
| -                                             autofill_icons_,
 | 
| -                                             autofill_unique_ids_));
 | 
| +    WebContents* web_contents = driver_->GetWebContents();
 | 
| +    if (web_contents && send_ipc_) {
 | 
| +      web_contents->Send(
 | 
| +          new AutofillMsg_SuggestionsReturned(web_contents->GetRoutingID(),
 | 
| +                                              query_id_,
 | 
| +                                              autofill_values_,
 | 
| +                                              autofill_labels_,
 | 
| +                                              autofill_icons_,
 | 
| +                                              autofill_unique_ids_));
 | 
| +    }
 | 
|    }
 | 
|  
 | 
|    query_id_ = 0;
 | 
| 
 |