[epiphany/mcatanzaro/passwords-for-gnome-3-32] ephy.js: Don't require input element name for form autofill



commit 2b279c6b352432b9ab7a369867146f17ea33eb6e
Author: Michael Catanzaro <mcatanzaro igalia com>
Date:   Sun Mar 3 18:49:23 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 | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
---
diff --git a/embed/web-extension/resources/js/ephy.js b/embed/web-extension/resources/js/ephy.js
index addd9b179..9f3366d68 100644
--- a/embed/web-extension/resources/js/ephy.js
+++ b/embed/web-extension/resources/js/ephy.js
@@ -465,8 +465,8 @@ Ephy.FormManager = class FormManager
             this._formAuth.url.origin,
             this._formAuth.targetURL.origin,
             this._formAuth.usernameNode && this._formAuth.usernameNode.value ? 
this._formAuth.usernameNode.value : null,
-            this._formAuth.usernameNode ? this._formAuth.usernameNode.name : null,
-            this._formAuth.passwordNode.name ? this._formAuth.passwordNode.name : null).then(function 
(authInfo) {
+            this._formAuth.usernameNode ? (this._formAuth.usernameNode.name ? 
this._formAuth.usernameNode.name : this._formAuth.usernameNode.id) : null,
+            this._formAuth.passwordNode.name ? this._formAuth.passwordNode.name : 
this._formAuth.passwordNode.id).then(function (authInfo) {
                 if (!authInfo) {
                     Ephy.log('No result');
                     return;
@@ -500,17 +500,17 @@ Ephy.FormManager = class FormManager
             return;
         }
 
-        if (!this._formAuth.passwordNode.value || !this._formAuth.passwordNode.name)
+        if (!this._formAuth.passwordNode.value || (!this._formAuth.passwordNode.name && 
!this._formAuth.passwordNode.id))
             return;
 
         let password = this._formAuth.passwordNode.value;
-        let passwordField = this._formAuth.passwordNode.name;
+        let passwordField = this._formAuth.passwordNode.name ? this._formAuth.passwordNode.name : 
this._formAuth.passwordNode.id;
 
         let username = null;
         let usernameField = null;
-        if (this._formAuth.usernameNode && this._formAuth.usernameNode.value && 
this._formAuth.usernameNode.name) {
+        if (this._formAuth.usernameNode && this._formAuth.usernameNode.value && 
(this._formAuth.usernameNode.name || this._formAuth.usernameNode.id)) {
             username = this._formAuth.usernameNode.value;
-            usernameField = this._formAuth.usernameNode.name;
+            usernameField = this._formAuth.usernameNode.name ? this._formAuth.usernameNode.name : 
this._formAuth.usernameNode.id;
         }
 
         this._formAuth.url = new URL(String(window.location));


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]