aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2013-03-17 23:22:34 +0800
committerCarlos Garcia Campos <carlosgc@gnome.org>2013-03-19 00:33:36 +0800
commitfca6216c67cea8ac074c6af912526066aa6dd098 (patch)
tree0e7c0f058edf49b4e20de920b0647fa8d561352d
parentd54c82c4f07888c6aa7f7aa104e0e253ec770b86 (diff)
downloadgsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar.gz
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar.bz2
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar.lz
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar.xz
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.tar.zst
gsoc2013-epiphany-fca6216c67cea8ac074c6af912526066aa6dd098.zip
embed: Use a custom WebKitWebViewGroup for all ephy web views
Create all ephy web views with the global group that shares all the global settings.
-rw-r--r--embed/ephy-embed-prefs.c35
-rw-r--r--embed/ephy-embed-prefs.h20
-rw-r--r--embed/ephy-embed.c2
-rw-r--r--embed/ephy-web-view.c6
4 files changed, 44 insertions, 19 deletions
diff --git a/embed/ephy-embed-prefs.c b/embed/ephy-embed-prefs.c
index e03995787..482b97934 100644
--- a/embed/ephy-embed-prefs.c
+++ b/embed/ephy-embed-prefs.c
@@ -48,6 +48,7 @@ typedef struct
#define ENABLE_SCRIPTS_SETTING "enable-javascript"
#define DEFAULT_ENCODING_SETTING "default-charset"
static WebKitSettings *webkit_settings = NULL;
+static WebKitWebViewGroup *web_view_group = NULL;
#else
#define ENABLE_SCRIPTS_SETTING "enable-scripts"
#define DEFAULT_ENCODING_SETTING "default-encoding"
@@ -665,28 +666,29 @@ static const PrefData webkit_pref_entries[] =
webkit_pref_callback_cookie_accept_policy },
};
-#ifdef HAVE_WEBKIT2
-static void
-ephy_embed_prefs_apply (EphyEmbed *embed, WebKitSettings *settings)
-#else
+#ifndef HAVE_WEBKIT2
static void
ephy_embed_prefs_apply (EphyEmbed *embed, WebKitWebSettings *settings)
-#endif
{
webkit_web_view_set_settings (EPHY_GET_WEBKIT_WEB_VIEW_FROM_EMBED (embed),
settings);
}
+#endif
void
ephy_embed_prefs_init (void)
{
int i;
#ifdef HAVE_WEBKIT2
- webkit_settings = webkit_settings_new_with_settings ("enable-developer-extras", TRUE,
- "enable-fullscreen", TRUE,
- "enable-site-specific-quirks", TRUE,
- "enable-dns-prefetching", TRUE,
- NULL);
+ web_view_group = webkit_web_view_group_new ("Ephy WebView Group");
+ webkit_settings = webkit_web_view_group_get_settings (web_view_group);
+
+ g_object_set (webkit_settings,
+ "enable-developer-extras", TRUE,
+ "enable-fullscreen", TRUE,
+ "enable-site-specific-quirks", TRUE,
+ "enable-dns-prefetching", TRUE,
+ NULL);
#else
webkit_settings = webkit_web_settings_new ();
@@ -758,12 +760,23 @@ ephy_embed_prefs_init (void)
void
ephy_embed_prefs_shutdown (void)
{
+#ifdef HAVE_WEBKIT2
+ g_object_unref (web_view_group);
+#else
g_object_unref (webkit_settings);
+#endif
}
+#ifdef HAVE_WEBKIT2
+WebKitWebViewGroup *
+ephy_embed_prefs_get_web_view_group (void)
+{
+ return web_view_group;
+}
+#else
void
ephy_embed_prefs_add_embed (EphyEmbed *embed)
{
ephy_embed_prefs_apply (embed, webkit_settings);
}
-
+#endif
diff --git a/embed/ephy-embed-prefs.h b/embed/ephy-embed-prefs.h
index f214250e3..c49570e14 100644
--- a/embed/ephy-embed-prefs.h
+++ b/embed/ephy-embed-prefs.h
@@ -38,15 +38,21 @@
G_BEGIN_DECLS
-void ephy_embed_prefs_init (void);
-void ephy_embed_prefs_shutdown (void);
-void ephy_embed_prefs_add_embed (EphyEmbed *embed);
+void ephy_embed_prefs_init (void);
+void ephy_embed_prefs_shutdown (void);
+
+#ifdef HAVE_WEBKIT2
+WebKitWebViewGroup *ephy_embed_prefs_get_web_view_group (void);
+#else
+void ephy_embed_prefs_add_embed (EphyEmbed *embed);
+#endif
+
#ifdef HAVE_WEBKIT2
-void ephy_embed_prefs_set_cookie_accept_policy (WebKitCookieManager *cookie_manager,
- const char *settings_policy);
+void ephy_embed_prefs_set_cookie_accept_policy (WebKitCookieManager *cookie_manager,
+ const char *settings_policy);
#else
-void ephy_embed_prefs_set_cookie_jar_policy (SoupCookieJar *jar,
- const char *gconf_policy);
+void ephy_embed_prefs_set_cookie_jar_policy (SoupCookieJar *jar,
+ const char *gconf_policy);
#endif
G_END_DECLS
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index 470d4d045..c9b8bf4bd 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -1109,7 +1109,9 @@ ephy_embed_constructed (GObject *object)
NULL);
#endif
+#ifndef HAVE_WEBKIT2
ephy_embed_prefs_add_embed (embed);
+#endif
}
static void
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 98b29d27c..439d83347 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -2835,7 +2835,11 @@ ephy_web_view_init (EphyWebView *web_view)
GtkWidget *
ephy_web_view_new (void)
{
- return g_object_new (EPHY_TYPE_WEB_VIEW, NULL);
+ return g_object_new (EPHY_TYPE_WEB_VIEW,
+#ifdef HAVE_WEBKIT2
+ "group", ephy_embed_prefs_get_web_view_group (),
+#endif
+ NULL);
}
static gboolean