diff --git a/configure.in b/configure.in index 2b1a58c..37d72bc 100644 --- a/configure.in +++ b/configure.in @@ -6539,12 +6539,23 @@ if test -n "$TOR_BROWSER_UPDATE"; then AC_DEFINE(TOR_BROWSER_UPDATE) fi +MOZ_ARG_ENABLE_BOOL(tor-browser-data-in-home-dir, +[ --enable-tor-browser-data-in-home-dir + Enable Tor Browser data in home dir], + TOR_BROWSER_DATA_IN_HOME_DIR=1, + TOR_BROWSER_DATA_IN_HOME_DIR= ) + MOZ_ARG_ENABLE_BOOL(tor-browser-data-outside-app-dir, [ --enable-tor-browser-data-outside-app-dir Enable Tor Browser data outside of app directory], TOR_BROWSER_DATA_OUTSIDE_APP_DIR=1, TOR_BROWSER_DATA_OUTSIDE_APP_DIR= ) +if test -n "$TOR_BROWSER_DATA_IN_HOME_DIR"; then + TOR_BROWSER_DATA_OUTSIDE_APP_DIR=1 + AC_DEFINE(TOR_BROWSER_DATA_IN_HOME_DIR) +fi + if test -n "$TOR_BROWSER_DATA_OUTSIDE_APP_DIR"; then AC_DEFINE(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) fi diff --git a/xpcom/io/TorFileUtils.cpp b/xpcom/io/TorFileUtils.cpp index c45961a..14278ec 100644 --- a/xpcom/io/TorFileUtils.cpp +++ b/xpcom/io/TorFileUtils.cpp @@ -15,7 +15,17 @@ TorBrowser_GetUserDataDir(nsIFile *aExeFile, nsIFile** aFile) NS_ENSURE_ARG_POINTER(aFile); nsCOMPtr tbDataDir; -#ifdef TOR_BROWSER_DATA_OUTSIDE_APP_DIR +#if defined(TOR_BROWSER_DATA_IN_HOME_DIR) + const char *homeDir = getenv("HOME"); + if (!homeDir || !*homeDir) + return NS_ERROR_FAILURE; + nsresult rv = NS_NewNativeLocalFile(nsDependentCString(homeDir), true, + getter_AddRefs(tbDataDir)); + NS_ENSURE_SUCCESS(rv, rv); + nsAutoCString leafSubdir(NS_LITERAL_CSTRING("TorBrowser-Data")); + rv = tbDataDir->AppendNative(leafSubdir); + NS_ENSURE_SUCCESS(rv, rv); +#elif defined(TOR_BROWSER_DATA_OUTSIDE_APP_DIR) nsAutoCString tbDataLeafName(NS_LITERAL_CSTRING("TorBrowser-Data")); nsCOMPtr appRootDir; nsresult rv = GetAppRootDir(aExeFile, getter_AddRefs(appRootDir));