]> spindle.queued.net Git - midori/commitdiff
Output adblock debug if variable MIDORI_ADBLOCK set
authorChristian Dywan <christian@twotoasts.de>
Thu, 8 Apr 2010 19:39:05 +0000 (21:39 +0200)
committerChristian Dywan <christian@twotoasts.de>
Thu, 8 Apr 2010 19:39:05 +0000 (21:39 +0200)
If Midori is compiled with full debug mode, and the environment
variable MIDORI_ADBLOCK is set, Adblock will output a lot of
debugging information.
This spares testers from editing code. grep is recommended.

extensions/adblock.c

index 0ec1c22b80e3980b9c8cf4d0865d36c2148764f7..2b142c7f6edd3b93fa658da2f306b84acb0c3d87 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (C) 2009 Christian Dywan <christian@twotoasts.de>
+ Copyright (C) 2009-2010 Christian Dywan <christian@twotoasts.de>
  Copyright (C) 2009 Alexander Butenko <a.butenka@gmail.com>
 
  This library is free software; you can redistribute it and/or
     filter[4] = __active ? (__filter[5] == ':' ? 's' : ':') : '-'
 #define ADBLOCK_FILTER_IS_SET(__filter) \
     filter[4] != '-'
+#ifdef G_ENABLE_DEBUG
+    #define adblock_debug(dmsg, darg1, darg2) \
+        do { if (debug) g_debug (dmsg, darg1, darg2); } while (0)
+#else
+    #define adblock_debug(dmsg, darg1, darg2) /* nothing */
+#endif
 
 static GHashTable* pattern;
 static GHashTable* keys;
 static gchar* blockcss = NULL;
 static gchar* blockcssprivate = NULL;
 static gchar* blockscript = NULL;
+static gboolean debug;
 
 static gboolean
 adblock_parse_file (gchar* path);
@@ -613,7 +620,7 @@ adblock_is_matched_by_pattern (const gchar*  req_uri,
                 return FALSE;
             else
             {
-                /* g_debug("blocked by pattern regexp=%s -- %s", g_regex_get_pattern (regex), req_uri); */
+                adblock_debug ("blocked by pattern regexp=%s -- %s", g_regex_get_pattern (regex), req_uri);
                 return TRUE;
             }
         }
@@ -650,7 +657,7 @@ adblock_is_matched_by_key (const gchar*  opts,
                 }
                 else
                 {
-                    /* g_debug("blocked by key sig=%s regexp=%s -- %s", sig, g_regex_get_pattern (regex), req_uri); */
+                    adblock_debug ("blocked by regexp=%s -- %s", g_regex_get_pattern (regex), uri);
                     g_list_free (regex_bl);
                     return TRUE;
                 }
@@ -756,7 +763,10 @@ adblock_resource_request_starting_cb (WebKitWebView*         web_view,
     if (!page_uri || !strcmp (page_uri, "about:blank"))
         page_uri = req_uri;
 
-    /* g_test_timer_start (); */
+    #ifdef G_ENABLE_DEBUG
+    if (debug)
+        g_test_timer_start ();
+    #endif
     /* TODO: opts should be defined */
     if (adblock_is_matched (NULL, req_uri, page_uri))
     {
@@ -765,7 +775,7 @@ adblock_resource_request_starting_cb (WebKitWebView*         web_view,
         webkit_network_request_set_uri (request, "about:blank");
         g_object_set_data (G_OBJECT (web_view), "blocked-uris", blocked_uris);
     }
-    /* g_debug ("%f", g_test_timer_elapsed ()); */
+    adblock_debug ("match: %f%s", g_test_timer_elapsed (), "seconds");
 
 }
 #else
@@ -911,13 +921,16 @@ adblock_load_finished_cb (WebKitWebView  *web_view,
 {
     JSContextRef js_context = webkit_web_frame_get_global_context (web_frame);
     GList* uris = g_object_get_data (G_OBJECT (web_view), "blocked-uris");
+    gchar* script;
+    GList* li;
+
     if (g_list_nth_data (uris, 0) == NULL)
         return;
 
-    gchar* script = adblock_prepare_urihider_js (uris);
+    script = adblock_prepare_urihider_js (uris);
     webkit_web_view_execute_script (web_view, script);
     sokoke_js_script_eval (js_context, script, NULL);
-    GList* li = NULL;
+    li = NULL;
     for (li = uris; li != NULL; li = g_list_next (li))
         uris = g_list_remove (uris, li->data);
     g_free (script);
@@ -1086,7 +1099,7 @@ adblock_compile_regexp (GHashTable* tbl,
             if (!g_regex_match_simple ("[\\*]", sig, G_REGEX_UNGREEDY, G_REGEX_MATCH_NOTEMPTY) &&
                 !g_hash_table_lookup (keystbl, sig))
             {
-                /* g_debug ("sig: %s %s", sig, patt); */
+                adblock_debug ("sig: %s %s", sig, patt);
                 g_hash_table_insert (keystbl, sig, regex);
                 signature_count++;
             }
@@ -1095,7 +1108,7 @@ adblock_compile_regexp (GHashTable* tbl,
                 if (g_regex_match_simple ("^\\*", sig, G_REGEX_UNGREEDY, G_REGEX_MATCH_NOTEMPTY) &&
                     !g_hash_table_lookup (tbl, opts))
                 {
-                    /* g_debug ("patt2: %s %s", sig, patt); */
+                    adblock_debug ("patt2: %s %s", sig, patt);
                     g_hash_table_insert (tbl, opts, regex);
                 }
                 g_free (sig);
@@ -1106,7 +1119,7 @@ adblock_compile_regexp (GHashTable* tbl,
     }
     else
     {
-        /*g_debug ("patt: %s", patt); */
+        adblock_debug ("patt: %s%s", patt, "");
         /* Pattern is a regexp chars */
         g_hash_table_insert (tbl, opts, regex);
     }
@@ -1143,7 +1156,7 @@ adblock_add_url_pattern (gchar* format,
     fixed_patt = adblock_fixup_regexp (patt);
     format_patt =  g_strdup_printf (format, fixed_patt);
 
-    /* g_debug ("got: %s opts %s", format_patt, opts); */
+    adblock_debug ("got: %s opts %s", format_patt, opts);
     adblock_compile_regexp (pattern, keys, format_patt, opts);
 
     g_strfreev (data);
@@ -1346,6 +1359,8 @@ adblock_activate_cb (MidoriExtension* extension,
                       G_CALLBACK (adblock_session_request_queued_cb), NULL);
     #endif
 
+    debug = g_getenv ("MIDORI_ADBLOCK") != NULL;
+
     adblock_reload_rules (extension, FALSE);
 
     browsers = katze_object_get_object (app, "browsers");