Skip to content
Snippets Groups Projects

Bug_43229: Disable opening links before torbrowser is bootstrapped, preventing the app from entering a bad state and add functionality for what to do instead

All threads resolved!

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 to tor-browser-specific commits, new features, security backports
  • Merge to base-browser - !fixups to base-browser-specific commits, new features to be shared with mullvad-browser, and security backports
    • NOTE: if your changeset includes patches to both base-browser and tor-browser please clearly label in the change description which commits should be cherry-picked to base-browser after merging

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, richard
    • localization : henry, pierov
    • macOS : clairehurst, dan
    • nightly builds : boklm
    • rebases/release-prep : dan, ma1, pierov, richard
    • security : jwilde, ma1
    • signing : boklm, richard
    • updater : pierov
    • windows : jwilde, richard
    • misc/other : pierov, richard

Change Description

Added check to ensure the app is bootstrapped before opening links, preventing the app from entering a bad state (specifically a browser with the internet disabled that also can't be bootstraped without an app restart). Instead it opens a Snackbar that prompts the user to connect. If the user taps "Connect", the app will show the bootstrap screen and automatically attempt to connect (so far this is the same behavior as if the user navigated back and tapped connect manually). If the connection finishes after starting from this new entry point, the webpage that would have loaded earlier now automatically loads.

How I fixed this also partly fixes #42651 (closed) as the user is no longer forced out of the settings page once the bootstrap finishes. However, there still isn't any feedback to the user that the bootstrap finished. For future work I'm debating between a toast notification (easy) and making the progress bar visible on all screens of the app (harder).

I also partly helped set up for future connection assist work, specifically dealing with some TODO's written by @henry

I also edited the base FenixSnackbar xml to match the figma designs and also what @felicia put in a comment below

image image image

How Tested

Launch the app, but don't bootstrap. Go to settings and test that every button that would normally open a webpage, instead shows a Snackbar (as shown above). Known examples are "Donate to The Tor Project" (at the bottom of the normal settings page), the top 2 buttons in "About Tor Browser" (What's new in Tor Browser, Support, the other two are about: pages and load without internet), and "Find more extensions" in the Extensions page. Make sure that the connect button on the Snackbar properly navigates back to the bootstrap screen and properly loads the requested webpage.

Edited by clairehurst

Merge request reports

Approved by

Merged by morganmorgan 4 months ago (Dec 4, 2024 8:22pm UTC)

Merge details

  • Changes merged into tor-browser-128.5.0esr-14.5-1 with 938f751c.
  • Deleted the source branch.

Pipeline #229458 passed

Pipeline: Translation

