[epiphany] adblock: Add periodic update checking
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] adblock: Add periodic update checking
- Date: Mon, 5 Aug 2019 23:59:37 +0000 (UTC)
commit 265b948fcb804f99a0eeedf8671f351ed22d3e99
Author: Adrian Perez de Castro <aperez igalia com>
Date: Sun Jul 7 00:46:13 2019 +0300
adblock: Add periodic update checking
This adds a timeout source that calls update_adblock_filter_files_cb()
at ADBLOCK_FILTER_UPDATE_FREQUENCY intervals.
embed/ephy-filters-manager.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/embed/ephy-filters-manager.c b/embed/ephy-filters-manager.c
index 31fe7a7ed..d6c9148c7 100644
--- a/embed/ephy-filters-manager.c
+++ b/embed/ephy-filters-manager.c
@@ -39,6 +39,7 @@ struct _EphyFiltersManager {
char *filters_dir;
GHashTable *filters; /* (identifier, FilterInfo) */
guint64 update_time;
+ guint update_timeout_id;
GCancellable *cancellable;
WebKitUserContentFilterStore *store;
};
@@ -822,6 +823,8 @@ ephy_filters_manager_dispose (GObject *object)
{
EphyFiltersManager *manager = EPHY_FILTERS_MANAGER (object);
+ g_clear_handle_id (&manager->update_timeout_id, g_source_remove);
+
if (manager->cancellable) {
g_cancellable_cancel (manager->cancellable);
g_clear_object (&manager->cancellable);
@@ -842,6 +845,14 @@ ephy_filters_manager_finalize (GObject *object)
G_OBJECT_CLASS (ephy_filters_manager_parent_class)->finalize (object);
}
+static gboolean
+update_timeout_cb (EphyFiltersManager *manager)
+{
+ g_assert (EPHY_IS_FILTERS_MANAGER (manager));
+ update_adblock_filter_files_cb (NULL, NULL, manager);
+ return G_SOURCE_CONTINUE;
+}
+
static void
ephy_filters_manager_constructed (GObject *object)
{
@@ -861,6 +872,10 @@ ephy_filters_manager_constructed (GObject *object)
G_CALLBACK (update_adblock_filter_files_cb), manager, 0);
update_adblock_filter_files_cb (NULL, NULL, manager);
+
+ manager->update_timeout_id = g_timeout_add_seconds (ADBLOCK_FILTER_UPDATE_FREQUENCY,
+ (GSourceFunc)update_timeout_cb,
+ manager);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]