Skip to content

TorSettings-TorConnect refactor: Part 5: Miscellaneous tidy up

TorSettings-TorConnect refactor: Part 5: Allow for TorConnect bootstrap prior to TorSettings initialisation

Merge Info

Issues

Resolves

  • Part 5

Related

Merging

Target Branches

  • tor-browser - !fixups to tor-browser-specific commits, new features, security backports
  • base-browser and mullvad-browser - !fixups to base-browser-specific commits, new features to be shared with mullvad-browser, and security backports
    • ⚠️ IMPORTANT: Please list the base-browser-specific commits which need to be cherry-picked to the base-browser and mullvad-browser branches here

Target Channels

  • Alpha: esr128-14.5
  • Stable: esr128-14.0
  • Legacy: esr115-13.5

Backporting

Timeline

  • No Backport (preferred): patchset for the next major stable
  • 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

(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

Issue Tracking

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) : jwilde, ma1
    • fonts : pierov
    • frontend (implementation) : henry
    • frontend (review) : donuts, morgan
    • localization : henry, pierov
    • macOS : clairehurst, dan
    • nightly builds : boklm
    • rebases/release-prep : dan, ma1, pierov, morgan
    • security : jwilde, ma1
    • signing : boklm, morgan
    • updater : pierov
    • windows : jwilde, morgan
    • misc/other : pierov, morgan

Change Description

NOTE: This depends on the changes in part 4: !1340 (merged). As such, before !1340 (merged) lands this will include a few commits from it's merge request. Only the last five commits are relevant for this merge request.

We apply some miscellaneous tidy ups for TorConnect and TorSettings:

  1. Add a note to setConf to describe expectations regarding races.
  2. Move the prompt_at_startup preference out of TorProvider, and only set it in TorConnect. This means it is only used in one place, and its behaviour is simpler: if bootstrap fails or tor exits we set it to true, and we only set it to false when a bootstrap succeeds.
  3. TorProvider.flushSettings is now only called by TorSettings, rather than via about:preferences callback which had no guarantees of being called and did not work for Moat bridges.

How Tested

Moat bridges are now flushed to torrc.

TorConnect quickstart works as expected in response to a failed bootstrap or a killed tor process.

Merge request reports

Loading