From 15e8a74b21ce00e96122b6b9dd67a21d81d2c768 Mon Sep 17 00:00:00 2001 From: Matthew Leeds Date: Tue, 9 Jun 2020 15:30:39 -0700 Subject: [PATCH] tree-wide: Replace usages of whitelist/blacklist Replace usages of the terms whitelist and blacklist with the more inclusive and more precise terms allowlist and blocklist, which are actually also more consistent with parts of the codebase, e.g. mct_app_filter_is_content_type_allowed(). The only API break here is in libmalcontent/app-filter.h but the relevant API is not used anywhere else in Endless OS beyond this repo, nor to my knowledge in any other distribution. Also, per the README, this project's API is not stable, so now is a good time to make this change. --- README.md | 2 +- ...om.endlessm.ParentalControls.AppFilter.xml | 4 +- .../restrict-applications-selector.c | 34 +++--- libmalcontent-ui/user-controls.c | 52 ++++----- libmalcontent/app-filter-private.h | 8 +- libmalcontent/app-filter.c | 100 +++++++++--------- libmalcontent/app-filter.h | 6 +- libmalcontent/tests/app-filter.c | 56 +++++----- malcontent-client/malcontent-client.py | 8 +- 9 files changed, 135 insertions(+), 135 deletions(-) diff --git a/README.md b/README.md index ca2d8de..654e390 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ set parental controls policies for users. ``` $ # This sets the parental controls policy for user ‘philip’ to allow no \\ installation of apps with anything more than ‘none’ for realistic violence, \\ - and to blacklist running the org.freedesktop.Bustle flatpak: + and to blocklist running the org.freedesktop.Bustle flatpak: $ malcontent-client set philip \\ violence-realistic=none \\ app/org.freedesktop.Bustle/x86_64/stable diff --git a/accounts-service/com.endlessm.ParentalControls.AppFilter.xml b/accounts-service/com.endlessm.ParentalControls.AppFilter.xml index 2c66d88..98b65d1 100644 --- a/accounts-service/com.endlessm.ParentalControls.AppFilter.xml +++ b/accounts-service/com.endlessm.ParentalControls.AppFilter.xml @@ -24,8 +24,8 @@ The string list contains flatpak application IDs (containing at least one dot and no leading slash) and absolute binary paths (containing a leading - slash). The boolean value indicates whether this is a whitelist (true) or - blacklist (false). + slash). The boolean value indicates whether this is an allowlist (true) + or blocklist (false). --> blacklisted_apps, g_hash_table_unref); + g_clear_pointer (&self->blocklisted_apps, g_hash_table_unref); g_clear_object (&self->apps); if (self->app_info_monitor != NULL && self->app_info_monitor_changed_id != 0) @@ -237,7 +237,7 @@ mct_restrict_applications_selector_init (MctRestrictApplicationsSelector *self) self, NULL); - self->blacklisted_apps = g_hash_table_new_full (g_direct_hash, + self->blocklisted_apps = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, NULL); @@ -266,18 +266,18 @@ on_switch_active_changed_cb (GtkSwitch *s, { gboolean removed; - g_debug ("Removing ‘%s’ from blacklisted apps", g_app_info_get_id (app)); + g_debug ("Removing ‘%s’ from blocklisted apps", g_app_info_get_id (app)); - removed = g_hash_table_remove (self->blacklisted_apps, app); + removed = g_hash_table_remove (self->blocklisted_apps, app); g_assert (removed); } else { gboolean added; - g_debug ("Blacklisting ‘%s’", g_app_info_get_id (app)); + g_debug ("Blocklisting ‘%s’", g_app_info_get_id (app)); - added = g_hash_table_add (self->blacklisted_apps, g_object_ref (app)); + added = g_hash_table_add (self->blocklisted_apps, g_object_ref (app)); g_assert (added); } @@ -345,9 +345,9 @@ create_row_for_app_cb (gpointer item, g_object_set_data_full (G_OBJECT (w), "GAppInfo", g_object_ref (app), g_object_unref); if (allowed) - g_hash_table_remove (self->blacklisted_apps, app); + g_hash_table_remove (self->blocklisted_apps, app); else - g_hash_table_add (self->blacklisted_apps, g_object_ref (app)); + g_hash_table_add (self->blocklisted_apps, g_object_ref (app)); g_signal_connect (w, "notify::active", G_CALLBACK (on_switch_active_changed_cb), self); @@ -427,7 +427,7 @@ reload_apps (MctRestrictApplicationsSelector *self) g_str_has_prefix (g_app_info_get_id (app), "eos-link") || /* FIXME: Only list flatpak apps and apps with X-Parental-Controls * key set for now; we really need a system-wide MAC to be able to - * reliably support blacklisting system programs. */ + * reliably support blocklisting system programs. */ (!g_desktop_app_info_has_key (G_DESKTOP_APP_INFO (app), "X-Flatpak") && !g_desktop_app_info_has_key (G_DESKTOP_APP_INFO (app), "X-Parental-Controls")) || /* Web browsers are special cased */ @@ -587,7 +587,7 @@ mct_restrict_applications_selector_build_app_filter (MctRestrictApplicationsSele g_return_if_fail (MCT_IS_RESTRICT_APPLICATIONS_SELECTOR (self)); g_return_if_fail (builder != NULL); - g_hash_table_iter_init (&iter, self->blacklisted_apps); + g_hash_table_iter_init (&iter, self->blocklisted_apps); while (g_hash_table_iter_next (&iter, (gpointer) &app, NULL)) { g_autofree gchar *flatpak_id = NULL; @@ -602,12 +602,12 @@ mct_restrict_applications_selector_build_app_filter (MctRestrictApplicationsSele if (!flatpak_ref) { - g_warning ("Skipping blacklisting Flatpak ID ‘%s’ due to it not being installed", flatpak_id); + g_warning ("Skipping blocklisting Flatpak ID ‘%s’ due to it not being installed", flatpak_id); continue; } - g_debug ("\t\t → Blacklisting Flatpak ref: %s", flatpak_ref); - mct_app_filter_builder_blacklist_flatpak_ref (builder, flatpak_ref); + g_debug ("\t\t → Blocklisting Flatpak ref: %s", flatpak_ref); + mct_app_filter_builder_blocklist_flatpak_ref (builder, flatpak_ref); } else { @@ -616,12 +616,12 @@ mct_restrict_applications_selector_build_app_filter (MctRestrictApplicationsSele if (!path) { - g_warning ("Skipping blacklisting executable ‘%s’ due to it not being found", executable); + g_warning ("Skipping blocklisting executable ‘%s’ due to it not being found", executable); continue; } - g_debug ("\t\t → Blacklisting path: %s", path); - mct_app_filter_builder_blacklist_path (builder, path); + g_debug ("\t\t → Blocklisting path: %s", path); + mct_app_filter_builder_blocklist_path (builder, path); } } } diff --git a/libmalcontent-ui/user-controls.c b/libmalcontent-ui/user-controls.c index fa9e85d..8689a78 100644 --- a/libmalcontent-ui/user-controls.c +++ b/libmalcontent-ui/user-controls.c @@ -107,7 +107,7 @@ struct _MctUserControls MctAppFilter *filter; /* (owned) (nullable) */ guint selected_age; /* @oars_disabled_age to disable OARS */ - guint blacklist_apps_source_id; + guint blocklist_apps_source_id; gboolean flushed_on_dispose; ActUserAccountType user_account_type; @@ -115,7 +115,7 @@ struct _MctUserControls gchar *user_display_name; /* (nullable) (owned) */ }; -static gboolean blacklist_apps_cb (gpointer data); +static gboolean blocklist_apps_cb (gpointer data); static void on_restrict_installation_switch_active_changed_cb (GtkSwitch *s, GParamSpec *pspec, @@ -254,26 +254,26 @@ get_user_display_name (ActUser *user) } static void -schedule_update_blacklisted_apps (MctUserControls *self) +schedule_update_blocklisted_apps (MctUserControls *self) { - if (self->blacklist_apps_source_id > 0) + if (self->blocklist_apps_source_id > 0) return; /* Use a timeout to batch multiple quick changes into a single * update. 1 second is an arbitrary sufficiently small number */ - self->blacklist_apps_source_id = g_timeout_add_seconds (1, blacklist_apps_cb, self); + self->blocklist_apps_source_id = g_timeout_add_seconds (1, blocklist_apps_cb, self); } static void -flush_update_blacklisted_apps (MctUserControls *self) +flush_update_blocklisted_apps (MctUserControls *self) { - if (self->blacklist_apps_source_id > 0) + if (self->blocklist_apps_source_id > 0) { /* Remove the timer and forcefully call the timer callback. */ - g_source_remove (self->blacklist_apps_source_id); - self->blacklist_apps_source_id = 0; + g_source_remove (self->blocklist_apps_source_id); + self->blocklist_apps_source_id = 0; - blacklist_apps_cb (self); + blocklist_apps_cb (self); } } @@ -560,14 +560,14 @@ setup_parental_control_settings (MctUserControls *self) /* Callbacks */ static gboolean -blacklist_apps_cb (gpointer data) +blocklist_apps_cb (gpointer data) { g_auto(MctAppFilterBuilder) builder = MCT_APP_FILTER_BUILDER_INIT (); g_autoptr(MctAppFilter) new_filter = NULL; g_autoptr(GError) error = NULL; MctUserControls *self = data; - self->blacklist_apps_source_id = 0; + self->blocklist_apps_source_id = 0; if (self->user == NULL) { @@ -615,7 +615,7 @@ on_restrict_installation_switch_active_changed_cb (GtkSwitch *s, } /* Save the changes. */ - schedule_update_blacklisted_apps (self); + schedule_update_blocklisted_apps (self); } static void @@ -624,7 +624,7 @@ on_restrict_web_browsers_switch_active_changed_cb (GtkSwitch *s, MctUserControls *self) { /* Save the changes. */ - schedule_update_blacklisted_apps (self); + schedule_update_blocklisted_apps (self); } static void @@ -660,7 +660,7 @@ on_restrict_applications_dialog_delete_event_cb (GtkWidget *widget, gtk_widget_hide (GTK_WIDGET (self->restrict_applications_dialog)); /* Schedule an update to the saved state. */ - schedule_update_blacklisted_apps (self); + schedule_update_blocklisted_apps (self); return TRUE; } @@ -728,7 +728,7 @@ on_set_age_action_activated (GSimpleAction *action, self->selected_age = age; - schedule_update_blacklisted_apps (self); + schedule_update_blocklisted_apps (self); } static void @@ -783,7 +783,7 @@ mct_user_controls_finalize (GObject *object) { MctUserControls *self = (MctUserControls *)object; - g_assert (self->blacklist_apps_source_id == 0); + g_assert (self->blocklist_apps_source_id == 0); g_cancellable_cancel (self->cancellable); g_clear_object (&self->action_group); @@ -823,7 +823,7 @@ mct_user_controls_dispose (GObject *object) * do it multiple times, and after the first g_object_run_dispose() call, * none of our child widgets are still around to extract data from anyway. */ if (!self->flushed_on_dispose) - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); self->flushed_on_dispose = TRUE; G_OBJECT_CLASS (mct_user_controls_parent_class)->dispose (object); @@ -1171,7 +1171,7 @@ mct_user_controls_set_user (MctUserControls *self, /* If we have pending unsaved changes from the previous user, force them to be * saved first. */ - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); old_user = (self->user != NULL) ? g_object_ref (self->user) : NULL; @@ -1314,7 +1314,7 @@ mct_user_controls_set_app_filter (MctUserControls *self, /* If we have pending unsaved changes from the previous configuration, force * them to be saved first. */ - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); if (self->filter == app_filter) return; @@ -1363,7 +1363,7 @@ mct_user_controls_set_user_account_type (MctUserControls *self, /* If we have pending unsaved changes from the previous user, force them to be * saved first. */ - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); if (self->user_account_type == user_account_type) return; @@ -1414,7 +1414,7 @@ mct_user_controls_set_user_locale (MctUserControls *self, /* If we have pending unsaved changes from the previous user, force them to be * saved first. */ - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); if (g_strcmp0 (self->user_locale, user_locale) == 0) return; @@ -1466,7 +1466,7 @@ mct_user_controls_set_user_display_name (MctUserControls *self, /* If we have pending unsaved changes from the previous user, force them to be * saved first. */ - flush_update_blacklisted_apps (self); + flush_update_blocklisted_apps (self); if (g_strcmp0 (self->user_display_name, user_display_name) == 0) return; @@ -1504,9 +1504,9 @@ mct_user_controls_build_app_filter (MctUserControls *self, g_debug ("Building parental controls settings…"); - /* Blacklist */ + /* Blocklist */ - g_debug ("\t → Blacklisting apps"); + g_debug ("\t → Blocklisting apps"); mct_restrict_applications_dialog_build_app_filter (self->restrict_applications_dialog, builder); @@ -1536,7 +1536,7 @@ mct_user_controls_build_app_filter (MctUserControls *self, g_debug ("\t → %s web browsers", restrict_web_browsers ? "Restricting" : "Allowing"); if (restrict_web_browsers) - mct_app_filter_builder_blacklist_content_type (builder, WEB_BROWSERS_CONTENT_TYPE); + mct_app_filter_builder_blocklist_content_type (builder, WEB_BROWSERS_CONTENT_TYPE); /* App installation */ if (self->user_account_type != ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR) diff --git a/libmalcontent/app-filter-private.h b/libmalcontent/app-filter-private.h index c4f9b31..8b2fefd 100644 --- a/libmalcontent/app-filter-private.h +++ b/libmalcontent/app-filter-private.h @@ -31,9 +31,9 @@ G_BEGIN_DECLS /** * MctAppFilterListType: - * @MCT_APP_FILTER_LIST_BLACKLIST: Any program in the list is not allowed to + * @MCT_APP_FILTER_LIST_BLOCKLIST: Any program in the list is not allowed to * be run. - * @MCT_APP_FILTER_LIST_WHITELIST: Any program not in the list is not allowed + * @MCT_APP_FILTER_LIST_ALLOWLIST: Any program not in the list is not allowed * to be run. * * Different semantics for interpreting an application list. @@ -42,8 +42,8 @@ G_BEGIN_DECLS */ typedef enum { - MCT_APP_FILTER_LIST_BLACKLIST, - MCT_APP_FILTER_LIST_WHITELIST, + MCT_APP_FILTER_LIST_BLOCKLIST, + MCT_APP_FILTER_LIST_ALLOWLIST, } MctAppFilterListType; struct _MctAppFilter diff --git a/libmalcontent/app-filter.c b/libmalcontent/app-filter.c index 3fdc1e9..3b806e8 100644 --- a/libmalcontent/app-filter.c +++ b/libmalcontent/app-filter.c @@ -164,9 +164,9 @@ mct_app_filter_is_enabled (MctAppFilter *filter) /* Check all fields against their default values. Ignore * `allow_system_installation` since it’s false by default, so the default * value is already the most restrictive. */ - return ((filter->app_list_type == MCT_APP_FILTER_LIST_BLACKLIST && + return ((filter->app_list_type == MCT_APP_FILTER_LIST_BLOCKLIST && filter->app_list[0] != NULL) || - filter->app_list_type == MCT_APP_FILTER_LIST_WHITELIST || + filter->app_list_type == MCT_APP_FILTER_LIST_ALLOWLIST || !oars_ratings_all_intense_or_unknown || !filter->allow_user_installation); } @@ -202,9 +202,9 @@ mct_app_filter_is_path_allowed (MctAppFilter *filter, switch (filter->app_list_type) { - case MCT_APP_FILTER_LIST_BLACKLIST: + case MCT_APP_FILTER_LIST_BLOCKLIST: return !path_in_list; - case MCT_APP_FILTER_LIST_WHITELIST: + case MCT_APP_FILTER_LIST_ALLOWLIST: return path_in_list; default: g_assert_not_reached (); @@ -265,9 +265,9 @@ mct_app_filter_is_flatpak_ref_allowed (MctAppFilter *filter, switch (filter->app_list_type) { - case MCT_APP_FILTER_LIST_BLACKLIST: + case MCT_APP_FILTER_LIST_BLOCKLIST: return !ref_in_list; - case MCT_APP_FILTER_LIST_WHITELIST: + case MCT_APP_FILTER_LIST_ALLOWLIST: return ref_in_list; default: g_assert_not_reached (); @@ -281,7 +281,7 @@ mct_app_filter_is_flatpak_ref_allowed (MctAppFilter *filter, * * Check whether the flatpak app with the given @app_id is allowed to be run * according to this app filter. This is a globbing match, matching @app_id - * against potentially multiple entries in the blacklist, as the blacklist + * against potentially multiple entries in the blocklist, as the blocklist * contains flatpak refs (for example, `app/org.gnome.Builder/x86_64/master`) * which contain architecture and branch information. App IDs (for example, * `org.gnome.Builder`) do not contain architecture or branch information. @@ -315,9 +315,9 @@ mct_app_filter_is_flatpak_app_allowed (MctAppFilter *filter, switch (filter->app_list_type) { - case MCT_APP_FILTER_LIST_BLACKLIST: + case MCT_APP_FILTER_LIST_BLOCKLIST: return !id_in_list; - case MCT_APP_FILTER_LIST_WHITELIST: + case MCT_APP_FILTER_LIST_ALLOWLIST: return id_in_list; default: g_assert_not_reached (); @@ -431,8 +431,8 @@ is_valid_content_type (const gchar *content_type) * according to this app filter. * * Note that this method doesn’t match content subtypes. For example, if - * `application/xml` is added to the blacklist but `application/xspf+xml` is not, - * a check for whether `application/xspf+xml` is blacklisted would return false. + * `application/xml` is added to the blocklist but `application/xspf+xml` is not, + * a check for whether `application/xspf+xml` is blocklisted would return false. * * Returns: %TRUE if the user this @filter corresponds to is allowed to run * programs handling @content_type according to the @filter policy; @@ -453,9 +453,9 @@ mct_app_filter_is_content_type_allowed (MctAppFilter *filter, switch (filter->app_list_type) { - case MCT_APP_FILTER_LIST_BLACKLIST: + case MCT_APP_FILTER_LIST_BLOCKLIST: return !ref_in_list; - case MCT_APP_FILTER_LIST_WHITELIST: + case MCT_APP_FILTER_LIST_ALLOWLIST: return ref_in_list; default: g_assert_not_reached (); @@ -606,7 +606,7 @@ _mct_app_filter_build_app_filter_variant (MctAppFilter *filter) g_return_val_if_fail (filter->ref_count >= 1, NULL); g_variant_builder_add (&builder, "b", - (filter->app_list_type == MCT_APP_FILTER_LIST_WHITELIST)); + (filter->app_list_type == MCT_APP_FILTER_LIST_ALLOWLIST)); g_variant_builder_open (&builder, G_VARIANT_TYPE ("as")); for (gsize i = 0; filter->app_list[i] != NULL; i++) @@ -675,7 +675,7 @@ mct_app_filter_deserialize (GVariant *variant, uid_t user_id, GError **error) { - gboolean is_whitelist; + gboolean is_allowlist; g_auto(GStrv) app_list = NULL; const gchar *content_rating_kind; g_autoptr(GVariant) oars_variant = NULL; @@ -700,10 +700,10 @@ mct_app_filter_deserialize (GVariant *variant, * kept in sync with those in the `com.endlessm.ParentalControls.AppFilter` * D-Bus interface. */ if (!g_variant_lookup (variant, "AppFilter", "(b^as)", - &is_whitelist, &app_list)) + &is_allowlist, &app_list)) { /* Default value. */ - is_whitelist = FALSE; + is_allowlist = FALSE; app_list = g_new0 (gchar *, 1); } @@ -747,7 +747,7 @@ mct_app_filter_deserialize (GVariant *variant, app_filter->user_id = user_id; app_filter->app_list = g_steal_pointer (&app_list); app_filter->app_list_type = - is_whitelist ? MCT_APP_FILTER_LIST_WHITELIST : MCT_APP_FILTER_LIST_BLACKLIST; + is_allowlist ? MCT_APP_FILTER_LIST_ALLOWLIST : MCT_APP_FILTER_LIST_BLOCKLIST; app_filter->oars_ratings = g_steal_pointer (&oars_variant); app_filter->allow_user_installation = allow_user_installation; app_filter->allow_system_installation = allow_system_installation; @@ -762,7 +762,7 @@ mct_app_filter_deserialize (GVariant *variant, */ typedef struct { - GPtrArray *blacklist; /* (nullable) (owned) (element-type utf8) */ + GPtrArray *blocklist; /* (nullable) (owned) (element-type utf8) */ GHashTable *oars; /* (nullable) (owned) (element-type utf8 MctAppFilterOarsValue) */ gboolean allow_user_installation; gboolean allow_system_installation; @@ -800,7 +800,7 @@ mct_app_filter_builder_init (MctAppFilterBuilder *builder) MctAppFilterBuilderReal *_builder = (MctAppFilterBuilderReal *) builder; g_return_if_fail (_builder != NULL); - g_return_if_fail (_builder->blacklist == NULL); + g_return_if_fail (_builder->blocklist == NULL); g_return_if_fail (_builder->oars == NULL); memcpy (builder, &local_builder, sizeof (local_builder)); @@ -826,7 +826,7 @@ mct_app_filter_builder_clear (MctAppFilterBuilder *builder) g_return_if_fail (_builder != NULL); - g_clear_pointer (&_builder->blacklist, g_ptr_array_unref); + g_clear_pointer (&_builder->blocklist, g_ptr_array_unref); g_clear_pointer (&_builder->oars, g_hash_table_unref); } @@ -876,8 +876,8 @@ mct_app_filter_builder_copy (MctAppFilterBuilder *builder) _copy = (MctAppFilterBuilderReal *) copy; mct_app_filter_builder_clear (copy); - if (_builder->blacklist != NULL) - _copy->blacklist = g_ptr_array_ref (_builder->blacklist); + if (_builder->blocklist != NULL) + _copy->blocklist = g_ptr_array_ref (_builder->blocklist); if (_builder->oars != NULL) _copy->oars = g_hash_table_ref (_builder->oars); _copy->allow_user_installation = _builder->allow_user_installation; @@ -927,11 +927,11 @@ mct_app_filter_builder_end (MctAppFilterBuilder *builder) g_autoptr(GVariant) oars_variant = NULL; g_return_val_if_fail (_builder != NULL, NULL); - g_return_val_if_fail (_builder->blacklist != NULL, NULL); + g_return_val_if_fail (_builder->blocklist != NULL, NULL); g_return_val_if_fail (_builder->oars != NULL, NULL); /* Ensure the paths list is %NULL-terminated. */ - g_ptr_array_add (_builder->blacklist, NULL); + g_ptr_array_add (_builder->blocklist, NULL); /* Build the OARS variant. */ g_hash_table_iter_init (&iter, _builder->oars); @@ -962,8 +962,8 @@ mct_app_filter_builder_end (MctAppFilterBuilder *builder) app_filter = g_new0 (MctAppFilter, 1); app_filter->ref_count = 1; app_filter->user_id = -1; - app_filter->app_list = (gchar **) g_ptr_array_free (g_steal_pointer (&_builder->blacklist), FALSE); - app_filter->app_list_type = MCT_APP_FILTER_LIST_BLACKLIST; + app_filter->app_list = (gchar **) g_ptr_array_free (g_steal_pointer (&_builder->blocklist), FALSE); + app_filter->app_list_type = MCT_APP_FILTER_LIST_BLOCKLIST; app_filter->oars_ratings = g_steal_pointer (&oars_variant); app_filter->allow_user_installation = _builder->allow_user_installation; app_filter->allow_system_installation = _builder->allow_system_installation; @@ -974,24 +974,24 @@ mct_app_filter_builder_end (MctAppFilterBuilder *builder) } /** - * mct_app_filter_builder_blacklist_path: + * mct_app_filter_builder_blocklist_path: * @builder: an initialised #MctAppFilterBuilder - * @path: (type filename): an absolute path to blacklist + * @path: (type filename): an absolute path to blocklist * - * Add @path to the blacklist of app paths in the filter under construction. It + * Add @path to the blocklist of app paths in the filter under construction. It * will be canonicalised (without doing any I/O) before being added. * The canonicalised @path will not be added again if it’s already been added. * * Since: 0.2.0 */ void -mct_app_filter_builder_blacklist_path (MctAppFilterBuilder *builder, +mct_app_filter_builder_blocklist_path (MctAppFilterBuilder *builder, const gchar *path) { MctAppFilterBuilderReal *_builder = (MctAppFilterBuilderReal *) builder; g_return_if_fail (_builder != NULL); - g_return_if_fail (_builder->blacklist != NULL); + g_return_if_fail (_builder->blocklist != NULL); g_return_if_fail (path != NULL); g_return_if_fail (g_path_is_absolute (path)); @@ -1000,67 +1000,67 @@ mct_app_filter_builder_blacklist_path (MctAppFilterBuilder *builder, NULL, NULL, NULL); g_return_if_fail (canonical_path_utf8 != NULL); - if (!g_ptr_array_find_with_equal_func (_builder->blacklist, + if (!g_ptr_array_find_with_equal_func (_builder->blocklist, canonical_path_utf8, g_str_equal, NULL)) - g_ptr_array_add (_builder->blacklist, g_steal_pointer (&canonical_path_utf8)); + g_ptr_array_add (_builder->blocklist, g_steal_pointer (&canonical_path_utf8)); } /** - * mct_app_filter_builder_blacklist_flatpak_ref: + * mct_app_filter_builder_blocklist_flatpak_ref: * @builder: an initialised #MctAppFilterBuilder - * @app_ref: a flatpak app ref to blacklist + * @app_ref: a flatpak app ref to blocklist * - * Add @app_ref to the blacklist of flatpak refs in the filter under + * Add @app_ref to the blocklist of flatpak refs in the filter under * construction. The @app_ref will not be added again if it’s already been * added. * * Since: 0.2.0 */ void -mct_app_filter_builder_blacklist_flatpak_ref (MctAppFilterBuilder *builder, +mct_app_filter_builder_blocklist_flatpak_ref (MctAppFilterBuilder *builder, const gchar *app_ref) { MctAppFilterBuilderReal *_builder = (MctAppFilterBuilderReal *) builder; g_return_if_fail (_builder != NULL); - g_return_if_fail (_builder->blacklist != NULL); + g_return_if_fail (_builder->blocklist != NULL); g_return_if_fail (app_ref != NULL); g_return_if_fail (is_valid_flatpak_ref (app_ref)); - if (!g_ptr_array_find_with_equal_func (_builder->blacklist, + if (!g_ptr_array_find_with_equal_func (_builder->blocklist, app_ref, g_str_equal, NULL)) - g_ptr_array_add (_builder->blacklist, g_strdup (app_ref)); + g_ptr_array_add (_builder->blocklist, g_strdup (app_ref)); } /** - * mct_app_filter_builder_blacklist_content_type: + * mct_app_filter_builder_blocklist_content_type: * @builder: an initialised #MctAppFilterBuilder - * @content_type: a content type to blacklist + * @content_type: a content type to blocklist * - * Add @content_type to the blacklist of content types in the filter under + * Add @content_type to the blocklist of content types in the filter under * construction. The @content_type will not be added again if it’s already been * added. * * Note that this method doesn’t handle content subtypes. For example, if - * `application/xml` is added to the blacklist but `application/xspf+xml` is not, - * a check for whether `application/xspf+xml` is blacklisted would return false. + * `application/xml` is added to the blocklist but `application/xspf+xml` is not, + * a check for whether `application/xspf+xml` is blocklisted would return false. * * Since: 0.4.0 */ void -mct_app_filter_builder_blacklist_content_type (MctAppFilterBuilder *builder, +mct_app_filter_builder_blocklist_content_type (MctAppFilterBuilder *builder, const gchar *content_type) { MctAppFilterBuilderReal *_builder = (MctAppFilterBuilderReal *) builder; g_return_if_fail (_builder != NULL); - g_return_if_fail (_builder->blacklist != NULL); + g_return_if_fail (_builder->blocklist != NULL); g_return_if_fail (content_type != NULL); g_return_if_fail (is_valid_content_type (content_type)); - if (!g_ptr_array_find_with_equal_func (_builder->blacklist, + if (!g_ptr_array_find_with_equal_func (_builder->blocklist, content_type, g_str_equal, NULL)) - g_ptr_array_add (_builder->blacklist, g_strdup (content_type)); + g_ptr_array_add (_builder->blocklist, g_strdup (content_type)); } /** diff --git a/libmalcontent/app-filter.h b/libmalcontent/app-filter.h index 3902f87..5acc1a9 100644 --- a/libmalcontent/app-filter.h +++ b/libmalcontent/app-filter.h @@ -165,11 +165,11 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (MctAppFilterBuilder, mct_app_filter_builder_free) MctAppFilter *mct_app_filter_builder_end (MctAppFilterBuilder *builder); -void mct_app_filter_builder_blacklist_path (MctAppFilterBuilder *builder, +void mct_app_filter_builder_blocklist_path (MctAppFilterBuilder *builder, const gchar *path); -void mct_app_filter_builder_blacklist_flatpak_ref (MctAppFilterBuilder *builder, +void mct_app_filter_builder_blocklist_flatpak_ref (MctAppFilterBuilder *builder, const gchar *app_ref); -void mct_app_filter_builder_blacklist_content_type (MctAppFilterBuilder *builder, +void mct_app_filter_builder_blocklist_content_type (MctAppFilterBuilder *builder, const gchar *content_type); void mct_app_filter_builder_set_oars_value (MctAppFilterBuilder *builder, diff --git a/libmalcontent/tests/app-filter.c b/libmalcontent/tests/app-filter.c index 00c6d43..e9a71ab 100644 --- a/libmalcontent/tests/app-filter.c +++ b/libmalcontent/tests/app-filter.c @@ -275,13 +275,13 @@ test_app_filter_builder_non_empty (BuilderFixture *fixture, g_autoptr(MctAppFilter) filter = NULL; g_autofree const gchar **sections = NULL; - mct_app_filter_builder_blacklist_path (fixture->builder, "/bin/true"); - mct_app_filter_builder_blacklist_path (fixture->builder, "/usr/bin/gnome-software"); + mct_app_filter_builder_blocklist_path (fixture->builder, "/bin/true"); + mct_app_filter_builder_blocklist_path (fixture->builder, "/usr/bin/gnome-software"); - mct_app_filter_builder_blacklist_flatpak_ref (fixture->builder, + mct_app_filter_builder_blocklist_flatpak_ref (fixture->builder, "app/org.doom.Doom/x86_64/master"); - mct_app_filter_builder_blacklist_content_type (fixture->builder, + mct_app_filter_builder_blocklist_content_type (fixture->builder, "x-scheme-handler/http"); mct_app_filter_builder_set_oars_value (fixture->builder, "drugs-alcohol", @@ -380,8 +380,8 @@ test_app_filter_builder_copy_empty (void) builder_copy = mct_app_filter_builder_copy (builder); mct_app_filter_builder_init (builder_copy); - mct_app_filter_builder_blacklist_path (builder_copy, "/bin/true"); - mct_app_filter_builder_blacklist_content_type (builder_copy, + mct_app_filter_builder_blocklist_path (builder_copy, "/bin/true"); + mct_app_filter_builder_blocklist_content_type (builder_copy, "x-scheme-handler/http"); filter = mct_app_filter_builder_end (builder_copy); @@ -405,8 +405,8 @@ test_app_filter_builder_copy_full (void) g_autoptr(MctAppFilterBuilder) builder_copy = NULL; g_autoptr(MctAppFilter) filter = NULL; - mct_app_filter_builder_blacklist_path (builder, "/bin/true"); - mct_app_filter_builder_blacklist_content_type (builder, + mct_app_filter_builder_blocklist_path (builder, "/bin/true"); + mct_app_filter_builder_blocklist_content_type (builder, "x-scheme-handler/http"); mct_app_filter_builder_set_allow_user_installation (builder, FALSE); mct_app_filter_builder_set_allow_system_installation (builder, TRUE); @@ -545,9 +545,9 @@ test_app_filter_appinfo (void) "MimeType=x-scheme-handler/http\n" }, }; - mct_app_filter_builder_blacklist_path (&builder, "/bin/false"); - mct_app_filter_builder_blacklist_flatpak_ref (&builder, "app/org.gnome.Nasty/x86_64/stable"); - mct_app_filter_builder_blacklist_content_type (&builder, "x-scheme-handler/http"); + mct_app_filter_builder_blocklist_path (&builder, "/bin/false"); + mct_app_filter_builder_blocklist_flatpak_ref (&builder, "app/org.gnome.Nasty/x86_64/stable"); + mct_app_filter_builder_blocklist_content_type (&builder, "x-scheme-handler/http"); filter = mct_app_filter_builder_end (&builder); @@ -751,13 +751,13 @@ test_app_filter_bus_get (BusFixture *fixture, g_assert_true (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Chess")); } -/* Test that getting an #MctAppFilter containing a whitelist from the mock D-Bus - * service works, and that the #MctAppFilter methods handle the whitelist +/* Test that getting an #MctAppFilter containing a allowlist from the mock D-Bus + * service works, and that the #MctAppFilter methods handle the allowlist * correctly. * * The mock D-Bus replies are generated in get_app_filter_server_cb(). */ static void -test_app_filter_bus_get_whitelist (BusFixture *fixture, +test_app_filter_bus_get_allowlist (BusFixture *fixture, gconstpointer test_data) { g_autoptr(MctAppFilter) app_filter = NULL; @@ -769,8 +769,8 @@ test_app_filter_bus_get_whitelist (BusFixture *fixture, "'AllowUserInstallation': ," "'AllowSystemInstallation': ," "'AppFilter': <(true, [" - "'app/org.gnome.Whitelisted1/x86_64/stable'," - "'app/org.gnome.Whitelisted2/x86_64/stable'," + "'app/org.gnome.Allowlisted1/x86_64/stable'," + "'app/org.gnome.Allowlisted2/x86_64/stable'," "'/usr/bin/true'," "'text/plain'" "])>," @@ -789,15 +789,15 @@ test_app_filter_bus_get_whitelist (BusFixture *fixture, g_assert_no_error (local_error); g_assert_nonnull (app_filter); - /* Check the app filter properties. The returned filter is a whitelist, - * whereas typically a blacklist is returned. */ + /* Check the app filter properties. The returned filter is a allowlist, + * whereas typically a blocklist is returned. */ g_assert_cmpuint (mct_app_filter_get_user_id (app_filter), ==, fixture->valid_uid); g_assert_true (mct_app_filter_is_enabled (app_filter)); g_assert_false (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Builder")); - g_assert_true (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Whitelisted1")); - g_assert_true (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Whitelisted2")); - g_assert_true (mct_app_filter_is_flatpak_ref_allowed (app_filter, "app/org.gnome.Whitelisted1/x86_64/stable")); - g_assert_false (mct_app_filter_is_flatpak_ref_allowed (app_filter, "app/org.gnome.Whitelisted1/x86_64/unknown")); + g_assert_true (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Allowlisted1")); + g_assert_true (mct_app_filter_is_flatpak_app_allowed (app_filter, "org.gnome.Allowlisted2")); + g_assert_true (mct_app_filter_is_flatpak_ref_allowed (app_filter, "app/org.gnome.Allowlisted1/x86_64/stable")); + g_assert_false (mct_app_filter_is_flatpak_ref_allowed (app_filter, "app/org.gnome.Allowlisted1/x86_64/unknown")); g_assert_true (mct_app_filter_is_path_allowed (app_filter, "/usr/bin/true")); g_assert_false (mct_app_filter_is_path_allowed (app_filter, "/usr/bin/false")); g_assert_true (mct_app_filter_is_content_type_allowed (app_filter, @@ -1300,10 +1300,10 @@ test_app_filter_bus_set (BusFixture *fixture, }; /* Build an app filter. */ - mct_app_filter_builder_blacklist_path (&builder, "/usr/bin/false"); - mct_app_filter_builder_blacklist_path (&builder, "/usr/bin/banned"); - mct_app_filter_builder_blacklist_flatpak_ref (&builder, "app/org.gnome.Nasty/x86_64/stable"); - mct_app_filter_builder_blacklist_content_type (&builder, "x-scheme-handler/http"); + mct_app_filter_builder_blocklist_path (&builder, "/usr/bin/false"); + mct_app_filter_builder_blocklist_path (&builder, "/usr/bin/banned"); + mct_app_filter_builder_blocklist_flatpak_ref (&builder, "app/org.gnome.Nasty/x86_64/stable"); + mct_app_filter_builder_blocklist_content_type (&builder, "x-scheme-handler/http"); mct_app_filter_builder_set_oars_value (&builder, "violence-fantasy", MCT_APP_FILTER_OARS_VALUE_INTENSE); mct_app_filter_builder_set_allow_user_installation (&builder, TRUE); mct_app_filter_builder_set_allow_system_installation (&builder, TRUE); @@ -1552,8 +1552,8 @@ main (int argc, bus_set_up, test_app_filter_bus_get, bus_tear_down); g_test_add ("/app-filter/bus/get/sync", BusFixture, GUINT_TO_POINTER (FALSE), bus_set_up, test_app_filter_bus_get, bus_tear_down); - g_test_add ("/app-filter/bus/get/whitelist", BusFixture, NULL, - bus_set_up, test_app_filter_bus_get_whitelist, bus_tear_down); + g_test_add ("/app-filter/bus/get/allowlist", BusFixture, NULL, + bus_set_up, test_app_filter_bus_get_allowlist, bus_tear_down); g_test_add ("/app-filter/bus/get/all-oars-values", BusFixture, NULL, bus_set_up, test_app_filter_bus_get_all_oars_values, bus_tear_down); g_test_add ("/app-filter/bus/get/defaults", BusFixture, NULL, diff --git a/malcontent-client/malcontent-client.py b/malcontent-client/malcontent-client.py index 2c53018..5bc4731 100644 --- a/malcontent-client/malcontent-client.py +++ b/malcontent-client/malcontent-client.py @@ -385,12 +385,12 @@ def command_set_app_filter(user, allow_user_installation=True, file=sys.stderr) raise SystemExit(EXIT_INVALID_OPTION) elif is_maybe_flatpak_ref: - builder.blacklist_flatpak_ref(arg) + builder.blocklist_flatpak_ref(arg) elif is_maybe_content_type: - builder.blacklist_content_type(arg) + builder.blocklist_content_type(arg) elif is_maybe_path: path = os.path.abspath(arg) - builder.blacklist_path(path) + builder.blocklist_path(path) else: raise AssertionError('code should not be reached') @@ -523,7 +523,7 @@ def main(): 'flatpak repo') parser_set_app_filter.add_argument('app_filter_args', nargs='*', help='paths, content types or flatpak ' - 'refs to blacklist and OARS ' + 'refs to blocklist and OARS ' 'section=value pairs to store') parser_set_app_filter.set_defaults(allow_user_installation=True, allow_system_installation=False)