aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-link.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ephy-link.c')
-rw-r--r--src/ephy-link.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/ephy-link.c b/src/ephy-link.c
index b74ed2bbf..7845dfb62 100644
--- a/src/ephy-link.c
+++ b/src/ephy-link.c
@@ -21,6 +21,7 @@
#include "ephy-link.h"
+#include "ephy-embed-utils.h"
#include "ephy-type-builtins.h"
#include "ephy-marshal.h"
#include "ephy-signal-accumulator.h"
@@ -88,13 +89,29 @@ ephy_link_open (EphyLink *link,
EphyLinkFlags flags)
{
EphyEmbed *new_embed = NULL;
+ char *effective_url = NULL;
+
+ /*
+ * WebKit does not normalize URI's by itself, so we need to
+ * handle this ourselves
+ */
+ if (ephy_embed_utils_address_has_web_scheme (address) == FALSE)
+ {
+ effective_url = g_strconcat ("http://", address, NULL);
+ }
+ else
+ {
+ effective_url = g_strdup (address);
+ }
LOG ("ephy_link_open address \"%s\" parent-embed %p flags %u", address, embed, flags);
g_signal_emit (link, signals[OPEN_LINK], 0,
- address, embed, flags,
+ effective_url, embed, flags,
&new_embed);
+ g_free (effective_url);
+
return new_embed;
}