Refactor TorSettings in preparation for new bridges UI
Merge Info
Related Issues
Backporting
Timeline
-
Immediate: patchset needed as soon as possible -
Next Minor Stable Release: patchset that needs to be verified in nightly before backport -
Eventually: patchset that needs to be verified in alpha before backport -
No Backport (preferred): patchset for the next major stable
(Optional) Justification
-
Emergency security update: patchset fixes CVEs, 0-days, etc -
Censorship event: patchset enables censorship circumvention -
Critical bug-fix: patchset fixes a bug in core-functionality -
Consistency: patchset which would make development easier if it were in both the alpha and release branches; developer tools, build system changes, etc -
Sponsor required: patchset required for sponsor -
Localization: typos and other localization changes that should be also in the release branch -
Other: please explain
Merging
-
Merge to tor-browser
-!fixups
totor-browser
-specific commits, new features, security backports -
Merge to base-browser
-!fixups
tobase-browser
-specific commits, new features to be shared withmullvad-browser
, and security backports-
NOTE: if your changeset includes patches to both
base-browser
andtor-browser
please clearly label in the change description which commits should be cherry-picked tobase-browser
after merging
-
NOTE: if your changeset includes patches to both
Issue Tracking
-
Link resolved issues with appropriate Release Prep issue for changelog generation
Review
Request Reviewer
-
Request review from an applications developer depending on modified system: -
NOTE: if the MR modifies multiple areas, please
/cc
all the relevant reviewers (since gitlab only allows 1 reviewer) - accessibility : henry
- android : clairehurst, dan
- build system : boklm
- extensions : ma1
- firefox internals (XUL/JS/XPCOM) : ma1
- fonts : pierov
- frontend (implementation) : henry
- frontend (review) : donuts, richard
- localization : henry, pierov
- macos : clairehurst, dan
- nightly builds : boklm
- rebases/release-prep : dan, ma1, pierov, richard
- security : ma1
- signing : boklm, richard
- updater : pierov
- misc/other : pierov, richard
-
NOTE: if the MR modifies multiple areas, please
Change Description
We refactor the TorSettings
code to create common setting getters and setters. In particular, we make sure we send out a notification every time a TorSettings setting
property changes.
We also avoid making changes to TorSettings._settings
directly. And we place all string parsing in one place (the "transform" method).
We also use empty strings "" instead of null. The previous null values would have been saved to preferences as an empty string and read back as an empty string, so this keeps it consistent.
Stop exposing the proxy port setting as an array of one number. This only worked before because a JavaScript array with one member converts to the same string as the member itself.
Stop resetting the proxy settings when proxy.enabled is set to true since all places that call this should set the other settings afterwards anyway.
Stop setting firewall.allowed_ports to 0 rather than [].
Fix setting username and password for HTTP proxy.uri. Before it would only do so if _proxyUsername was truthy, but this property was never set.
How Tested
Check that the quickstart.enabled property is listened to in "about:torconnect" and "about:preferences#connection".
Make sure "about:preferences#connection" still works as expected.
In the console TorSettings
has the correct properties and value types.