
henry pushed to branch tor-browser-128.8.0esr-14.5-1 at The Tor Project / Applications / Tor Browser Commits: 4aeac6bb by Henry Wilkes at 2025-03-20T18:17:26+00:00 fixup! TB 40597: Implement TorSettings module TB 43488: Skip straight to "FinalError" if we do not get an expected TorConnectError. - - - - - 1 changed file: - toolkit/modules/TorConnect.sys.mjs Changes: ===================================== toolkit/modules/TorConnect.sys.mjs ===================================== @@ -1441,28 +1441,45 @@ export const TorConnect = { this._signalError(error); + let errorStage = TorConnectStage.FinalError; + switch (beginStage) { case TorConnectStage.Start: case TorConnectStage.Offline: - this._setStage(TorConnectStage.ChooseRegion); - return; + if ( + error instanceof TorConnectError && + error.code === TorConnectError.BootstrapError + ) { + errorStage = TorConnectStage.ChooseRegion; + } + // Else, some other unexpected error type. Skip straight to the + // "FinalError". See tor-browser#43488. + break; case TorConnectStage.ChooseRegion: - if (regionCode === "automatic") { + // TODO: Handle a Moat error of the type + // DomainFrontRequestNetworkError to show a different stage. See + // tor-browser#43569. + if ( + regionCode === "automatic" && + error instanceof TorConnectError && + (error.code === TorConnectError.AllSettingsFailed || + error.code === TorConnectError.CannotDetermineCountry || + error.code === TorConnectError.NoSettingsForCountry) + ) { // The automatic region failed. - if (bootstrapAttempt.detectedRegion) { - this._setStage(TorConnectStage.ConfirmRegion); - } else { - this._setStage(TorConnectStage.RegionNotFound); - } - return; + errorStage = bootstrapAttempt.detectedRegion + ? TorConnectStage.ConfirmRegion + : TorConnectStage.RegionNotFound; } // Else, not automatic. Go straight to the final error since the user // is unlikely to succeed re-selecting the same region and it would be // unexpected for the user to select a different region. // See tor-browser#42550. + // Else, some other error type. Skip straight to the "FinalError". See + // tor-browser#43488. break; } - this._setStage(TorConnectStage.FinalError); + this._setStage(errorStage); return; } View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4aeac6bb... -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/4aeac6bb... You're receiving this email because of your account on gitlab.torproject.org.
participants (1)
-
henry (@henry)