Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(393)

Unified Diff: components/autofill/ios/browser/resources/autofill_controller.js

Issue 1248463002: Eliminate the use of autofill::REQUIRE_AUTOCOMPLETE [step 3 of 3]. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/autofill/ios/browser/js_autofill_manager.mm ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
/**
« no previous file with comments | « components/autofill/ios/browser/js_autofill_manager.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698