Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#11773 closed defect (fixed)

setup wizard UI flow improvements

Reported by: mcs Owned by: brade
Priority: Medium Milestone:
Component: Applications/Tor Launcher Version:
Severity: Normal Keywords: tbb-usability, TorBrowserTeam201601R
Cc: gk, dcf, whonix-devel@…, arthuredelstein Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

Tor Launcher does not saved modified Tor network settings if you change them while backing all the way out of the setup wizard. It should save them (if they have been modified) before attempting to connect (i.e., before clearing DisableNetwork). Steps to reproduce using a new TBB 3.6.1 installation:

Click Configure
Choose "Yes" to configure a proxy
Use values that will fail to work, e.g., HTTP/HTTPS 127.0.0.1:1234
Continue
Continue
Connect

The connection will not succeed. While tor is trying to connect, click Cancel.

Go Back
Go Back
Go Back
Change the proxy setting to No
Go Back
Click Connect

Child Tickets

Attachments (7)

1-ConnectOrConfigure.png (84.1 KB) - added by mcs 4 years ago.
first wizard panel with improved text
2-Progress.png (40.2 KB) - added by mcs 4 years ago.
bootstrap progress dialog with improved text
3-BridgesYesNo.png (87.4 KB) - added by mcs 4 years ago.
bridges Yes/No wizard page with improved text
4-BridgesConfig.png (93.3 KB) - added by mcs 4 years ago.
bridges config wizard page with improved text
5-ProxyYesNo.png (85.3 KB) - added by mcs 4 years ago.
proxy Yes/No wizard page with improved text
6-ReconfigurePrompt.png (42.0 KB) - added by mcs 4 years ago.
new Reconfigure prompt (displayed after bootstrap failure)
7-RemoveSettingsPrompt.png (67.1 KB) - added by mcs 4 years ago.
new "Remove Settings" prompt (displayed if "Connect" is clicked and bridge or proxy settings exist

Download all attachments as: .zip

Change History (25)

comment:1 Changed 5 years ago by mcs

Keywords: TorBrowserTeam201407 added

comment:2 Changed 5 years ago by mcs

Keywords: TorBrowserTeam201409 added; TorBrowserTeam201407 removed

comment:3 Changed 5 years ago by mikeperry

Keywords: TorBrowserTeam201410 added; TorBrowserTeam201409 removed

comment:4 Changed 5 years ago by mikeperry

Keywords: tbb-usability added; TorBrowserTeam201410 removed

Changed 4 years ago by mcs

Attachment: 1-ConnectOrConfigure.png added

first wizard panel with improved text

Changed 4 years ago by mcs

Attachment: 2-Progress.png added

bootstrap progress dialog with improved text

Changed 4 years ago by mcs

Attachment: 3-BridgesYesNo.png added

bridges Yes/No wizard page with improved text

Changed 4 years ago by mcs

Attachment: 4-BridgesConfig.png added

bridges config wizard page with improved text

Changed 4 years ago by mcs

Attachment: 5-ProxyYesNo.png added

proxy Yes/No wizard page with improved text

Changed 4 years ago by mcs

Attachment: 6-ReconfigurePrompt.png added

new Reconfigure prompt (displayed after bootstrap failure)

Changed 4 years ago by mcs

Attachment: 7-RemoveSettingsPrompt.png added

new "Remove Settings" prompt (displayed if "Connect" is clicked and bridge or proxy settings exist

comment:5 Changed 4 years ago by mcs

Severity: Normal

Kathy and I started to work on this ticket, saw the early results from the Berkeley UX researchers, and ended up making a number of small improvements to the text and flow of the configuration wizard. We think these changes are a nice improvement, but we are open to better wording for the text and we probably will need to undertake a larger redesign after we receive more data from the planned usability studies.

Here is a walkthrough.

Change 1: Improved the text near the [Connect] and [Configure] buttons on the initial wizard page:
first wizard panel with improved text


Change 2: Added text to the bootstrap progress dialog to let users know connecting may take a while:
bootstrap progress dialog with improved text


Change 3: Improved explanatory text on the bridges Yes/No page: (we added "if you are unable to connect to the Tor Network without a bridge, you can add one later")
bridges Yes/No wizard page with improved text


Change 4: Improved explanatory text on the bridges config page: (we added "Each type of bridge uses a different method to avoid censorship. If one bridge does not work, try again using a different one.")
bridges config wizard page with improved text


Change 5: Revised the explanatory text on the proxy Yes/No page:
proxy Yes/No wizard page with improved text


Change 6: Added a new "Reconfigure" prompt that is displayed after bootstrapping fails: (the idea here is to not leave the user on one of the proxy screens after a failure but take them back to the beginning of the configuration process so the sequence is consistent)
new Reconfigure prompt (displayed after bootstrap failure)


Change 7: Added a new "Remove Settings and Connect" prompt: (this is displayed if the user clicks "Connect" while some bridge or proxy settings are present and fixes a bug where the resulting connection was not direct)
new "Remove Settings" prompt (displayed if "Connect" is clicked and bridge or proxy settings exist

comment:6 Changed 4 years ago by gk

Cc: gk added

comment:7 Changed 4 years ago by dcf

Cc: dcf added

comment:8 Changed 4 years ago by proper

Cc: whonix-devel@… added

comment:9 Changed 4 years ago by gk

Looks like good improvements to me. One thing I was unsure about is "If one bridge does not work, try again using a different one." You really mean "bridge" here and not "type", right? I think I got confused as you are talking about bridge type in the preceding sentence.

comment:10 in reply to:  9 Changed 4 years ago by mcs

Replying to gk:

Looks like good improvements to me. One thing I was unsure about is "If one bridge does not work, try again using a different one." You really mean "bridge" here and not "type", right? I think I got confused as you are talking about bridge type in the preceding sentence.

Good catch. We are actually cheating a little by trying to use "bridge" so that the user can apply the thought of "using a different one" to both transport types and to specific bridges (e.g., if they are using custom bridges already). Maybe we are being too subtle though, and maybe the double meaning will be lost in translation.

comment:11 Changed 4 years ago by mcs

Summary: settings not saved after backing out of setup wizardsetup wizard UI flow improvements

comment:12 Changed 4 years ago by mcs

Cc: arthuredelstein added
Keywords: TorBrowserTeam201601R added
Status: newneeds_review

Here is the patch that implements the changes described in comment:5:
https://gitweb.torproject.org/user/brade/tor-launcher.git/commit/?h=bug11773-01&id=bca44eff3d0c8546ce25a0a366c2c823ff45710a
This is ready for review but it is a Tor Browser 6 item due to the need for localization and user testing.

comment:13 Changed 4 years ago by gk

Status: needs_reviewneeds_revision

Let's suppose I choose the configure option using the default obfs3 PT and Tor Browser is giving me an error back (as seen in #18066). I click on the "Reconfigure" button but realize I might want to try to connect directly. Maybe it works. I click on the "Back" button on the Tor Bridges Configuration panel and am back at the first dialog (not counting the language selection one I had in my test build).

I click on "Connect" and am confused now as I see two "Back" buttons which as it turns out behave differently as well. The one next to the Remove-Settings-and-Connect-button gets me back to the previous pane where I'd been coming from. But the other one brings me to the Tor Bridges Configuration pane with the bridge selection. Huh? :) And I only have a "Back" and a "Quit" button there. If I click "Back" and "Next", voila a "Next" button shows up again...

I guess the Back button "built into" the dialog (i.e. the second one) should be hidden as well?

And one coding style thing I thought we should improve

  if (gIsBootstrapComplete)
    close();
  else if (wizardElem)
  {
    // If the user went down the "Configure" path and another error (e.g.,
    // Tor Exited) has not already been shown, display a generic message
    // with a "Reconfigure" button.
    let pageid = wizardElem.currentPage.pageid;
    if ((pageid != kWizardFirstPageID) && (pageid != "errorPanel"))
    {
      let msg = TorLauncherUtil.getLocalizedString("tor_bootstrap_failed");
      showErrorMessage(false, msg, true);
    }
  }

Could you put the if-clause in curly braces as well? Mixing both styles is error-prone.

comment:14 Changed 4 years ago by mcs

Status: needs_revisionneeds_review

Thanks for the review!
We fixed the "two back buttons" problem by adding a missing call to showWizardNavButtons(false) to the discardSettings wizardpage (via the onpageshow attribute).

We also added braces in more places within if/else constructs. Our revised patch is here:
https://gitweb.torproject.org/user/brade/tor-launcher.git/commit/?h=bug11773-02&id=e18194b1622b4d8ef1b7a9674b63d1213e678199

comment:15 Changed 4 years ago by gk

Resolution: fixed
Status: needs_reviewclosed

Thanks, applied to master (commit e18194b1622b4d8ef1b7a9674b63d1213e678199).

comment:16 Changed 4 years ago by dcf

I tried a nightly build (specifically https://people.torproject.org/~linus/builds/tbb-nightly-2016-01-22/) and it didn't seem to include these changes. Any idea why? versions.nightly has TORLAUNCHER_TAG=master.

comment:17 in reply to:  16 Changed 4 years ago by mcs

Replying to dcf:

I tried a nightly build (specifically https://people.torproject.org/~linus/builds/tbb-nightly-2016-01-22/) and it didn't seem to include these changes. Any idea why? versions.nightly has TORLAUNCHER_TAG=master.

Based on timing, it does seem like that build should include these changes. But it does not.

comment:18 Changed 4 years ago by gk

It seems ln5's machine is not properly updating master, hm... Anyway, https://people.torproject.org/~boklm/builds/6.0a1-build1/ has them.

Note: See TracTickets for help on using tickets.