[tor-commits] [meek/master] Bug 19646: Mac OS: wrong location for meek browser profile

dcf at torproject.org dcf at torproject.org
Sun Nov 6 01:49:50 UTC 2016


commit 73e416fe9cb97d1bde9404b71b5dfe1957affc76
Author: Kathy Brade <brade at pearlcrescent.com>
Date:   Wed Nov 2 11:44:28 2016 -0400

    Bug 19646: Mac OS: wrong location for meek browser profile
    
    On OSX, use the TOR_BROWSER_TOR_DATA_DIR environment variable value
    (if available) to determine the location of the meek browser profile.
    This fixes a problem where meek-client-torbrowser attempted to use a
    path under /Applications/TorBrowser-Data, to which regular users may
    not have write access.
---
 meek-client-torbrowser/linux.go                  |  7 ++++---
 meek-client-torbrowser/mac.go                    | 17 +++++++++++------
 meek-client-torbrowser/meek-client-torbrowser.go | 11 ++++++++---
 meek-client-torbrowser/windows.go                |  7 ++++---
 4 files changed, 27 insertions(+), 15 deletions(-)

diff --git a/meek-client-torbrowser/linux.go b/meek-client-torbrowser/linux.go
index ae363bd..71b5cfb 100644
--- a/meek-client-torbrowser/linux.go
+++ b/meek-client-torbrowser/linux.go
@@ -11,9 +11,10 @@ import (
 )
 
 const (
-	firefoxPath         = "./firefox"
-	firefoxProfilePath  = "TorBrowser/Data/Browser/profile.meek-http-helper"
-	profileTemplatePath = ""
+	firefoxPath                  = "./firefox"
+	firefoxProfilePath           = "TorBrowser/Data/Browser/profile.meek-http-helper"
+	torDataDirFirefoxProfilePath = ""
+	profileTemplatePath          = ""
 )
 
 func osSpecificCommandSetup(cmd *exec.Cmd) {
diff --git a/meek-client-torbrowser/mac.go b/meek-client-torbrowser/mac.go
index 7ec98d9..f88ed38 100644
--- a/meek-client-torbrowser/mac.go
+++ b/meek-client-torbrowser/mac.go
@@ -9,12 +9,17 @@ import "os/exec"
 
 const (
 	// During startup of meek-client-torbrowser, the browser profile is
-	// created and maintained under firefoxProfilePath by making a
-	// recursive copy of everything under profileTemplatePath.
-	// https://bugs.torproject.org/18904
-	firefoxPath         = "../firefox"
-	firefoxProfilePath  = "../../../../TorBrowser-Data/Tor/PluggableTransports/profile.meek-http-helper"
-	profileTemplatePath = "../../Resources/TorBrowser/Tor/PluggableTransports/template-profile.meek-http-helper"
+	// created and maintained under a meek-specific directory by making a
+	// recursive copy of everything under profileTemplatePath (see
+	// https://bugs.torproject.org/18904).
+	// If the TOR_BROWSER_TOR_DATA_DIR env var is set, the path for the
+	// meek-specific profile directory is constructed by appending
+	// torDataDirFirefoxProfilePath to TOR_BROWSER_TOR_DATA_DIR. Otherwise,
+	// firefoxProfilePath (a relative path) is used.
+	firefoxPath                  = "../firefox"
+	torDataDirFirefoxProfilePath = "PluggableTransports/profile.meek-http-helper"
+	firefoxProfilePath           = "../../../../TorBrowser-Data/Tor/PluggableTransports/profile.meek-http-helper"
+	profileTemplatePath          = "../../Resources/TorBrowser/Tor/PluggableTransports/template-profile.meek-http-helper"
 )
 
 func osSpecificCommandSetup(cmd *exec.Cmd) {
diff --git a/meek-client-torbrowser/meek-client-torbrowser.go b/meek-client-torbrowser/meek-client-torbrowser.go
index eea9087..4592495 100644
--- a/meek-client-torbrowser/meek-client-torbrowser.go
+++ b/meek-client-torbrowser/meek-client-torbrowser.go
@@ -206,9 +206,14 @@ func runFirefox() (cmd *exec.Cmd, stdout io.Reader, err error) {
 		return
 	}
 	var profilePath string
-	profilePath, err = filepath.Abs(firefoxProfilePath)
-	if err != nil {
-		return
+	var torDataDir = os.Getenv("TOR_BROWSER_TOR_DATA_DIR")
+	if torDataDir != "" && torDataDirFirefoxProfilePath != "" {
+		profilePath = filepath.Join(torDataDir, torDataDirFirefoxProfilePath)
+	} else {
+		profilePath, err = filepath.Abs(firefoxProfilePath)
+		if err != nil {
+			return
+		}
 	}
 	err = prepareBrowserProfile(profilePath)
 	if err != nil {
diff --git a/meek-client-torbrowser/windows.go b/meek-client-torbrowser/windows.go
index 3b1905e..f837e6e 100644
--- a/meek-client-torbrowser/windows.go
+++ b/meek-client-torbrowser/windows.go
@@ -8,9 +8,10 @@ package main
 import "os/exec"
 
 const (
-	firefoxPath         = "./firefox.exe"
-	firefoxProfilePath  = "TorBrowser/Data/Browser/profile.meek-http-helper"
-	profileTemplatePath = ""
+	firefoxPath                  = "./firefox.exe"
+	firefoxProfilePath           = "TorBrowser/Data/Browser/profile.meek-http-helper"
+	torDataDirFirefoxProfilePath = ""
+	profileTemplatePath          = ""
 )
 
 func osSpecificCommandSetup(cmd *exec.Cmd) {



More information about the tor-commits mailing list