lists.torproject.org
Sign In Sign Up
Manage this list Sign In Sign Up

Keyboard Shortcuts

Thread View

  • j: Next unread message
  • k: Previous unread message
  • j a: Jump to all threads
  • j l: Jump to MailingList overview

tbb-commits

Thread Start a new thread
Download
Threads by month
  • ----- 2025 -----
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2024 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2023 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2022 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2021 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2020 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2019 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2018 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2017 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2016 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2015 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
  • January
  • ----- 2014 -----
  • December
  • November
  • October
  • September
  • August
  • July
  • June
  • May
  • April
  • March
  • February
tbb-commits@lists.torproject.org

February 2024

  • 1 participants
  • 119 discussions
[Git][tpo/applications/tor-browser-build] Pushed new tag mb-13.5a5-build1
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed new tag mb-13.5a5-build1 at The Tor Project / Applications / tor-browser-build -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/mb-… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build] Pushed new tag tbb-13.5a5-build1
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed new tag tbb-13.5a5-build1 at The Tor Project / Applications / tor-browser-build -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/tree/tbb… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android] Pushed new tag firefox-android-115.2.1-13.5-1-build6
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed new tag firefox-android-115.2.1-13.5-1-build6 at The Tor Project / Applications / firefox-android -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/tree/firef… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser] Pushed new tag mullvad-browser-115.8.0esr-13.5-1-build2
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed new tag mullvad-browser-115.8.0esr-13.5-1-build2 at The Tor Project / Applications / Mullvad Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/tree/mullv… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser] Pushed new tag tor-browser-115.8.0esr-13.5-1-build2
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed new tag tor-browser-115.8.0esr-13.5-1-build2 at The Tor Project / Applications / Tor Browser -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/tree/tor-brows… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser-build][main] 2 commits: More minor updates to Mullvad and Tor Browser Release Prep issue templates
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed to branch main at The Tor Project / Applications / tor-browser-build Commits: 0d915f56 by Richard Pospesel at 2024-02-22T13:42:40+00:00 More minor updates to Mullvad and Tor Browser Release Prep issue templates - - - - - 96db74ad by Richard Pospesel at 2024-02-22T16:52:49+00:00 Bug 41074,41075: Tor,Mullvad Browser 13.5a5 Release Prep - - - - - 15 changed files: - .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md - .gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md - .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md - .gitlab/issue_templates/Release Prep - Tor Browser Stable.md - projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt - projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt - projects/browser/allowed_addons.json - projects/browser/config - projects/firefox-android/config - projects/firefox/config - projects/geckoview/config - projects/go/config - projects/openssl/config - projects/translation/config - rbm.conf Changes: ===================================== .gitlab/issue_templates/Release Prep - Mullvad Browser Alpha.md ===================================== @@ -66,14 +66,14 @@ Mullvad Browser Alpha (and Nightly) are on the `main` branch - [ ] Update `ChangeLog-MB.txt` - [ ] Ensure `ChangeLog-MB.txt` is sync'd between alpha and stable branches - [ ] Check the linked issues: ask people to check if any are missing, remove the not fixed ones - - [ ] Run `tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` + - [ ] Run `./tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` - Make sure you have `requests` installed (e.g., `apt install python3-requests`) - The first time you run this script you will need to generate an access token; the script will guide you - `$updateArgs` should be these arguments, depending on what you actually updated: - [ ] `--firefox` (be sure to include esr at the end if needed, which is usually the case) - [ ] `--no-script` - [ ] `--ublock` - - E.g., `tools/fetch-changelogs.py 41029 --date 'December 19 2023' --firefox 115.6.0esr --no-script 11.4.29 --ublock 1.54.0` + - E.g., `./tools/fetch-changelogs.py 41029 --date 'December 19 2023' --firefox 115.6.0esr --no-script 11.4.29 --ublock 1.54.0` - `--date $date` is optional, if omitted it will be the date on which you run the command - [ ] Copy the output of the script to the beginning of `ChangeLog-MB.txt` and adjust its output - [ ] Open MR with above changes, using the template for release preparations ===================================== .gitlab/issue_templates/Release Prep - Mullvad Browser Stable.md ===================================== @@ -66,14 +66,14 @@ Mullvad Browser Stable lives in the various `maint-$(MULLVAD_BROWSER_MAJOR).$(MU - [ ] Update `ChangeLog-MB.txt` - [ ] Ensure `ChangeLog-MB.txt` is sync'd between alpha and stable branches - [ ] Check the linked issues: ask people to check if any are missing, remove the not fixed ones - - [ ] Run `tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` + - [ ] Run `./tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` - Make sure you have `requests` installed (e.g., `apt install python3-requests`) - The first time you run this script you will need to generate an access token; the script will guide you - `$updateArgs` should be these arguments, depending on what you actually updated: - [ ] `--firefox` (be sure to include esr at the end if needed, which is usually the case) - [ ] `--no-script` - [ ] `--ublock` - - E.g., `tools/fetch-changelogs.py 41029 --date 'December 19 2023' --firefox 115.6.0esr --no-script 11.4.29 --ublock 1.54.0` + - E.g., `./tools/fetch-changelogs.py 41029 --date 'December 19 2023' --firefox 115.6.0esr --no-script 11.4.29 --ublock 1.54.0` - `--date $date` is optional, if omitted it will be the date on which you run the command - [ ] Copy the output of the script to the beginning of `ChangeLog-MB.txt` and adjust its output - [ ] Open MR with above changes, using the template for release preparations ===================================== .gitlab/issue_templates/Release Prep - Tor Browser Alpha.md ===================================== @@ -57,6 +57,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - [ ] ***(Optional)*** Update `projects/firefox-android/config`: - [ ] `fenix_version` : update to match alpha `firefox-android` build tag - [ ] `browser_branch` : update to match alpha `firefox-android` build tag + - [ ] `browser_build` : update to match alpha `firefox-android` build tag - [ ] Update allowed_addons.json by running (from `tor-browser-build` root): - `./tools/fetch_allowed_addons.py > projects/browser/allowed_addons.json` - [ ] Update `projects/translation/config`: @@ -95,7 +96,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - [ ] Update `ChangeLog-TBB.txt` - [ ] Ensure `ChangeLog-TBB.txt` is sync'd between alpha and stable branches - [ ] Check the linked issues: ask people to check if any are missing, remove the not fixed ones - - [ ] Run `tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` + - [ ] Run `./tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` - Make sure you have `requests` installed (e.g., `apt install python3-requests`) - The first time you run this script you will need to generate an access token; the script will guide you - `$updateArgs` should be these arguments, depending on what you actually updated: @@ -105,7 +106,7 @@ Tor Browser Alpha (and Nightly) are on the `main` branch - [ ] `--openssl` - [ ] `--zlib` - [ ] `--go` - - E.g., `tools/fetch-changelogs.py 41028 --date 'December 19 2023' --firefox 115.6.0esr --tor 0.4.8.10 --no-script 11.4.29 --zlib 1.3 --go 1.21.5 --openssl 3.0.12` + - E.g., `./tools/fetch-changelogs.py 41028 --date 'December 19 2023' --firefox 115.6.0esr --tor 0.4.8.10 --no-script 11.4.29 --zlib 1.3 --go 1.21.5 --openssl 3.0.12` - `--date $date` is optional, if omitted it will be the date on which you run the command - [ ] Copy the output of the script to the beginning of `ChangeLog-TBB.txt` and adjust its output - [ ] Open MR with above changes, using the template for release preparations ===================================== .gitlab/issue_templates/Release Prep - Tor Browser Stable.md ===================================== @@ -55,8 +55,10 @@ Tor Browser Stable lives in the various `maint-$(TOR_BROWSER_MAJOR).$(TOR_BROWSE **NOTE** we don't currently have any of our own patches for this project - [ ] `git_hash` : update to appropriate git commit associated with `$(ESR_VERSION)` - [ ] ***(Optional)*** Update `projects/firefox-android/config`: - - [ ] `fenix_version` : update to match alpha `firefox-android` build tag - - [ ] `browser_branch` : update to match alpha `firefox-android` build tag + - [ ] `fenix_version` : update to match stable `firefox-android` build tag + - [ ] `browser_branch` : update to match stable `firefox-android` build tag + - [ ] `browser_build` : update to match stable `firefox-android` build tag + variant: Beta - [ ] Update allowed_addons.json by running (from `tor-browser-build` root): - `./tools/fetch_allowed_addons.py > projects/browser/allowed_addons.json` - [ ] Update `projects/translation/config`: @@ -95,7 +97,7 @@ Tor Browser Stable lives in the various `maint-$(TOR_BROWSER_MAJOR).$(TOR_BROWSE - [ ] Update `ChangeLog-TBB.txt` - [ ] Ensure `ChangeLog-TBB.txt` is sync'd between alpha and stable branches - [ ] Check the linked issues: ask people to check if any are missing, remove the not fixed ones - - [ ] Run `tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` + - [ ] Run `./tools/fetch-changelogs.py $(ISSUE_NUMBER) --date $date $updateArgs` - Make sure you have `requests` installed (e.g., `apt install python3-requests`) - The first time you run this script you will need to generate an access token; the script will guide you - `$updateArgs` should be these arguments, depending on what you actually updated: @@ -105,7 +107,7 @@ Tor Browser Stable lives in the various `maint-$(TOR_BROWSER_MAJOR).$(TOR_BROWSE - [ ] `--openssl` - [ ] `--zlib` - [ ] `--go` - - E.g., `tools/fetch-changelogs.py 41028 --date 'December 19 2023' --firefox 115.6.0esr --tor 0.4.8.10 --no-script 11.4.29 --zlib 1.3 --go 1.21.5 --openssl 3.0.12` + - E.g., `./tools/fetch-changelogs.py 41028 --date 'December 19 2023' --firefox 115.6.0esr --tor 0.4.8.10 --no-script 11.4.29 --zlib 1.3 --go 1.21.5 --openssl 3.0.12` - `--date $date` is optional, if omitted it will be the date on which you run the command - [ ] Copy the output of the script to the beginning of `ChangeLog-TBB.txt` and adjust its output - [ ] Open MR with above changes, using the template for release preparations ===================================== projects/browser/Bundle-Data/Docs-MB/ChangeLog.txt ===================================== @@ -1,3 +1,50 @@ +Mullvad Browser 13.5a5 - February 27 2024 + * All Platforms + * Updated Firefox to 115.8.0esr + * Updated uBlock Origin to 1.56.0 + * Updated mullvad-browser-extension to 0.8.5 + * Bug 262: Mouse-over long links causes the browser element to re-center relative to width of status tooltip [mullvad-browser] + * Bug 268: Rebase Mullvad Browser Alpha onto 115.8.0esr [mullvad-browser] + * Bug 42376: The placeholder of datetime inputs keeps being localized when spoof English is on [tor-browser] + * Bug 42378: spoof english + htmlform <details> can leak app language [tor-browser] + * Bug 42387: Visual noise in 13.5a4 letterboxing [tor-browser] + * Bug 42389: Betterboxing: gradient is never shown [tor-browser] + * Bug 42390: Betterboxing: make the decorator border disappear when the corners are flat [tor-browser] + * Bug 42397: Change RFP-spoofed Timezone from UTC to a real-world, less discriminable one [tor-browser] + * Bug 42398: Include Alpha and Nightly in MOZ_APP_DISPLAYNAME (and possibly in other places) [tor-browser] + * Bug 42423: Move temporary Lox Fluent strings to new file [tor-browser] + * macOS + * Bug 40569: Create build-specific installer for macOS [tor-browser-build] + * Build System + * All Platforms + * Bug 41038: Add RPM dependencies to README [tor-browser-build] + * Bug 41067: Use Capture::Tiny instead of IO::CaptureOutput [tor-browser-build] + * Bug 41072: Set correct updater_url for Mullvad Browser nightly builds [tor-browser-build] + * Bug 41081: Update detailsURL in tools/signing/nightly/update-responses-base-config.yml [tor-browser-build] + * Bug 41085: kick_devmole_build script prints wrong URL for Mullvad's build hashes [tor-browser-build] + * Bug 40068: Switch from IO::CaptureOutput to Capture::Tiny [rbm] + * Bug 40069: Make stdout and stderr utf8 [rbm] + * Bug 40071: Add an option to create zip files using 7z [rbm] + * Bug 40072: Move capture_exec to a separate module [rbm] + * Windows + * Bug 41076: Include the ShellLink plugin in NSIS [tor-browser-build] + * Bug 41077: Draft the new installer for Mullvad Browser [tor-browser-build] + * macOS + * Bug 41084: $app_bundle is missing the final .app in projects/firefox/build [tor-browser-build] + +Mullvad Browser 13.0.10 - February 20 2024 + * All Platforms + * Updated Firefox to 115.8.0esr + * Updated mullvad-browser-extension to 0.8.5 + * Bug 267: Rebase Mullvad Browser Stable onto Firefox 115.8.0esr [mullvad-browser] + * Bug 42374: spoof english leaks via numberingSystem: numbers (non-latn) or decimal separator (latn) [tor-browser] + * Build System + * All Platforms + * Bug 41037: Set time on signing machine before starting signing [tor-browser-build] + * Bug 41067: Use Capture::Tiny instead of IO::CaptureOutput [tor-browser-build] + * Bug 40068: Switch from IO::CaptureOutput to Capture::Tiny [rbm] + * Bug 40069: Make stdout and stderr utf8 [rbm] + Mullvad Browser 13.5a4 - January 29 2024 * All Platforms * Updated Firefox to 115.7.0esr ===================================== projects/browser/Bundle-Data/Docs-TBB/ChangeLog.txt ===================================== @@ -1,3 +1,75 @@ +Tor Browser 13.5a5 - February 27 2024 + * All Platforms + * Updated OpenSSL to 3.0.13 + * Updated Snowflake to 2.9.0 + * Bug 42376: The placeholder of datetime inputs keeps being localized when spoof English is on [tor-browser] + * Bug 42378: spoof english + htmlform <details> can leak app language [tor-browser] + * Bug 42390: Betterboxing: make the decorator border disappear when the corners are flat [tor-browser] + * Bug 42397: Change RFP-spoofed Timezone from UTC to a real-world, less discriminable one [tor-browser] + * Bug 42412: Rebase Tor Browser Alpha onto 115.8.0esr [tor-browser] + * Bug 41079: Bump version of Snowflake to v2.9.0 [tor-browser-build] + * Windows + macOS + Linux + * Updated Firefox to 115.8.0esr + * Bug 41814: Change "vanilla bridge:" to "Tor bridge:" in bridge cards [tor-browser] + * Bug 42270: Implement design changes to QR code dialog [tor-browser] + * Bug 42389: Betterboxing: gradient is never shown [tor-browser] + * Bug 42398: Include Alpha and Nightly in MOZ_APP_DISPLAYNAME (and possibly in other places) [tor-browser] + * Bug 42414: Show ellipsis when the tor bridge address overflows [tor-browser] + * Bug 42415: Improve focus styling for forced focus in bridge settings [tor-browser] + * Bug 42421: Remove bridge option should be hidden for Lox bridges [tor-browser] + * Bug 42423: Move temporary Lox Fluent strings to new file [tor-browser] + * Bug 42425: Improve accessibility of the bridge emoji cells [tor-browser] + * Android + * Updated GeckoView to 115.8.0esr + * Bug 42253: Remove "New private tab" action and widget [tor-browser] + * Bug 42402: Remove Android YEC strings [tor-browser] + * Bug 42407: TTP-03-010 WP3: Potential phishing [tor-browser] + * Bug 42416: Backport Android security fixes from Firefox 123 [tor-browser] + * macOS + * Bug 40569: Create build-specific installer for macOS [tor-browser-build] + * Build System + * All Platforms + * Updated Go to 1.20.14 and 1.21.7 + * Bug 41081: Update detailsURL in tools/signing/nightly/update-responses-base-config.yml [tor-browser-build] + * Bug 41085: kick_devmole_build script prints wrong URL for Mullvad's build hashes [tor-browser-build] + * Bug 40068: Switch from IO::CaptureOutput to Capture::Tiny [rbm] + * Bug 40069: Make stdout and stderr utf8 [rbm] + * Bug 40071: Add an option to create zip files using 7z [rbm] + * Bug 40072: Move capture_exec to a separate module [rbm] + * Windows + * Bug 41076: Include the ShellLink plugin in NSIS [tor-browser-build] + * macOS + * Bug 41084: $app_bundle is missing the final .app in projects/firefox/build [tor-browser-build] + * Android + * Bug 42399: Re-enable minimization of JS for Android [tor-browser] + * Bug 41080: Re-pack omni.ja with 7-zip on Android [tor-browser-build] + +Tor Browser 13.0.10 - February 20 2024 + * All Platforms + * Updated OpenSSL to 3.0.13 + * Updated zlib to 1.3.1 + * Updated Snowflake to 2.9.0 + * Bug 42374: spoof english leaks via numberingSystem: numbers (non-latn) or decimal separator (latn) [tor-browser] + * Bug 42411: Rebase Tor Browser stable onto 115.8.0esr [tor-browser] + * Bug 41079: Bump version of Snowflake to v2.9.0 [tor-browser-build] + * Windows + macOS + Linux + * Updated Firefox to 115.8.0esr + * Bug 42338: Changing circuit programmatically in Tor Browser not working anymore! [tor-browser] + * Android + * Updated GeckoView to 115.8.0esr + * Bug 42402: Remove Android YEC strings [tor-browser] + * Bug 42416: Backport Android security fixes from Firefox 123 [tor-browser] + * Linux + * Bug 42293: Updater is disabled when tor-browser is run by torbrowser-launcher flatpak [tor-browser] + * Build System + * All Platforms + * Updated Go to 1.20.14 and 1.21.7 + * Bug 41067: Use Capture::Tiny instead of IO::CaptureOutput [tor-browser-build] + * Bug 40067: Use --no-verbose wget option when not running in a terminal [rbm] + * Bug 40068: Switch from IO::CaptureOutput to Capture::Tiny [rbm] + * Bug 40069: Make stdout and stderr utf8 [rbm] + * Bug 40072: Move capture_exec to a separate module [rbm] + Tor Browser 13.5a4 - January 31 2024 * All Platforms * Updated zlib to 1.3.1 ===================================== projects/browser/allowed_addons.json ===================================== @@ -17,7 +17,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/34/9734/13299734/13299734.pn…" } ], - "average_daily_users": 1149777, + "average_daily_users": 1137843, "categories": { "firefox": [ "web-development", @@ -28,7 +28,7 @@ "contributions_url": "https://opencollective.com/darkreader?utm_content=product-page-contribute&u…", "created": "2017-09-19T07:03:00Z", "current_version": { - "id": 5678786, + "id": 5688757, "compatibility": { "firefox": { "min": "54.0", @@ -39,7 +39,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/56787…", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/darkreader/versions/56887…", "is_strict_compatibility_enabled": false, "license": { "id": 22, @@ -50,22 +50,22 @@ "url": "http://www.opensource.org/license/mit" }, "release_notes": { - "en-US": "- Improved dark theme detection.\n- Dynamic mode bug fixes.\n- Users' fixes for websites." + "en-US": "- Fixed errors when Adopted Stylesheets were not present.\n- Fixed breaking on ::view-transition selectors (Airbnb issue).\n- Users' fixes for websites." }, - "reviewed": "2024-01-22T11:18:14Z", - "version": "4.9.76", + "reviewed": "2024-02-08T08:33:10Z", + "version": "4.9.77", "files": [ { - "id": 4223104, - "created": "2024-01-17T14:17:21Z", - "hash": "sha256:d3afe139928c3c30bd11347c08a3360fa3417be4667c47f3de19fdc0ab92da9f", + "id": 4233074, + "created": "2024-02-07T11:23:55Z", + "hash": "sha256:931de67e9091c69edd9fd3f348a7ed1de1dce7d136017fed641bd10eb0ae8891", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 723386, + "size": 725369, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4223104/darkreader-4.9.76…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4233074/darkreader-4.9.77…", "permissions": [ "alarms", "contextMenus", @@ -143,7 +143,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2024-01-22T11:18:14Z", + "last_updated": "2024-02-08T08:33:10Z", "name": { "ar": "Dark Reader", "bn": "Dark Reader", @@ -218,10 +218,10 @@ "category": "recommended" }, "ratings": { - "average": 4.5479, - "bayesian_average": 4.546785102314431, - "count": 5377, - "text_count": 1689 + "average": 4.5407, + "bayesian_average": 4.539579140237365, + "count": 5441, + "text_count": 1716 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/reviews/", "requires_payment": false, @@ -318,7 +318,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/darkreader/versions/", - "weekly_downloads": 25711 + "weekly_downloads": 24267 }, "notes": null }, @@ -334,7 +334,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/56/7656/6937656/6937656.png?…" } ], - "average_daily_users": 267473, + "average_daily_users": 264838, "categories": { "firefox": [ "privacy-security" @@ -547,10 +547,10 @@ "category": "recommended" }, "ratings": { - "average": 4.8014, - "bayesian_average": 4.796833851849327, - "count": 1400, - "text_count": 250 + "average": 4.8001, + "bayesian_average": 4.795468550922711, + "count": 1406, + "text_count": 252 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/reviews/", "requires_payment": false, @@ -635,7 +635,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/decentraleyes/versions/", - "weekly_downloads": 3594 + "weekly_downloads": 3215 }, "notes": null }, @@ -651,7 +651,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/73/4073/5474073/5474073.png?…" } ], - "average_daily_users": 1220177, + "average_daily_users": 1223061, "categories": { "firefox": [ "privacy-security" @@ -660,7 +660,7 @@ "contributions_url": "https://paypal.me/SupportEFF?utm_content=product-page-contribute&utm_medium…", "created": "2014-05-01T18:23:16Z", "current_version": { - "id": 5659023, + "id": 5688386, "compatibility": { "firefox": { "min": "78.0", @@ -671,7 +671,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/privacy-badger17/versions…", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/privacy-badger17/versions…", "is_strict_compatibility_enabled": false, "license": { "id": 6, @@ -682,22 +682,22 @@ "url": "http://www.gnu.org/licenses/gpl-3.0.html" }, "release_notes": { - "en-US": "<ul><li>Improved widget replacement for embedded Tweets</li><li>Fixed blocking WebSocket connections to blocked domains</li><li>Fixed various site breakages</li><li>Added Galician translations in Firefox</li><li>Improved translations (Traditional Chinese, Greek, Japanese)</li></ul>" + "en-US": "<ul><li>Fixed timing issue that could lead to incomplete or empty tracker data on installation in Firefox</li><li>Fixed various UI display issues</li><li>Fixed various site breakages</li><li>Improved translations (Hebrew, Brazilian Portuguese, Swedish, Ukrainian)</li></ul>" }, - "reviewed": "2023-12-07T09:09:12Z", - "version": "2023.12.1", + "reviewed": "2024-02-08T18:59:58Z", + "version": "2024.2.6", "files": [ { - "id": 4203344, - "created": "2023-12-01T19:02:57Z", - "hash": "sha256:aacac794c211fc6ea7dc51529883fd3e477aff37441d29ae7f576ab0f8c737b7", + "id": 4232703, + "created": "2024-02-06T15:04:35Z", + "hash": "sha256:81d80bff29b6209aa444713bc548a3d06fd5bde208c9c3c596dba81cc97add02", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 1893319, + "size": 1892384, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4203344/privacy_badger17-…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4232703/privacy_badger17-…", "permissions": [ "<all_urls>", "alarms", @@ -1124,7 +1124,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2023-12-07T09:09:12Z", + "last_updated": "2024-02-08T18:59:58Z", "name": { "en-US": "Privacy Badger" }, @@ -1170,10 +1170,10 @@ "category": "recommended" }, "ratings": { - "average": 4.796, - "bayesian_average": 4.793312997020196, - "count": 2377, - "text_count": 449 + "average": 4.7952, + "bayesian_average": 4.7924799598835, + "count": 2393, + "text_count": 455 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/reviews/", "requires_payment": false, @@ -1197,7 +1197,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/versions/", - "weekly_downloads": 25171 + "weekly_downloads": 21906 }, "notes": null }, @@ -1213,7 +1213,7 @@ "picture_url": null } ], - "average_daily_users": 7634996, + "average_daily_users": 7691950, "categories": { "firefox": [ "privacy-security" @@ -1222,7 +1222,7 @@ "contributions_url": "", "created": "2015-04-25T07:26:22Z", "current_version": { - "id": 5672315, + "id": 5693353, "compatibility": { "firefox": { "min": "78.0", @@ -1233,7 +1233,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/56…", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/ublock-origin/versions/56…", "is_strict_compatibility_enabled": false, "license": { "id": 6, @@ -1244,22 +1244,22 @@ "url": "http://www.gnu.org/licenses/gpl-3.0.html" }, "release_notes": { - "en-US": "See complete release notes for <a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/514b85ddd154153a63fe9c…" rel=\"nofollow\">1.55.0</a>.\n\n<b>Fixes / changes</b>\n\n<ul><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/1e03af965f6b7a76aa94f6…" rel=\"nofollow\">Mind drop events in filter expression field of logger</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/e018352ca30c61b4a80c2a…" rel=\"nofollow\">Improve <code>xml-prune</code> scriptlet</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/ec6b213ac8c38077b676e1…" rel=\"nofollow\">Fix message entries overflowing in logger</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/a6311ada7aec5e36a802c2…" rel=\"nofollow\">Add support for <code>application/x-javascript</code> in <code>replace=</code> option</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/8b0f4ac6d1a68a10f0736a…" rel=\"nofollow\">Extend support for differential updates to imported lists</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/5e2218ad38a67bad16b5a2…" rel=\"nofollow\">Add detection of mismatched <code>!#if</code>-<code>!#endif</code> in linter</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d3d5708132bbca2b9b3232…" rel=\"nofollow\">Support links to update lists which are differential update-friendly</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/5da8dae3bfc5fd15895013…" rel=\"nofollow\">Remove \"Purge all caches\" button from \"Filter lists\" pane</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/f9bd0d08194525f2457cf5…" rel=\"nofollow\">Add support for <code>all</code> list token in updater-link feature</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/f266c7ca3a6228a20999be…" rel=\"nofollow\">Fix logging of broad exception filter <code>#@#+js()</code></a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/444dcf1f11a8dacef0553e…" rel=\"nofollow\">Improve <code>no-xhr-if</code> scriptlet</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/5f699ca11537ba17c330a8…" rel=\"nofollow\">Ensure cache storage backend is selected before access</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/983fbc3b50419c274040d9…" rel=\"nofollow\">Fix popup panel rendering when embedded in logger</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/2f972ff52f4edc3dc99084…" rel=\"nofollow\">Add visual hint in support information re. differential update</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/75541b4012443bd5602cc0…" rel=\"nofollow\">Remove obsolete web accessible resources</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/8eb76fbc2577032e63698e…" rel=\"nofollow\">Rename <code>urltransform</code> to <code>uritransform</code></a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/43e266ca8d07228388c2a6…" rel=\"nofollow\">Vertically expand/collapse in steps in dom inspector</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d1f0669c5cf9357a9528d8…" rel=\"nofollow\">Reset the DOM inspector when URL in top context changes</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d2f70a310ccc2ce2b2c97c…" rel=\"nofollow\">Support shadow-piercing combinator <code>&gt;&gt;&gt;</code> in <code>trusted-click-element</code></a></li><li>[...]</li></ul>\n<a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/7d13ab8046ad75d1230ea5…" rel=\"nofollow\">Commits history since last version</a>" + "en-US": "See complete release notes for <a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d2b406aad3a1689d93242d…" rel=\"nofollow\">1.56.0</a>.\n\n<b>Fixes / changes</b>\n\n<ul><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/39dfcbf564824557b9576b…" rel=\"nofollow\">Mind that multiple <code>uritransform</code> may apply to a single request</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/a81992f7ab9a23a438d94b…" rel=\"nofollow\">Fix incorrect built-in filtering expression in logger</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/e88d43f67c0962312b76d6…" rel=\"nofollow\">Fix improper invalidation of valid <code>uritransform</code> exception filters</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/0f3549a7d85e6616619d00…" rel=\"nofollow\">Improve <code>prevent-addEventListener</code> scriptlet</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/378d2611f7de534428615a…" rel=\"nofollow\">Fix Chartbeat flicker control <code>div</code>'s</a> (by @ryanbr)</li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/bbf6c43dcdb62ea74fd182…" rel=\"nofollow\">Fix potential exfiltration of browsing history by a rogue list author through <code>permissions=</code></a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/93a9a64cf8ec890f9a478c…" rel=\"nofollow\">Ignore event handler-related attributes in <code>set-attr</code> scriptlet</a> (suggested by @distinctmondaylilac)</li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/4ed2b2948421552ce1c170…" rel=\"nofollow\">Fix potential exfiltration of browsing history by a rogue list author through <code>csp=</code></a> (reported by @distinctmondaylilac)</li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/0fc7f9c779a1eb0dde44e6…" rel=\"nofollow\">Output scriptlet logging information to the logger</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/0dc5f09464b305050627d6…" rel=\"nofollow\">Fix decompiling of scriptlet parameters</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/5a4d736ff47d1505619f0b…" rel=\"nofollow\">Add support for <code>extraMatch</code> in <code>trusted-click-element</code> scriptlet</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/439735e662e837889e0dbe…" rel=\"nofollow\">Remove minimum height constraint from \"My filters\" pane</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/ef423b580af2dea4a9a044…" rel=\"nofollow\">Unregister all scriptlets when disabling uBO on a specific site</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/e06c923bfb016c184026f7…" rel=\"nofollow\">Allow <code>uritransform</code> to process the hash part of a URL</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/3e0f743a60bf78bced8580…" rel=\"nofollow\">Remember presentation state of \"My rules\" pane</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/819053ea32148fd9ad7c6c…" rel=\"nofollow\">Fix improperly assembled <code>!#include</code> sublists</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/9506d56abc46f95d7412b9…" rel=\"nofollow\">Mark procedural filters with pseudo-elements selector as invalid</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/9b18234e17c6871170acd1…" rel=\"nofollow\">Prevent access to picker when \"My filters\" is not enabled</a></li><li><a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/f990e686b6eacbbd0bd43a…" rel=\"nofollow\">Provide visual feedback when applying changes in \"Filter lists\" pane</a></li><li>[...]</li></ul>\n<a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/738859f7b07778caaaa182…" rel=\"nofollow\">Commits history since last version</a>" }, - "reviewed": "2024-01-08T10:26:54Z", - "version": "1.55.0", + "reviewed": "2024-02-20T18:51:52Z", + "version": "1.56.0", "files": [ { - "id": 4216633, - "created": "2024-01-03T20:24:50Z", - "hash": "sha256:a02ca1d32737c3437f97553e5caaead6479a66ac1f8ff3b84a06cfa6bb0c7647", + "id": 4237670, + "created": "2024-02-17T14:54:31Z", + "hash": "sha256:f5fbeeac511ca4e10a74723413727fda8e6f9236c726d16eb54ade1fbe7be5be", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 3647341, + "size": 3819727, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4216633/ublock_origin-1.5…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4237670/ublock_origin-1.5…", "permissions": [ "alarms", "dns", @@ -1379,7 +1379,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2024-01-21T19:40:21Z", + "last_updated": "2024-02-20T18:51:52Z", "name": { "ar": "uBlock Origin", "bg": "uBlock Origin", @@ -1524,10 +1524,10 @@ "category": "recommended" }, "ratings": { - "average": 4.7869, - "bayesian_average": 4.786526880140991, - "count": 17099, - "text_count": 4466 + "average": 4.7887, + "bayesian_average": 4.788323774199536, + "count": 17283, + "text_count": 4511 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/reviews/", "requires_payment": false, @@ -1590,7 +1590,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/versions/", - "weekly_downloads": 191212 + "weekly_downloads": 170114 }, "notes": null }, @@ -1606,7 +1606,7 @@ "picture_url": null } ], - "average_daily_users": 177037, + "average_daily_users": 177359, "categories": { "firefox": [ "photos-music-videos", @@ -1702,10 +1702,10 @@ "category": "recommended" }, "ratings": { - "average": 4.4783, - "bayesian_average": 4.473306026343802, - "count": 1177, - "text_count": 445 + "average": 4.4571, + "bayesian_average": 4.452141766560867, + "count": 1201, + "text_count": 460 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/re…", "requires_payment": false, @@ -1727,7 +1727,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/video-background-play-fix/ve…", - "weekly_downloads": 433 + "weekly_downloads": 466 }, "notes": null }, @@ -1743,7 +1743,7 @@ "picture_url": null } ], - "average_daily_users": 81898, + "average_daily_users": 79283, "categories": { "firefox": [ "privacy-security", @@ -1853,9 +1853,9 @@ ], "promoted": null, "ratings": { - "average": 4.3802, - "bayesian_average": 4.366169675126323, - "count": 405, + "average": 4.3787, + "bayesian_average": 4.364570736907983, + "count": 404, "text_count": 113 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/reviews/", @@ -1878,7 +1878,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-possum/versions/", - "weekly_downloads": 1389 + "weekly_downloads": 1367 }, "notes": null }, @@ -1894,7 +1894,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/64/9064/12929064/12929064.pn…" } ], - "average_daily_users": 299174, + "average_daily_users": 302489, "categories": { "firefox": [ "search-tools", @@ -1905,7 +1905,7 @@ "contributions_url": "https://www.paypal.com/donate?hosted_button_id=GLL4UNSNU6SQN&utm_content=pr…", "created": "2017-06-17T15:23:33Z", "current_version": { - "id": 5665608, + "id": 5683352, "compatibility": { "firefox": { "min": "115.0", @@ -1916,7 +1916,7 @@ "max": "*" } }, - "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…", + "edit_url": "https://addons.mozilla.org/en-US/developers/addon/search_by_image/versions/…", "is_strict_compatibility_enabled": false, "license": { "id": 6, @@ -1929,20 +1929,20 @@ "release_notes": { "en-US": "Learn more about this release from the <a href=\"https://prod.outgoing.prod.webservices.mozgcp.net/v1/d50855f24f77fa6f2614b9…" rel=\"nofollow\">changelog</a>." }, - "reviewed": "2023-12-19T14:03:13Z", - "version": "6.1.1", + "reviewed": "2024-01-31T11:30:38Z", + "version": "6.1.2", "files": [ { - "id": 4209928, - "created": "2023-12-17T01:28:51Z", - "hash": "sha256:254d78084e332190a2b6ccb1959a42257bdc287addc0685419fcde7df1a52e76", + "id": 4227669, + "created": "2024-01-27T08:06:28Z", + "hash": "sha256:fed46723702c79d0d2dcd2132901402b6c391f9fef8efbb58635b5ea9e47476f", "is_restart_required": false, "is_webextension": true, "is_mozilla_signed_extension": false, "platform": "all", - "size": 1165289, + "size": 1165290, "status": "public", - "url": "https://addons.mozilla.org/firefox/downloads/file/4209928/search_by_image-6…", + "url": "https://addons.mozilla.org/firefox/downloads/file/4227669/search_by_image-6…", "permissions": [ "alarms", "contextMenus", @@ -1985,7 +1985,7 @@ }, "is_disabled": false, "is_experimental": false, - "last_updated": "2023-12-19T14:03:13Z", + "last_updated": "2024-01-31T11:30:38Z", "name": { "en-US": "Search by Image" }, @@ -2111,10 +2111,10 @@ "category": "recommended" }, "ratings": { - "average": 4.6458, - "bayesian_average": 4.641373152099238, - "count": 1389, - "text_count": 269 + "average": 4.6464, + "bayesian_average": 4.641961457940663, + "count": 1411, + "text_count": 273 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/reviews/", "requires_payment": false, @@ -2129,13 +2129,15 @@ "en-US": "https://github.com/dessant/search-by-image/issues" }, "tags": [ + "google", "image search", + "pinterest", "search" ], "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/search_by_image/versions/", - "weekly_downloads": 6874 + "weekly_downloads": 5867 }, "notes": null }, @@ -2158,7 +2160,7 @@ "picture_url": null } ], - "average_daily_users": 123628, + "average_daily_users": 124312, "categories": { "firefox": [ "search-tools", @@ -2439,10 +2441,10 @@ "category": "recommended" }, "ratings": { - "average": 4.3745, - "bayesian_average": 4.37014166071391, - "count": 1311, - "text_count": 371 + "average": 4.3717, + "bayesian_average": 4.36732284678191, + "count": 1329, + "text_count": 376 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/reviews/", "requires_payment": false, @@ -2462,7 +2464,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/google-search-fixer/versions/", - "weekly_downloads": 52 + "weekly_downloads": 37 }, "notes": null }, @@ -2478,7 +2480,7 @@ "picture_url": "https://addons.mozilla.org/user-media/userpics/43/0143/143/143.png?modified…" } ], - "average_daily_users": 313064, + "average_daily_users": 308206, "categories": { "firefox": [ "web-development", @@ -2665,9 +2667,9 @@ "category": "recommended" }, "ratings": { - "average": 4.3947, - "bayesian_average": 4.3920505434632835, - "count": 2171, + "average": 4.3956, + "bayesian_average": 4.3929050879959695, + "count": 2174, "text_count": 837 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/reviews/", @@ -2712,7 +2714,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/noscript/versions/", - "weekly_downloads": 7762 + "weekly_downloads": 7240 }, "notes": null }, @@ -2728,7 +2730,7 @@ "picture_url": null } ], - "average_daily_users": 162394, + "average_daily_users": 161419, "categories": { "firefox": [ "photos-music-videos", @@ -2838,9 +2840,9 @@ }, "ratings": { "average": 3.8734, - "bayesian_average": 3.869354081107614, - "count": 1216, - "text_count": 441 + "bayesian_average": 3.8693074295625123, + "count": 1224, + "text_count": 443 }, "ratings_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/revi…", "requires_payment": false, @@ -2859,7 +2861,7 @@ "type": "extension", "url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/", "versions_url": "https://addons.mozilla.org/en-US/firefox/addon/youtube-high-definition/vers…", - "weekly_downloads": 3206 + "weekly_downloads": 1652 }, "notes": null } ===================================== projects/browser/config ===================================== @@ -99,13 +99,13 @@ input_files: - URL: https://addons.mozilla.org/firefox/downloads/file/4206186/noscript-11.4.29.… name: noscript sha256sum: 05b98840b05ef2acbac333543e4b7c3d40fee2ce5fb4e29260b05e2ff6fe24cd - - URL: https://addons.mozilla.org/firefox/downloads/file/4216633/ublock_origin-1.5… + - URL: https://addons.mozilla.org/firefox/downloads/file/4237670/ublock_origin-1.5… name: ublock-origin - sha256sum: a02ca1d32737c3437f97553e5caaead6479a66ac1f8ff3b84a06cfa6bb0c7647 + sha256sum: f5fbeeac511ca4e10a74723413727fda8e6f9236c726d16eb54ade1fbe7be5be enable: '[% c("var/mullvad-browser") %]' - - URL: https://cdn.mullvad.net/browser-extension/0.8.4/mullvad-browser-extension-0… + - URL: https://github.com/mullvad/browser-extension/releases/download/v0.8.5-firef… name: mullvad-extension - sha256sum: a0057a37482e178331cde7a6fd3c100315fcfc26e804aa37c9281f412d24cb79 + sha256sum: b8208cc73d3c3c87342b25367b1a5fa330cb528f3213a4c4de30512f1662ff45 enable: '[% c("var/mullvad-browser") %]' - filename: 'gtk3-settings.ini' enable: '[% c("var/linux") %]' ===================================== projects/firefox-android/config ===================================== @@ -16,7 +16,7 @@ container: var: fenix_version: 115.2.1 browser_branch: 13.5-1 - browser_build: 5 + browser_build: 6 variant: Beta # This should be updated when the list of gradle dependencies is changed. gradle_dependencies_version: 1 ===================================== projects/firefox/config ===================================== @@ -18,7 +18,7 @@ var: firefox_version: '[% c("var/firefox_platform_version") %]esr' browser_series: '13.5' browser_branch: '[% c("var/browser_series") %]-1' - browser_build: 1 + browser_build: 2 branding_directory_prefix: 'tb' copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]' nightly_updates_publish_dir: '[% c("var/nightly_updates_publish_dir_prefix") %]nightly-[% c("var/osname") %]' ===================================== projects/geckoview/config ===================================== @@ -16,7 +16,7 @@ container: var: geckoview_version: 115.8.0esr browser_branch: 13.5-1 - browser_build: 1 + browser_build: 2 copyright_year: '[% exec("git show -s --format=%ci").remove("-.*") %]' gitlab_project: https://gitlab.torproject.org/tpo/applications/tor-browser git_commit: '[% exec("git rev-parse HEAD") %]' ===================================== projects/go/config ===================================== @@ -1,5 +1,5 @@ # vim: filetype=yaml sw=2 -version: '[% IF c("var/use_go_1_20") %]1.20.13[% ELSE %]1.21.6[% END %]' +version: '[% IF c("var/use_go_1_20") %]1.20.14[% ELSE %]1.21.7[% END %]' filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: use_container: 1 @@ -121,11 +121,11 @@ input_files: enable: '[% ! c("var/linux") %]' - URL: 'https://go.dev/dl/go[% c("version") %].src.tar.gz' name: go - sha256sum: 124926a62e45f78daabbaedb9c011d97633186a33c238ffc1e25320c02046248 + sha256sum: 00197ab20f33813832bff62fd93cca1c42a08cc689a32a6672ca49591959bff6 enable: '[% !c("var/use_go_1_20") %]' - URL: 'https://go.dev/dl/go[% c("version") %].src.tar.gz' name: go - sha256sum: 0fe745c530f2f1d67193af3c5ea25246be077989ec5178df266e975f3532449e + sha256sum: 1aef321a0e3e38b7e91d2d7eb64040666cabdcc77d383de3c9522d0d69b67f4e enable: '[% c("var/use_go_1_20") %]' - project: go-bootstrap name: go-bootstrap ===================================== projects/openssl/config ===================================== @@ -1,5 +1,5 @@ # vim: filetype=yaml sw=2 -version: 3.0.12 +version: 3.0.13 filename: '[% project %]-[% c("version") %]-[% c("var/osname") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]' container: use_container: 1 @@ -33,4 +33,4 @@ input_files: - name: '[% c("var/compiler") %]' project: '[% c("var/compiler") %]' - URL: 'https://www.openssl.org/source/openssl-[% c("version") %].tar.gz' - sha256sum: f93c9e8edde5e9166119de31755fc87b4aa34863662f67ddfcba14d0b6b69b61 + sha256sum: 88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313 ===================================== projects/translation/config ===================================== @@ -12,13 +12,13 @@ compress_tar: 'gz' steps: base-browser: base-browser: '[% INCLUDE build %]' - git_hash: cbd9b6c415ec2edb99237ef67ccd4f033a7b9c2a + git_hash: 3215fb9ae37cb115b607647122f0984a8a428b16 targets: nightly: git_hash: 'base-browser' tor-browser: tor-browser: '[% INCLUDE build %]' - git_hash: 799998ee13be225222afc6cfda1687cf63d6cc9e + git_hash: f1a4b3d9af145b062b1a5b0cf2b83bd6bfcd03bb targets: nightly: git_hash: 'tor-browser' @@ -32,7 +32,7 @@ steps: fenix: '[% INCLUDE build %]' # We need to bump the commit before releasing but just pointing to a branch # might cause too much rebuidling of the Firefox part. - git_hash: 9622d5c3f3ffd2400fc1bbd4bb7c507f257f9bbb + git_hash: 44409d6f28faf0e332a00d53de67879de41bf07c compress_tar: 'zst' targets: nightly: ===================================== rbm.conf ===================================== @@ -81,12 +81,12 @@ buildconf: git_signtag_opt: '-s' var: - torbrowser_version: '13.5a4' - torbrowser_build: 'build2' + torbrowser_version: '13.5a5' + torbrowser_build: 'build1' torbrowser_incremental_from: - - '13.5a1' - - '13.5a2' + - '13.5a4' - '13.5a3' + - '13.5a2' updater_enabled: 1 build_mar: 1 mar_channel_id: '[% c("var/projectname") %]-torproject-[% c("var/channel") %]' View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser-build/-/compare/… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.8.0esr-13.5-1] fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed to branch tor-browser-115.8.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: cab718d4 by Henry Wilkes at 2024-02-22T16:50:41+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42421: Hide the option to remove individual Lox bridges. We also adjust the &quot;Remove all bridges&quot; callback to simply set the &quot;TorSettings.bridge.source&quot; to be &quot;Invalid&quot; since this is more source-independent, and TorSettings will handle clearing the bridge strings for us. - - - - - 1 changed file: - browser/components/torpreferences/content/connectionPane.js Changes: ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -730,11 +730,15 @@ const gBridgeGrid = { const qrItem = row.menu.querySelector( ".tor-bridges-options-qr-one-menu-item" ); + const removeItem = row.menu.querySelector( + ".tor-bridges-options-remove-one-menu-item" + ); row.menu.addEventListener("showing", () => { - qrItem.hidden = !( + const show = this._bridgeSource === TorBridgeSource.UserProvided || - this._bridgeSource === TorBridgeSource.BridgeDB - ); + this._bridgeSource === TorBridgeSource.BridgeDB; + qrItem.hidden = !show; + removeItem.hidden = !show; }); qrItem.addEventListener("click", () => { @@ -752,21 +756,19 @@ const gBridgeGrid = { ].getService(Ci.nsIClipboardHelper); clipboard.copyString(row.bridgeLine); }); - row.menu - .querySelector(".tor-bridges-options-remove-one-menu-item") - .addEventListener("click", () => { - const bridgeLine = row.bridgeLine; - const strings = TorSettings.bridges.bridge_strings; - const index = strings.indexOf(bridgeLine); - if (index === -1) { - return; - } - strings.splice(index, 1); + removeItem.addEventListener("click", () => { + const bridgeLine = row.bridgeLine; + const strings = TorSettings.bridges.bridge_strings; + const index = strings.indexOf(bridgeLine); + if (index === -1) { + return; + } + strings.splice(index, 1); - setTorSettings(() => { - TorSettings.bridges.bridge_strings = strings; - }); + setTorSettings(() => { + TorSettings.bridges.bridge_strings = strings; }); + }); }, /** @@ -2016,7 +2018,7 @@ const gBridgeSettings = { setTorSettings(() => { // This should always have the side effect of disabling bridges as // well. - TorSettings.bridges.bridge_strings = []; + TorSettings.bridges.source = TorBridgeSource.Invalid; }); }); View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/cab718d… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/cab718d… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/tor-browser][tor-browser-115.8.0esr-13.5-1] 2 commits: fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in...
by richard (@richard) 22 Feb '24

22 Feb '24
richard pushed to branch tor-browser-115.8.0esr-13.5-1 at The Tor Project / Applications / Tor Browser Commits: 0697c148 by Henry Wilkes at 2024-02-22T15:13:53+00:00 fixup! Bug 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection Bug 42425: Move the accessible name of the emoji cells from the cell to its image child. NVDA only reads the text content of a cell when navigating a &quot;table&quot;. Also, change the &quot;table&quot; in the user provide dialog to use the role &quot;cell&quot; rather than &quot;gridcell&quot; (the later is only meant for the &quot;grid&quot; role). The &quot;Emoji&quot; description is incorporated into the &quot;alt&quot; of the image instead. Before the description was not read out when doing screen reader table navigation with either Orca or NVDA. - - - - - f2e7749d by Henry Wilkes at 2024-02-22T15:13:54+00:00 fixup! Tor Browser strings Bug 42425: Move the bridge emoji accessible name into the image. - - - - - 5 changed files: - browser/components/torpreferences/content/bridgemoji/BridgeEmoji.js - browser/components/torpreferences/content/connectionPane.js - browser/components/torpreferences/content/provideBridgeDialog.js - browser/components/torpreferences/content/provideBridgeDialog.xhtml - browser/locales/en-US/browser/tor-browser.ftl Changes: ===================================== browser/components/torpreferences/content/bridgemoji/BridgeEmoji.js ===================================== @@ -119,7 +119,7 @@ doc.defaultView.console.error(`No emoji for index ${this.#index}`); emojiName = unknownString; } - doc.l10n.setAttributes(this, "tor-bridges-emoji-cell", { + doc.l10n.setAttributes(this.#img, "tor-bridges-emoji-image", { emojiName, }); } ===================================== browser/components/torpreferences/content/connectionPane.js ===================================== @@ -253,19 +253,11 @@ const gBridgeGrid = { */ _rowTemplate: null, - /** - * @typedef {object} EmojiCell - * - * @property {Element} cell - The grid cell element. - * @property {Element} img - The grid cell icon. - * @property {Element} index - The emoji index. - */ /** * @typedef {object} BridgeGridRow * * @property {Element} element - The row element. * @property {Element} optionsButton - The options button. - * @property {EmojiCell[]} emojis - The emoji cells. * @property {Element} menu - The options menupopup. * @property {Element} statusEl - The bridge status element. * @property {Element} statusText - The status text. ===================================== browser/components/torpreferences/content/provideBridgeDialog.js ===================================== @@ -469,7 +469,7 @@ const gProvideBridgeDialog = { for (const cell of BridgeEmoji.createForAddress(bridgeLine)) { // Each emoji is its own cell, we rely on the fact that createForAddress // always returns four elements. - cell.setAttribute("role", "gridcell"); + cell.setAttribute("role", "cell"); cell.classList.add("tor-bridges-grid-cell", "tor-bridges-emoji-cell"); emojiBlock.append(cell); } ===================================== browser/components/torpreferences/content/provideBridgeDialog.xhtml ===================================== @@ -75,13 +75,13 @@ <html:div class="tor-bridges-grid-row" role="row"> <html:span class="tor-bridges-type-cell tor-bridges-grid-cell" - role="gridcell" + role="cell" ></html:span> <html:span class="tor-bridges-emojis-block" role="none"></html:span> <html:span class="tor-bridges-grid-end-block" role="none"> <html:span class="tor-bridges-address-cell tor-bridges-grid-cell" - role="gridcell" + role="cell" > <html:span class="tor-bridges-address-cell-text"></html:span> </html:span> ===================================== browser/locales/en-US/browser/tor-browser.ftl ===================================== @@ -84,12 +84,11 @@ tor-bridges-built-in-status-connected = Connected tor-bridges-type-prefix = { $type } bridge: # Shown at the start of a Tor bridge line, when the transport type is unknown (or "vanilla"). tor-bridges-type-prefix-generic = Tor bridge: -# The name and accessible description for a bridge emoji cell. Each bridge address can be hashed into four emojis shown to the user (bridgemoji feature). This cell corresponds to a *single* such emoji. The "title" should just be emojiName. The "aria-description" should give screen reader users enough of a hint that the cell contains a single emoji. +# Used for an image of a bridge emoji. Each bridge address can be hashed into four emojis shown to the user (bridgemoji feature). This string corresponds to a *single* such emoji. The "title" should just be emojiName. The "alt" should let screen readers know that the image is of a *single* emoji, as well as its name. # $emojiName (String) - The name of the emoji, already localized. -# E.g. with Orca screen reader in en-US this would read "unicorn. Row 2 Column 2. Emoji". -tor-bridges-emoji-cell = +tor-bridges-emoji-image = + .alt = Emoji: { $emojiName } .title = { $emojiName } - .aria-description = Emoji # The emoji name to show on hover when a bridge emoji's name is unknown. tor-bridges-emoji-unknown = Unknown # Shown when the bridge has been used for the most recent Tor circuit, i.e. the most recent bridge we have connected to. View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4b5aa8… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/compare/4b5aa8… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/mullvad-browser][mullvad-browser-115.8.0esr-13.5-1] fixup! MB 37: Customization for the about dialog
by Pier Angelo Vendrame (@pierov) 22 Feb '24

22 Feb '24
Pier Angelo Vendrame pushed to branch mullvad-browser-115.8.0esr-13.5-1 at The Tor Project / Applications / Mullvad Browser Commits: f3f3820b by Pier Angelo Vendrame at 2024-02-22T17:06:34+01:00 fixup! MB 37: Customization for the about dialog MB 270: Update support email - - - - - 2 changed files: - browser/base/content/aboutDialog.xhtml - browser/locales/en-US/browser/aboutDialogMullvad.ftl Changes: ===================================== browser/base/content/aboutDialog.xhtml ===================================== @@ -138,7 +138,7 @@ <description class="text-blurb"> <label is="text-link" href="https://mullvad.net/browser" data-l10n-id="mullvad-about-readMore"/> </description> - <description class="text-blurb" data-l10n-id="mullvad-about-feedback"/> + <description class="text-blurb" data-l10n-id="mullvad-about-feedback2" data-l10n-args='{"emailAddress":"support(a)mullvadvpn.net"}'/> </vbox> </vbox> </hbox> ===================================== browser/locales/en-US/browser/aboutDialogMullvad.ftl ===================================== @@ -4,5 +4,5 @@ mullvad-about-desc = { -brand-short-name } is a privacy-focused web browser developed in collaboration between <label data-l10n-name="mullvad-about-mullvadLink">Mullvad VPN</label> and the <label data-l10n-name="mullvad-about-torProjectLink">Tor Project</label>. It’s produced to minimize tracking and fingerprinting. mullvad-about-readMore = Read more -mullvad-about-feedback = Help & feedback: support(a)mullvad.net +mullvad-about-feedback2 = Help & feedback: { $emailAddress } mullvad-about-telemetryLink = Telemetry View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f3f… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/mullvad-browser/-/commit/f3f… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
[Git][tpo/applications/firefox-android][firefox-android-115.2.1-13.5-1] 4 commits: fixup! Modify build system
by Pier Angelo Vendrame (@pierov) 22 Feb '24

22 Feb '24
Pier Angelo Vendrame pushed to branch firefox-android-115.2.1-13.5-1 at The Tor Project / Applications / firefox-android Commits: 6c3669ee by clairehurst at 2024-02-21T18:55:49-07:00 fixup! Modify build system - - - - - cd3473f6 by clairehurst at 2024-02-21T20:41:44-07:00 fixup! Add Tor integration and UI Remove quick start - - - - - 5e60c209 by clairehurst at 2024-02-21T21:10:03-07:00 Implement Android-native Connection Assist UI - - - - - 7c1cc539 by clairehurst at 2024-02-21T21:10:03-07:00 fixup! Enable the connect assist experiments on alpha - - - - - 22 changed files: - fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt - fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt - fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorBetaConnectionFeaturesFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapFragment.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapStatus.kt - + fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt - + fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerTAS.kt - − fenix/app/src/main/java/org/mozilla/fenix/tor/bootstrap/TorQuickStart.kt - fenix/app/src/main/java/org/mozilla/fenix/tor/view/TorBootstrapConnectViewHolder.kt - + fenix/app/src/main/res/drawable/connect.xml - fenix/app/src/main/res/drawable/progress_gradient.xml - + fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml - fenix/app/src/main/res/layout/tor_bootstrap_connect.xml - fenix/app/src/main/res/layout/tor_network_settings_beta_connection_features.xml - fenix/app/src/main/res/navigation/nav_graph.xml - fenix/app/src/main/res/values/colors.xml - fenix/app/src/main/res/values/torbrowser_strings.xml - fenix/tools/tba-fetch-deps.sh Changes: ===================================== fenix/app/src/main/java/org/mozilla/fenix/BrowserDirection.kt ===================================== @@ -41,4 +41,5 @@ enum class BrowserDirection(@IdRes val fragmentId: Int) { FromLoginDetailFragment(R.id.loginDetailFragment), FromTabsTray(R.id.tabsTrayFragment), FromRecentlyClosed(R.id.recentlyClosedFragment), + FromTorConnectionAssistFragment(R.id.torConnectionAssistFragment) } ===================================== fenix/app/src/main/java/org/mozilla/fenix/HomeActivity.kt ===================================== @@ -157,6 +157,7 @@ import org.mozilla.fenix.tabstray.TabsTrayFragment import org.mozilla.fenix.tabstray.TabsTrayFragmentDirections import org.mozilla.fenix.theme.DefaultThemeManager import org.mozilla.fenix.theme.ThemeManager +import org.mozilla.fenix.tor.TorConnectionAssistFragmentDirections import org.mozilla.fenix.tor.TorEvents import org.mozilla.fenix.trackingprotection.TrackingProtectionPanelDialogFragmentDirections import org.mozilla.fenix.utils.BrowsersCache @@ -1085,6 +1086,10 @@ open class HomeActivity : LocaleAwareAppCompatActivity(), NavHostActivity, TorIn BrowserDirection.FromStudiesFragment -> StudiesFragmentDirections.actionGlobalBrowser( customTabSessionId, ) + BrowserDirection.FromTorConnectionAssistFragment, + -> TorConnectionAssistFragmentDirections.actionGlobalBrowser( + customTabSessionId, + ) } /** ===================================== fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt ===================================== @@ -115,7 +115,6 @@ import org.mozilla.fenix.search.toolbar.SearchSelectorMenu import org.mozilla.fenix.tabstray.TabsTrayAccessPoint import org.mozilla.fenix.tor.TorBootstrapFragmentDirections import org.mozilla.fenix.tor.TorBootstrapStatus -import org.mozilla.fenix.tor.bootstrap.TorQuickStart import org.mozilla.fenix.utils.Settings.Companion.TOP_SITES_PROVIDER_MAX_THRESHOLD import org.mozilla.fenix.utils.allowUndo import org.mozilla.fenix.wallpapers.Wallpaper @@ -202,7 +201,6 @@ class HomeFragment : Fragment() { private val recentBookmarksFeature = ViewBoundFeatureWrapper<RecentBookmarksFeature>() private val historyMetadataFeature = ViewBoundFeatureWrapper<RecentVisitsFeature>() private val searchSelectorBinding = ViewBoundFeatureWrapper<SearchSelectorBinding>() - private val torQuickStart by lazy { TorQuickStart(requireContext()) } private val searchSelectorMenuBinding = ViewBoundFeatureWrapper<SearchSelectorMenuBinding>() private lateinit var torBootstrapStatus: TorBootstrapStatus @@ -236,7 +234,6 @@ class HomeFragment : Fragment() { val components = requireComponents torBootstrapStatus = TorBootstrapStatus( - torQuickStart, !BuildConfig.DISABLE_TOR, components.torController, ::dispatchModeChanges ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorBetaConnectionFeaturesFragment.kt ===================================== @@ -54,10 +54,7 @@ class TorBetaConnectionFeaturesFragment : Fragment() { children.forEach { it.isEnabled = false } } } else { - // Do not enable the native UI until it is actually available. - // binding.enableBetaConnectionFeaturesModes.children.forEach { it.isEnabled = true } - binding.useNewBootstrapWithHtmlUiRadioButton.isEnabled = true - binding.useNewBootstrapWithNativeUiRadioButton.isEnabled = false + binding.enableBetaConnectionFeaturesModes.children.forEach { it.isEnabled = true } } } ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapFragment.kt ===================================== @@ -8,14 +8,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.annotation.VisibleForTesting import androidx.core.view.children import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import org.mozilla.fenix.BuildConfig import org.mozilla.fenix.databinding.FragmentHomeBinding import org.mozilla.fenix.ext.requireComponents -import org.mozilla.fenix.tor.bootstrap.TorQuickStart import org.mozilla.fenix.tor.interactor.DefaultTorBootstrapInteractor import org.mozilla.fenix.tor.interactor.TorBootstrapInteractor import androidx.navigation.fragment.findNavController @@ -30,7 +28,6 @@ import org.mozilla.fenix.tor.view.TorBootstrapView @Suppress("TooManyFunctions", "LargeClass") class TorBootstrapFragment : Fragment() { - private val torQuickStart by lazy { TorQuickStart(requireContext()) } internal var _binding: FragmentHomeBinding? = null private val binding get() = _binding!! @@ -55,7 +52,6 @@ class TorBootstrapFragment : Fragment() { val components = requireComponents torBootstrapStatus = TorBootstrapStatus( - torQuickStart, !BuildConfig.DISABLE_TOR, components.torController, ::dispatchModeChanges ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorBootstrapStatus.kt ===================================== @@ -4,11 +4,8 @@ package org.mozilla.fenix.tor -import org.mozilla.fenix.tor.bootstrap.TorQuickStart - @SuppressWarnings("LongParameterList", "TooManyFunctions") class TorBootstrapStatus( - private val torQuickStart: TorQuickStart, private val shouldStartTor: Boolean, private val torController: TorController, private val dispatchModeChanges: (isShouldBootstrap: Boolean) -> Unit @@ -18,7 +15,7 @@ class TorBootstrapStatus( torController.registerTorListener(this) } - fun isBootstrapping() = (shouldStartTor && (!torQuickStart.quickStartTor() && !torController.isBootstrapped)) + fun isBootstrapping() = (shouldStartTor && !torController.isBootstrapped) @SuppressWarnings("EmptyFunctionBlock") ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistFragment.kt ===================================== @@ -0,0 +1,131 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.tor + +import android.os.Build +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.fragment.app.viewModels +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.lifecycleScope +import androidx.lifecycle.repeatOnLifecycle +import androidx.navigation.fragment.findNavController +import kotlinx.coroutines.launch +import org.mozilla.fenix.R +import org.mozilla.fenix.databinding.FragmentTorConnectionAssistBinding +import org.mozilla.fenix.ext.hideToolbar + +class TorConnectionAssistFragment : Fragment() { + + private var _binding: FragmentTorConnectionAssistBinding? = null + private val binding get() = _binding!! + + private val viewModel: TorConnectionAssistViewModel by viewModels() + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle?, + ): View { + _binding = FragmentTorConnectionAssistBinding.inflate( + inflater, container, false, + ) + + return binding.root + } + + override fun onResume() { + super.onResume() + hideToolbar() + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + lifecycleScope.launch { + repeatOnLifecycle(Lifecycle.State.STARTED) { + viewModel.torConnectState.collect { + when (it) { + TorConnectState.Initial -> showConfiguring() + TorConnectState.Configuring -> showConfiguring() + TorConnectState.AutoBootstrapping -> showBootstrapping() + TorConnectState.Bootstrapping -> showBootstrapping() + TorConnectState.Error -> TODO() + TorConnectState.Bootstrapped -> openHome() + TorConnectState.Disabled -> openHome() + } + } + } + } + + viewModel.progress().observe( + viewLifecycleOwner, + ) { progress -> + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + binding.torBootstrapProgressBar.setProgress(progress, true) + } else { + binding.torBootstrapProgressBar.progress = progress + } + } + + viewModel.quickconnectToggle().observe( + viewLifecycleOwner + ) { + binding.quickstartSwitch.isChecked = it + } + + binding.settingsButton.setOnClickListener { + viewModel.cancelTorBootstrap() + openSettings() + } + + binding.torBootstrapConnectButton.setOnClickListener { + viewModel.handleConnect(lifecycleScope = lifecycleScope) + } + + binding.quickstartSwitch.setOnCheckedChangeListener { _, isChecked -> + viewModel.handleQuickstartChecked(isChecked) + } + } + + private fun showConfiguring() { + binding.torBootstrapConnectButton.visibility = View.VISIBLE + binding.torBootstrapNetworkSettingsButton.text = + getString(R.string.connection_assist_configure_connection_button) + binding.torBootstrapNetworkSettingsButton.setOnClickListener { + openTorNetworkSettings() + } + } + + private fun showBootstrapping() { + binding.torBootstrapConnectButton.visibility = View.INVISIBLE + binding.torBootstrapNetworkSettingsButton.text = getString(R.string.btn_cancel) + binding.torBootstrapNetworkSettingsButton.setOnClickListener { + viewModel.cancelTorBootstrap() + } + } + + private fun openSettings(preferenceToScrollTo: String? = null) { + findNavController().navigate( + TorConnectionAssistFragmentDirections + .actionTorConnectionAssistFragmentToSettingsFragment(preferenceToScrollTo), + ) + } + + private fun openTorNetworkSettings() { + findNavController().navigate( + TorConnectionAssistFragmentDirections + .actionTorConnectionAssistFragmentToTorNetworkSettings(), + ) + } + + private fun openHome() { + findNavController().navigate(TorConnectionAssistFragmentDirections.actionStartupHome()) + } + +} ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorConnectionAssistViewModel.kt ===================================== @@ -0,0 +1,86 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.fenix.tor + +import android.app.Application +import android.util.Log +import androidx.lifecycle.AndroidViewModel +import androidx.lifecycle.LifecycleCoroutineScope +import androidx.lifecycle.LiveData +import androidx.lifecycle.MutableLiveData +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import org.mozilla.fenix.ext.components + +class TorConnectionAssistViewModel( + application: Application, +) : AndroidViewModel(application), TorEvents { + + private val TAG = "torConnectionAssistVM" + private val components = getApplication<Application>().components + + private val _torController: TorControllerGV = components.torController as TorControllerGV + + private val _torConnectState = MutableStateFlow(TorConnectState.Initial) + internal val torConnectState: StateFlow<TorConnectState> = _torConnectState + + init { + _torController.registerTorListener(this) + } + + private val _progress = MutableLiveData(0) + fun progress(): LiveData<Int> { + return _progress + } + + private val _quickconnectToggle = MutableLiveData(_torController.quickstart) + fun quickconnectToggle(): LiveData<Boolean> { + return _quickconnectToggle + } + + fun handleConnect( + withDebugLogging: Boolean = false, + lifecycleScope: LifecycleCoroutineScope? = null, + ) { + _torController.initiateTorBootstrap( + withDebugLogging = withDebugLogging, + lifecycleScope = lifecycleScope, + ) + } + + fun handleQuickstartChecked(checked: Boolean) { + _torController.quickstart = checked + } + + fun cancelTorBootstrap() { + _torController.stopTor() + _torController.setTorStopped() + } + + override fun onTorConnecting() { + Log.d(TAG, "onTorConnecting()") + } + + override fun onTorConnected() { + Log.d(TAG, "onTorConnected()") + _torController.unregisterTorListener(this) + _torConnectState.value = _torController.lastKnownStatus + } + + override fun onTorStatusUpdate(entry: String?, status: String?, progress: Double?) { + Log.d(TAG, "onTorStatusUpdate($entry, $status, $progress)") + if (progress != null) { + _progress.value = progress.toInt() + } + _torConnectState.value = _torController.lastKnownStatus + } + + override fun onTorStopped() { + Log.d(TAG, "onTorStopped()") + _progress.value = 0 + _torConnectState.value = _torController.lastKnownStatus + } + +} ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorController.kt ===================================== @@ -49,6 +49,7 @@ interface TorController: TorEvents { var bridgesEnabled: Boolean var bridgeTransport: TorBridgeTransportConfig var userProvidedBridges: String? + var quickstart: Boolean fun start() fun stop() ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerGV.kt ===================================== @@ -52,7 +52,7 @@ class TorControllerGV( private var torListeners = mutableListOf<TorEvents>() - private var lastKnownStatus = TorConnectState.Initial + internal var lastKnownStatus = TorConnectState.Initial private var wasTorBootstrapped = false private var isTorRestarting = false @@ -66,6 +66,17 @@ class TorControllerGV( override val isBootstrapped get() = isTorBootstrapped override val isConnected get() = (lastKnownStatus.isStarted() && !isTorRestarting) + override var quickstart: Boolean + get() { + return getTorSettings()?.quickstart ?: false + } + set(value) { + getTorSettings()?.let { + it.quickstart = value + getTorIntegration().setSettings(it, true, true) + } + } + private fun getTorIntegration(): TorIntegrationAndroid { return (context.components.core.engine as GeckoEngine).getTorIntegrationController() } @@ -198,7 +209,7 @@ class TorControllerGV( } override fun setTorStopped() { - lastKnownStatus = TorConnectState.Disabled + lastKnownStatus = TorConnectState.Configuring onTorStopped() } @@ -243,7 +254,7 @@ class TorControllerGV( if (isTorRestarting) { initiateTorBootstrap() } else { - onTorStopped() + setTorStopped() } } @@ -280,6 +291,7 @@ class TorControllerGV( // TorEventsBootstrapStateChangeListener override fun onBootstrapError(message: String?, details: String?) { lastKnownStatus = TorConnectState.Error + onBootstrapStateChange(TorConnectState.Error.state) } // TorEventsBootstrapStateChangeListener ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/TorControllerTAS.kt ===================================== @@ -19,6 +19,7 @@ class TorControllerTAS (private val context: Context): TorController { private val lbm: LocalBroadcastManager = LocalBroadcastManager.getInstance(context) private val entries = mutableListOf<Pair<String?, String?>>() override val logEntries get() = entries + override var quickstart: Boolean = false // Stub, is never used private var torListeners = mutableListOf<TorEvents>() ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/bootstrap/TorQuickStart.kt deleted ===================================== @@ -1,54 +0,0 @@ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -package org.mozilla.fenix.tor.bootstrap - -import android.content.Context -import android.content.SharedPreferences -import android.os.StrictMode -import androidx.annotation.VisibleForTesting -import mozilla.components.support.ktx.android.content.PreferencesHolder -import mozilla.components.support.ktx.android.content.booleanPreference -import org.mozilla.fenix.ext.components - -class TorQuickStart(val context: Context) : PreferencesHolder { - - override val preferences: SharedPreferences = - context.components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { - context.getSharedPreferences( - PREF_NAME_TOR_BOOTSTRAP_KEY, - Context.MODE_PRIVATE - ) - } - - private var torQuickStart by booleanPreference(TOR_QUICK_START, default = false) - - fun quickStartTor() = - context.components.strictMode.resetAfter(StrictMode.allowThreadDiskReads()) { torQuickStart } - - fun enableQuickStartTor() { - torQuickStart = true - } - fun disableQuickStartTor() { - torQuickStart = false - } - fun setQuickStartTor(enabled: Boolean) = if (enabled) { - enableQuickStartTor() - } else { - disableQuickStartTor() - } - - companion object { - /** - * Name of the shared preferences file. - */ - private const val PREF_NAME_TOR_BOOTSTRAP_KEY = "tor.bootstrap" - - /** - * Key for [quickStartTor]. - */ - @VisibleForTesting - internal const val TOR_QUICK_START = "tor.bootstrap.quick_start_enabled" - } -} ===================================== fenix/app/src/main/java/org/mozilla/fenix/tor/view/TorBootstrapConnectViewHolder.kt ===================================== @@ -10,7 +10,6 @@ import org.mozilla.fenix.R import org.mozilla.fenix.components.Components import org.mozilla.fenix.databinding.TorBootstrapConnectBinding import org.mozilla.fenix.tor.TorEvents -import org.mozilla.fenix.tor.bootstrap.TorQuickStart import org.mozilla.fenix.tor.interactor.TorBootstrapInteractor class TorBootstrapConnectViewHolder( @@ -23,17 +22,6 @@ class TorBootstrapConnectViewHolder( init { binding = TorBootstrapConnectBinding.bind(view) - val torQuickStart = TorQuickStart(view.context) - setQuickStartDescription(view, torQuickStart) - - with(binding.quickStartToggle) { - setOnCheckedChangeListener { _, isChecked -> - torQuickStart.setQuickStartTor(isChecked) - setQuickStartDescription(view, torQuickStart) - } - - isChecked = torQuickStart.quickStartTor() - } with(binding.torBootstrapNetworkSettingsButton) { setOnClickListener { @@ -66,20 +54,6 @@ class TorBootstrapConnectViewHolder( components.torController.registerTorListener(this) } - private fun setQuickStartDescription(view: View, torQuickStart: TorQuickStart) { - val resources = view.context.resources - val appName = resources.getString(R.string.app_name) - if (torQuickStart.quickStartTor()) { - binding.torBootstrapQuickStartDescription.text = resources.getString( - R.string.tor_bootstrap_quick_start_enabled, appName - ) - } else { - binding.torBootstrapQuickStartDescription.text = resources.getString( - R.string.tor_bootstrap_quick_start_disabled - ) - } - } - @SuppressWarnings("EmptyFunctionBlock") override fun onTorConnecting() { } ===================================== fenix/app/src/main/res/drawable/connect.xml ===================================== @@ -0,0 +1,17 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="40dp" + android:height="40dp" + android:viewportWidth="40" + android:viewportHeight="40"> + <path + android:pathData="M20,1.253C9.647,1.253 1.253,9.647 1.253,20C1.253,28.967 7.547,36.46 15.96,38.307C16.84,38.5 17.733,38.633 18.653,38.693V24.373C16.787,23.8 15.427,22.06 15.427,20C15.427,17.473 17.473,15.427 20,15.427C22.527,15.427 24.573,17.473 24.573,20C24.573,22.06 23.213,23.8 21.347,24.373V38.693C22.267,38.633 23.16,38.5 24.04,38.307C32.453,36.46 38.747,28.967 38.747,20C38.747,9.647 30.353,1.253 20,1.253ZM24.04,35.293V26.32C26.12,24.987 27.5,22.653 27.5,20C27.5,15.86 24.14,12.5 20,12.5C15.86,12.5 12.5,15.86 12.5,20C12.5,22.653 13.88,24.987 15.96,26.32V35.293C9.18,33.513 4.18,27.347 4.18,20C4.18,11.26 11.26,4.18 20,4.18C28.74,4.18 35.82,11.26 35.82,20C35.82,27.347 30.82,33.513 24.04,35.293Z" + android:fillColor="#FBFBFE" + android:fillType="evenOdd"/> + <path + android:pathData="M20,6.873C12.753,6.873 6.873,12.753 6.873,20C6.873,25.84 10.687,30.787 15.96,32.487V29.36C12.34,27.8 9.807,24.193 9.807,20C9.807,14.367 14.367,9.807 20,9.807C25.633,9.807 30.193,14.367 30.193,20C30.193,24.193 27.66,27.8 24.04,29.36V32.487C29.313,30.787 33.127,25.84 33.127,20C33.127,12.753 27.247,6.873 20,6.873Z" + android:fillColor="#FBFBFE" + android:fillType="evenOdd"/> + <path + android:pathData="M20,22.1C21.16,22.1 22.1,21.159 22.1,20C22.1,18.84 21.16,17.9 20,17.9C18.84,17.9 17.9,18.84 17.9,20C17.9,21.159 18.84,22.1 20,22.1Z" + android:fillColor="#FBFBFE"/> +</vector> ===================================== fenix/app/src/main/res/drawable/progress_gradient.xml ===================================== @@ -12,16 +12,10 @@ <item android:id="@android:id/progress"> <scale android:scaleWidth="100%"> <shape> - <corners - android:bottomLeftRadius="0dp" - android:bottomRightRadius="8dp" - android:topLeftRadius="0dp" - android:topRightRadius="8dp"/> <gradient - android:angle="45" - android:centerColor="#F10366" - android:endColor="#FF9100" - android:startColor="#6173FF" /> + android:angle="0" + android:endColor="#00DBDE" + android:startColor="#FC00FF"/> </shape> </scale> </item> ===================================== fenix/app/src/main/res/layout/fragment_tor_connection_assist.xml ===================================== @@ -0,0 +1,146 @@ +<?xml version="1.0" encoding="utf-8"?><!-- This Source Code Form is subject to the terms of the Mozilla Public + - License, v. 2.0. If a copy of the MPL was not distributed with this + - file, You can obtain one at http://mozilla.org/MPL/2.0/. --> +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/tor_bootstrap_background_gradient"> + + <ProgressBar + android:id="@+id/tor_bootstrap_progress_bar" + style="?android:attr/progressBarStyleHorizontal" + android:layout_width="match_parent" + android:layout_height="6dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + <ImageView + android:id="@+id/settings_button" + android:layout_width="24dp" + android:layout_height="24dp" + android:layout_marginTop="26dp" + android:layout_marginEnd="20dp" + android:contentDescription="@string/settings" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:srcCompat="@drawable/mozac_ic_settings" /> + + <ImageView + android:id="@+id/tor_connect_image" + android:layout_width="40dp" + android:layout_height="40dp" + android:layout_marginStart="24dp" + android:contentDescription="@string/tor_bootstrap_connect" + android:visibility="visible" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/tor_bootstrap_progress_bar" + app:layout_constraintVertical_bias="0.075" + app:srcCompat="@drawable/connect" /> + + <TextView + android:id="@+id/title_large_text_view" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginTop="24dp" + android:layout_marginEnd="24dp" + android:text="@string/connection_assist_tor_connect_title" + android:textColor="#FBFBFE" + android:textFontWeight="400" + android:textSize="22sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/tor_connect_image" /> + + <TextView + android:id="@+id/connect_to_tor_description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="24dp" + android:text="@string/preferences_tor_network_settings_explanation" + android:textColor="#FBFBFE" + android:textFontWeight="400" + android:textSize="14sp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/title_large_text_view" /> + + <TextView + android:id="@+id/connect_automatically" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginTop="24dp" + android:text="@string/connection_assist_always_connect_automatically_toggle_description" + android:textColor="#FBFBFE" + android:textSize="14sp" + app:layout_constraintBottom_toBottomOf="@+id/quickstart_switch" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="@+id/quickstart_switch" + app:layout_constraintVertical_bias="1.25" /> + + <com.google.android.material.switchmaterial.SwitchMaterial + android:id="@+id/quickstart_switch" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="24dp" + android:layout_marginEnd="24dp" + android:layout_marginBottom="24dp" + android:enabled="false" + android:gravity="center" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/connect_to_tor_description" + app:layout_goneMarginEnd="6dp" + app:layout_goneMarginTop="9dp" /> + + <Button + android:id="@+id/tor_bootstrap_connect_button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginEnd="24dp" + android:layout_marginBottom="8dp" + android:background="@drawable/rounded_corners" + android:backgroundTint="@color/connect_button_purple" + android:maxWidth="312dp" + android:text="@string/tor_bootstrap_connect" + android:textAllCaps="false" + android:textColor="#FBFBFE" + android:textFontWeight="500" + android:textSize="14sp" + android:textStyle="bold" + app:layout_constraintBottom_toTopOf="@id/tor_bootstrap_network_settings_button" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="0.0" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/quickstart_switch" + app:layout_constraintVertical_bias="1" /> + + + <Button + android:id="@+id/tor_bootstrap_network_settings_button" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginStart="24dp" + android:layout_marginEnd="24dp" + android:layout_marginBottom="24dp" + android:background="@drawable/rounded_corners" + android:backgroundTint="@color/configure_connection_button_white" + android:maxWidth="312dp" + android:text="@string/connection_assist_configure_connection_button" + android:textAllCaps="false" + android:textColor="#15141A" + android:textFontWeight="500" + android:textSize="14sp" + android:textStyle="bold" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" /> + +</androidx.constraintlayout.widget.ConstraintLayout> ===================================== fenix/app/src/main/res/layout/tor_bootstrap_connect.xml ===================================== @@ -44,42 +44,6 @@ android:layout_height="wrap_content" android:layout_above="@id/tor_bootstrap_connect_button" /> - <TextView - android:id="@+id/quick_start_label" - android:visibility="gone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/library_item_icon_margin_horizontal" - android:layout_marginEnd="@dimen/library_item_icon_margin_horizontal" - android:layout_above="@id/tor_bootstrap_quick_start_description" - android:layout_toEndOf="@id/quick_start_toggle" - android:paddingStart="8dp" - android:paddingEnd="8dp" - android:clickable="false" - android:textAppearance="@style/ListItemTextStyle" - android:textColor="#EEEEEE" - android:text="@string/tor_bootstrap_quick_start_label" - android:textSize="18sp" /> - - <TextView - android:id="@+id/tor_bootstrap_quick_start_description" - android:visibility="gone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginStart="@dimen/library_item_icon_margin_horizontal" - android:layout_marginEnd="@dimen/library_item_icon_margin_horizontal" - android:paddingStart="8dp" - android:paddingEnd="8dp" - android:clickable="false" - android:layout_marginBottom="20dp" - android:textAppearance="@style/ListItemTextStyle" - android:layout_toEndOf="@id/quick_start_toggle" - android:layout_above="@id/tor_bootstrap_connect_button" - android:textColor="#FFBBBBBB" - android:text="@string/tor_bootstrap_quick_start_disabled" - android:lines="3" - android:textSize="18sp" /> - <Button android:id="@+id/tor_bootstrap_connect_button" android:layout_width="wrap_content" ===================================== fenix/app/src/main/res/layout/tor_network_settings_beta_connection_features.xml ===================================== @@ -84,7 +84,6 @@ android:background="?android:attr/selectableItemBackground" android:button="@null" android:drawablePadding="@dimen/radio_button_preference_drawable_padding" - android:enabled="false" android:paddingStart="@dimen/radio_button_preference_horizontal" android:paddingTop="@dimen/radio_button_preference_vertical" android:paddingEnd="@dimen/radio_button_preference_horizontal" ===================================== fenix/app/src/main/res/navigation/nav_graph.xml ===================================== @@ -277,6 +277,31 @@ app:popExitAnim="@anim/slide_out_right" /> </fragment> + <fragment + android:id="@+id/torConnectionAssistFragment" + android:name="org.mozilla.fenix.tor.TorConnectionAssistFragment" + tools:layout="@layout/fragment_home"> + <action + android:id="@+id/action_home" + app:destination="@id/homeFragment" + app:popUpTo="@id/torConnectionAssistFragment" + app:popUpToInclusive="true" /> + <action + android:id="@+id/action_torConnectionAssistFragment_to_SettingsFragment" + app:destination="@id/settingsFragment" + app:enterAnim="@anim/slide_in_right" + app:exitAnim="@anim/slide_out_left" + app:popEnterAnim="@anim/slide_in_left" + app:popExitAnim="@anim/slide_out_right" /> + <action + android:id="@+id/action_torConnectionAssistFragment_to_TorNetworkSettings" + app:destination="@id/torNetworkSettingsFragment" + app:enterAnim="@anim/slide_in_right" + app:exitAnim="@anim/slide_out_left" + app:popEnterAnim="@anim/slide_in_left" + app:popExitAnim="@anim/slide_out_right" /> + </fragment> + <dialog android:id="@+id/homeOnboardingDialogFragment" android:name="org.mozilla.fenix.onboarding.HomeOnboardingDialogFragment" /> @@ -769,6 +794,13 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> + <action + android:id="@+id/action_settingsFragment_to_TorConnectionAssistFragment" + app:destination="@id/torConnectionAssistFragment" + app:enterAnim="@anim/slide_in_right" + app:exitAnim="@anim/slide_out_left" + app:popEnterAnim="@anim/slide_in_left" + app:popExitAnim="@anim/slide_out_right" /> </fragment> <dialog android:id="@+id/profilerStartDialogFragment" ===================================== fenix/app/src/main/res/values/colors.xml ===================================== @@ -340,4 +340,9 @@ <!-- Material Design colors --> <color name="material_scrim_color">#52000000</color> + + <!-- Connection Assist --> + <color name="connect_button_purple">#9059FF</color> + <color name="configure_connection_button_white">#E1E0E7</color> + </resources> ===================================== fenix/app/src/main/res/values/torbrowser_strings.xml ===================================== @@ -75,4 +75,73 @@ <!-- Onion location --> <string name="preferences_tor_prioritize_onions">Prioritize .onion sites</string> + <!-- Connection assist. --> + <string name="connection_assist_tor_connect_title">Connect to Tor</string> + <!-- Connection assist. --> + <string name="connection_assist_always_connect_automatically_toggle_description">Always connect automatically</string> + <!-- Connection assist. --> + <string name="connection_assist_configure_connection_button">Configure connection…</string> + + <!-- Connection assist. --> + <string name="connection_assist_connecting_title">Establishing a connection…</string> + + <!-- Connection assist. --> + <string name="connection_assist_internet_error_title">We can’t reach the internet</string> + <!-- Connection assist. %1$s is connection_assist_internet_error_learn_more--> + <string name="connection_assist_internet_error_description">This could be due to a connection issue rather than Tor being blocked. Check your internet connection, proxy, and firewall settings before trying again. %1$s</string> + <!-- Connection assist. --> + <string name="connection_assist_internet_error_learn_more">Learn more</string> + <!-- Connection assist. --> + <string name="connection_assist_internet_error_try_again">Try again</string> + + <!-- Connection assist. --> + <string name="connection_assist_trying_again_waiting_title">Trying again…</string> + + <!-- Connection assist. --> + <string name="connection_assist_cant_connect_to_tor_title">We can’t connect to Tor directly</string> + <!-- Connection assist. %1$s is connection_assist_try_a_bridge_learn_more--> + <string name="connection_assist_try_a_bridge_description">Try connecting via a bridge instead. By providing your location, we can look up the bridge that’s most likely to unblock the internet in your country or region. %1$s</string> + <!-- Connection assist. --> + <string name="connection_assist_unblock_the_internet_in_country_or_region">Unblock the internet in:</string> + <!-- Connection assist. --> + <string name="connection_assist_share_my_location_country_or_region">Share my location</string> + <!-- Connection assist. --> + <string name="connection_assist_try_a_bridge_button">Try a bridge</string> + + <!-- Connection assist. %1$s is connection_assist_choose_a_bridge_manually_link--> + <string name="connection_assist_try_a_bridge_learn_more_description1">Tor Browser will need to establish a brief non-Tor connection to determine your location and look up a bridge. If you don’t want to do that, you can %1$s instead.</string> + <!-- Connection assist. --> + <string name="connection_assist_choose_a_bridge_manually_link">choose a bridge manually</string> + <!-- Connection assist. %s is the error code--> + <string name="connection_assist_try_a_bridge_learn_more_error_code">Error code: %s</string> + + <!-- Connection assist. --> + <string name="connection_assist_trying_a_bridge_title">Trying a bridge…</string> + + <!-- Connection assist. --> + <string name="connection_assist_location_error_title">We couldn’t find your location</string> + <!-- Connection assist. %1$s is connection_assist_find_bridge_location_description, %2$s is connection_assist_select_country_try_again, %3$s is connection_assist_location_error_learn_more_link--> + <string name="connection_assist_location_error_description" translatable="false">%1$s %2$s %3$s</string> + <string name="connection_assist_find_bridge_location_description">To find a bridge that can unblock your internet, we need to know where you’re connecting from.</string> + <string name="connection_assist_select_country_try_again">Select your country or region and try again.</string> + <!-- Connection assist. %1$s is connection_assist_find_bridge_location_description, %2$s is connection_assist_check_location_settings_try_again. %3$s is connection_assist_location_error_learn_more_link--> + <string name="connection_assist_location_error_last_try_description">%1$s %2$s %3$s</string> + <string name="connection_assist_check_location_settings_try_again">Please check your location settings are correct and try again.</string> + + <string name="connection_assist_location_error_learn_more_link">Learn more</string> + + <!-- Connection assist. --> + <string name="connection_assist_location_check_title">We’re still having trouble connecting</string> + + <!-- Connection assist. --> + <string name="connection_assist_last_try_title">Trying one more time…</string> + + <!-- Connection assist. --> + <string name="connection_assist_final_error_title">We weren’t able to connect automatically</string> + <!-- Connection assist. %1$s is connection_assist_final_error_troubleshoot_connection_link. %2$s is connection_assist_final_error_learn_more_link--> + <string name="connection_assist_final_error_description1">Despite our best efforts, we weren’t able to connect to Tor. We recommend %1$s and adding a bridge manually instead. %2$s</string> + <!-- Connection assist. --> + <string name="connection_assist_final_error_troubleshoot_connection_link">troubleshooting your connection</string> + <!-- Connection assist. --> + <string name="connection_assist_final_error_learn_more_link">Learn more</string> </resources> ===================================== fenix/tools/tba-fetch-deps.sh ===================================== @@ -14,7 +14,7 @@ fi onion_proxy_library="$(ls -1td "$TOR_BROWSER_BUILD/out/tor-onion-proxy-library/"tor-onion-proxy-library-* | head -1)" if [ -z "$onion_proxy_library" ]; then - echo "Cannot find Tor Onoin Proxy library artifacts!" + echo "Cannot find Tor Onion Proxy library artifacts!" exit 2 fi View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/compare/16… -- View it on GitLab: https://gitlab.torproject.org/tpo/applications/firefox-android/-/compare/16… You're receiving this email because of your account on gitlab.torproject.org.
1 0
0 0
  • ← Newer
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ...
  • 12
  • Older →

HyperKitty Powered by HyperKitty version 1.3.12.