]> spindle.queued.net Git - midori/commitdiff
Implement "autosuggest" in form history and bump the version
authorAlexander Butenko <a.butenka@gmail.com>
Sun, 10 Jan 2010 21:57:17 +0000 (22:57 +0100)
committerChristian Dywan <christian@twotoasts.de>
Sun, 10 Jan 2010 21:57:17 +0000 (22:57 +0100)
1. Honor non W3C but commonly used "autosuggest" attribute.

2. Bump version to 1.0. The plugin can be considered stable.

data/autosuggestcontrol.js
extensions/formhistory.c

index 23619bccf81429d3e27792096289984170bfd36d..f045f0f5481daca3d158d528ebf41d61a7670e94 100644 (file)
@@ -301,9 +301,11 @@ function initSuggestions () {
     {
         var ename = inputs[i].getAttribute("name");
         var eid = inputs[i].getAttribute("id");
+        var autocomplete = inputs[i].getAttribute ("autocomplete");
+
         if (!ename && eid)
             ename=eid;
-        if (inputs[i].type == "text")
-            var smth = new AutoSuggestControl(inputs[i], new FormSuggestions(ename));
+        if (inputs[i].type == "text" && autocomplete != "off")
+            var smth = new AutoSuggestControl (inputs[i], new FormSuggestions (ename));
     }
 };
index 721938365815d985f0b0f77dcddaa3cd6ee99702..8404ea19c4c4fa59dfe8aa2f843271f3a9f8158e 100644 (file)
@@ -191,7 +191,6 @@ formhistory_navigation_decision_cb (WebKitWebView*             web_view,
                                     WebKitWebPolicyDecision*   decision,
                                     MidoriExtension*           extension)
 {
-    JSContextRef js_context = webkit_web_frame_get_global_context (web_frame);
     /* The script returns form data in the form "field_name|,|value|,|field_type".
        We are handling only input fields with 'text' or 'password' type.
        The field separator is "|||" */
@@ -203,7 +202,8 @@ formhistory_navigation_decision_cb (WebKitWebView*             web_view,
                  "        var eid = inputs[i].getAttribute('id');"
                  "        if (!ename && eid)"
                  "            ename=eid;"
-                 "        out += ename+'|,|'+inputs[i].value +'|,|'+inputs[i].type +'|||';"
+                 "        if (inputs[i].getAttribute('autocomplete') != 'off')"
+                 "            out += ename+'|,|'+inputs[i].value +'|,|'+inputs[i].type +'|||';"
                  "    }"
                  "  }"
                  "  return out;"
@@ -212,8 +212,9 @@ formhistory_navigation_decision_cb (WebKitWebView*             web_view,
 
     if (webkit_web_navigation_action_get_reason (action) == WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED)
     {
+        JSContextRef js_context = webkit_web_frame_get_global_context (web_frame);
         gchar* value = sokoke_js_script_eval (js_context, script, NULL);
-        if (value)
+        if (value && *value)
         {
             gpointer db = g_object_get_data (G_OBJECT (extension), "formhistory-db");
             gchar** inputs = g_strsplit (value, "|||", 0);
@@ -496,7 +497,7 @@ extension_init (void)
 
     if (formhistory_prepare_js ())
     {
-        ver = "0.1";
+        ver = "1.0";
         desc = g_strdup (_("Stores history of entered form data"));
     }
     else