[epiphany] Do not remove all page actions during extension disable
- From: Jan-Michael Brummer <jbrummer src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Do not remove all page actions during extension disable
- Date: Wed, 3 Feb 2021 17:12:22 +0000 (UTC)
commit 8dddd781b62cf7438ec7c7f72aa8ba358246b3ee
Author: Jan-Michael Brummer <jan brummer tabos org>
Date: Tue Feb 2 20:58:22 2021 +0100
Do not remove all page actions during extension disable
Fixes: https://gitlab.gnome.org/GNOME/epiphany/-/issues/1436
src/webextension/ephy-web-extension-manager.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/src/webextension/ephy-web-extension-manager.c b/src/webextension/ephy-web-extension-manager.c
index bfed03f85..6d9d5ec89 100644
--- a/src/webextension/ephy-web-extension-manager.c
+++ b/src/webextension/ephy-web-extension-manager.c
@@ -784,7 +784,7 @@ remove_page_action (gpointer key,
gpointer value,
gpointer user_data)
{
- return TRUE;
+ return key == user_data;
}
void
@@ -795,11 +795,20 @@ ephy_web_extension_manager_remove_web_extension_from_webview (EphyWebExtensionMa
{
GtkWidget *title_widget = GTK_WIDGET (ephy_header_bar_get_title_widget (EPHY_HEADER_BAR
(ephy_window_get_header_bar (window))));
EphyLocationEntry *lentry = NULL;
+ GHashTableIter iter;
+ gpointer key;
+ GHashTable *table;
if (EPHY_IS_LOCATION_ENTRY (title_widget))
lentry = EPHY_LOCATION_ENTRY (title_widget);
- g_hash_table_foreach_remove (self->page_action_map, remove_page_action, web_view);
+ g_hash_table_iter_init (&iter, self->page_action_map);
+ while (g_hash_table_iter_next (&iter, &key, (gpointer) & table)) {
+ if (key != web_extension)
+ continue;
+
+ g_hash_table_foreach_remove (table, remove_page_action, web_view);
+ }
if (lentry)
ephy_location_entry_page_action_clear (lentry);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]