[Xfce4-commits] <midori:master> Add URL cache in adblock extension
Christian Dywan
noreply at xfce.org
Thu Jun 2 00:52:04 CEST 2011
Updating branch refs/heads/master
to fc842d9751c84bf742b47d1ac6d0246bb53e92ff (commit)
from 243f93b70d61e0e35a8d6d60257cff1e6e06f8e1 (commit)
commit fc842d9751c84bf742b47d1ac6d0246bb53e92ff
Author: Alexander Butenko <a.butenka at gmail.com>
Date: Sat May 28 22:57:31 2011 -0400
Add URL cache in adblock extension
We can bypass all tests on the second load of the URL.
extensions/adblock.c | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/extensions/adblock.c b/extensions/adblock.c
index 062a77e..e40b533 100644
--- a/extensions/adblock.c
+++ b/extensions/adblock.c
@@ -41,6 +41,7 @@
static GHashTable* pattern;
static GHashTable* keys;
+static GHashTable* urlcache;
static gchar* blockcss = NULL;
static gchar* blockcssprivate = NULL;
static gchar* blockscript = NULL;
@@ -92,6 +93,9 @@ adblock_init_db ()
keys = g_hash_table_new_full (g_str_hash, g_str_equal,
(GDestroyNotify)g_free,
(GDestroyNotify)g_regex_unref);
+ urlcache = g_hash_table_new_full (g_str_hash, g_str_equal,
+ (GDestroyNotify)g_free,
+ (GDestroyNotify)g_free);
katze_assign (blockcss, g_strdup ("z-non-exist"));
katze_assign (blockcssprivate, g_strdup (""));
}
@@ -683,11 +687,27 @@ adblock_is_matched (const gchar* opts,
const gchar* req_uri,
const gchar* page_uri)
{
+ gboolean foundbykey;
+ gboolean foundbypattern;
+ gchar* value;
+
+ if ((value = g_hash_table_lookup (urlcache, req_uri)))
+ {
+ if (value[0] == '0')
+ return FALSE;
+ else
+ return TRUE;
+ }
- if (adblock_is_matched_by_key (opts, req_uri, page_uri) == TRUE)
+ foundbykey = adblock_is_matched_by_key (opts, req_uri, page_uri);
+ foundbypattern = adblock_is_matched_by_pattern (req_uri, page_uri);
+ if (foundbykey == TRUE || foundbypattern == TRUE)
+ {
+ g_hash_table_insert (urlcache, g_strdup (req_uri), g_strdup("1"));
return TRUE;
- else
- return adblock_is_matched_by_pattern (req_uri, page_uri);
+ }
+ g_hash_table_insert (urlcache, g_strdup (req_uri), g_strdup("0"));
+ return FALSE;
}
#if HAVE_WEBKIT_RESOURCE_REQUEST
@@ -1362,6 +1382,7 @@ adblock_deactivate_cb (MidoriExtension* extension,
katze_assign (blockcss, NULL);
katze_assign (blockcssprivate, NULL);
g_hash_table_destroy (pattern);
+ g_hash_table_destroy (urlcache);
}
static void
More information about the Xfce4-commits
mailing list