Output adblock debug if variable MIDORI_ADBLOCK set

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.
This commit is contained in:
Christian Dywan 2010-04-08 21:39:05 +02:00
parent 8f3fcec13e
commit 63a5eeb0f0

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