diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ephy-session.c | 7 | ||||
-rw-r--r-- | src/ephy-shell.c | 30 | ||||
-rw-r--r-- | src/ephy-shell.h | 3 | ||||
-rw-r--r-- | src/ephy-window.c | 14 | ||||
-rw-r--r-- | src/epiphany.defs | 2 |
5 files changed, 33 insertions, 23 deletions
diff --git a/src/ephy-session.c b/src/ephy-session.c index 4dabe3f46..d4e38b988 100644 --- a/src/ephy-session.c +++ b/src/ephy-session.c @@ -641,6 +641,7 @@ session_command_open_uris (EphySession *session, { const char *url = uris[i]; EphyNewTabFlags page_flags; + WebKitNetworkRequest *request; if (url[0] == '\0') { @@ -651,13 +652,15 @@ session_command_open_uris (EphySession *session, page_flags = EPHY_NEW_TAB_OPEN_PAGE; } + request = webkit_network_request_new (url); embed = ephy_shell_new_tab_full (shell, window, NULL /* parent tab */, - url, + request, flags | page_flags, EPHY_EMBED_CHROME_ALL, FALSE /* is popup? */, user_time); + g_object_unref (request); window = EPHY_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (embed))); } @@ -698,7 +701,7 @@ session_command_dispatch (EphySession *session) { ephy_shell_new_tab_full (ephy_shell_get_default (), NULL /* window */, NULL /* tab */, - NULL /* URL */, + NULL /* NetworkRequest */, EPHY_NEW_TAB_IN_NEW_WINDOW | EPHY_NEW_TAB_HOME_PAGE, EPHY_EMBED_CHROME_ALL, diff --git a/src/ephy-shell.c b/src/ephy-shell.c index 231069687..b0339207e 100644 --- a/src/ephy-shell.c +++ b/src/ephy-shell.c @@ -35,6 +35,8 @@ #include "ephy-prefs.h" #include "ephy-file-helpers.h" #include "ephy-favicon-cache.h" +#include "ephy-web-view.h" +#include "ephy-embed-utils.h" #include "ephy-window.h" #include "ephy-bookmarks-ui.h" #include "ephy-bookmarks-import.h" @@ -406,7 +408,7 @@ load_homepage (EphyEmbed *embed) * @shell: a #EphyShell * @parent_window: the target #EphyWindow or %NULL * @previous_embed: the referrer embed, or %NULL - * @url: an url to load or %NULL + * @request: a #WebKitNetworkRequest to load or %NULL * @chrome: a #EphyEmbedChrome mask to use if creating a new window * @is_popup: whether the new window is a popup * @user_time: a timestamp, or 0 @@ -420,7 +422,7 @@ EphyEmbed * ephy_shell_new_tab_full (EphyShell *shell, EphyWindow *parent_window, EphyEmbed *previous_embed, - const char *url, + WebKitNetworkRequest *request, EphyNewTabFlags flags, EphyEmbedChrome chrome, gboolean is_popup, @@ -520,7 +522,7 @@ ephy_shell_new_tab_full (EphyShell *shell, { EphyEmbedLoadFlags load_flags = 0; - g_assert (url != NULL); + g_assert (request != NULL); if (flags & EPHY_NEW_TAB_ALLOW_FIXUP) { @@ -530,13 +532,10 @@ ephy_shell_new_tab_full (EphyShell *shell, { load_flags = EPHY_EMBED_LOAD_FLAGS_NONE; } - /* FIXME */ - /* We need to audit every caller to see if this - won't make us send referer for undesirable loads. - Passing NULL referrer atm */ - ephy_embed_load (embed, url, load_flags, NULL); - is_empty = url_is_empty (url); + ephy_web_view_load_request (EPHY_WEB_VIEW (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed)), + request); + is_empty = url_is_empty (webkit_network_request_get_uri (request)); } /* Make sure the initial focus is somewhere sensible and not, for @@ -582,9 +581,16 @@ ephy_shell_new_tab (EphyShell *shell, const char *url, EphyNewTabFlags flags) { - return ephy_shell_new_tab_full (shell, parent_window, - previous_embed, url, flags, - EPHY_EMBED_CHROME_ALL, FALSE, 0); + EphyEmbed *embed; + WebKitNetworkRequest *request = webkit_network_request_new (url); + + embed = ephy_shell_new_tab_full (shell, parent_window, + previous_embed, request, flags, + EPHY_EMBED_CHROME_ALL, FALSE, 0); + + g_object_unref (request); + + return embed; } /** diff --git a/src/ephy-shell.h b/src/ephy-shell.h index 77dd927f1..00a1765fa 100644 --- a/src/ephy-shell.h +++ b/src/ephy-shell.h @@ -30,6 +30,7 @@ #include "ephy-window.h" #include "ephy-embed.h" +#include <webkit/webkit.h> #include <glib-object.h> #include <glib.h> @@ -100,7 +101,7 @@ EphyEmbed *ephy_shell_new_tab (EphyShell *shell, EphyEmbed *ephy_shell_new_tab_full (EphyShell *shell, EphyWindow *parent_window, EphyEmbed *previous_embed, - const char *url, + WebKitNetworkRequest *request, EphyNewTabFlags flags, EphyEmbedChrome chrome, gboolean is_popup, diff --git a/src/ephy-window.c b/src/ephy-window.c index 5d7babc60..ca926c4de 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2562,16 +2562,16 @@ policy_decision_required_cb (WebKitWebView *web_view, const char *uri; EphyEmbed *embed; - uri = webkit_network_request_get_uri (request); embed = ephy_embed_container_get_active_child (EPHY_EMBED_CONTAINER (window)); - ephy_shell_new_tab (ephy_shell_get_default (), - window, - embed, - uri, - EPHY_NEW_TAB_IN_EXISTING_WINDOW | - EPHY_NEW_TAB_OPEN_PAGE); + ephy_shell_new_tab_full (ephy_shell_get_default (), + window, + embed, + request, + EPHY_NEW_TAB_IN_EXISTING_WINDOW | + EPHY_NEW_TAB_OPEN_PAGE, + EPHY_EMBED_CHROME_ALL, FALSE, 0); return TRUE; } diff --git a/src/epiphany.defs b/src/epiphany.defs index d0d5faaa7..ca5785480 100644 --- a/src/epiphany.defs +++ b/src/epiphany.defs @@ -3086,7 +3086,7 @@ (parameters '("EphyWindow*" "parent_window") '("EphyEmbed*" "previous_tab") - '("const-char*" "url") + '("WebKitNetworkRequest*" "request") '("EphyNewTabFlags" "flags") '("EphyEmbedChrome" "chrome") '("gboolean" "is_popup") |