Skip to content

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

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

Merge Info

Issues

Resolves

  • Part 7

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 6: !1342 (merged). As such, before !1342 (merged) lands this will include a few commits from it's merge request. Only the last four commits are relevant for this merge request.

TorConnect no longer needs to wait for TorSettings to be able to start a bootstrap. The TorBootstrapRequest already waits for TorProviderBuilder.build, which will wait for TorSettings to be initialised and applied.

We also modify TorProviderBuilder.init to make sure that TorProviderBuilder.build can be called in the same execution loop, which is done by TorConnect.init when we quickstart.

How Tested

Quickstart bootstrapping will now move immediately to the bootstrapping stage.

Autobootstrapping will write successful bridges when bootstrapping succeeds.

Autobootstrapping does nothing to the settings when bootstrapping fails or is cancelled.

Merge request reports

Loading