summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/form_manager.h
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-31 05:49:12 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-31 05:49:12 +0000
commit1255b5d9b20f8c23a1980ef270c09bbb07683418 (patch)
tree37e5a97e6502f7a5d8f3bd3202c4952a5a117929 /chrome/renderer/form_manager.h
parent545baea014e3d9b51f6b25b5d6d7f9a429545677 (diff)
downloadchromium_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.h24
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);