[epiphany] adblock: Add periodic update checking



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]