#229460

    Pipeline passed for 938f751c on tor-browser-128.5.0esr-14.5-1

    Activity

    Filter activity
    • Approvals
    • Assignees & reviewers
    • Comments (from bots)
    • Comments (from users)
    • Commits & branches
    • Edits
    • Labels
    • Lock status
    • Mentions
    • Merge request status
    • Tracking
  • mentioned in issue #43229 (closed)

  • works for me. love the simple solution. just waiting for strings to be approved before i approve so it doesn't accidently get merged. ping me when that done :thumbsup:

    • Resolved by Dan Ballard

      New issue: this needs an exemption for about: addresses. i can't get to about:config or more importantly the htmlConnect page with this enabled

  • clairehurst added 19 commits

    added 19 commits

    Compare with previous version

    • Resolved by clairehurst

      I like this solution, but I was thinking if we could also provide a quick option for the user by displaying a Connect button alongside the message so they don't need to go all the way back to torconnect. So I was taking a look at Firefox's components and thought that maybe the Snackbar might work for this (screenshot below).

      snackbar

      After the user clicks on the Connect button, they could be redirected to torconnect in its "connecting" state.

      Personally, I prefer the contrast of white on purple like the current solution. But if we decide consistency is important here, then I'd need to advocate for the Snackbar.

      Edited by Felicia
  • clairehurst added 47 commits

    added 47 commits

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • 8610c071 - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • bbcfe2bf - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • b10b1e36 - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • 7c1030c2 - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst marked this merge request as ready

    marked this merge request as ready

  • clairehurst changed title from Draft: Bug_43229: Disable opening links before torbrowser is bootstrapped, preventing the app from entering a bad state to Bug_43229: Disable opening links before torbrowser is bootstrapped, preventing the app from entering a bad state and add functionality for what to do instead

    changed title from Draft: Bug_43229: Disable opening links before torbrowser is bootstrapped, preventing the app from entering a bad state to Bug_43229: Disable opening links before torbrowser is bootstrapped, preventing the app from entering a bad state and add functionality for what to do instead

  • clairehurst changed the description

    changed the description

  • clairehurst added 3 commits

    added 3 commits

    • 7c1030c2...4dbb3744 - 2 commits from branch tpo/applications:tor-browser-128.4.0esr-14.5-1
    • a5492e3e - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst marked this merge request as draft from clairehurst/tor-browser@a5492e3e

    marked this merge request as draft from clairehurst/tor-browser@a5492e3e

  • clairehurst added 1 commit

    added 1 commit

    • 8aded21d - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • dad492c9 - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • 301896ea - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst added 1 commit

    added 1 commit

    • 8c5b1300 - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst changed the description

    changed the description

  • clairehurst marked this merge request as ready

    marked this merge request as ready

  • clairehurst added 1 commit

    added 1 commit

    • 57ae086a - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst marked this merge request as draft from clairehurst/tor-browser@57ae086a

    marked this merge request as draft from clairehurst/tor-browser@57ae086a

  • clairehurst marked this merge request as ready

    marked this merge request as ready

  • mentioned in merge request tpo/translation!131 (merged)

  • clairehurst changed target branch from tor-browser-128.4.0esr-14.5-1 to tor-browser-128.5.0esr-14.5-1

    changed target branch from tor-browser-128.4.0esr-14.5-1 to tor-browser-128.5.0esr-14.5-1

  • clairehurst changed target branch from tor-browser-128.5.0esr-14.5-1 to tor-browser-128.4.0esr-14.5-1

    changed target branch from tor-browser-128.5.0esr-14.5-1 to tor-browser-128.4.0esr-14.5-1

    • Author Maintainer
      Resolved by clairehurst

      I'd imagine it will cause that this MR is targeting tor-browser-128.4.0esr-14.5-1 instead of tor-browser-128.5.0esr-14.5-1. What's the best way to fix it? I tried changing the branch and rebasing, but it failed on gitlab. I also tried rebasing and also merging locally but ran into a ton of issues.

  • clairehurst added 365 commits

    added 365 commits

    • 57ae086a...d1eed871 - 355 earlier commits
    • 85faa5f2 - Bug 43340: Fetch aarch64 alphas for linux aarch64 dev builds
    • c1951fdb - Bug 43340: Use the correct vendor in linux aarch64 dev builds
    • f905a88c - Revert "Bug 43099: 2024 YEC"
    • 035f30c6 - Revert "Bug 43098: Year End Campaign 2024."
    • 395fc108 - fixup! Bug 31740: Remove some unnecessary RemoteSettings instances
    • 5b8b20de - fixup! Tor Browser strings
    • d8041158 - fixup! Add TorStrings module for localization
    • 781f3a87 - fixup! Bug 42305: Add script to combine translation files across versions.
    • 174cf42e - fixup! Add CI for Tor Browser
    • 938f751c - fixup! [android] Add Tor integration and UI

    Compare with previous version

  • clairehurst marked this merge request as draft from clairehurst/tor-browser@aaaa0a99

    marked this merge request as draft from clairehurst/tor-browser@aaaa0a99

  • clairehurst marked this merge request as ready

    marked this merge request as ready

  • clairehurst changed target branch from tor-browser-128.4.0esr-14.5-1 to tor-browser-128.5.0esr-14.5-1

    changed target branch from tor-browser-128.4.0esr-14.5-1 to tor-browser-128.5.0esr-14.5-1

  • clairehurst resolved all threads

    resolved all threads

  • Dan Ballard approved this merge request

    approved this merge request

  • merged

  • morgan resolved all threads

    resolved all threads

  • henry mentioned in merge request !1309 (merged)

    mentioned in merge request !1309 (merged)

  • henry mentioned in merge request tpo/translation!133 (merged)

    mentioned in merge request tpo/translation!133 (merged)

  • clairehurst mentioned in issue #43438

    mentioned in issue #43438

  • Please register or sign in to reply
    Loading