summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/render_view_host.cc
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-18 01:29:24 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-18 01:29:24 +0000
commit95056b58863ba1fc6716ef796bb847cca8919188 (patch)
tree5440761639aa7031810c7be5a817857ac596d02f /chrome/browser/renderer_host/render_view_host.cc
parentf5c895f2e6660df9756fec85584bf85b598186f5 (diff)
downloadchromium_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.cc39
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.
}