We need to hardcode our home and profile settings from RelativeLink into a Firefox patch so that users still get expected behavior on Mac and Windows if they dock Firefox instead of the RelativeLink exe/containing app.
This will also prevent situations where TBB ends up set as the default browser or link handler, and gets launched to handle a url without RelativeLink.
This is a pretty bad usability bug, because Firefox will end up using the wrong profile if you launch it without RelativeLink right now.
In most cases, this will cause it to fail closed (because the socks proxy won't be listening), but not if the user already has proxy settings overrides for their default profile.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
Possibly as part of this, we may want to add code that checks to ensure that the profile we're pointed actually has Torbutton and/or Tor Launcher addons in it, however we probably want to do those checks separately and carefully, or they will break things like Tails.
Ok, I merged arlolra's patch because it is an improvement, but we also want to patch Firefox directly to handle the case where Tor Browser is launched to handle urls, and to ensure that if it does end up docked still, it launches with the right profile and homedir.
Taking ownership of this bug. Kathy Brade and I have a Firefox patch that we will post shortly that modifies the default location for user data (including profiles) to be a directory that is relative to the browser itself. With the patch, docking and launching via desktop URL shortcuts works on both Windows and Mac OS. The launcher programs (e.g., RelativeLink) will not need to pass a profile location; we can just include a profiles.ini file that causes the Tor Browser to use the bundled profile by default. In conjunction with packaging changes planned as part of #9114 (closed), this should be a nice improvement.
Trac: Cc: ioerror to ioerror, brade Owner: mikeperry to mcs Status: needs_revision to assigned
Ok. I have merged this patch. I will also be merging #9114 (closed) soon. If we still need a profiles.ini with both of these merged, can you attach one? (Or one for each platform?)
Ok. I have merged this patch. I will also be merging #9114 (closed) soon. If we still need a profiles.ini with both of these merged, can you attach one? (Or one for each platform?)
Thanks for the merge. The 9114 patch includes the profiles.ini files:
Oh, one thing was bothering me about this patch. In nsXREDirProvider::AppendProfilePath(), you removed some initializations that made me nervous. I think in all cases where the empty strings were used, IsEmpty() was checked first, but I removed the code that tries to use them anyways just to be safe:
https://gitweb.torproject.org/tor-browser.git/commitdiff/f0519e332aa292b6b481dec6f9e6a22640157131
Let me know if you think that is a bad idea for some other reason.
Oh, one thing was bothering me about this patch. In nsXREDirProvider::AppendProfilePath(), you removed some initializations that made me nervous. I think in all cases where the empty strings were used, IsEmpty() was checked first, but I removed the code that tries to use them anyways just to be safe:
https://gitweb.torproject.org/tor-browser.git/commitdiff/f0519e332aa292b6b481dec6f9e6a22640157131
Let me know if you think that is a bad idea for some other reason.
We left the lines in because the patch was smaller (which may reduce future conflicts when merging with future ESR releases).
Your changes look fine, except I would initialize rv to NS_OK rather than an error. If somehow the profile string was empty, the method would fail on the NS_ENSURE_SUCCESS line.