Opened 7 months ago

Closed 2 months ago

#9738 closed defect (fixed)

Ubuntu Unity/Debian GNOME can auto-maximize Tor Browser

Reported by: harmony Owned by: mikeperry
Priority: normal Milestone:
Component: TorBrowserButton Version:
Keywords: tbb-fingerprinting, tbb-testcase, tbb-3.0, MikePerry201401R Cc: gk, mcs, brade
Actual Points: Parent ID:
Points:

Description

Ubuntu Unity automatically maximizes Tor Browser if the program tries to open its content window at a size equal to or greater than 75% of the total screen area. This includes occasions when the user clicks 'New Identity'. This exposes the user's real monitor dimensions to visited websites and third parties.

A workaround is to install and run compizconfig-settings-manager, navigate to 'Ubuntu Unity Plugin', then set the 'Automaximize Value' to 100%. After a restart, TBB behaves as it should: requesting a new identity, even after maximizing the window, causes the new window to open at a multiple of 200x100.

Child Tickets

Change History (19)

comment:1 Changed 7 months ago by tmpname0901

Note that custom web browser window dimensions may make your fingerprint more unique than standard screen dimensions, which presumably are common to many systems.

For example, see here for uniqueness of your dimensions: https://panopticlick.eff.org/

comment:2 Changed 7 months ago by harmony

  • Summary changed from Ubuntu Unity automatically maximizes Tor Browser to Ubuntu Unity/Debian GNOME can auto-maximize Tor Browser

comment:3 Changed 7 months ago by harmony

Update: I have also now experienced this problem on a fresh install of Debian Wheezy when trying to use TBB 3.0alpha3. TBB stable/beta seem to be unaffected, opening at the requisite 200x100 multiple.

https://lists.torproject.org/pipermail/tor-talk/2013-September/030152.html

comment:4 Changed 7 months ago by gk

  • Cc g.koppen@… added

comment:5 Changed 7 months ago by harmony

I've tried the new 3.0alpha4 bundle on Debian and the same issue occurs.

I really hope either a fix or a workaround is found before 3.0alpha becomes the mainstream TBB, because if not, I will no longer be able to use Tor safely.

In the absence of a proper fix, is there a way to reliably resize the window to the right dimensions after it opens?

comment:6 Changed 7 months ago by gk

And the new stable bundles do work as expected, right? Do older TBB 3.0 bundles work for you (say 3.0a2 or 3.0a1) (see: https://archive.torproject.org/tor-package-archive/torbrowser/ for older versions)? If so, which breaks first?

comment:7 Changed 7 months ago by harmony

The plot thickens. TBB 3.0alpha1 and 3.0alpha2 have the correct window size behavior - the problem started with the release of 3.0alpha3. (The new stable and beta bundles do work as expected, yes)

Thanks for your continued help.

comment:8 Changed 7 months ago by harmony

Incidentally, I just Panopticlick'ed one of the bundles that displays 'correct' behavior (current beta), and it claims for me a resolution of 1000x371 (#8478 calling from beyond the grave?). So correct isn't really correct, just less wrong.

Also, x371 comes about as close as possible to the full width of my screen: why isn't it trying for 800x400 instead?

comment:9 Changed 7 months ago by gk

Well, 3.0a3 is the first version that contains a fix for #8478 (3.0a4 containing a fix for that fix additionally). It seems that one is not working for you, interesting. 2 things you could do (using 3.0a4): a) Do you see some errors on the error console (Strg + Shift + J) on start-up? If so, which ones? b) Could you set the Torbutton log level to "1" (in about:config "extensions.torbutton.loglevel"), restart and post the output of the error console messages (not errors and neither warnings)?

comment:10 Changed 7 months ago by harmony

The result of a) is:

Timestamp: 28/09/13 12:02:36
Error: no element found
Source File: moz-nullprincipal:{bdc66621-4882-49f6-b895-25f6dc9dd350}
Line: 18

[09-28 12:02:55] TorLauncher NOTE: _parseBootstrapStatus: missing BOOTSTRAP

[09-28 12:03:42] TorLauncher NOTE: _parseBootstrapStatus: missing BOOTSTRAP

