Trac issueshttps://gitlab.torproject.org/legacy/trac/-/issues2020-06-15T23:30:11Zhttps://gitlab.torproject.org/legacy/trac/-/issues/17351Remove unused code / entities related to "fix_google_srch"2020-06-15T23:30:11ZMark SmithRemove unused code / entities related to "fix_google_srch"While working on #16620, Kathy and I came across some code and entities related to an old "fix_google_srch" feature. These are not used and can easily be removed.While working on #16620, Kathy and I came across some code and entities related to an old "fix_google_srch" feature. These are not used and can easily be removed.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16778"Sign In To Sync..." still appears in TBB Tools menu and about:preferences#sync2020-06-15T23:47:44Zteor"Sign In To Sync..." still appears in TBB Tools menu and about:preferences#syncAlthough #16488 removed "Sign in to Sync" from the browser menu, I still see "Set Up Sync..." in the Tools menu in TBB 5.0 on OS X.
Can we kill that one too?Although #16488 removed "Sign in to Sync" from the browser menu, I still see "Set Up Sync..." in the Tools menu in TBB 5.0 on OS X.
Can we kill that one too?Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16731TBB 5.0 a3/a4 fails to download a file on right click2020-06-15T23:28:04ZTracTBB 5.0 a3/a4 fails to download a file on right clickSteps to reproduce:
1. Go to https://dist.torproject.org/torbrowser/5.0a4/
2. Right click any file url, for example, "tor-win32-0.2.7.2-alpha.zip"
3. Select "Save link as"
4. Wait for TBB dialog asking if you want to open file with exte...Steps to reproduce:
1. Go to https://dist.torproject.org/torbrowser/5.0a4/
2. Right click any file url, for example, "tor-win32-0.2.7.2-alpha.zip"
3. Select "Save link as"
4. Wait for TBB dialog asking if you want to open file with external application
5. Press "Download file" button
Expected results:
Download dialog asking where to save file should appear.
Actual results:
Nothing happens
**Trac**:
**Username**: marcMark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16715use ThreadsafeIsCallerChrome() instead of IsCallerChrome()2020-06-15T23:27:58ZMark Smithuse ThreadsafeIsCallerChrome() instead of IsCallerChrome()This is a spinoff from #14205. For Tor Browser 5.0, we should replace all of the calls to ThreadsafeIsCallerChrome() with IsCallerChrome() in our browser patches. See ticket:14205#comment:7 for more background info.
I will post a patc...This is a spinoff from #14205. For Tor Browser 5.0, we should replace all of the calls to ThreadsafeIsCallerChrome() with IsCallerChrome() in our browser patches. See ticket:14205#comment:7 for more background info.
I will post a patch soon.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16639Check for Updates menu item can cause update failure2020-06-15T23:27:45ZMike PerryCheck for Updates menu item can cause update failureOur Torbutton menu shortcut to "Check for Updates" can cause updates to fail if you click on it after an incremental update has already been successfully downloaded and applied, but you did not restart the browser yet. For some reason, i...Our Torbutton menu shortcut to "Check for Updates" can cause updates to fail if you click on it after an incremental update has already been successfully downloaded and applied, but you did not restart the browser yet. For some reason, it tries to download the update again (the full update mar this time) and then it reports an integrity error.
Clicking on it one more time then restarts the whole update process from the incremental.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16620Transform window.name handling into Firefox patch2020-06-15T23:30:11ZMike PerryTransform window.name handling into Firefox patchRight now, we reset window.name in Torbutton in torbutton_check_progress(). We should rewrite this as a direct Firefox patch, as per our SponsorU Torbutton conversion deliverable.Right now, we reset window.name in Torbutton in torbutton_check_progress(). We should rewrite this as a direct Firefox patch, as per our SponsorU Torbutton conversion deliverable.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16495Tor Browser 5.0a3 crashes with security level set to "High"2020-06-15T23:27:20ZGeorg KoppenTor Browser 5.0a3 crashes with security level set to "High"If I load nytimes.com on 32bit Linux machines and on Windows it crashes right away if I have security slider set to "High". On a test machine I get the following stack trace:
```
Program received signal SIGSEGV, Segmentation fault.
0xb3d...If I load nytimes.com on 32bit Linux machines and on Windows it crashes right away if I have security slider set to "High". On a test machine I get the following stack trace:
```
Program received signal SIGSEGV, Segmentation fault.
0xb3d62e2a in nsAttrValue::Type() const ()
at /home/ubuntu/build/tor-browser/dom/base/nsAttrValue.h:455
455 /home/ubuntu/build/tor-browser/dom/base/nsAttrValue.h: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0 0xb3d62e2a in nsAttrValue::Type() const ()
at /home/ubuntu/build/tor-browser/dom/base/nsAttrValue.h:455
#1 0xb3d62f45 in nsAttrValue::GetAtomCount() const ()
at /home/ubuntu/build/tor-browser/dom/base/nsAttrValue.cpp:807
#2 0xb476c61e in RuleHash::EnumerateAllRules(mozilla::dom::Element*, ElementDependentRuleProcessorData*, NodeMatchContext&) ()
at /home/ubuntu/build/tor-browser/layout/style/nsCSSRuleProcessor.cpp:677
#3 0xb476ddb9 in nsCSSRuleProcessor::RulesMatching(ElementRuleProcessorData*)
()
at /home/ubuntu/build/tor-browser/layout/style/nsCSSRuleProcessor.cpp:2551
#4 0xb47bff07 in bool EnumRulesMatching<ElementRuleProcessorData>(nsIStyleRuleProcessor*, void*) ()
at /home/ubuntu/build/tor-browser/layout/style/nsStyleSet.cpp:719
#5 0xb47cbbb5 in nsStyleSet::FileRules(bool (*)(nsIStyleRuleProcessor*, void*), RuleProcessorData*, mozilla::dom::Element*, nsRuleWalker*) ()
at /home/ubuntu/build/tor-browser/layout/style/nsStyleSet.cpp:1026
#6 0xb47d0947 in nsStyleSet::ResolveStyleFor(mozilla::dom::Element*, nsStyleContext*, TreeMatchContext&) ()
at /home/ubuntu/build/tor-browser/layout/style/nsStyleSet.cpp:1265
#7 0xb481c70e in nsCSSFrameConstructor::ResolveStyleContext(nsStyleContext*, nsIContent*, nsFrameConstructorState*) ()
at /home/ubuntu/build/tor-browser/layout/base/nsCSSFrameConstructor.cpp:4831
#8 0x9b98d7f0 in ?? ()
#9 0x9a308aa0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
```Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16439remove screencasting code2020-06-15T23:43:12ZMark Smithremove screencasting codeWe should remove the Roku and SimpleServiceDiscovery JS modules since they will not be used (disabled via pref.) and we do not want there to be any chance that the code could be executed. See: ticket:16222#comment:7We should remove the Roku and SimpleServiceDiscovery JS modules since they will not be used (disabled via pref.) and we do not want there to be any chance that the code could be executed. See: ticket:16222#comment:7Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16397Tor Browser crashes on some SVG images2020-06-15T23:26:55ZTracTor Browser crashes on some SVG imagesHello,
When I visit this link http://www.theplantlist.org/browse/B/Sphagnaceae/Sphagnum/ Tor Browser just closes even if I have multiple tabs/windows open.
**Trac**:
**Username**: mcapHello,
When I visit this link http://www.theplantlist.org/browse/B/Sphagnaceae/Sphagnum/ Tor Browser just closes even if I have multiple tabs/windows open.
**Trac**:
**Username**: mcapMark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16356update cache isolation tests to use cache2 API2020-06-15T23:26:49ZMark Smithupdate cache isolation tests to use cache2 APIWe need to update the cache isolation tests to use the new cache2 APIs and to account for #15933. Patch coming soon.We need to update the cache isolation tests to use the new cache2 APIs and to account for #15933. Patch coming soon.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16300Make sure the BroadcastChannel API adheres to our URL bar domain isolation2020-06-15T23:26:35ZGeorg KoppenMake sure the BroadcastChannel API adheres to our URL bar domain isolationThe BroadcastChannel API allows cross-site communication within the same origin. We have a stronger notion of "same origin": the same URL bar domain. Thus, we must restrain this API to make it adhere to our URL bar isolation scheme.The BroadcastChannel API allows cross-site communication within the same origin. We have a stronger notion of "same origin": the same URL bar domain. Thus, we must restrain this API to make it adhere to our URL bar isolation scheme.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/16236Windows updater: avoid writing to the Windows registry for "in use" files2020-06-15T23:26:28ZMark SmithWindows updater: avoid writing to the Windows registry for "in use" filesThis is a spinoff from ticket #16014.
On Windows, when the Mozilla updater encounters a file that is in use (which means it cannot be deleted), it moves the file to a "tobedeleted" directory and then uses a call like the following to ar...This is a spinoff from ticket #16014.
On Windows, when the Mozilla updater encounters a file that is in use (which means it cannot be deleted), it moves the file to a "tobedeleted" directory and then uses a call like the following to arrange for it to be deleted the next time Windows is restarted:
MoveFileEx(path, nullptr, MOVEFILE_DELAY_UNTIL_REBOOT);
This works fine, but it would be better to avoid writing to the registry. We could fix this by adding code to nsUpdateService.js to make a "best effort" attempt to delete all files in the "tobedeleted" directory each time the browser is restarted.
Let's consider doing this for Tor Browser 5.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/15657display host:port if HOSTADDR is provided by Tor2020-06-13T17:43:15ZMark Smithdisplay host:port if HOSTADDR is provided by TorNick was kind enough to fix #15006, so now we should use the new info that Tor provides via the control port to display the host and port when reporting host-related errors that occur during bootstrapping. This will require a few change...Nick was kind enough to fix #15006, so now we should use the new info that Tor provides via the control port to display the host and port when reporting host-related errors that occur during bootstrapping. This will require a few changes to Tor Launcher's error reporting code.
It would be nice to fix this for TB 4.5 if other people approve. Kathy and I will make a patch available soon so it may be reviewed.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/15640Place Canvas MediaStream behind site permission2020-06-15T23:25:13ZMike PerryPlace Canvas MediaStream behind site permissionThe Canvas is specified as a potential MediaStream source, to allow live video capture of Canvas data by Javascript. This is a fingerprinting risk, and should be placed behind our Canvas site permission.
https://dvcs.w3.org/hg/audio/ra...The Canvas is specified as a potential MediaStream source, to allow live video capture of Canvas data by Javascript. This is a fingerprinting risk, and should be placed behind our Canvas site permission.
https://dvcs.w3.org/hg/audio/raw-file/tip/streams/StreamProcessing.html#canvas-recording
Apparently support for this has not yet been added to Firefox, but they are currently working on landing it. Adding the ff45-esr tag accordingly.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/15491Windows: silent failure if no permission to apply update2020-06-15T23:24:50ZMark SmithWindows: silent failure if no permission to apply updateFor #15201, we disabled the updater code that attempted to use "runas" to gain administrator privileges when the user lacked permission to apply an update. When we tested the fix, no user-visible error was displayed. Ideally, an error me...For #15201, we disabled the updater code that attempted to use "runas" to gain administrator privileges when the user lacked permission to apply an update. When we tested the fix, no user-visible error was displayed. Ideally, an error message would be displayed (although given the standalone nature of our installation, it is very difficult for this situation to occur).Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/15406Patch make_incremental_update.sh to only include forced updates if they differ?2020-06-15T23:24:44ZMike PerryPatch make_incremental_update.sh to only include forced updates if they differ?I read through make_incremental_update.sh a bit closer while cleaning up my patch for bug13375, and I am concerned that $requested_forced_updates and the associated check_for_forced_update() is going to cause a lot of unnecessary load on...I read through make_incremental_update.sh a bit closer while cleaning up my patch for bug13375, and I am concerned that $requested_forced_updates and the associated check_for_forced_update() is going to cause a lot of unnecessary load on the Tor network due to including full copies of all of our addons regardless of if they change.
Can we make check_for_forced_update() only include full copies of stuff from the forced_update line if it has actually changed between releases? I notice that the original code also forced Contents/MacOS/TorBrowser.app/Contents/MacOS/firefox. I'm not sure if we should continue to treat that as full copies regardless of change. Possibly?
Is there substantial risk for trying to do this change for 4.5a5? The change itself seems simple enough to me (just use the diff check from the next block in a conjunction).Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/15201Windows: disable "runas" code path in updater2020-06-15T23:24:37ZMark SmithWindows: disable "runas" code path in updaterOn Windows, for safety's sake, we should disable the "runas" code path that is used when the user does not have write access to the directory where the browser is installed. Because we require write access to the profile, we don't expec...On Windows, for safety's sake, we should disable the "runas" code path that is used when the user does not have write access to the directory where the browser is installed. Because we require write access to the profile, we don't expect that this change will inconvenience many (if any) users.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/14716HTTP Basic Authentication prompt only displayed once2020-06-15T23:23:58ZMark SmithHTTP Basic Authentication prompt only displayed onceThe username/password prompt for HTTP Basic Authentication is not displayed a second time. This seems to be related to various errors that are logged to the Browser Console (see attached log).
To reproduce this problem:
1. Open https:...The username/password prompt for HTTP Basic Authentication is not displayed a second time. This seems to be related to various errors that are logged to the Browser Console (see attached log).
To reproduce this problem:
1. Open https://www.httpwatch.com/httpgallery/authentication/
2. Click the "Display Image" button within Example 10 on that page.
3. When prompted, enter httpwatch for the username and any password.
4. Click the "Display Image" button a second time.
Expected result: a new username / password prompt.
Actual result: no prompt.Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/14631Users that try to run from DMG files run into "Another copy of Firefox is run...2020-06-16T01:28:29ZArthur EdelsteinUsers that try to run from DMG files run into "Another copy of Firefox is running"Somehow we should figure out how to avoid this bug. Is it possible to write Firefox Profile files in /var/tmp or maybe not write them at all?Somehow we should figure out how to avoid this bug. Is it possible to write Firefox Profile files in /var/tmp or maybe not write them at all?Mark SmithMark Smithhttps://gitlab.torproject.org/legacy/trac/-/issues/14205Closely review all uses of IsCallerChrome() for e10s2020-06-15T23:27:59ZMike PerryClosely review all uses of IsCallerChrome() for e10sA lot of our fingerprinting patches depend upon the accuracy is nsContentUtils::IsCallerChrome() to determine if it is content window or browser chrome accessing fingerprinting information.
IsCallerChrome() kind of scares me, and has h...A lot of our fingerprinting patches depend upon the accuracy is nsContentUtils::IsCallerChrome() to determine if it is content window or browser chrome accessing fingerprinting information.
IsCallerChrome() kind of scares me, and has had issues for unexpected contexts like WebWorkers (See #13027).
We should keep a close eye on this as we transition to e10s support post FF38, as who knows that the child/parent context relationship changes may do to various codepaths.Mark SmithMark Smith