Index: components/autofill/ios/browser/resources/autofill_controller.js |
diff --git a/components/autofill/ios/browser/resources/autofill_controller.js b/components/autofill/ios/browser/resources/autofill_controller.js |
index fc26586e421adbd0b3fafbe55f21276cdc756cec..ff5053be9916896b31d682c031a4e612ec87a693 100644 |
--- a/components/autofill/ios/browser/resources/autofill_controller.js |
+++ b/components/autofill/ios/browser/resources/autofill_controller.js |
@@ -71,28 +71,6 @@ __gCrWeb.autofill.MAX_DATA_LENGTH = 1024; |
__gCrWeb.autofill.MAX_PARSEABLE_FIELDS = 100; |
/** |
- * A bit field mask for form or form element requirements for requirement |
- * none. |
- * |
- * This variable is from enum RequirementsMask in |
- * chromium/src/components/autofill/content/renderer/form_autofill_util.h |
- * |
- * @const {number} |
- */ |
-__gCrWeb.autofill.REQUIREMENTS_MASK_NONE = 0; |
- |
-/** |
- * A bit field mask for form or form element requirements for requirement |
- * autocomplete != off. |
- * |
- * This variable is from enum RequirementsMask in |
- * chromium/src/components/autofill/content/renderer/form_autofill_util.h |
- * |
- * @const {number} |
- */ |
-__gCrWeb.autofill.REQUIREMENTS_MASK_REQUIRE_AUTOCOMPLETE = 1; |
- |
-/** |
* A bit field mask to extract data from WebFormControlElement for |
* extracting none value. |
* |
@@ -160,27 +138,23 @@ __gCrWeb.autofill.lastActiveElement = null; |
__gCrWeb.autofill.styleInjected = false; |
/** |
- * Extracts fields from |controlElements| with |requirements| and |extractMask| |
- * to |formFields|. The extracted fields are also placed in |elementArray|. |
+ * Extracts fields from |controlElements| with |extractMask| to |formFields|. |
+ * The extracted fields are also placed in |elementArray|. |
* |
* It is based on the logic in |
* bool ExtractFieldsFromControlElements( |
* const WebVector<WebFormControlElement>& control_elements, |
- * RequirementsMask requirements, |
* ExtractMask extract_mask, |
* ScopedVector<FormFieldData>* form_fields, |
* std::vector<bool>* fields_extracted, |
* std::map<WebFormControlElement, FormFieldData*>* element_map) |
* in chromium/src/components/autofill/content/renderer/form_autofill_util.cc |
* |
- * TODO(thestig): Get rid of |requirements| to match the C++ version. |
* TODO(thestig): Make |element_map| a Map when Chrome makes iOS 8 and Safari 8 |
* part of the minimal requirements. |
* |
* @param {Array<FormControlElement>} controlElements The control elements that |
* will be processed. |
- * @param {number} requirements The requirement on control element |
- * autocompletion. |
* @param {number} extractMask Mask controls what data is extracted from |
* controlElements. |
* @param {Array<AutofillFormFieldData>} formFields The extracted form fields. |
@@ -191,8 +165,8 @@ __gCrWeb.autofill.styleInjected = false; |
* @return {boolean} Whether there are fields and not too many fields in the |
* form. |
*/ |
-function extractFieldsFromControlElements_(controlElements, requirements, |
- extractMask, formFields, fieldsExtracted, elementArray) { |
+function extractFieldsFromControlElements_(controlElements, extractMask, |
+ formFields, fieldsExtracted, elementArray) { |
for (var i = 0; i < controlElements.length; ++i) { |
fieldsExtracted[i] = false; |
elementArray[i] = null; |
@@ -203,14 +177,6 @@ function extractFieldsFromControlElements_(controlElements, requirements, |
continue; |
} |
- if ((requirements & |
- __gCrWeb.autofill.REQUIREMENTS_MASK_REQUIRE_AUTOCOMPLETE) && |
- __gCrWeb.autofill.isAutofillableInputElement(controlElement) && |
- !__gCrWeb.autofill.satisfiesRequireAutocomplete( |
- controlElement, false)) { |
- continue; |
- } |
- |
// Create a new AutofillFormFieldData, fill it out and map it to the |
// field's name. |
var formField = new __gCrWeb['common'].JSONSafeObject; |
@@ -345,7 +311,6 @@ function matchLabelsAndFields_(labels, formElement, controlElements, |
* const blink::WebFormControlElement* form_control_element, |
* const std::vector<blink::WebElement>& fieldsets, |
* const WebVector<WebFormControlElement>& control_elements, |
- * RequirementsMask requirements, |
* ExtractMask extract_mask, |
* FormData* form, |
* FormFieldData* field) |
@@ -358,7 +323,6 @@ function matchLabelsAndFields_(labels, formElement, controlElements, |
* formElement and formControlElement are not specified. |
* @param {Array<FormControlElement>} controlElements The control elements that |
* will be processed. |
- * @param {number} requirements The requirement on formElement autocompletion. |
* @param {number} extractMask Mask controls what data is extracted from |
* formElement. |
* @param {AutofillFormData} form Form to fill in the AutofillFormData |
@@ -369,7 +333,7 @@ function matchLabelsAndFields_(labels, formElement, controlElements, |
* form. |
*/ |
function formOrFieldsetsToFormData_(formElement, formControlElement, |
- fieldsets, controlElements, requirements, extractMask, form, field) { |
+ fieldsets, controlElements, extractMask, form, field) { |
// This should be a map from a control element to the AutofillFormFieldData. |
// However, without Map support, it's just an Array of AutofillFormFieldData. |
var elementArray = []; |
@@ -381,9 +345,9 @@ function formOrFieldsetsToFormData_(formElement, formControlElement, |
// meets the requirements and thus will be in the resulting |form|. |
var fieldsExtracted = []; |
- if (!extractFieldsFromControlElements_(controlElements, requirements, |
- extractMask, formFields, |
- fieldsExtracted, elementArray)) { |
+ if (!extractFieldsFromControlElements_(controlElements, extractMask, |
+ formFields, fieldsExtracted, |
+ elementArray)) { |
return false; |
} |
@@ -439,12 +403,10 @@ function formOrFieldsetsToFormData_(formElement, formControlElement, |
* |
* @param {number} requiredFields The minimum number of fields forms must have |
* to be extracted. |
- * @param {number} requirements The requirements mask for forms, e.g. |
- * autocomplete attribute state. |
* @return {string} A JSON encoded object with object['forms'] containing the |
* forms data. |
*/ |
-__gCrWeb.autofill['extractForms'] = function(requiredFields, requirements) { |
+__gCrWeb.autofill['extractForms'] = function(requiredFields) { |
var forms = []; |
// Protect against custom implementation of Array.toJSON in host pages. |
/** @suppress {checkTypes} */(function() { forms.toJSON = null; })(); |
@@ -454,7 +416,6 @@ __gCrWeb.autofill['extractForms'] = function(requiredFields, requirements) { |
__gCrWeb.autofill.extractNewForms( |
window, |
requiredFields, |
- requirements, |
forms); |
var results = new __gCrWeb.common.JSONSafeObject; |
results['forms'] = forms; |
@@ -587,15 +548,13 @@ __gCrWeb.autofill['dispatchAutocompleteErrorEvent'] = function(name, reason) { |
* from which the data will be extracted. |
* @param {number} minimumRequiredFields The minimum number of fields a form |
* should contain for autofill. |
- * @param {number} requirements The requirements mask for forms, e.g. |
- * autocomplete attribute state. |
* @param {Array<AutofillFormData>} forms Forms that will be filled in data of |
* forms in frame. |
*/ |
__gCrWeb.autofill.extractNewForms = function( |
- frame, minimumRequiredFields, requirements, forms) { |
+ frame, minimumRequiredFields, forms) { |
__gCrWeb.autofill.extractFormsAndFormElements( |
- frame, minimumRequiredFields, requirements, forms); |
+ frame, minimumRequiredFields, forms); |
} |
/** |
@@ -614,8 +573,8 @@ __gCrWeb.autofill.extractNewForms = function( |
* Initial values of select and checkable elements are not recorded at the |
* moment. |
* |
- * This version still takes the minimumRequiredFields and requirements |
- * parameters. Whereas the C++ version does not. |
+ * This version still takes the minimumRequiredFields parameters. Whereas the |
+ * C++ version does not. |
* |
* TODO(thestig): Update iOS internal callers to use extractNewForms(). Once |
* that happens, this can be removed. |
@@ -624,15 +583,13 @@ __gCrWeb.autofill.extractNewForms = function( |
* from which the data will be extracted. |
* @param {number} minimumRequiredFields The minimum number of fields a form |
* should contain for autofill. |
- * @param {number} requirements The requirements mask for forms, e.g. |
- * autocomplete attribute state. |
* @param {Array<AutofillFormData>} forms Forms that will be filled in data of |
* forms in frame. |
* @return {boolean} Whether there are unextracted forms due to |
* |minimumRequiredFields| limit. |
*/ |
__gCrWeb.autofill.extractFormsAndFormElements = function( |
- frame, minimumRequiredFields, requirements, forms) { |
+ frame, minimumRequiredFields, forms) { |
if (!frame) { |
return false; |
} |
@@ -649,8 +606,8 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
for (var formIndex = 0; formIndex < webForms.length; ++formIndex) { |
/** @type {HTMLFormElement} */ |
var formElement = webForms[formIndex]; |
- var controlElements = __gCrWeb.autofill.extractAutofillableElementsInForm( |
- formElement, requirements); |
+ var controlElements = |
+ __gCrWeb.autofill.extractAutofillableElementsInForm(formElement); |
var numEditableElements = 0; |
for (var elementIndex = 0; elementIndex < controlElements.length; |
++elementIndex) { |
@@ -673,8 +630,7 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
__gCrWeb.autofill.EXTRACT_MASK_OPTIONS; |
var form = new __gCrWeb['common'].JSONSafeObject; |
if (!__gCrWeb.autofill.webFormElementToFormData( |
- frame, formElement, null, requirements, extractMask, form, |
- null /* field */)) { |
+ frame, formElement, null, extractMask, form, null /* field */)) { |
continue; |
} |
numFieldsSeen += form['fields'].length; |
@@ -693,7 +649,7 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
var frames = frame.frames; |
for (var i = 0; i < frames.length; i++) { |
var hasSkippedInframe = __gCrWeb.autofill.extractFormsAndFormElements( |
- frames[i], minimumRequiredFields, requirements, forms); |
+ frames[i], minimumRequiredFields, forms); |
hasSkippedForms = hasSkippedForms || hasSkippedInframe; |
} |
return hasSkippedForms; |
@@ -704,15 +660,13 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
* If |field| is non-NULL, also fills |field| with the FormField object |
* corresponding to the |formControlElement|. |
* |extract_mask| controls what data is extracted. |
- * Returns true if |form| is filled out; it's possible that the |formElement| |
- * won't meet the |requirements|. Also returns false if there are no fields or |
+ * Returns true if |form| is filled out. Returns false if there are no fields or |
* too many fields in the |form|. |
* |
* It is based on the logic in |
* bool WebFormElementToFormData( |
* const blink::WebFormElement& form_element, |
* const blink::WebFormControlElement& form_control_element, |
- * RequirementsMask requirements, |
* ExtractMask extract_mask, |
* FormData* form, |
* FormFieldData* field) |
@@ -723,7 +677,6 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
* @param {HTMLFormElement} formElement The form element that will be processed. |
* @param {FormControlElement} formControlElement A control element in |
* formElment, the FormField of which will be returned in field. |
- * @param {number} requirements The requirement on formElement autocompletion. |
* @param {number} extractMask Mask controls what data is extracted from |
* formElement. |
* @param {AutofillFormData} form Form to fill in the AutofillFormData |
@@ -734,18 +687,11 @@ __gCrWeb.autofill.extractFormsAndFormElements = function( |
* form. |
*/ |
__gCrWeb.autofill.webFormElementToFormData = function( |
- frame, formElement, formControlElement, requirements, extractMask, form, |
- field) { |
+ frame, formElement, formControlElement, extractMask, form, field) { |
if (!frame) { |
return false; |
} |
- if ((requirements & |
- __gCrWeb.autofill.REQUIREMENTS_MASK_REQUIRE_AUTOCOMPLETE) && |
- !__gCrWeb['common'].autoComplete(formElement)) { |
- return false; |
- } |
- |
form['name'] = __gCrWeb.common.getFormIdentifier(formElement); |
var method = formElement.getAttribute('method'); |
if (method) { |
@@ -768,8 +714,7 @@ __gCrWeb.autofill.webFormElementToFormData = function( |
var controlElements = __gCrWeb['common'].getFormControlElements(formElement); |
return formOrFieldsetsToFormData_(formElement, formControlElement, |
- [] /* fieldsets */, controlElements, requirements, extractMask, form, |
- field); |
+ [] /* fieldsets */, controlElements, extractMask, form, field); |
}; |
/** |
@@ -806,27 +751,6 @@ __gCrWeb.autofill.isAutofillableElement = function(element) { |
}; |
/** |
- * Check whether the given field satisfies the |
- * __gCrWeb.autofill.REQUIREMENTS_MASK_REQUIRE_AUTOCOMPLETE requirement. When |
- * Autocheckout is enabled, all fields are considered to satisfy this |
- * requirement. |
- * |
- * It is based on the logic in |
- * bool SatisfiesRequireAutocomplete(const WebInputElement& input_element) |
- * in chromium/src/components/autofill/content/renderer/form_autofill_util.cc. |
- * |
- * @param {Element} element The element to be examined. |
- * @param {boolean} isExperimentalFormFillingEnabled Boolean from |
- * switches::kEnableExperimentalFormFilling. |
- * @return {boolean} Whether the inputElement satisfies the requirement. |
- */ |
-__gCrWeb.autofill.satisfiesRequireAutocomplete = function( |
- element, isExperimentalFormFillingEnabled) { |
- return __gCrWeb.common.autoComplete(element) || |
- isExperimentalFormFillingEnabled; |
-}; |
- |
-/** |
* Trims whitespace from the start of the input string. |
* Simplified version of string_util::TrimWhitespace. |
* @param {string} input String to trim. |
@@ -1577,35 +1501,20 @@ __gCrWeb.autofill.value = function(element) { |
* It is based on the logic in: |
* std::vector<blink::WebFormControlElement> |
* ExtractAutofillableElementsFromSet( |
- * const WebVector<WebFormControlElement>& control_elements, |
- * RequirementsMask requirements); |
+ * const WebVector<WebFormControlElement>& control_elements); |
* in chromium/src/components/autofill/content/renderer/form_autofill_util.h. |
* |
* @param {Array<FormControlElement>} controlElements Set of control elements. |
- * @param {number} requirementsMask A mask on the requirement. |
* @return {Array<FormControlElement>} The array of autofillable elements. |
*/ |
-__gCrWeb.autofill.extractAutofillableElementsFromSet = function( |
- controlElements, requirementsMask) { |
+__gCrWeb.autofill.extractAutofillableElementsFromSet = |
+ function(controlElements) { |
var autofillableElements = []; |
for (var i = 0; i < controlElements.length; ++i) { |
var element = controlElements[i]; |
if (!__gCrWeb.autofill.isAutofillableElement(element)) { |
continue; |
} |
- if (requirementsMask & |
- __gCrWeb.autofill.REQUIREMENTS_MASK_REQUIRE_AUTOCOMPLETE) { |
- // Different from method void ExtractAutofillableElements() in |
- // chromium/src/components/autofill/content/renderer/form_autofill_util.h, |
- // where satisfiesRequireAutocomplete() check is only applied on input |
- // controls, here satisfiesRequireAutocomplete() check is also applied on |
- // select control element. This is based on the TODO in that file saying |
- // "WebKit currently doesn't handle the autocomplete attribute for select |
- // control elements, but it probably should." |
- if (!__gCrWeb.autofill.satisfiesRequireAutocomplete(element, false)) { |
- continue; |
- } |
- } |
autofillableElements.push(element); |
} |
return autofillableElements; |
@@ -1616,19 +1525,15 @@ __gCrWeb.autofill.extractAutofillableElementsFromSet = function( |
* |
* It is based on the logic in |
* void ExtractAutofillableElementsInForm( |
- * const blink::WebFormElement& form_element, |
- * RequirementsMask requirements); |
+ * const blink::WebFormElement& form_element); |
* in chromium/src/components/autofill/content/renderer/form_autofill_util.h. |
* |
* @param {HTMLFormElement} formElement A form element to be processed. |
- * @param {number} requirementsMask A mask on the requirement. |
* @return {Array<FormControlElement>} The array of autofillable elements. |
*/ |
-__gCrWeb.autofill.extractAutofillableElementsInForm = function( |
- formElement, requirementsMask) { |
+__gCrWeb.autofill.extractAutofillableElementsInForm = function(formElement) { |
var controlElements = __gCrWeb.common.getFormControlElements(formElement); |
- return __gCrWeb.autofill.extractAutofillableElementsFromSet( |
- controlElements, requirementsMask); |
+ return __gCrWeb.autofill.extractAutofillableElementsFromSet(controlElements); |
}; |
/** |