Timestamp: 28/09/13 12:03:46
Error: this.docShell is null
Source File: chrome://global/content/bindings/browser.xml
Line: 323

Timestamp: 28/09/13 12:03:46
Error: TypeError: alist.populate_list is not a function
Source File: chrome://https-everywhere/content/toolbar_button.js
Line: 142

Timestamp: 28/09/13 12:03:47
Warning: Error in parsing value for 'width'.  Declaration dropped.
Source File: about:tor
Line: 0

Timestamp: 28/09/13 12:03:47
Warning: Error in parsing value for 'width'.  Declaration dropped.
Source File: about:tor
Line: 0

The result of b) is:

[09-28 12:13:05] Torbutton INFO: Torbutton debug output ready
 ----------
[09-28 12:13:05] Torbutton INFO: Component Load 0: New ExternalWrapper.
 ----------
[09-28 12:13:05] Torbutton INFO: Component Load 5: New CookieJarSelector @torproject.org/cookie-jar-selector;1
 ----------
[09-28 12:13:05] Torbutton INFO: Cookie jar selector got profile-after-change
 ----------
[09-28 12:13:11] Torbutton INFO: Startup Observer created
 ----------
[09-28 12:13:11] Torbutton INFO: This is a Tor Browser's XPCOM
 ----------
[09-28 12:13:11] Torbutton INFO: Synced network settings to environment.
 ----------
[09-28 12:13:11] Torbutton INFO: Synced network settings to environment.
 ----------
[09-28 12:13:11] Torbutton INFO: Torbutton Session Store Blocker initialized
 ----------
[09-28 12:13:17] Torbutton INFO: New window
 ----------
[09-28 12:13:17] Torbutton INFO: called init()
 ----------
[09-28 12:13:17] Torbutton INFO: This is a Tor Browser
 ----------
[09-28 12:13:17] Torbutton DBUG: called init_prefs()
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: using recommended settings
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: socks_remote_dns is available
 ----------
[09-28 12:13:17] Torbutton VERB: http_port=0
 ----------
[09-28 12:13:17] Torbutton VERB: init_statuspanel(): looking for statusbar element
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: setting panel style: text
 ----------
[09-28 12:13:17] Torbutton INFO: Initializing the Torbutton button.
 ----------
[09-28 12:13:17] Torbutton VERB: Check status
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: socks_remote_dns is available
 ----------
[09-28 12:13:17] Torbutton VERB: Type is true
 ----------
[09-28 12:13:17] Torbutton VERB: Http proxy
 ----------
[09-28 12:13:17] Torbutton VERB: Http port
 ----------
[09-28 12:13:17] Torbutton VERB: ssl proxy
 ----------
[09-28 12:13:17] Torbutton VERB: ssl port
 ----------
[09-28 12:13:17] Torbutton VERB: ftp proxy
 ----------
[09-28 12:13:17] Torbutton VERB: ftp port
 ----------
[09-28 12:13:17] Torbutton VERB: socks proxy
 ----------
[09-28 12:13:17] Torbutton VERB: socks port
 ----------
[09-28 12:13:17] Torbutton VERB: socks version
 ----------
[09-28 12:13:17] Torbutton VERB: share proxy settins
 ----------
[09-28 12:13:17] Torbutton VERB: remote_dns
 ----------
[09-28 12:13:17] Torbutton VERB: get_toolbutton(): looking for button element
 ----------
[09-28 12:13:17] Torbutton INFO: Torbutton Tor Check Service initialized
 ----------
[09-28 12:13:17] Torbutton VERB: registering pref observer
 ----------
[09-28 12:13:17] Torbutton VERB: registering Tor check observer
 ----------
[09-28 12:13:17] Torbutton VERB: init_statuspanel(): looking for statusbar element
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: setting panel visibility
 ----------
[09-28 12:13:17] Torbutton VERB: setting torbutton status from proxy prefs
 ----------
[09-28 12:13:17] Torbutton VERB: Check status
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: socks_remote_dns is available
 ----------
[09-28 12:13:17] Torbutton VERB: Type is true
 ----------
[09-28 12:13:17] Torbutton VERB: Http proxy
 ----------
[09-28 12:13:17] Torbutton VERB: Http port
 ----------
[09-28 12:13:17] Torbutton VERB: ssl proxy
 ----------
