[Password Generation] Sends field properties mask in autofill upload
1. Extend |PasswordAutofillAgent.nonscript_modified_values_| to FieldValueAndPropertiesMaskMap that is a map from WebFormControlElement to the pair of:
a) The most recent text that user typed or PasswordManager autofilled in input elements. Used for storing username/password before JavaScript changes them.
a) Field properties mask, i.e. whether the field was autofilled, modified by user, etc. (see FieldPropertiesMask). THIS ONE was added.
2) Update field properties mask on (PasswordAutofillAgent)
a) autofilling form field
b) user input in a field
c) user moves focus to a field
3) On FormData initialization, copy field properties masks from |field_value_and_properties_map_| to |FormFieldData.properties_mask|. Thus, the field properties masks will be sent to the browser on form submission, inpage nvaigation, force saving.
4) On the browser side, copy the field properties to |pending_credentials_|. See PasswordFormManager.CreatePendingCredentials()
5) Add the field properties mask to autofill upload request.
BUG=
552420
TEST=FormStructureTest.EncodeUploadRequestWithAdditionalPasswordFormSignature, PasswordAutofillAgentTest.RememberFieldPropertiesOnSubmit, PasswordAutofillAgentTest, RememberFieldPropertiesOnInPageNavigation, PasswordFormManagerTest.FieldPropertiesMasksUpload
Committed:
https://crrev.com/66b4c2950fda6e71c891ef57ac0354f16a0cf9d3
Cr-Commit-Position: refs/heads/master@{#408684}