OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ | 5 #ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ |
6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ | 6 #define COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/strings/string16.h" | 10 #include "base/strings/string16.h" |
11 #include "third_party/WebKit/public/platform/WebVector.h" | 11 #include "third_party/WebKit/public/platform/WebVector.h" |
| 12 #include "third_party/WebKit/public/web/WebElementCollection.h" |
12 #include "ui/gfx/rect.h" | 13 #include "ui/gfx/rect.h" |
13 | 14 |
14 class GURL; | 15 class GURL; |
15 | 16 |
16 namespace blink { | 17 namespace blink { |
17 class WebDocument; | 18 class WebDocument; |
18 class WebElement; | 19 class WebElement; |
19 class WebFormElement; | 20 class WebFormElement; |
20 class WebFormControlElement; | 21 class WebFormControlElement; |
21 class WebFrame; | 22 class WebFrame; |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 // won't meet the |requirements|. Also returns false if there are no fields or | 108 // won't meet the |requirements|. Also returns false if there are no fields or |
108 // too many fields in the |form|. | 109 // too many fields in the |form|. |
109 bool WebFormElementToFormData( | 110 bool WebFormElementToFormData( |
110 const blink::WebFormElement& form_element, | 111 const blink::WebFormElement& form_element, |
111 const blink::WebFormControlElement& form_control_element, | 112 const blink::WebFormControlElement& form_control_element, |
112 RequirementsMask requirements, | 113 RequirementsMask requirements, |
113 ExtractMask extract_mask, | 114 ExtractMask extract_mask, |
114 FormData* form, | 115 FormData* form, |
115 FormFieldData* field); | 116 FormFieldData* field); |
116 | 117 |
| 118 // Get all form control elements from |elements| that are not part of a form. |
| 119 // If |fieldsets| is not NULL, also append the fieldsets encountered that are |
| 120 // not part of a form. |
| 121 std::vector<blink::WebFormControlElement> |
| 122 GetUnownedAutofillableFormFieldElements( |
| 123 const blink::WebElementCollection& elements, |
| 124 std::vector<blink::WebElement>* fieldsets); |
| 125 |
117 // Fills |form| with the form data derived from |fieldsets|, |control_elements| | 126 // Fills |form| with the form data derived from |fieldsets|, |control_elements| |
118 // and |origin|. |extract_mask| usage and the return value are the same as | 127 // and |origin|. If |field| is non-NULL, fill it with the FormField |
| 128 // representation for |element|. |
| 129 // |extract_mask| usage and the return value are the same as |
119 // WebFormElementToFormData() above. | 130 // WebFormElementToFormData() above. |
120 bool UnownedFormElementsAndFieldSetsToFormData( | 131 bool UnownedFormElementsAndFieldSetsToFormData( |
121 const std::vector<blink::WebElement>& fieldsets, | 132 const std::vector<blink::WebElement>& fieldsets, |
122 const std::vector<blink::WebFormControlElement>& control_elements, | 133 const std::vector<blink::WebFormControlElement>& control_elements, |
| 134 const blink::WebFormControlElement* element, |
123 const GURL& origin, | 135 const GURL& origin, |
| 136 RequirementsMask requirements, |
124 ExtractMask extract_mask, | 137 ExtractMask extract_mask, |
125 FormData* form); | 138 FormData* form, |
| 139 FormFieldData* field); |
126 | 140 |
127 // Finds the form that contains |element| and returns it in |form|. Fills | 141 // Finds the form that contains |element| and returns it in |form|. If |field| |
128 // |field| with the |FormField| representation for element. | 142 // is non-NULL, fill it with the FormField representation for |element|. |
129 // Returns false if the form is not found or cannot be serialized. | 143 // Returns false if the form is not found or cannot be serialized. |
130 bool FindFormAndFieldForFormControlElement( | 144 bool FindFormAndFieldForFormControlElement( |
131 const blink::WebFormControlElement& element, | 145 const blink::WebFormControlElement& element, |
132 FormData* form, | 146 FormData* form, |
133 FormFieldData* field, | 147 FormFieldData* field, |
134 RequirementsMask requirements); | 148 RequirementsMask requirements); |
135 | 149 |
136 // Fills the form represented by |form|. |element| is the input element that | 150 // Fills the form represented by |form|. |element| is the input element that |
137 // initiated the auto-fill process. | 151 // initiated the auto-fill process. |
138 void FillForm(const FormData& form, | 152 void FillForm(const FormData& form, |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 // are of the type <script>, <meta>, or <title>. | 185 // are of the type <script>, <meta>, or <title>. |
172 bool IsWebElementEmpty(const blink::WebElement& element); | 186 bool IsWebElementEmpty(const blink::WebElement& element); |
173 | 187 |
174 // Return a gfx::RectF that is the bounding box for |element| scaled by |scale|. | 188 // Return a gfx::RectF that is the bounding box for |element| scaled by |scale|. |
175 gfx::RectF GetScaledBoundingBox(float scale, | 189 gfx::RectF GetScaledBoundingBox(float scale, |
176 blink::WebFormControlElement* element); | 190 blink::WebFormControlElement* element); |
177 | 191 |
178 } // namespace autofill | 192 } // namespace autofill |
179 | 193 |
180 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ | 194 #endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_AUTOFILL_UTIL_H_ |
OLD | NEW |