aboutsummaryrefslogtreecommitdiffstats
path: root/embed/ephy-embed-utils.c
diff options
context:
space:
mode:
authorSergio Villar Senin <svillar@igalia.com>2011-03-30 15:36:08 +0800
committerSergio Villar Senin <svillar@igalia.com>2011-06-01 22:00:59 +0800
commit89cd6749b82686ca78e8d44c5b3fb18fead02363 (patch)
tree0156a79859ec3a08a5e985d5d538c486980f1b47 /embed/ephy-embed-utils.c
parent813993d057e19bf9f7b1c091d165026c6dad8a41 (diff)
downloadgsoc2013-epiphany-89cd6749b82686ca78e8d44c5b3fb18fead02363.tar.gz
gsoc2013-epiphany-89cd6749b82686ca78e8d44c5b3fb18fead02363.tar.zst
gsoc2013-epiphany-89cd6749b82686ca78e8d44c5b3fb18fead02363.zip
Added about:plugins support.
We are now able to show a page with the list of installed plugins. Bug #575498
Diffstat (limited to 'embed/ephy-embed-utils.c')
-rw-r--r--embed/ephy-embed-utils.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/embed/ephy-embed-utils.c b/embed/ephy-embed-utils.c
index d0e369052..2ca6d7689 100644
--- a/embed/ephy-embed-utils.c
+++ b/embed/ephy-embed-utils.c
@@ -29,6 +29,7 @@
#include "ephy-string.h"
#include "ephy-embed-utils.h"
+#include "ephy-request-about.h"
char*
ephy_embed_utils_link_message_parse (char *message)
@@ -105,15 +106,25 @@ ephy_embed_utils_address_has_web_scheme (const char *address)
char*
ephy_embed_utils_normalize_address (const char *address)
{
- char *effective_address;
+ char *effective_address = NULL;
g_return_val_if_fail (address, NULL);
if (ephy_embed_utils_address_has_web_scheme (address) == FALSE)
effective_address = g_strconcat ("http://", address, NULL);
- else
- effective_address = g_strdup (address);
-
+ else {
+ /* Convert about: schemes to ephy-about: in order to
+ * force WebKit to delegate its handling to our
+ * EphyRequestAbout. In general about: schemes are
+ * handled internally by WebKit and mean "empty
+ * document".
+ */
+ if (!g_ascii_strcasecmp (address, "about:plugins"))
+ effective_address = g_strdup (EPHY_ABOUT_SCHEME":plugins");
+ else
+ effective_address = g_strdup (address);
+ }
+
return effective_address;
}