[evolution] EWebView: Pile calls to Web Extension proxy only when such exists



commit 1c77a1461de4824e42efccffd2a4da27e4350166
Author: Milan Crha <mcrha redhat com>
Date:   Thu Sep 12 16:55:59 2019 +0200

    EWebView: Pile calls to Web Extension proxy only when such exists
    
    The callback is also called on dispose, when the EWebExtensionContainer
    notifies the listeners that the proxy is no longer valid, with a NULL
    argument. In this case the pile of calls doesn't make sense (and causes
    runtime warnings).
    
    Related to https://gitlab.gnome.org/GNOME/evolution/issues/587

 src/e-util/e-web-view.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/e-util/e-web-view.c b/src/e-util/e-web-view.c
index c1114ef885..5caa586a6c 100644
--- a/src/e-util/e-web-view.c
+++ b/src/e-util/e-web-view.c
@@ -1842,10 +1842,12 @@ e_web_view_page_proxy_changed_cb (EWebExtensionContainer *container,
            page_id == webkit_web_view_get_page_id (WEBKIT_WEB_VIEW (web_view))) {
                e_web_view_set_web_extension_proxy (web_view, proxy);
 
-               g_hash_table_foreach (web_view->priv->element_clicked_cbs, 
web_view_register_element_clicked_hfunc, web_view);
+               if (proxy) {
+                       g_hash_table_foreach (web_view->priv->element_clicked_cbs, 
web_view_register_element_clicked_hfunc, web_view);
 
-               e_web_view_ensure_body_class (web_view);
-               style_updated_cb (web_view);
+                       e_web_view_ensure_body_class (web_view);
+                       style_updated_cb (web_view);
+               }
        }
 }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]