Pier Angelo Vendrame pushed to branch mullvad-browser-128.1.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser
Commits:
-
4e65b15b
by Beatriz Rizental at 2024-08-13T09:34:08+02:00
-
7793d86c
by Morgan at 2024-08-13T09:34:09+02:00
3 changed files:
- + .gitlab/issue_templates/QA - Android.md
- + .gitlab/issue_templates/QA - Desktop.md
- tools/torbrowser/generate-bugzilla-triage-csv.sh
Changes:
1 | +Manual QA test check-list for major android releases. Please copy/paste form into your own comment, fill out relevant info and run through the checklist!
|
|
2 | +<details>
|
|
3 | + <summary>Tor Browser Android QA Checklist</summary>
|
|
4 | +```markdown
|
|
5 | +# System Information
|
|
6 | + |
|
7 | +- Version: Tor Browser XXX
|
|
8 | +- OS: Android YYY
|
|
9 | +- Device + CPU Architecture: ZZZ
|
|
10 | + |
|
11 | +# Features
|
|
12 | + |
|
13 | +## Base functionality
|
|
14 | +- [ ] Tor Browser launches successfully
|
|
15 | +- [ ] Connects to the Tor network
|
|
16 | +- [ ] Localisation (Browser chrome)
|
|
17 | + - [ ] Check especially the recently added strings
|
|
18 | +- [ ] Toolbars and menus work
|
|
19 | +- [ ] Fingerprinting resistance: https://arkenfox.github.io/TZP/tzp.html
|
|
20 | +- [ ] Security level (Standard, Safer, Safest)
|
|
21 | + - **TODO**: test pages verifying correct behaviour
|
|
22 | + |
|
23 | +## Proxy safety
|
|
24 | +- [ ] Tor exit test: https://check.torproject.org
|
|
25 | +- [ ] Circuit isolation
|
|
26 | + - Following websites should all report different IP addresses
|
|
27 | + - https://ifconfig.io
|
|
28 | + - https://myip.wtf
|
|
29 | + - https://wtfismyip.com
|
|
30 | +- [ ] DNS leaks: https://dnsleaktest.com
|
|
31 | + |
|
32 | +## Connectivity + Anti-Censorship
|
|
33 | +- [ ] Bridges:
|
|
34 | + - Bootstrap
|
|
35 | + - Browse: https://check.torproject.org
|
|
36 | + - [ ] Default bridges:
|
|
37 | + - [ ] obfs4
|
|
38 | + - [ ] meek
|
|
39 | + - [ ] snowflake
|
|
40 | + - [ ] User provided bridges:
|
|
41 | + - [ ] obfs4 from https://bridges.torproject.org
|
|
42 | + - [ ] webtunnel from https://bridges.torproject.org
|
|
43 | + - [ ] conjure from [gitlab](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/blob/main/client/torrc?ref_type=heads#L6)
|
|
44 | + |
|
45 | +## Web Browsing
|
|
46 | +- [ ] HTTPS-Only: http://http.badssl.com
|
|
47 | +- [ ] .onion:
|
|
48 | + - [ ] torproject.org onion: http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/
|
|
49 | + - [ ] Onion service errors
|
|
50 | + - [ ] invalid onion: http://invalid.onion
|
|
51 | + - [ ] onion offline: http://wfdn32ds656ycma5gvrh7duvdvxbg2ygzr3no3ijsya25qm6nnko4iqd.onion/
|
|
52 | + - [ ] onion baddssl: https://gitlab.torproject.org/tpo/applications/team/-/wikis/Development-Information/BadSSL-But-Onion
|
|
53 | + - **TODO** all the identity block states
|
|
54 | + - **TODO** client auth
|
|
55 | +- [ ] **TODO**: .securedrop.tor.onion
|
|
56 | +- [ ] **TODO**: onion-service alt-svc
|
|
57 | +- [ ] HTML5 Video: https://tekeye.uk/html/html5-video-test-page
|
|
58 | + - [ ] MPEG4
|
|
59 | + - [ ] WebM
|
|
60 | + - [ ] Ogg
|
|
61 | +- [ ] WebSocket Test: https://websocketking.com/
|
|
62 | + |
|
63 | +## External Components
|
|
64 | +- [ ] NoScript
|
|
65 | + - [ ] Latest Version: https://addons.mozilla.org/en-US/firefox/addon/noscript/
|
|
66 | + - [ ] Not removable from about:addons
|
|
67 | + - [ ] Tests: https://test-data.tbb.torproject.org/test-data/noscript/
|
|
68 | + - **TODO**: fix test pages
|
|
69 | +```
|
|
70 | + |
|
71 | +</details> |
1 | +Manual QA test check-list for major desktop releases. Please copy/paste form into your own comment, fill out relevant info and run through the checklist!
|
|
2 | + |
|
3 | +<details>
|
|
4 | + <summary>Tor Browser Desktop QA Checklist</summary>
|
|
5 | + |
|
6 | +```markdown
|
|
7 | +# System Information
|
|
8 | + |
|
9 | +- Version: Tor Browser XXX
|
|
10 | +- OS: Windows|macOS|Linux YYY
|
|
11 | +- CPU Architecture:
|
|
12 | +- Profile: New|Old
|
|
13 | + |
|
14 | +# Features
|
|
15 | + |
|
16 | +## Base functionality
|
|
17 | +- [ ] Tor Browser launches successfully
|
|
18 | +- [ ] Connects to the Tor network
|
|
19 | + - [ ] Homepage loads:
|
|
20 | + - [ ] about:tor
|
|
21 | + - [ ] about:blank
|
|
22 | + - [ ] custom
|
|
23 | +- [ ] Tor Browser loads URLs passed by command-line after bootstrapped
|
|
24 | +- [ ] Localisation (Browser chrome)
|
|
25 | + - [ ] Language notification/message bar
|
|
26 | + - [ ] Spoof English
|
|
27 | + - [ ] Check especially the recently added strings
|
|
28 | +- [ ] UI Customisations:
|
|
29 | + - [ ] New Identity
|
|
30 | + - [ ] Toolbar icon
|
|
31 | + - [ ] Hamburger menu
|
|
32 | + - [ ] File menu
|
|
33 | + - [ ] New circuit for this site
|
|
34 | + - [ ] Circuit display
|
|
35 | + - [ ] Hamburger menu
|
|
36 | + - [ ] File menu
|
|
37 | + - [ ] No Firefox extras (Sync, Pocket, Report broken site, Tracking protection, etc)
|
|
38 | + - [ ] No unified extensions button (puzzle piece)
|
|
39 | + - [ ] NoScript button hidden
|
|
40 | + - [ ] Context Menu Populated
|
|
41 | +- [ ] Fingerprinting resistance: https://arkenfox.github.io/TZP/tzp.html
|
|
42 | +- [ ] Security level (Standard, Safer, Safest)
|
|
43 | + - Displays in:
|
|
44 | + - toolbar icon
|
|
45 | + - toolbar panel
|
|
46 | + - about:preferences#privacy
|
|
47 | + - [ ] On switch, each UI element is updated
|
|
48 | + - [ ] On custom config (toggle `svg.disabled`)
|
|
49 | + - [ ] each UI element displays warning
|
|
50 | + - [ ] `Restore defaults` reverts custom prefs
|
|
51 | + - **TODO**: test pages verifying correct behaviour
|
|
52 | +- [ ] New identity
|
|
53 | +- [ ] Betterboxing
|
|
54 | + - [ ] Reuse last window size
|
|
55 | + - [ ] Content alignment
|
|
56 | + - [ ] No letterboxing:
|
|
57 | + - [ ]empty tabs or privileged pages (eg: about:blank, about:about)
|
|
58 | + - [ ] full-screen video
|
|
59 | + - [ ] pdf viewer
|
|
60 | + - [ ] reader-mode
|
|
61 | +- [ ] Downloads Warning
|
|
62 | + - [ ] Downloads toolbar panel
|
|
63 | + - [ ] about:downloads
|
|
64 | + - [ ] Library window (<kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>o</kbd>)
|
|
65 | +- [ ] Drag and Drop protections:
|
|
66 | + - [ ] Dragging a link from a tab to another tab in the same window works
|
|
67 | + - [ ] Dragging a link from a tab to another tab in a separate window works
|
|
68 | + - [ ] Dragging a link into the library creates a bookmark
|
|
69 | + - [ ] Dragging a link from Tor Browser to Firefox doesn't work
|
|
70 | + - [ ] Dragging a link from Firefox to Tor Browser works
|
|
71 | + - [ ] Dragging a link from Tor Browser to another app (e.g., text editor) doesn't work
|
|
72 | + - [ ] Repeat with page favicon
|
|
73 | + |
|
74 | +## Proxy safety
|
|
75 | +- [ ] Tor exit test: https://check.torproject.org
|
|
76 | +- [ ] Circuit isolation
|
|
77 | + - Following websites should all report different IP addresses
|
|
78 | + - https://ifconfig.io
|
|
79 | + - https://myip.wtf
|
|
80 | + - https://wtfismyip.com
|
|
81 | +- [ ] DNS leaks: https://dnsleaktest.com
|
|
82 | +- [ ] Circuit Display
|
|
83 | + - [ ] Website => circuit
|
|
84 | + - [ ] Remote PDF => circuit
|
|
85 | + - [ ] Remote image => circuit
|
|
86 | + - [ ] .onion Website => circuit with onion-service relays
|
|
87 | + - [ ] .tor.onion Website => circuit with onion-service relays, link to true onion address
|
|
88 | + - http://ft.securedrop.tor.onion
|
|
89 | + - [ ] Website in reader mode => circuit (same as w/o reader mode)
|
|
90 | + - [ ] Local image => no circuit
|
|
91 | + - [ ] Local SVG with remote content => catch-all circuit, but not shown
|
|
92 | + - [ ] Local PDF => no circuit
|
|
93 | + - [ ] Local HTML `file://` with local resources => no circuit
|
|
94 | + - [ ] Local HTML `file://` with remote resources => catch-all circuit, but not shown
|
|
95 | + |
|
96 | +## Connectivity + Anti-Censorship
|
|
97 | +- [ ] Tor daemon config by environment variables
|
|
98 | + - https://gitlab.torproject.org/tpo/applications/team/-/wikis/Environment-variables-and-related-preferences
|
|
99 | +- [ ] Internet Test ( about:preferences#connection )
|
|
100 | + - [ ] Fails when offline
|
|
101 | + - [ ] Succeeds when online
|
|
102 | +- [ ] Bridges:
|
|
103 | + - Bootstrap
|
|
104 | + - Browse: https://check.torproject.org
|
|
105 | + - Bridge node in circuit-display
|
|
106 | + - Bridge cards
|
|
107 | + - Disable
|
|
108 | + - Remove
|
|
109 | + - [ ] Default bridges:
|
|
110 | + - [ ] Removable as a group, not editable
|
|
111 | + - [ ] obfs4
|
|
112 | + - [ ] meek
|
|
113 | + - [ ] snowflake
|
|
114 | + - [ ] User provided bridges:
|
|
115 | + - [ ] Removable and editable individually
|
|
116 | + - [ ] obfs4 from https://bridges.torproject.org
|
|
117 | + - [ ] webtunnel from https://bridges.torproject.org
|
|
118 | + - [ ] conjure from [gitlab](https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/conjure/-/blob/main/client/torrc?ref_type=heads#L6)
|
|
119 | + - [ ] Request bridges...
|
|
120 | + - [ ] Removable as a group, but not editable
|
|
121 | + - [ ] Succeeds when bootstrapped
|
|
122 | + - [ ] Succeeds when not bootstrapped
|
|
123 | + - **TODO**: Lox
|
|
124 | +- [ ] Connect Assist
|
|
125 | + - Useful pref: `torbrowser.debug.censorship_level`
|
|
126 | + - [ ] Auto-bootstrap updates Tor connection settings on success
|
|
127 | + - [ ] Auto-bootstrap restore previous Tor connection settings on failure
|
|
128 | + |
|
129 | +## Web Browsing
|
|
130 | +- [ ] HTTPS-Only: http://http.badssl.com
|
|
131 | +- [ ] Crypto-currency warning on http website
|
|
132 | + - **TODO**: we should provide an example page
|
|
133 | +- [ ] .onion:
|
|
134 | + - [ ] torproject.org onion: http://2gzyxa5ihm7nsggfxnu52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion/
|
|
135 | + - [ ] Onion-Location pill
|
|
136 | + - [ ] Client authentication
|
|
137 | + - You can create an ephemeral client-auth onion-service using [onion share](https://onionshare.org)
|
|
138 | + - [ ] Onion service errors
|
|
139 | + - [ ] invalid onion: http://invalid.onion
|
|
140 | + - [ ] onion offline: http://wfdn32ds656ycma5gvrh7duvdvxbg2ygzr3no3ijsya25qm6nnko4iqd.onion/
|
|
141 | + - [ ] onion baddssl: https://gitlab.torproject.org/tpo/applications/team/-/wikis/Development-Information/BadSSL-But-Onion
|
|
142 | + - **TODO** all the identity block states
|
|
143 | + - **TODO** client auth
|
|
144 | +- [ ] **TODO**: .securedrop.tor.onion
|
|
145 | +- [ ] **TODO**: onion-service alt-svc
|
|
146 | +- [ ] HTML5 Video: https://tekeye.uk/html/html5-video-test-page
|
|
147 | + - [ ] MPEG4
|
|
148 | + - [ ] WebM
|
|
149 | + - [ ] Ogg
|
|
150 | +- [ ] WebSocket Test: https://websocketking.com/
|
|
151 | + |
|
152 | +## External Components
|
|
153 | +- [ ] NoScript
|
|
154 | + - [ ] Latest Version: https://addons.mozilla.org/en-US/firefox/addon/noscript/
|
|
155 | + - [ ] Not removable from about:addons
|
|
156 | + - [ ] Tests: https://test-data.tbb.torproject.org/test-data/noscript/
|
|
157 | + - **TODO**: fix test pages
|
|
158 | +```
|
|
159 | + |
|
160 | +</details> |
... | ... | @@ -158,7 +158,7 @@ printf "\n]\n" >> "${git_json}" |
158 | 158 | query_tail="&f1=product&n1=1&o1=anyexact&v1=Thunderbird%2CCalendar%2CChat%20Core%2CMailNews%20Core&f2=target_milestone&o2=substring&v2=${firefox_version}&limit=0"
|
159 | 159 | |
160 | 160 | bugzilla_query="https://bugzilla.mozilla.org/buglist.cgi?${query_tail}"
|
161 | -bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,summary${query_tail}"
|
|
161 | +bugzilla_json_query="https://bugzilla.mozilla.org/rest/bug?include_fields=id,component,summary${query_tail}"
|
|
162 | 162 | |
163 | 163 | wget "${bugzilla_json_query}" -O ${bugzilla_json}
|
164 | 164 | |
... | ... | @@ -174,13 +174,14 @@ jq -s '[ (.[0].bugs)[], (.[1])[] ] | group_by(.id) | map(.[0])' "${bugzilla_json |
174 | 174 | # Generate Triage CSV
|
175 | 175 | #
|
176 | 176 | |
177 | -echo "\"Review\",,\"Bugzilla Bug\""
|
|
177 | +echo "\"Review\",,\"Bugzilla Component\",\"Bugzilla Bug\""
|
|
178 | 178 | |
179 | -jq '. | sort_by(.id)[] | "\(.id)|\(.summary)"' ${union_json} \
|
|
180 | -| while IFS='|' read -r id summary; do
|
|
179 | +jq '. | sort_by([.component, .id])[] | "\(.id)|\(.component)|\(.summary)"' ${union_json} \
|
|
180 | +| while IFS='|' read -r id component summary; do
|
|
181 | 181 | |
182 | 182 | # bugzilla info
|
183 | 183 | id="${id:1}"
|
184 | + component="${component:0}"
|
|
184 | 185 | summary="${summary:0:-1}"
|
185 | 186 | summary=$(jq_unescape "${summary}")
|
186 | 187 | # short summary for gitlab issue title
|
... | ... | @@ -207,6 +208,7 @@ jq '. | sort_by(.id)[] | "\(.id)|\(.summary)"' ${union_json} \ |
207 | 208 | echoerr "Skipped Bugzilla ${id}: ${summary_short}"
|
208 | 209 | else
|
209 | 210 | csv_summary=$(csv_escape "${summary}")
|
211 | + csv_component=$(csv_escape "${component}")
|
|
210 | 212 | |
211 | 213 | # parent issue
|
212 | 214 | bugzilla_url="https://bugzilla.mozilla.org/show_bug.cgi?id=${id}"
|
... | ... | @@ -221,7 +223,7 @@ jq '. | sort_by(.id)[] | "\(.id)|\(.summary)"' ${union_json} \ |
221 | 223 | create_issue=$(csv_escape "=HYPERLINK(\"${new_issue_url}\", \"New Issue\")")
|
222 | 224 | bugzilla_link=$(csv_escape "=HYPERLINK(\"${bugzilla_url}\", \"Bugzilla ${id}: ${csv_summary}\")")
|
223 | 225 | |
224 | - echo "FALSE,\"${create_issue}\",\"${bugzilla_link}\","
|
|
226 | + echo "FALSE,\"${create_issue}\",\"${csv_component}\",\"${bugzilla_link}\","
|
|
225 | 227 | fi
|
226 | 228 | done
|
227 | 229 |