[epiphany/mcatanzaro/passwords: 1/2] ephy.js: Don't require input element name for form autofill
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany/mcatanzaro/passwords: 1/2] ephy.js: Don't require input element name for form autofill
- Date: Mon, 4 Mar 2019 00:56:38 +0000 (UTC)
commit d1778f6237c67c6e41ac5dfb16277637e4dade1e
Author: Michael Catanzaro <mcatanzaro igalia com>
Date: Sun Mar 3 18:15:44 2019 -0600
ephy.js: Don't require input element name for form autofill
MDN says name is deprecated since HTML *4* so we'd best check for
element ID first, and only fall back to name if missing.
This fixes form autofill for me on at least one website, which is nice.
embed/web-extension/resources/js/ephy.js | 25 ++++++++++++++++++-------
1 file changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/embed/web-extension/resources/js/ephy.js b/embed/web-extension/resources/js/ephy.js
index d84f7d761..1fa0361e8 100644
--- a/embed/web-extension/resources/js/ephy.js
+++ b/embed/web-extension/resources/js/ephy.js
@@ -672,17 +672,28 @@ Ephy.FormManager = class FormManager
formAuth.username = null;
if (formAuth.usernameNode && formAuth.usernameNode.value)
- username = formAuth.usernameNode.value;
+ formAuth.username = formAuth.usernameNode.value;
formAuth.usernameField = null;
- if (formAuth.usernameNode && formAuth.usernameNode.name)
- usernameField = formAuth.usernameNode.name;
-
- if (!formAuth.passwordNode.name)
- return null;
+ if (formAuth.usernameNode) {
+ // The name attribute is obsoleted by ID, but lots of websites have
+ // missed that memo, so we should check both. We'll check name
+ // before ID for compatibility with passwords saved by old versions
+ // of Epiphany.
+ if (formAuth.usernameNode.name)
+ formAuth.usernameField = formAuth.usernameNode.name;
+ else if (formAuth.usernameNode.id)
+ formAuth.usernameField = formAuth.usernameNode.id;
+ }
formAuth.password = formAuth.passwordNode.value;
- formAuth.passwordField = formAuth.passwordNode.name;
+
+ if (formAuth.passwordNode.name)
+ formAuth.passwordField = formAuth.passwordNode.name;
+ else if (formAuth.passwordNode.id)
+ formAuth.passwordField = formAuth.passwordNode.id;
+ else
+ return null;
return formAuth;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]