[epiphany] Sensitive form warnings should not depend on remember password setting



commit aa4164c7c5ef05294a60162505f9d3c3c6bbc157
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Wed Feb 8 21:59:07 2017 -0600

    Sensitive form warnings should not depend on remember password setting
    
    The code that triggers the sensitive form focused warnings only runs if
    the remember passwords setting is enabled. Oops! We should warn users
    about insecure password forms regardless of whether or not Epiphany
    remembers the user's passwords.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778369

 embed/web-extension/ephy-web-extension.c |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)
---
diff --git a/embed/web-extension/ephy-web-extension.c b/embed/web-extension/ephy-web-extension.c
index 93998f4..b746e04 100644
--- a/embed/web-extension/ephy-web-extension.c
+++ b/embed/web-extension/ephy-web-extension.c
@@ -1104,10 +1104,6 @@ web_page_form_controls_associated (WebKitWebPage    *web_page,
   WebKitDOMDocument *document = NULL;
   guint i;
 
-  if (!extension->form_auth_data_cache ||
-      !g_settings_get_boolean (EPHY_SETTINGS_WEB, EPHY_PREFS_WEB_REMEMBER_PASSWORDS))
-    return;
-
   document = webkit_web_page_get_dom_document (web_page);
 
   for (i = 0; i < elements->len; ++i) {
@@ -1122,6 +1118,17 @@ web_page_form_controls_associated (WebKitWebPage    *web_page,
 
     form = WEBKIT_DOM_HTML_FORM_ELEMENT (element);
 
+    if (ephy_web_dom_utils_form_contains_sensitive_element (form)) {
+      LOG ("Sensitive form element detected, hooking sensitive form focused callback");
+      webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (form), "focus",
+                                                  G_CALLBACK (sensitive_form_focused_cb), TRUE,
+                                                  web_page);
+    }
+
+    if (!extension->form_auth_data_cache ||
+        !g_settings_get_boolean (EPHY_SETTINGS_WEB, EPHY_PREFS_WEB_REMEMBER_PASSWORDS))
+      continue;
+
     /* We have a field that may be the user, and one for a password. */
     if (ephy_web_dom_utils_find_form_auth_elements (form, &username_node, &password_node)) {
       EphyEmbedFormAuth *form_auth;
@@ -1173,12 +1180,6 @@ web_page_form_controls_associated (WebKitWebPage    *web_page,
       g_object_weak_ref (G_OBJECT (form), form_destroyed_cb, form_auth);
     } else
       LOG ("No pre-fillable/hookable form found");
-
-    if (ephy_web_dom_utils_form_contains_sensitive_element (form)) {
-      webkit_dom_event_target_add_event_listener (WEBKIT_DOM_EVENT_TARGET (form), "focus",
-                                                  G_CALLBACK (sensitive_form_focused_cb), TRUE,
-                                                  web_page);
-    }
   }
 }
 


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