aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/ephy-file-helpers.c17
-rw-r--r--lib/ephy-file-helpers.h11
-rw-r--r--lib/ephy-profile-migrator.c2
-rw-r--r--src/ephy-main.c13
-rw-r--r--tests/ephy-download-test.c2
-rw-r--r--tests/ephy-embed-single-test.c2
-rw-r--r--tests/ephy-web-view-test.c2
7 files changed, 33 insertions, 16 deletions
diff --git a/lib/ephy-file-helpers.c b/lib/ephy-file-helpers.c
index 50e81f315..63f3c1434 100644
--- a/lib/ephy-file-helpers.c
+++ b/lib/ephy-file-helpers.c
@@ -272,8 +272,7 @@ ephy_dot_dir (void)
/**
* ephy_file_helpers_init:
* @profile_dir: directory to use as Epiphany's profile
- * @private_profile: %TRUE if we should use a private profile
- * @keep_temp_dir: %TRUE to omit deleting the temp dir on exit
+ * @flags: the %EphyFileHelpersFlags for this session
* @error: an optional #GError
*
* Initializes Epiphany file helper functions, sets @profile_dir as Epiphany's
@@ -283,11 +282,11 @@ ephy_dot_dir (void)
**/
gboolean
ephy_file_helpers_init (const char *profile_dir,
- gboolean private_profile,
- gboolean keep_temp_dir,
+ EphyFileHelpersFlags flags,
GError **error)
{
const char *uuid;
+ gboolean private_profile;
/* See if we've been calling ourself, and abort if we have */
uuid = g_getenv (EPHY_UUID_ENVVAR);
@@ -307,7 +306,8 @@ ephy_file_helpers_init (const char *profile_dir,
(GDestroyNotify) g_free,
(GDestroyNotify) g_free);
- keep_temp_directory = keep_temp_dir;
+ keep_temp_directory = flags & EPHY_FILE_HELPERS_KEEP_TEMP_DIR;
+ private_profile = flags & EPHY_FILE_HELPERS_PRIVATE_PROFILE;
if (private_profile && profile_dir != NULL)
{
@@ -336,8 +336,11 @@ ephy_file_helpers_init (const char *profile_dir,
"epiphany",
NULL);
}
-
- return ephy_ensure_dir_exists (ephy_dot_dir (), error);
+
+ if (flags & EPHY_FILE_HELPERS_ENSURE_EXISTS)
+ return ephy_ensure_dir_exists (ephy_dot_dir (), error);
+ else
+ return TRUE;
}
static void
diff --git a/lib/ephy-file-helpers.h b/lib/ephy-file-helpers.h
index 4cd270f83..68a6db616 100644
--- a/lib/ephy-file-helpers.h
+++ b/lib/ephy-file-helpers.h
@@ -45,11 +45,18 @@ typedef enum
EPHY_MIME_PERMISSION_UNKNOWN = 3
} EphyMimePermission;
+typedef enum
+{
+ EPHY_FILE_HELPERS_NONE = 0,
+ EPHY_FILE_HELPERS_KEEP_TEMP_DIR = 1 << 1,
+ EPHY_FILE_HELPERS_PRIVATE_PROFILE = 1 << 2,
+ EPHY_FILE_HELPERS_ENSURE_EXISTS = 1 << 3,
+} EphyFileHelpersFlags;
+
#define EPHY_UUID_ENVVAR "EPHY_UNIQUE"
gboolean ephy_file_helpers_init (const char *profile_dir,
- gboolean private_profile,
- gboolean keep_temp_dir,
+ EphyFileHelpersFlags flags,
GError **error);
const char * ephy_file (const char *filename);
const char * ephy_dot_dir (void);
diff --git a/lib/ephy-profile-migrator.c b/lib/ephy-profile-migrator.c
index 2ab42c95e..17b2692ac 100644
--- a/lib/ephy-profile-migrator.c
+++ b/lib/ephy-profile-migrator.c
@@ -670,7 +670,7 @@ main (int argc, char *argv[])
ephy_debug_init ();
- if (!ephy_file_helpers_init (NULL, FALSE, FALSE, NULL)) {
+ if (!ephy_file_helpers_init (NULL, EPHY_FILE_HELPERS_NONE, NULL)) {
LOG ("Something wrong happened with ephy_file_helpers_init()");
return -1;
}
diff --git a/src/ephy-main.c b/src/ephy-main.c
index a9b71dd89..328e506ce 100644
--- a/src/ephy-main.c
+++ b/src/ephy-main.c
@@ -26,6 +26,7 @@
#include "ephy-embed-prefs.h"
#include "ephy-file-helpers.h"
#include "ephy-private.h"
+#include "ephy-profile-utils.h"
#include "ephy-session.h"
#include "ephy-settings.h"
#include "ephy-shell.h"
@@ -245,6 +246,7 @@ main (int argc,
EphyStartupFlags startup_flags;
EphyEmbedShellMode mode;
int status;
+ EphyFileHelpersFlags flags;
#ifdef ENABLE_NLS
/* Initialize the i18n stuff */
@@ -392,9 +394,14 @@ main (int argc,
ephy_profile_utils_do_migration ();
/* Start our services */
- if (!ephy_file_helpers_init (profile_directory,
- private_instance || application_mode,
- keep_temp_directory || profile_directory,
+ flags = EPHY_FILE_HELPERS_ENSURE_EXISTS;
+
+ if (private_instance || application_mode)
+ flags |= EPHY_FILE_HELPERS_PRIVATE_PROFILE;
+ if (keep_temp_directory || profile_directory)
+ flags |= EPHY_FILE_HELPERS_KEEP_TEMP_DIR;
+
+ if (!ephy_file_helpers_init (profile_directory, flags,
&error)) {
show_error_message (&error);
exit (1);
diff --git a/tests/ephy-download-test.c b/tests/ephy-download-test.c
index b1c4171bf..3fd208af5 100644
--- a/tests/ephy-download-test.c
+++ b/tests/ephy-download-test.c
@@ -166,7 +166,7 @@ main (int argc, char *argv[])
ephy_embed_prefs_init ();
_ephy_shell_create_instance (EPHY_EMBED_SHELL_MODE_PRIVATE);
- if (!ephy_file_helpers_init (NULL, TRUE, FALSE, NULL)) {
+ if (!ephy_file_helpers_init (NULL, EPHY_FILE_HELPERS_PRIVATE_PROFILE, NULL)) {
g_debug ("Something wrong happened with ephy_file_helpers_init()");
return -1;
}
diff --git a/tests/ephy-embed-single-test.c b/tests/ephy-embed-single-test.c
index d0891b0f9..f5e4b8e50 100644
--- a/tests/ephy-embed-single-test.c
+++ b/tests/ephy-embed-single-test.c
@@ -87,7 +87,7 @@ main (int argc, char *argv[])
ephy_embed_prefs_init ();
_ephy_shell_create_instance (EPHY_EMBED_SHELL_MODE_PRIVATE);
- if (!ephy_file_helpers_init (NULL, TRUE, FALSE, NULL)) {
+ if (!ephy_file_helpers_init (NULL, EPHY_FILE_HELPERS_PRIVATE_PROFILE, NULL)) {
g_debug ("Something wrong happened with ephy_file_helpers_init()");
return -1;
}
diff --git a/tests/ephy-web-view-test.c b/tests/ephy-web-view-test.c
index 760ffff57..ee2af1f97 100644
--- a/tests/ephy-web-view-test.c
+++ b/tests/ephy-web-view-test.c
@@ -246,7 +246,7 @@ main (int argc, char *argv[])
ephy_debug_init ();
ephy_embed_prefs_init ();
- if (!ephy_file_helpers_init (NULL, TRUE, FALSE, NULL)) {
+ if (!ephy_file_helpers_init (NULL, EPHY_FILE_HELPERS_PRIVATE_PROFILE, NULL)) {
g_debug ("Something wrong happened with ephy_file_helpers_init()");
return -1;
}