diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-31 05:49:12 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-31 05:49:12 +0000 |
commit | 1255b5d9b20f8c23a1980ef270c09bbb07683418 (patch) | |
tree | 37e5a97e6502f7a5d8f3bd3202c4952a5a117929 /chrome/renderer/form_manager.h | |
parent | 545baea014e3d9b51f6b25b5d6d7f9a429545677 (diff) | |
download | chromium_src-1255b5d9b20f8c23a1980ef270c09bbb07683418.zip chromium_src-1255b5d9b20f8c23a1980ef270c09bbb07683418.tar.gz chromium_src-1255b5d9b20f8c23a1980ef270c09bbb07683418.tar.bz2 |
AutoFill: Send the forms cached in the FormManager to the AutoFillManager on
page load instead of duplicating this parsing in RenderView.
BUG=38325
TEST=none
Review URL: http://codereview.chromium.org/1530011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43181 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/form_manager.h')
-rw-r--r-- | chrome/renderer/form_manager.h | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/chrome/renderer/form_manager.h b/chrome/renderer/form_manager.h index 5445a4f..cc19bd8 100644 --- a/chrome/renderer/form_manager.h +++ b/chrome/renderer/form_manager.h @@ -12,6 +12,7 @@ #include "third_party/WebKit/WebKit/chromium/public/WebFormControlElement.h" #include "third_party/WebKit/WebKit/chromium/public/WebFormElement.h" #include "webkit/glue/form_data.h" +#include "webkit/glue/form_field_values.h" namespace WebKit { class WebFrame; @@ -31,12 +32,17 @@ class FormManager { virtual ~FormManager(); // Scans the DOM in |frame| extracting and storing forms. - void ExtractForms(WebKit::WebFrame* frame); + void ExtractForms(const WebKit::WebFrame* frame); // Returns a vector of forms that match |requirements|. void GetForms(std::vector<webkit_glue::FormData>* forms, RequirementsMask requirements); + // Returns a vector of forms in |frame| that match |requirements|. + void GetFormsInFrame(const WebKit::WebFrame* frame, + RequirementsMask requirements, + std::vector<webkit_glue::FormData>* forms); + // Finds the form that contains |element| and returns it in |form|. Returns // false if the form is not found. bool FindForm(const WebKit::WebFormControlElement& element, @@ -52,6 +58,16 @@ class FormManager { // Resets the stored set of forms. void Reset(); + // TODO(jhawkins): Remove this method once AutoFillManager uses FormData. + static void FormDataToFormFieldValues( + const std::vector<webkit_glue::FormData>& forms, + std::vector<webkit_glue::FormFieldValues>* form_field_values); + + // Creates a FormField object from a given WebFormControlElement. + static void WebFormControlElementToFormField( + const WebKit::WebFormControlElement& element, + webkit_glue::FormField* field); + private: // A map of WebFormControlElements keyed by each element's name. typedef std::map<string16, WebKit::WebFormControlElement> @@ -66,15 +82,15 @@ class FormManager { // A map of vectors of FormElements keyed by the WebFrame containing each // form. - typedef std::map<WebKit::WebFrame*, std::vector<FormElement*> > + typedef std::map<const WebKit::WebFrame*, std::vector<FormElement*> > WebFrameFormElementMap; // Resets the forms for the specified |frame|. - void ResetFrame(WebKit::WebFrame* frame); + void ResetFrame(const WebKit::WebFrame* frame); // Converts a FormElement to FormData storage. // TODO(jhawkins): Modify FormElement so we don't need |frame|. - void FormElementToFormData(WebKit::WebFrame* frame, + void FormElementToFormData(const WebKit::WebFrame* frame, const FormElement* form_element, RequirementsMask requirements, webkit_glue::FormData* form); |