summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/autofill/autofill_agent.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/autofill/autofill_agent.cc')
-rw-r--r--chrome/renderer/autofill/autofill_agent.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/renderer/autofill/autofill_agent.cc b/chrome/renderer/autofill/autofill_agent.cc
index 50e6663..e874e52 100644
--- a/chrome/renderer/autofill/autofill_agent.cc
+++ b/chrome/renderer/autofill/autofill_agent.cc
@@ -29,6 +29,7 @@ using WebKit::WebInputElement;
using WebKit::WebKeyboardEvent;
using WebKit::WebNode;
using WebKit::WebString;
+using webkit_glue::FormData;
namespace {
@@ -52,6 +53,7 @@ AutofillAgent::AutofillAgent(
suggestions_clear_index_(-1),
suggestions_options_index_(-1),
ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) {
+ render_view->webview()->setAutoFillClient(this);
}
AutofillAgent::~AutofillAgent() {}
@@ -81,6 +83,19 @@ void AutofillAgent::FrameWillClose(WebKit::WebFrame* frame) {
form_manager_.ResetFrame(frame);
}
+void AutofillAgent::WillSubmitForm(WebFrame* frame,
+ const WebFormElement& form) {
+ FormData form_data;
+ if (FormManager::WebFormElementToFormData(
+ form,
+ FormManager::REQUIRE_AUTOCOMPLETE,
+ static_cast<FormManager::ExtractMask>(
+ FormManager::EXTRACT_VALUE | FormManager::EXTRACT_OPTION_TEXT),
+ &form_data)) {
+ Send(new AutofillHostMsg_FormSubmitted(routing_id(), form_data));
+ }
+}
+
void AutofillAgent::FrameTranslated(WebKit::WebFrame* frame) {
// The page is translated, so try to extract the form data again.
DidFinishDocumentLoad(frame);