[epiphany/gnome-3-32] Remove referrer in ephy_web_application_is_uri_allowed () and use webapp url directly



commit 4eb452f15bdeb708c26ca5dea88eb9b4d1c4d4c9
Author: Jan-Michael Brummer <jan brummer tabos org>
Date:   Fri May 3 12:03:12 2019 +0000

    Remove referrer in ephy_web_application_is_uri_allowed () and use webapp url directly
    
    Fixes: https://gitlab.gnome.org/GNOME/epiphany/issues/558
    
    
    (cherry picked from commit 8b76f3f1e3099c4fd37d081488613cc802f13e8c)

 lib/ephy-web-app-utils.c |  6 +++---
 lib/ephy-web-app-utils.h |  2 +-
 src/ephy-window.c        | 19 ++-----------------
 3 files changed, 6 insertions(+), 21 deletions(-)
---
diff --git a/lib/ephy-web-app-utils.c b/lib/ephy-web-app-utils.c
index 63596f0b9..684b84a58 100644
--- a/lib/ephy-web-app-utils.c
+++ b/lib/ephy-web-app-utils.c
@@ -782,9 +782,9 @@ urls_have_same_origin (const char *a_url,
 }
 
 gboolean
-ephy_web_application_is_uri_allowed (const char *uri,
-                                     const char *referrer)
+ephy_web_application_is_uri_allowed (const char *uri)
 {
+  EphyWebApplication *webapp = ephy_web_application_for_profile_directory (ephy_profile_dir ());
   SoupURI *request_uri;
   char **urls;
   guint i;
@@ -793,7 +793,7 @@ ephy_web_application_is_uri_allowed (const char *uri,
   if (g_str_has_prefix (uri, "blob:") || g_str_has_prefix (uri, "data:"))
     return TRUE;
 
-  if (urls_have_same_origin (uri, referrer))
+  if (urls_have_same_origin (uri, webapp->url))
     return TRUE;
 
   if (g_strcmp0 (uri, "about:blank") == 0)
diff --git a/lib/ephy-web-app-utils.h b/lib/ephy-web-app-utils.h
index 3080f9970..1d436858c 100644
--- a/lib/ephy-web-app-utils.h
+++ b/lib/ephy-web-app-utils.h
@@ -67,7 +67,7 @@ void                ephy_web_application_free_application_list (GList *list);
 
 void                ephy_web_application_initialize_settings (const char *profile_directory);
 
-gboolean            ephy_web_application_is_uri_allowed (const char *uri, const char *referrer);
+gboolean            ephy_web_application_is_uri_allowed (const char *uri);
 
 gboolean            ephy_web_application_save (EphyWebApplication *app);
 
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 2724dbdb5..236b7d55f 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -1896,17 +1896,6 @@ web_view_ready_cb (WebKitWebView *web_view,
     g_signal_emit_by_name (parent_web_view, "new-window", web_view);
   }
 
-  if (ephy_embed_shell_get_mode (ephy_embed_shell_get_default ()) == EPHY_EMBED_SHELL_MODE_APPLICATION &&
-      !webkit_web_view_get_uri (web_view)) {
-    /* Wait until we have a valid URL to decide whether to show the window
-     * or load the URL in the default web browser
-     */
-    g_object_set_data_full (G_OBJECT (window), "referrer",
-                            g_strdup (webkit_web_view_get_uri (parent_web_view)),
-                            g_free);
-    return TRUE;
-  }
-
   gtk_widget_show (GTK_WIDGET (window));
 
   return TRUE;
@@ -2040,11 +2029,7 @@ decide_navigation_policy (WebKitWebView            *web_view,
 
   if (ephy_embed_shell_get_mode (ephy_embed_shell_get_default ()) == EPHY_EMBED_SHELL_MODE_APPLICATION) {
     if (!gtk_widget_is_visible (GTK_WIDGET (window))) {
-      char *referrer;
-
-      referrer = (char *)g_object_get_data (G_OBJECT (window), "referrer");
-
-      if (ephy_web_application_is_uri_allowed (uri, referrer)) {
+      if (ephy_web_application_is_uri_allowed (uri)) {
         gtk_widget_show (GTK_WIDGET (window));
       } else {
         /* We can't get here under flatpak because this code only
@@ -2063,7 +2048,7 @@ decide_navigation_policy (WebKitWebView            *web_view,
 
     if (navigation_type == WEBKIT_NAVIGATION_TYPE_LINK_CLICKED ||
         (navigation_type == WEBKIT_NAVIGATION_TYPE_OTHER && webkit_navigation_action_is_user_gesture 
(navigation_action))) {
-      if (ephy_web_application_is_uri_allowed (uri, webkit_web_view_get_uri (web_view)))
+      if (ephy_web_application_is_uri_allowed (uri))
         return FALSE;
 
       /* We can't get here under flatpak because this code only


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