[09-28 12:13:17] Torbutton VERB: ssl port
 ----------
[09-28 12:13:17] Torbutton VERB: ftp proxy
 ----------
[09-28 12:13:17] Torbutton VERB: ftp port
 ----------
[09-28 12:13:17] Torbutton VERB: socks proxy
 ----------
[09-28 12:13:17] Torbutton VERB: socks port
 ----------
[09-28 12:13:17] Torbutton VERB: socks version
 ----------
[09-28 12:13:17] Torbutton VERB: share proxy settins
 ----------
[09-28 12:13:17] Torbutton VERB: remote_dns
 ----------
[09-28 12:13:17] Torbutton VERB: called get_prefbranch()
 ----------
[09-28 12:13:17] Torbutton DBUG: called update_status: true,false
 ----------
[09-28 12:13:17] Torbutton VERB: get_toolbutton(): looking for button element
 ----------
[09-28 12:13:17] Torbutton VERB: init_statuspanel(): looking for statusbar element
 ----------
[09-28 12:13:17] Torbutton VERB: get_toolbutton(): looking for button element
 ----------
[09-28 12:13:17] Torbutton INFO: init completed
 ----------
[09-28 12:13:17] Torbutton INFO: Torbutton main window startup
 ----------
[09-28 12:13:17] Torbutton INFO: SSC: Loaded controller
 ----------
[09-28 12:13:17] Torbutton INFO: Setting timezone at true for mode true
 ----------
[09-28 12:13:17] Torbutton DBUG: Setting timezone to UTC
 ----------
[09-28 12:13:17] Torbutton INFO: Window: (1,1) ?= (573,1024)
 ----------
[09-28 12:13:17] Torbutton DBUG: Window is normal
 ----------
[09-28 12:13:17] Torbutton DBUG: Tor socks listener: 127.0.0.1:9150
 ----------
[09-28 12:13:17] Torbutton INFO: called init()
 ----------
[09-28 12:13:17] Torbutton INFO: About to resize new window: 300x396 inner: 300x300 in state 3 Have 1024x600
 ----------
[09-28 12:13:17] Torbutton INFO: Got max dimensions: 1024x453
 ----------
[09-28 12:13:18] Torbutton INFO: Resized new window from: 1000x400 to 1000x400 in state 3
 ----------
[09-28 12:13:18] Torbutton DBUG: onLocationChange: about:tor
 ----------
[09-28 12:13:18] Torbutton INFO: Skipping location change for about:tor
 ----------
[09-28 12:13:26] Torbutton DBUG: onLocationChange: about:blank
 ----------
[09-28 12:13:26] Torbutton INFO: Skipping location change for about:blank

comment:11 Changed 6 months ago by mcs

  • Cc mcs brade added

comment:12 Changed 3 months ago by gk

  • Cc gk added; g.koppen@… removed
  • Keywords tbb-3.0 added

comment:13 Changed 3 months ago by gk

listening to sizemodechange + resizing again might actually help here.

comment:14 Changed 3 months ago by gk

To reproduce the problem, keep https://bugs.launchpad.net/ayatana-design/+bug/797808 in mind. Alas, the patch in #10095 does not fix the issue at hand as well.

comment:15 Changed 3 months ago by gk

Soooo... After a lot of fiddling with the listeners I think I fixed this issue. Please review bug_9738_v3 in my public torbutton repo.

harmony: Any idea how I could help you testing that patch?

Mike (or whoever is reviewing this and #10095): The patch should work pretty well with the one in #10095 and there should be no merge conflicts. If there are conflicts though, the rule of thumb is: this patch should get included before

// This is fun

and the code in #10095 after we do the resizing. Or let me rebase the stuff that is complaining.

Last edited 3 months ago by gk (previous) (diff)

comment:16 Changed 3 months ago by gk

  • Status changed from new to needs_review

comment:17 Changed 3 months ago by gk

  • Keywords tbb-testcase added

comment:18 Changed 3 months ago by gk

  • Keywords MikePerry201401R added

comment:19 Changed 2 months ago by mikeperry

  • Resolution set to fixed
  • Status changed from needs_review to closed

Fix merged in 3.5.2.

Note: See TracTickets for help on using tickets.