dont autofill non-empty fields on page load
This commit is contained in:
parent
db55601fcd
commit
93e5eeda6b
2
jslib
2
jslib
|
@ -1 +1 @@
|
||||||
Subproject commit 6b82cd0380d33c83e8b242713eb173d94e16e9f4
|
Subproject commit 971e19335f66ac64845b65a7bcf688811f60eaff
|
|
@ -119,7 +119,7 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
getFormsWithPasswordFields(pageDetails: AutofillPageDetails): any[] {
|
getFormsWithPasswordFields(pageDetails: AutofillPageDetails): any[] {
|
||||||
const formData: any[] = [];
|
const formData: any[] = [];
|
||||||
|
|
||||||
const passwordFields = this.loadPasswordFields(pageDetails, true, true);
|
const passwordFields = this.loadPasswordFields(pageDetails, true, true, false);
|
||||||
if (passwordFields.length === 0) {
|
if (passwordFields.length === 0) {
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
@ -165,6 +165,7 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
|
|
||||||
const fillScript = this.generateFillScript(pd.details, {
|
const fillScript = this.generateFillScript(pd.details, {
|
||||||
skipUsernameOnlyFill: options.skipUsernameOnlyFill || false,
|
skipUsernameOnlyFill: options.skipUsernameOnlyFill || false,
|
||||||
|
onlyEmptyFields: options.onlyEmptyFields || false,
|
||||||
onlyVisibleFields: options.onlyVisibleFields || false,
|
onlyVisibleFields: options.onlyVisibleFields || false,
|
||||||
cipher: options.cipher,
|
cipher: options.cipher,
|
||||||
});
|
});
|
||||||
|
@ -227,6 +228,7 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
skipTotp: !fromCommand,
|
skipTotp: !fromCommand,
|
||||||
skipLastUsed: true,
|
skipLastUsed: true,
|
||||||
skipUsernameOnlyFill: !fromCommand,
|
skipUsernameOnlyFill: !fromCommand,
|
||||||
|
onlyEmptyFields: !fromCommand,
|
||||||
onlyVisibleFields: !fromCommand,
|
onlyVisibleFields: !fromCommand,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -313,10 +315,10 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
return fillScript;
|
return fillScript;
|
||||||
}
|
}
|
||||||
|
|
||||||
let passwordFields = this.loadPasswordFields(pageDetails, false, false);
|
let passwordFields = this.loadPasswordFields(pageDetails, false, false, options.onlyEmptyFields);
|
||||||
if (!passwordFields.length && !options.onlyVisibleFields) {
|
if (!passwordFields.length && !options.onlyVisibleFields) {
|
||||||
// not able to find any viewable password fields. maybe there are some "hidden" ones?
|
// not able to find any viewable password fields. maybe there are some "hidden" ones?
|
||||||
passwordFields = this.loadPasswordFields(pageDetails, true, true);
|
passwordFields = this.loadPasswordFields(pageDetails, true, true, options.onlyEmptyFields);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const formKey in pageDetails.forms) {
|
for (const formKey in pageDetails.forms) {
|
||||||
|
@ -871,7 +873,8 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private loadPasswordFields(pageDetails: AutofillPageDetails, canBeHidden: boolean, canBeReadOnly: boolean) {
|
private loadPasswordFields(pageDetails: AutofillPageDetails, canBeHidden: boolean, canBeReadOnly: boolean,
|
||||||
|
mustBeEmpty: boolean) {
|
||||||
const arr: AutofillField[] = [];
|
const arr: AutofillField[] = [];
|
||||||
pageDetails.fields.forEach((f) => {
|
pageDetails.fields.forEach((f) => {
|
||||||
const isPassword = f.type === 'password';
|
const isPassword = f.type === 'password';
|
||||||
|
@ -904,7 +907,7 @@ export default class AutofillService implements AutofillServiceInterface {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
if (!f.disabled && (canBeReadOnly || !f.readonly) && (isPassword || isLikePassword())
|
if (!f.disabled && (canBeReadOnly || !f.readonly) && (isPassword || isLikePassword())
|
||||||
&& (canBeHidden || f.viewable)) {
|
&& (canBeHidden || f.viewable) && (!mustBeEmpty || f.value == null || f.value.trim() === '')) {
|
||||||
arr.push(f);
|
arr.push(f);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue