diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-18 01:29:24 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-18 01:29:24 +0000 |
commit | 95056b58863ba1fc6716ef796bb847cca8919188 (patch) | |
tree | 5440761639aa7031810c7be5a817857ac596d02f /chrome/browser/renderer_host/render_view_host.cc | |
parent | f5c895f2e6660df9756fec85584bf85b598186f5 (diff) | |
download | chromium_src-95056b58863ba1fc6716ef796bb847cca8919188.zip chromium_src-95056b58863ba1fc6716ef796bb847cca8919188.tar.gz chromium_src-95056b58863ba1fc6716ef796bb847cca8919188.tar.bz2 |
Send suggestions from the AutoFillManager to the AutoFillSuggestionsPopup in WebKit.
BUG=18201
TEST=none
Review URL: http://codereview.chromium.org/627005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@39310 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/renderer_host/render_view_host.cc')
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 2c1bdf2..055a15d 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -42,6 +42,7 @@ #include "net/base/net_util.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/WebKit/WebKit/chromium/public/WebFindOptions.h" +#include "webkit/glue/form_field.h" #include "webkit/glue/form_field_values.h" #if defined(OS_WIN) @@ -1558,18 +1559,27 @@ void RenderViewHost::OnMsgShouldCloseACK(bool proceed) { } } -void RenderViewHost::OnQueryFormFieldAutofill(int query_id, - const string16& field_name, - const string16& user_text) { +void RenderViewHost::OnQueryFormFieldAutofill( + int query_id, const webkit_glue::FormField& field) { + RenderViewHostDelegate::AutoFill* autofill_delegate = + delegate_->GetAutoFillDelegate(); + // If the AutoFill delegate has results to return, we don't need any results + // from the FormFieldHistory delegate. + if (autofill_delegate && + autofill_delegate->GetAutoFillSuggestions(query_id, field)) { + return; + } + RenderViewHostDelegate::FormFieldHistory* formfield_history_delegate = delegate_->GetFormFieldHistoryDelegate(); - bool ok = false; - if (formfield_history_delegate) { - ok = formfield_history_delegate->GetFormFieldHistorySuggestions( - query_id, field_name, user_text); + if (formfield_history_delegate && + formfield_history_delegate->GetFormFieldHistorySuggestions( + query_id, field.name(), field.value())) { + return; } - if (!ok) - AutocompleteSuggestionsReturned(query_id, std::vector<string16>(), -1); + + // No suggestions provided, so send an empty vector as the results. + AutocompleteSuggestionsReturned(query_id, std::vector<string16>(), -1); } void RenderViewHost::OnRemoveAutofillEntry(const string16& field_name, @@ -1580,10 +1590,19 @@ void RenderViewHost::OnRemoveAutofillEntry(const string16& field_name, formfield_history_delegate->RemoveFormFieldHistoryEntry(field_name, value); } +void RenderViewHost::AutoFillSuggestionsReturned( + int query_id, + const std::vector<string16>& names, + const std::vector<string16>& labels, + int default_suggestion_index) { + Send(new ViewMsg_AutoFillSuggestionsReturned( + routing_id(), query_id, names, labels, default_suggestion_index)); +} + void RenderViewHost::AutocompleteSuggestionsReturned( int query_id, const std::vector<string16>& suggestions, int default_suggestion_index) { - Send(new ViewMsg_QueryFormFieldAutofill_ACK( + Send(new ViewMsg_AutocompleteSuggestionsReturned( routing_id(), query_id, suggestions, -1)); // Default index -1 means no default suggestion. } |