commit 8cd16980da0cd50e5b6e203a4ee5eaa87725184a Author: David Fifield david@bamsoftware.com Date: Thu Jun 25 12:57:10 2015 -0700
Unset environment variables Firefox sets on restart.
These were the cause of the profile error that you saw when restarting Tor Browser after an update. https://trac.torproject.org/projects/tor/ticket/13247#comment:17 --- meek-client-torbrowser/meek-client-torbrowser.go | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/meek-client-torbrowser/meek-client-torbrowser.go b/meek-client-torbrowser/meek-client-torbrowser.go index 5785856..605bc85 100644 --- a/meek-client-torbrowser/meek-client-torbrowser.go +++ b/meek-client-torbrowser/meek-client-torbrowser.go @@ -148,6 +148,31 @@ func main() { sigChan := make(chan os.Signal, 1) signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
+ // Unset environment variables that Firefox sets after a restart (as + // caused by, for example, an update or the installation of an add-on). + // XRE_PROFILE_PATH, in particular, overrides the -profile option that + // runFirefox sets, causing Firefox to run with profile.default instead + // of profile.meek-http-helper, which conflicts with the profile.default + // that is already running. See + // https://trac.torproject.org/projects/tor/ticket/13247, particularly + // #comment:17 and #comment:18. The environment variable names come from + // https://hg.mozilla.org/mozilla-central/file/cfde3603b020/toolkit/xre/nsAppRu... + var firefoxRestartEnvVars = []string{ + "XRE_PROFILE_PATH", + "XRE_PROFILE_LOCAL_PATH", + "XRE_PROFILE_NAME", + "XRE_START_OFFLINE", + "NO_EM_RESTART", + "XUL_APP_FILE", + "XRE_BINARY_PATH", + } + for _, varname := range firefoxRestartEnvVars { + err := os.Unsetenv(varname) + if err != nil { + log.Fatal(err) + } + } + // Start firefox. firefoxCmd, stdout, err := runFirefox() if err != nil {
tor-commits@lists.torproject.org