Add UX design for the Tor Connection assistant authored by sajolida's avatar sajolida
...@@ -366,3 +366,244 @@ At Whonix ...@@ -366,3 +366,244 @@ At Whonix
- <https://github.com/irykoon/anon-connection-wizard> - <https://github.com/irykoon/anon-connection-wizard>
(or: <https://github.com/Whonix/anon-connection-wizard>) (or: <https://github.com/Whonix/anon-connection-wizard>)
UX design
=========
Onion menu
----------
Expand the onion menu to provide feedback on the status of the
connection to Tor.
![onion_menu_-_not_connected](network_connection/onion_menu_-_not_connected.png)
![onion_menu_-_connecting](network_connection/onion_menu_-_connecting.png)
![onion_menu_-_with_bridges](network_connection/onion_menu_-_with_bridges.png)
![onion_menu_-_without_bridges](network_connection/onion_menu_-_without_bridges.png)
Pop up the onion menu when the Wi-Fi gets disconnected:
![onion_menu_-_disconnected](network_connection/onion_menu_-_disconnected.png)
![onion_menu_-_reconnecting](network_connection/onion_menu_-_reconnecting.png)
Add a disabled Wi-Fi icon when the Wi-Fi is not connected.
![onion_menu_-_no_wi-fi](network_connection/onion_menu_-_no_wi-fi.png)
Tor Connection assistant
------------------------
The Tor Connection assistant can be opened from:
- Onion icon → Open Tor Connection Assistant
- Applications → Tor Connection
![applications](network_connection/applications.png)
Empty template:
![tor_connection_-_empty](network_connection/tor_connection_-_empty.png)
Without hardware Wi-Fi
----------------------
![tor_connection_-_everything](network_connection/tor_connection_-_everything.png)
![tor_connection_-_no_wi-fi_hardware](network_connection/tor_connection_-_no_wi-fi_hardware.png)
Without connection to a local network
-------------------------------------
![tor_connection_-_everything](network_connection/tor_connection_-_everything.png)
![tor_connection_-_no_local](network_connection/tor_connection_-_no_local.png)
The million dollar question
---------------------------
We ask the user to choose between autoconfig and hiding Tor:
![tor_connection_-_everything](network_connection/tor_connection_-_everything.png)
![tor_connection_-_question](network_connection/tor_connection_-_question.png)
If the user chooses autoconfig, we give them an option to configure
bridges anyway:
![autoconfig_-_bridges_option](network_connection/autoconfig_-_bridges_option.png)
Help:
![autoconfig_-_bridges_option_help](network_connection/autoconfig_-_bridges_option_help.png)
Configure:
![autoconfig_-_bridges](network_connection/autoconfig_-_bridges.png)
Autoconfig
==========
If the user chooses autoconfig, we automate as much as we can:
- Captive portal detection using an HTTP ping on
[http://clients3.google.com/generate_204]. See [captive portal
detection](detect_captive_portals).
- Time sync using NTP, unsafe but good enough as a first approximation
to allow connecting to Tor even with bridges.
- Try default bridges.
We can display some progress of the connection on each screen:
![autoconfig_-_internet_access](network_connection/autoconfig_-_internet_access.png)
Image on the left pane
----------------------
We change the image on the left pane to avoid confusion with the term
"bridges".
![autoconfig](network_configuration/autoconfig.png)
Behind captive portal
---------------------
![tor_connection_-_everything](network_connection/tor_connection_-_everything.png)
![autoconfig_-_captive_portal](network_connection/autoconfig_-_captive_portal.png)
Connecting to Tor without bridges
---------------------------------
![autoconfig_-_direct](network_connection/autoconfig_-_direct.png)
Connecting to Tor with default bridges
--------------------------------------
![autoconfig_-_default](network_connection/autoconfig_-_default.png)
Connecting to Tor with custom bridges
-------------------------------------
![autoconfig_-_custom](network_connection/autoconfig_-_custom.png)
Success
-------
![tor_connection_-_success](network_connection/tor_connection_-_success.png)
Reset Tor connection
--------------------
![tor_connection_-_reset](network_connection/tor_connection_-_reset.png)
Hide Tor
========
If the user chooses to hide Tor, we don't automate anything nor use
default bridges.
As a consequence, we cannot display the same progress indicator like we
do for autoconfig.
Image on the left pane
----------------------
We change the image on the left pane to avoid confusion with the term
"bridges".
![hide](network_configuration/hide.png)
Bridges
-------
We always use bridges:
![hide_-_bridges](network_connection/hide_-_bridges.png)
Clicking **Cancel** goes back to the million dollar question.
Persistent bridges
------------------
Persistent bridges are proposed by default and the label is changed to
**Use** instead of **Type in**:
![hide_-_persistent](network_connection/hide_-_persistent.png)
Moat
----
![moat_-_start](network_connection/moat_-_start.png)
![moat_-_captcha](network_connection/moat_-_captcha.png)
![moat_-_success](network_connection/moat_-_success.png)
![moat_-_failure](network_connection/moat_-_failure.png)
Connecting to Tor
-----------------
![hide_-_connecting](network_connection/hide_-_connecting.png)
Failure
-------
### Time sync
If we have IP connectivity to the bridge but cannot connect to Tor, it's
probably a time sync issue:
![hide_-_time](network_connection/hide_-_time.png)
### Captive portal or proxy
If we don't even have IP connectivity to the bridge, we might be behind
a proxy or captive portal.
![hide_-_failure](network_connection/hide_-_failure.png)
Persistent Storage
==================
Mention Tor bridges in the first screen of the Persistent Storage
settings:
![persistent_storage_-_discovery](network_connection/persistent_storage_-_discovery.png)
When creating the Persistent Storage coming from a switch that turns on
persistent bridges, for example, display a button to skip configuring
all the features of the Persistent Storage:
![persistent_storage_-_help](network_connection/persistent_storage_-_help.png)
![persistent_storage_-_create](network_connection/persistent_storage_-_create.png)
![persistent_storage_-_only_save](network_connection/persistent_storage_-_only_save.png)
Network features:
![persistent_storage_-_network](network_connection/persistent_storage_-_network.png)
Welcome Screen
==============
Offline Mode:
![welcome_screen_-_offline_mode](network_connection/welcome_screen_-_offline_mode.png)
Change management to replace the Network Configuration setting:
![welcome_screen_-_change_management](network_connection/welcome_screen_-_change_management.png)
Tor Browser
===========
When Tor is not connected:
![tor_browser_-_proxy_error](network_connection/tor_browser_-_proxy_error.png)