aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am2
-rw-r--r--src/ephy-main.c28
-rw-r--r--src/ephy-shell.c46
3 files changed, 47 insertions, 29 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index a2c2aed97..0b38aa816 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -86,6 +86,7 @@ libephymain_la_CPPFLAGS = \
-DLOADER_DIR=\""$(pkglibdir)/$(EPIPHANY_MAJOR)/loaders"\" \
-DDATADIR=\""$(pkgdatadir)"\" \
-DGNOMELOCALEDIR=\"$(datadir)/locale\" \
+ -DEPHY_WEB_EXTENSIONS_DIR=\""$(libdir)/epiphany/$(EPIPHANY_MAJOR)/web-extensions"\" \
$(AM_CPPFLAGS)
if WITH_WEBKIT2
@@ -138,7 +139,6 @@ epiphany_CPPFLAGS = \
-I$(top_srcdir)/src/bookmarks \
-DDATADIR=\""$(datadir)"\" \
-DGNOMELOCALEDIR=\"$(datadir)/locale\" \
- -DEPHY_WEB_EXTENSIONS_DIR=\""$(libdir)/epiphany/$(EPIPHANY_MAJOR)/web-extensions"\" \
$(INCINTL) \
$(AM_CPPFLAGS)
diff --git a/src/ephy-main.c b/src/ephy-main.c
index a78991790..80d076bad 100644
--- a/src/ephy-main.c
+++ b/src/ephy-main.c
@@ -23,7 +23,6 @@
#include "config.h"
#include "ephy-debug.h"
-#include "ephy-embed-prefs.h"
#include "ephy-file-helpers.h"
#include "ephy-initial-state.h"
#include "ephy-private.h"
@@ -229,10 +228,6 @@ main (int argc,
EphyShell *ephy_shell;
int status;
EphyFileHelpersFlags flags;
-#ifdef HAVE_WEBKIT2
- char *pid_str;
- char *disk_cache_dir;
-#endif
#ifdef ENABLE_NLS
/* Initialize the i18n stuff */
@@ -462,28 +457,6 @@ main (int argc,
gtk_window_set_default_icon_name ("web-browser");
}
-#ifdef HAVE_WEBKIT2
- pid_str = g_strdup_printf ("%u", getpid ());
- g_setenv ("EPHY_WEB_EXTENSION_ID", pid_str, TRUE);
- g_setenv ("EPHY_DOT_DIR", ephy_dot_dir (), TRUE);
- if (private_instance || incognito_mode)
- g_setenv ("EPHY_PRIVATE_PROFILE", "1", TRUE);
- g_free (pid_str);
-
- /* Set the web extensions dir ASAP before the process is launched */
- webkit_web_context_set_web_extensions_directory (webkit_web_context_get_default (),
- EPHY_WEB_EXTENSIONS_DIR);
-
- /* Disk Cache */
- disk_cache_dir = g_build_filename (EPHY_EMBED_SHELL_MODE_HAS_PRIVATE_PROFILE (mode) ?
- ephy_dot_dir () : g_get_user_cache_dir (),
- g_get_prgname (), NULL);
- webkit_web_context_set_disk_cache_directory (webkit_web_context_get_default (),
- disk_cache_dir);
- g_free (disk_cache_dir);
-#endif
-
- ephy_embed_prefs_init ();
_ephy_shell_create_instance (mode);
startup_flags = get_startup_flags ();
@@ -505,7 +478,6 @@ main (int argc,
notify_uninit ();
ephy_initial_state_save ();
- ephy_embed_prefs_shutdown ();
ephy_settings_shutdown ();
ephy_file_helpers_shutdown ();
xmlCleanupParser ();
diff --git a/src/ephy-shell.c b/src/ephy-shell.c
index 3d8fc523f..252a4cbaf 100644
--- a/src/ephy-shell.c
+++ b/src/ephy-shell.c
@@ -30,6 +30,7 @@
#include "ephy-bookmarks-import.h"
#include "ephy-debug.h"
#include "ephy-embed-container.h"
+#include "ephy-embed-prefs.h"
#include "ephy-embed-single.h"
#include "ephy-embed-utils.h"
#include "ephy-file-helpers.h"
@@ -226,16 +227,52 @@ static GActionEntry app_normal_mode_entries[] = {
{ "reopen-closed-tab", reopen_closed_tab, NULL, NULL, NULL },
};
+#ifdef HAVE_WEBKIT2
+static void
+ephy_shell_setup_environment (EphyShell *shell)
+{
+ EphyEmbedShellMode mode = ephy_embed_shell_get_mode (EPHY_EMBED_SHELL (shell));
+ char *pid_str;
+
+ pid_str = g_strdup_printf ("%u", getpid ());
+ g_setenv ("EPHY_WEB_EXTENSION_ID", pid_str, TRUE);
+ g_setenv ("EPHY_DOT_DIR", ephy_dot_dir (), TRUE);
+ if (EPHY_EMBED_SHELL_MODE_HAS_PRIVATE_PROFILE (mode))
+ g_setenv ("EPHY_PRIVATE_PROFILE", "1", TRUE);
+ g_free (pid_str);
+}
+#endif
+
static void
ephy_shell_startup (GApplication* application)
{
EphyEmbedShellMode mode;
+#ifdef HAVE_WEBKIT2
+ char *disk_cache_dir;
+#endif
G_APPLICATION_CLASS (ephy_shell_parent_class)->startup (application);
/* We're not remoting; start our services */
mode = ephy_embed_shell_get_mode (EPHY_EMBED_SHELL (application));
+#ifdef HAVE_WEBKIT2
+ ephy_shell_setup_environment (EPHY_SHELL (application));
+ /* Set the web extensions dir ASAP before the process is launched */
+ webkit_web_context_set_web_extensions_directory (webkit_web_context_get_default (),
+ EPHY_WEB_EXTENSIONS_DIR);
+
+ /* Disk Cache */
+ disk_cache_dir = g_build_filename (EPHY_EMBED_SHELL_MODE_HAS_PRIVATE_PROFILE (mode) ?
+ ephy_dot_dir () : g_get_user_cache_dir (),
+ g_get_prgname (), NULL);
+ webkit_web_context_set_disk_cache_directory (webkit_web_context_get_default (),
+ disk_cache_dir);
+ g_free (disk_cache_dir);
+#endif
+
+ ephy_embed_prefs_init ();
+
if (mode != EPHY_EMBED_SHELL_MODE_APPLICATION) {
GtkBuilder *builder;
@@ -266,6 +303,14 @@ ephy_shell_startup (GApplication* application)
}
static void
+ephy_shell_shutdown (GApplication* application)
+{
+ G_APPLICATION_CLASS (ephy_shell_parent_class)->shutdown (application);
+
+ ephy_embed_prefs_shutdown ();
+}
+
+static void
session_load_cb (GObject *object,
GAsyncResult *result,
gpointer user_data)
@@ -500,6 +545,7 @@ ephy_shell_class_init (EphyShellClass *klass)
object_class->constructed = ephy_shell_constructed;
application_class->startup = ephy_shell_startup;
+ application_class->shutdown = ephy_shell_shutdown;
application_class->activate = ephy_shell_activate;
application_class->before_emit = ephy_shell_before_emit;
application_class->add_platform_data = ephy_shell_add_platform_data;