tbb-commits
Threads by month
- ----- 2026 -----
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- 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
- 1 participants
- 19802 discussions
07 Aug '19
commit 8c5a555b50274aabf0498a2da39696e4cde77cf7
Merge: cbf7172b 45b99073
Author: Georg Koppen <gk(a)torproject.org>
Date: Wed Aug 7 19:15:41 2019 +0000
Merge remote-tracking branch 'acat/10760+1'
.gitignore | 1 -
src/CREDITS => CREDITS | 0
README | 23 -
README.BUILD | 19 -
README.RELEASE | 107 -
src/chrome.manifest => chrome.manifest | 12 -
.../content/aboutTor/aboutTor-content.js | 0
.../content/aboutTor/aboutTor.xhtml | 0
.../content/locale/non-localized.properties | 0
.../content/preferences-mobile.js | 10 +-
{src/chrome => chrome}/content/preferences.xhtml | 0
.../content/tor-circuit-display.js | 18 +-
{src/chrome => chrome}/content/torbutton.js | 230 +-
{src/chrome => chrome}/content/torbutton_util.js | 14 +-
{src/chrome => chrome}/locale/af/aboutTor.dtd | 0
{src/chrome => chrome}/locale/af/brand.dtd | 0
{src/chrome => chrome}/locale/af/brand.properties | 0
{src/chrome => chrome}/locale/af/torbutton.dtd | 0
.../locale/af/torbutton.properties | 0
{src/chrome => chrome}/locale/ak/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ak/brand.dtd | 0
{src/chrome => chrome}/locale/ak/brand.properties | 0
{src/chrome => chrome}/locale/ak/torbutton.dtd | 0
.../locale/ak/torbutton.properties | 0
{src/chrome => chrome}/locale/am/aboutTor.dtd | 0
{src/chrome => chrome}/locale/am/brand.dtd | 0
{src/chrome => chrome}/locale/am/brand.properties | 0
{src/chrome => chrome}/locale/am/torbutton.dtd | 0
.../locale/am/torbutton.properties | 0
{src/chrome => chrome}/locale/ar/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ar/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ar/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ar/brand.dtd | 0
{src/chrome => chrome}/locale/ar/brand.properties | 0
.../locale/ar/browserOnboarding.properties | 0
.../locale/ar/securityLevel.properties | 0
{src/chrome => chrome}/locale/ar/torbutton.dtd | 0
.../locale/ar/torbutton.properties | 0
{src/chrome => chrome}/locale/arn/aboutTor.dtd | 0
{src/chrome => chrome}/locale/arn/brand.dtd | 0
{src/chrome => chrome}/locale/arn/brand.properties | 0
{src/chrome => chrome}/locale/arn/torbutton.dtd | 0
.../locale/arn/torbutton.properties | 0
{src/chrome => chrome}/locale/ast/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ast/brand.dtd | 0
{src/chrome => chrome}/locale/ast/brand.properties | 0
{src/chrome => chrome}/locale/ast/torbutton.dtd | 0
.../locale/ast/torbutton.properties | 0
{src/chrome => chrome}/locale/az/aboutTor.dtd | 0
{src/chrome => chrome}/locale/az/brand.dtd | 0
{src/chrome => chrome}/locale/az/brand.properties | 0
.../locale/az/securityLevel.properties | 0
{src/chrome => chrome}/locale/az/torbutton.dtd | 0
.../locale/az/torbutton.properties | 0
{src/chrome => chrome}/locale/be/aboutTor.dtd | 0
{src/chrome => chrome}/locale/be/brand.dtd | 0
{src/chrome => chrome}/locale/be/brand.properties | 0
{src/chrome => chrome}/locale/be/torbutton.dtd | 0
.../locale/be/torbutton.properties | 0
{src/chrome => chrome}/locale/bg/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bg/brand.dtd | 0
{src/chrome => chrome}/locale/bg/brand.properties | 0
.../locale/bg/securityLevel.properties | 0
{src/chrome => chrome}/locale/bg/torbutton.dtd | 0
.../locale/bg/torbutton.properties | 0
{src/chrome => chrome}/locale/bms/aboutTor.dtd | 0
.../locale/bms/securityLevel.properties | 0
{src/chrome => chrome}/locale/bms/torbutton.dtd | 0
.../locale/bms/torbutton.properties | 0
.../chrome => chrome}/locale/bn-BD/aboutDialog.dtd | 0
.../locale/bn-BD/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/bn-BD/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bn-BD/brand.dtd | 0
.../locale/bn-BD/brand.properties | 0
.../locale/bn-BD/browserOnboarding.properties | 0
.../locale/bn-BD/securityLevel.properties | 0
{src/chrome => chrome}/locale/bn-BD/torbutton.dtd | 0
.../locale/bn-BD/torbutton.properties | 0
{src/chrome => chrome}/locale/bn-IN/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bn-IN/brand.dtd | 0
.../locale/bn-IN/brand.properties | 0
{src/chrome => chrome}/locale/bn-IN/torbutton.dtd | 0
.../locale/bn-IN/torbutton.properties | 0
{src/chrome => chrome}/locale/bn/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bn/brand.dtd | 0
{src/chrome => chrome}/locale/bn/brand.properties | 0
{src/chrome => chrome}/locale/bn/torbutton.dtd | 0
.../locale/bn/torbutton.properties | 0
{src/chrome => chrome}/locale/bo/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bo/brand.dtd | 0
{src/chrome => chrome}/locale/bo/brand.properties | 0
{src/chrome => chrome}/locale/bo/torbutton.dtd | 0
.../locale/bo/torbutton.properties | 0
{src/chrome => chrome}/locale/br/aboutTor.dtd | 0
{src/chrome => chrome}/locale/br/brand.dtd | 0
{src/chrome => chrome}/locale/br/brand.properties | 0
{src/chrome => chrome}/locale/br/torbutton.dtd | 0
.../locale/br/torbutton.properties | 0
{src/chrome => chrome}/locale/bs/aboutTor.dtd | 0
{src/chrome => chrome}/locale/bs/brand.dtd | 0
{src/chrome => chrome}/locale/bs/brand.properties | 0
.../locale/bs/securityLevel.properties | 0
{src/chrome => chrome}/locale/bs/torbutton.dtd | 0
.../locale/bs/torbutton.properties | 0
{src/chrome => chrome}/locale/ca/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ca/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ca/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ca/brand.dtd | 0
{src/chrome => chrome}/locale/ca/brand.properties | 0
.../locale/ca/browserOnboarding.properties | 0
.../locale/ca/securityLevel.properties | 0
{src/chrome => chrome}/locale/ca/torbutton.dtd | 0
.../locale/ca/torbutton.properties | 0
{src/chrome => chrome}/locale/cs/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/cs/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/cs/aboutTor.dtd | 0
{src/chrome => chrome}/locale/cs/brand.dtd | 0
{src/chrome => chrome}/locale/cs/brand.properties | 0
.../locale/cs/browserOnboarding.properties | 0
.../locale/cs/securityLevel.properties | 0
{src/chrome => chrome}/locale/cs/torbutton.dtd | 0
.../locale/cs/torbutton.properties | 0
{src/chrome => chrome}/locale/csb/aboutTor.dtd | 0
{src/chrome => chrome}/locale/csb/brand.dtd | 0
{src/chrome => chrome}/locale/csb/brand.properties | 0
{src/chrome => chrome}/locale/csb/torbutton.dtd | 0
.../locale/csb/torbutton.properties | 0
{src/chrome => chrome}/locale/cy/aboutTor.dtd | 0
{src/chrome => chrome}/locale/cy/brand.dtd | 0
{src/chrome => chrome}/locale/cy/brand.properties | 0
{src/chrome => chrome}/locale/cy/torbutton.dtd | 0
.../locale/cy/torbutton.properties | 0
{src/chrome => chrome}/locale/da/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/da/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/da/aboutTor.dtd | 0
{src/chrome => chrome}/locale/da/brand.dtd | 0
{src/chrome => chrome}/locale/da/brand.properties | 0
.../locale/da/browserOnboarding.properties | 0
.../locale/da/securityLevel.properties | 0
{src/chrome => chrome}/locale/da/torbutton.dtd | 0
.../locale/da/torbutton.properties | 0
{src/chrome => chrome}/locale/de/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/de/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/de/aboutTor.dtd | 0
{src/chrome => chrome}/locale/de/brand.dtd | 0
{src/chrome => chrome}/locale/de/brand.properties | 0
.../locale/de/browserOnboarding.properties | 0
.../locale/de/securityLevel.properties | 0
{src/chrome => chrome}/locale/de/torbutton.dtd | 0
.../locale/de/torbutton.properties | 0
{src/chrome => chrome}/locale/dz/aboutTor.dtd | 0
{src/chrome => chrome}/locale/dz/brand.dtd | 0
{src/chrome => chrome}/locale/dz/brand.properties | 0
{src/chrome => chrome}/locale/dz/torbutton.dtd | 0
.../locale/dz/torbutton.properties | 0
{src/chrome => chrome}/locale/el/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/el/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/el/aboutTor.dtd | 0
{src/chrome => chrome}/locale/el/brand.dtd | 0
{src/chrome => chrome}/locale/el/brand.properties | 0
.../locale/el/browserOnboarding.properties | 0
.../locale/el/securityLevel.properties | 0
{src/chrome => chrome}/locale/el/torbutton.dtd | 0
.../locale/el/torbutton.properties | 0
.../chrome => chrome}/locale/en-US/aboutDialog.dtd | 0
.../locale/en-US/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/en-US/aboutTor.dtd | 0
{src/chrome => chrome}/locale/en-US/brand.dtd | 0
.../locale/en-US/brand.properties | 0
.../locale/en-US/browserOnboarding.properties | 0
.../locale/en-US/securityLevel.properties | 0
{src/chrome => chrome}/locale/en-US/torbutton.dtd | 0
.../locale/en-US/torbutton.properties | 0
{src/chrome => chrome}/locale/eo/aboutTor.dtd | 0
{src/chrome => chrome}/locale/eo/brand.dtd | 0
{src/chrome => chrome}/locale/eo/brand.properties | 0
.../locale/eo/securityLevel.properties | 0
{src/chrome => chrome}/locale/eo/torbutton.dtd | 0
.../locale/eo/torbutton.properties | 0
.../chrome => chrome}/locale/es-AR/aboutDialog.dtd | 0
.../locale/es-AR/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/es-AR/aboutTor.dtd | 0
{src/chrome => chrome}/locale/es-AR/brand.dtd | 0
.../locale/es-AR/brand.properties | 0
.../locale/es-AR/browserOnboarding.properties | 0
.../locale/es-AR/securityLevel.properties | 0
{src/chrome => chrome}/locale/es-AR/torbutton.dtd | 0
.../locale/es-AR/torbutton.properties | 0
.../chrome => chrome}/locale/es-ES/aboutDialog.dtd | 0
.../locale/es-ES/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/es-ES/aboutTor.dtd | 0
{src/chrome => chrome}/locale/es-ES/brand.dtd | 0
.../locale/es-ES/brand.properties | 0
.../locale/es-ES/browserOnboarding.properties | 0
.../locale/es-ES/securityLevel.properties | 0
{src/chrome => chrome}/locale/es-ES/torbutton.dtd | 0
.../locale/es-ES/torbutton.properties | 0
{src/chrome => chrome}/locale/et/aboutTor.dtd | 0
{src/chrome => chrome}/locale/et/brand.dtd | 0
{src/chrome => chrome}/locale/et/brand.properties | 0
{src/chrome => chrome}/locale/et/torbutton.dtd | 0
.../locale/et/torbutton.properties | 0
{src/chrome => chrome}/locale/eu/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/eu/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/eu/aboutTor.dtd | 0
{src/chrome => chrome}/locale/eu/brand.dtd | 0
{src/chrome => chrome}/locale/eu/brand.properties | 0
.../locale/eu/browserOnboarding.properties | 0
.../locale/eu/securityLevel.properties | 0
{src/chrome => chrome}/locale/eu/torbutton.dtd | 0
.../locale/eu/torbutton.properties | 0
{src/chrome => chrome}/locale/fa/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/fa/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/fa/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fa/brand.dtd | 0
{src/chrome => chrome}/locale/fa/brand.properties | 0
.../locale/fa/browserOnboarding.properties | 0
.../locale/fa/securityLevel.properties | 0
{src/chrome => chrome}/locale/fa/torbutton.dtd | 0
.../locale/fa/torbutton.properties | 0
{src/chrome => chrome}/locale/fi/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fi/brand.dtd | 0
{src/chrome => chrome}/locale/fi/brand.properties | 0
.../locale/fi/securityLevel.properties | 0
{src/chrome => chrome}/locale/fi/torbutton.dtd | 0
.../locale/fi/torbutton.properties | 0
{src/chrome => chrome}/locale/fil/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fil/brand.dtd | 0
{src/chrome => chrome}/locale/fil/brand.properties | 0
{src/chrome => chrome}/locale/fil/torbutton.dtd | 0
.../locale/fil/torbutton.properties | 0
{src/chrome => chrome}/locale/fo/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fo/brand.dtd | 0
{src/chrome => chrome}/locale/fo/brand.properties | 0
{src/chrome => chrome}/locale/fo/torbutton.dtd | 0
.../locale/fo/torbutton.properties | 0
{src/chrome => chrome}/locale/fr/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/fr/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/fr/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fr/brand.dtd | 0
{src/chrome => chrome}/locale/fr/brand.properties | 0
.../locale/fr/browserOnboarding.properties | 0
.../locale/fr/securityLevel.properties | 0
{src/chrome => chrome}/locale/fr/torbutton.dtd | 0
.../locale/fr/torbutton.properties | 0
{src/chrome => chrome}/locale/fur/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fur/brand.dtd | 0
{src/chrome => chrome}/locale/fur/brand.properties | 0
{src/chrome => chrome}/locale/fur/torbutton.dtd | 0
.../locale/fur/torbutton.properties | 0
{src/chrome => chrome}/locale/fy/aboutTor.dtd | 0
{src/chrome => chrome}/locale/fy/brand.dtd | 0
{src/chrome => chrome}/locale/fy/brand.properties | 0
{src/chrome => chrome}/locale/fy/torbutton.dtd | 0
.../locale/fy/torbutton.properties | 0
.../chrome => chrome}/locale/ga-IE/aboutDialog.dtd | 0
.../locale/ga-IE/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ga-IE/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ga-IE/brand.dtd | 0
.../locale/ga-IE/brand.properties | 0
.../locale/ga-IE/browserOnboarding.properties | 0
.../locale/ga-IE/securityLevel.properties | 0
{src/chrome => chrome}/locale/ga-IE/torbutton.dtd | 0
.../locale/ga-IE/torbutton.properties | 0
{src/chrome => chrome}/locale/gl/aboutTor.dtd | 0
{src/chrome => chrome}/locale/gl/brand.dtd | 0
{src/chrome => chrome}/locale/gl/brand.properties | 0
.../locale/gl/securityLevel.properties | 0
{src/chrome => chrome}/locale/gl/torbutton.dtd | 0
.../locale/gl/torbutton.properties | 0
{src/chrome => chrome}/locale/gu/aboutTor.dtd | 0
{src/chrome => chrome}/locale/gu/brand.dtd | 0
{src/chrome => chrome}/locale/gu/brand.properties | 0
.../locale/gu/securityLevel.properties | 0
{src/chrome => chrome}/locale/gu/torbutton.dtd | 0
.../locale/gu/torbutton.properties | 0
{src/chrome => chrome}/locale/gun/aboutTor.dtd | 0
{src/chrome => chrome}/locale/gun/brand.dtd | 0
{src/chrome => chrome}/locale/gun/brand.properties | 0
{src/chrome => chrome}/locale/gun/torbutton.dtd | 0
.../locale/gun/torbutton.properties | 0
{src/chrome => chrome}/locale/ha/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ha/brand.dtd | 0
{src/chrome => chrome}/locale/ha/brand.properties | 0
{src/chrome => chrome}/locale/ha/torbutton.dtd | 0
.../locale/ha/torbutton.properties | 0
{src/chrome => chrome}/locale/he/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/he/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/he/aboutTor.dtd | 0
{src/chrome => chrome}/locale/he/brand.dtd | 0
{src/chrome => chrome}/locale/he/brand.properties | 0
.../locale/he/browserOnboarding.properties | 0
.../locale/he/securityLevel.properties | 0
{src/chrome => chrome}/locale/he/torbutton.dtd | 0
.../locale/he/torbutton.properties | 0
{src/chrome => chrome}/locale/hi/aboutTor.dtd | 0
{src/chrome => chrome}/locale/hi/brand.dtd | 0
{src/chrome => chrome}/locale/hi/brand.properties | 0
{src/chrome => chrome}/locale/hi/torbutton.dtd | 0
.../locale/hi/torbutton.properties | 0
{src/chrome => chrome}/locale/hr/aboutTor.dtd | 0
{src/chrome => chrome}/locale/hr/brand.dtd | 0
{src/chrome => chrome}/locale/hr/brand.properties | 0
{src/chrome => chrome}/locale/hr/torbutton.dtd | 0
.../locale/hr/torbutton.properties | 0
{src/chrome => chrome}/locale/ht/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ht/brand.dtd | 0
{src/chrome => chrome}/locale/ht/brand.properties | 0
{src/chrome => chrome}/locale/ht/torbutton.dtd | 0
.../locale/ht/torbutton.properties | 0
{src/chrome => chrome}/locale/hu/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/hu/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/hu/aboutTor.dtd | 0
{src/chrome => chrome}/locale/hu/brand.dtd | 0
{src/chrome => chrome}/locale/hu/brand.properties | 0
.../locale/hu/browserOnboarding.properties | 0
.../locale/hu/securityLevel.properties | 0
{src/chrome => chrome}/locale/hu/torbutton.dtd | 0
.../locale/hu/torbutton.properties | 0
{src/chrome => chrome}/locale/hy/aboutTor.dtd | 0
{src/chrome => chrome}/locale/hy/brand.dtd | 0
{src/chrome => chrome}/locale/hy/brand.properties | 0
{src/chrome => chrome}/locale/hy/torbutton.dtd | 0
.../locale/hy/torbutton.properties | 0
{src/chrome => chrome}/locale/id/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/id/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/id/aboutTor.dtd | 0
{src/chrome => chrome}/locale/id/brand.dtd | 0
{src/chrome => chrome}/locale/id/brand.properties | 0
.../locale/id/browserOnboarding.properties | 0
.../locale/id/securityLevel.properties | 0
{src/chrome => chrome}/locale/id/torbutton.dtd | 0
.../locale/id/torbutton.properties | 0
{src/chrome => chrome}/locale/is/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/is/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/is/aboutTor.dtd | 0
{src/chrome => chrome}/locale/is/brand.dtd | 0
{src/chrome => chrome}/locale/is/brand.properties | 0
.../locale/is/browserOnboarding.properties | 0
.../locale/is/securityLevel.properties | 0
{src/chrome => chrome}/locale/is/torbutton.dtd | 0
.../locale/is/torbutton.properties | 0
{src/chrome => chrome}/locale/it/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/it/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/it/aboutTor.dtd | 0
{src/chrome => chrome}/locale/it/brand.dtd | 0
{src/chrome => chrome}/locale/it/brand.properties | 0
.../locale/it/browserOnboarding.properties | 0
.../locale/it/securityLevel.properties | 0
{src/chrome => chrome}/locale/it/torbutton.dtd | 0
.../locale/it/torbutton.properties | 0
{src/chrome => chrome}/locale/ja/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ja/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ja/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ja/brand.dtd | 0
{src/chrome => chrome}/locale/ja/brand.properties | 0
.../locale/ja/browserOnboarding.properties | 0
.../locale/ja/securityLevel.properties | 0
{src/chrome => chrome}/locale/ja/torbutton.dtd | 0
.../locale/ja/torbutton.properties | 0
{src/chrome => chrome}/locale/jv/aboutTor.dtd | 0
{src/chrome => chrome}/locale/jv/brand.dtd | 0
{src/chrome => chrome}/locale/jv/brand.properties | 0
{src/chrome => chrome}/locale/jv/torbutton.dtd | 0
.../locale/jv/torbutton.properties | 0
{src/chrome => chrome}/locale/ka/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ka/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ka/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ka/brand.dtd | 0
{src/chrome => chrome}/locale/ka/brand.properties | 0
.../locale/ka/browserOnboarding.properties | 0
.../locale/ka/securityLevel.properties | 0
{src/chrome => chrome}/locale/ka/torbutton.dtd | 0
.../locale/ka/torbutton.properties | 0
{src/chrome => chrome}/locale/km/aboutTor.dtd | 0
{src/chrome => chrome}/locale/km/brand.dtd | 0
{src/chrome => chrome}/locale/km/brand.properties | 0
{src/chrome => chrome}/locale/km/torbutton.dtd | 0
.../locale/km/torbutton.properties | 0
{src/chrome => chrome}/locale/kn/aboutTor.dtd | 0
{src/chrome => chrome}/locale/kn/brand.dtd | 0
{src/chrome => chrome}/locale/kn/brand.properties | 0
{src/chrome => chrome}/locale/kn/torbutton.dtd | 0
.../locale/kn/torbutton.properties | 0
{src/chrome => chrome}/locale/ko/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ko/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ko/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ko/brand.dtd | 0
{src/chrome => chrome}/locale/ko/brand.properties | 0
.../locale/ko/browserOnboarding.properties | 0
.../locale/ko/securityLevel.properties | 0
{src/chrome => chrome}/locale/ko/torbutton.dtd | 0
.../locale/ko/torbutton.properties | 0
{src/chrome => chrome}/locale/ku/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ku/brand.dtd | 0
{src/chrome => chrome}/locale/ku/brand.properties | 0
{src/chrome => chrome}/locale/ku/torbutton.dtd | 0
.../locale/ku/torbutton.properties | 0
{src/chrome => chrome}/locale/kw/aboutTor.dtd | 0
{src/chrome => chrome}/locale/kw/brand.dtd | 0
{src/chrome => chrome}/locale/kw/brand.properties | 0
{src/chrome => chrome}/locale/kw/torbutton.dtd | 0
.../locale/kw/torbutton.properties | 0
{src/chrome => chrome}/locale/ky/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ky/brand.dtd | 0
{src/chrome => chrome}/locale/ky/brand.properties | 0
{src/chrome => chrome}/locale/ky/torbutton.dtd | 0
.../locale/ky/torbutton.properties | 0
{src/chrome => chrome}/locale/lb/aboutTor.dtd | 0
{src/chrome => chrome}/locale/lb/brand.dtd | 0
{src/chrome => chrome}/locale/lb/brand.properties | 0
{src/chrome => chrome}/locale/lb/torbutton.dtd | 0
.../locale/lb/torbutton.properties | 0
{src/chrome => chrome}/locale/lg/aboutTor.dtd | 0
{src/chrome => chrome}/locale/lg/torbutton.dtd | 0
.../locale/lg/torbutton.properties | 0
{src/chrome => chrome}/locale/ln/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ln/brand.dtd | 0
{src/chrome => chrome}/locale/ln/brand.properties | 0
{src/chrome => chrome}/locale/ln/torbutton.dtd | 0
.../locale/ln/torbutton.properties | 0
{src/chrome => chrome}/locale/lo/aboutTor.dtd | 0
{src/chrome => chrome}/locale/lo/brand.dtd | 0
{src/chrome => chrome}/locale/lo/brand.properties | 0
{src/chrome => chrome}/locale/lo/torbutton.dtd | 0
.../locale/lo/torbutton.properties | 0
{src/chrome => chrome}/locale/lt/aboutTor.dtd | 0
{src/chrome => chrome}/locale/lt/brand.dtd | 0
{src/chrome => chrome}/locale/lt/brand.properties | 0
.../locale/lt/securityLevel.properties | 0
{src/chrome => chrome}/locale/lt/torbutton.dtd | 0
.../locale/lt/torbutton.properties | 0
{src/chrome => chrome}/locale/lv/aboutTor.dtd | 0
{src/chrome => chrome}/locale/lv/brand.dtd | 0
{src/chrome => chrome}/locale/lv/brand.properties | 0
.../locale/lv/securityLevel.properties | 0
{src/chrome => chrome}/locale/lv/torbutton.dtd | 0
.../locale/lv/torbutton.properties | 0
{src/chrome => chrome}/locale/mg/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mg/brand.dtd | 0
{src/chrome => chrome}/locale/mg/brand.properties | 0
{src/chrome => chrome}/locale/mg/torbutton.dtd | 0
.../locale/mg/torbutton.properties | 0
{src/chrome => chrome}/locale/mi/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mi/brand.dtd | 0
{src/chrome => chrome}/locale/mi/brand.properties | 0
{src/chrome => chrome}/locale/mi/torbutton.dtd | 0
.../locale/mi/torbutton.properties | 0
{src/chrome => chrome}/locale/mk/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/mk/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/mk/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mk/brand.dtd | 0
{src/chrome => chrome}/locale/mk/brand.properties | 0
.../locale/mk/browserOnboarding.properties | 0
.../locale/mk/securityLevel.properties | 0
{src/chrome => chrome}/locale/mk/torbutton.dtd | 0
.../locale/mk/torbutton.properties | 0
{src/chrome => chrome}/locale/ml/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ml/brand.dtd | 0
{src/chrome => chrome}/locale/ml/brand.properties | 0
{src/chrome => chrome}/locale/ml/torbutton.dtd | 0
.../locale/ml/torbutton.properties | 0
{src/chrome => chrome}/locale/mn/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mn/brand.dtd | 0
{src/chrome => chrome}/locale/mn/brand.properties | 0
{src/chrome => chrome}/locale/mn/torbutton.dtd | 0
.../locale/mn/torbutton.properties | 0
{src/chrome => chrome}/locale/mr/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mr/brand.dtd | 0
{src/chrome => chrome}/locale/mr/brand.properties | 0
{src/chrome => chrome}/locale/mr/torbutton.dtd | 0
.../locale/mr/torbutton.properties | 0
{src/chrome => chrome}/locale/ms/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ms/brand.dtd | 0
{src/chrome => chrome}/locale/ms/brand.properties | 0
{src/chrome => chrome}/locale/ms/torbutton.dtd | 0
.../locale/ms/torbutton.properties | 0
{src/chrome => chrome}/locale/mt/aboutTor.dtd | 0
{src/chrome => chrome}/locale/mt/brand.dtd | 0
{src/chrome => chrome}/locale/mt/brand.properties | 0
{src/chrome => chrome}/locale/mt/torbutton.dtd | 0
.../locale/mt/torbutton.properties | 0
{src/chrome => chrome}/locale/my/aboutTor.dtd | 0
{src/chrome => chrome}/locale/my/brand.dtd | 0
{src/chrome => chrome}/locale/my/brand.properties | 0
.../locale/my/securityLevel.properties | 0
{src/chrome => chrome}/locale/my/torbutton.dtd | 0
.../locale/my/torbutton.properties | 0
{src/chrome => chrome}/locale/nah/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nah/brand.dtd | 0
{src/chrome => chrome}/locale/nah/brand.properties | 0
{src/chrome => chrome}/locale/nah/torbutton.dtd | 0
.../locale/nah/torbutton.properties | 0
{src/chrome => chrome}/locale/nap/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nap/brand.dtd | 0
{src/chrome => chrome}/locale/nap/brand.properties | 0
{src/chrome => chrome}/locale/nap/torbutton.dtd | 0
.../locale/nap/torbutton.properties | 0
.../chrome => chrome}/locale/nb-NO/aboutDialog.dtd | 0
.../locale/nb-NO/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/nb-NO/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nb-NO/brand.dtd | 0
.../locale/nb-NO/brand.properties | 0
.../locale/nb-NO/browserOnboarding.properties | 0
.../locale/nb-NO/securityLevel.properties | 0
{src/chrome => chrome}/locale/nb-NO/torbutton.dtd | 0
.../locale/nb-NO/torbutton.properties | 0
{src/chrome => chrome}/locale/ne/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ne/brand.dtd | 0
{src/chrome => chrome}/locale/ne/brand.properties | 0
{src/chrome => chrome}/locale/ne/torbutton.dtd | 0
.../locale/ne/torbutton.properties | 0
{src/chrome => chrome}/locale/nl/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/nl/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/nl/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nl/brand.dtd | 0
{src/chrome => chrome}/locale/nl/brand.properties | 0
.../locale/nl/browserOnboarding.properties | 0
.../locale/nl/securityLevel.properties | 0
{src/chrome => chrome}/locale/nl/torbutton.dtd | 0
.../locale/nl/torbutton.properties | 0
{src/chrome => chrome}/locale/nn/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nn/brand.dtd | 0
{src/chrome => chrome}/locale/nn/brand.properties | 0
{src/chrome => chrome}/locale/nn/torbutton.dtd | 0
.../locale/nn/torbutton.properties | 0
{src/chrome => chrome}/locale/nso/aboutTor.dtd | 0
{src/chrome => chrome}/locale/nso/brand.dtd | 0
{src/chrome => chrome}/locale/nso/brand.properties | 0
{src/chrome => chrome}/locale/nso/torbutton.dtd | 0
.../locale/nso/torbutton.properties | 0
{src/chrome => chrome}/locale/oc/aboutTor.dtd | 0
{src/chrome => chrome}/locale/oc/brand.dtd | 0
{src/chrome => chrome}/locale/oc/brand.properties | 0
{src/chrome => chrome}/locale/oc/torbutton.dtd | 0
.../locale/oc/torbutton.properties | 0
{src/chrome => chrome}/locale/or/aboutTor.dtd | 0
{src/chrome => chrome}/locale/or/brand.dtd | 0
{src/chrome => chrome}/locale/or/brand.properties | 0
{src/chrome => chrome}/locale/or/torbutton.dtd | 0
.../locale/or/torbutton.properties | 0
{src/chrome => chrome}/locale/pa/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pa/brand.dtd | 0
{src/chrome => chrome}/locale/pa/brand.properties | 0
{src/chrome => chrome}/locale/pa/torbutton.dtd | 0
.../locale/pa/torbutton.properties | 0
{src/chrome => chrome}/locale/pap/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pap/brand.dtd | 0
{src/chrome => chrome}/locale/pap/brand.properties | 0
{src/chrome => chrome}/locale/pap/torbutton.dtd | 0
.../locale/pap/torbutton.properties | 0
{src/chrome => chrome}/locale/pl/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/pl/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/pl/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pl/brand.dtd | 0
{src/chrome => chrome}/locale/pl/brand.properties | 0
.../locale/pl/browserOnboarding.properties | 0
.../locale/pl/securityLevel.properties | 0
{src/chrome => chrome}/locale/pl/torbutton.dtd | 0
.../locale/pl/torbutton.properties | 0
{src/chrome => chrome}/locale/pms/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pms/brand.dtd | 0
{src/chrome => chrome}/locale/pms/brand.properties | 0
{src/chrome => chrome}/locale/pms/torbutton.dtd | 0
.../locale/pms/torbutton.properties | 0
{src/chrome => chrome}/locale/ps/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ps/brand.dtd | 0
{src/chrome => chrome}/locale/ps/brand.properties | 0
{src/chrome => chrome}/locale/ps/torbutton.dtd | 0
.../locale/ps/torbutton.properties | 0
.../chrome => chrome}/locale/pt-BR/aboutDialog.dtd | 0
.../locale/pt-BR/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/pt-BR/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pt-BR/brand.dtd | 0
.../locale/pt-BR/brand.properties | 0
.../locale/pt-BR/browserOnboarding.properties | 0
.../locale/pt-BR/securityLevel.properties | 0
{src/chrome => chrome}/locale/pt-BR/torbutton.dtd | 0
.../locale/pt-BR/torbutton.properties | 0
{src/chrome => chrome}/locale/pt/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/pt/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/pt/aboutTor.dtd | 0
{src/chrome => chrome}/locale/pt/brand.dtd | 0
{src/chrome => chrome}/locale/pt/brand.properties | 0
.../locale/pt/securityLevel.properties | 0
{src/chrome => chrome}/locale/pt/torbutton.dtd | 0
.../locale/pt/torbutton.properties | 0
{src/chrome => chrome}/locale/ro/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ro/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ro/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ro/brand.dtd | 0
{src/chrome => chrome}/locale/ro/brand.properties | 0
.../locale/ro/browserOnboarding.properties | 0
.../locale/ro/securityLevel.properties | 0
{src/chrome => chrome}/locale/ro/torbutton.dtd | 0
.../locale/ro/torbutton.properties | 0
{src/chrome => chrome}/locale/ru/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/ru/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/ru/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ru/brand.dtd | 0
{src/chrome => chrome}/locale/ru/brand.properties | 0
.../locale/ru/browserOnboarding.properties | 0
.../locale/ru/securityLevel.properties | 0
{src/chrome => chrome}/locale/ru/torbutton.dtd | 0
.../locale/ru/torbutton.properties | 0
{src/chrome => chrome}/locale/sco/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sco/brand.dtd | 0
{src/chrome => chrome}/locale/sco/brand.properties | 0
{src/chrome => chrome}/locale/sco/torbutton.dtd | 0
.../locale/sco/torbutton.properties | 0
{src/chrome => chrome}/locale/sk/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sk/brand.dtd | 0
{src/chrome => chrome}/locale/sk/brand.properties | 0
.../locale/sk/securityLevel.properties | 0
{src/chrome => chrome}/locale/sk/torbutton.dtd | 0
.../locale/sk/torbutton.properties | 0
{src/chrome => chrome}/locale/sl/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sl/brand.dtd | 0
{src/chrome => chrome}/locale/sl/brand.properties | 0
.../locale/sl/securityLevel.properties | 0
{src/chrome => chrome}/locale/sl/torbutton.dtd | 0
.../locale/sl/torbutton.properties | 0
{src/chrome => chrome}/locale/so/aboutTor.dtd | 0
{src/chrome => chrome}/locale/so/brand.dtd | 0
{src/chrome => chrome}/locale/so/brand.properties | 0
{src/chrome => chrome}/locale/so/torbutton.dtd | 0
.../locale/so/torbutton.properties | 0
{src/chrome => chrome}/locale/son/aboutTor.dtd | 0
{src/chrome => chrome}/locale/son/brand.dtd | 0
{src/chrome => chrome}/locale/son/brand.properties | 0
{src/chrome => chrome}/locale/son/torbutton.dtd | 0
.../locale/son/torbutton.properties | 0
{src/chrome => chrome}/locale/sq/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sq/brand.dtd | 0
{src/chrome => chrome}/locale/sq/brand.properties | 0
{src/chrome => chrome}/locale/sq/torbutton.dtd | 0
.../locale/sq/torbutton.properties | 0
{src/chrome => chrome}/locale/sr/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sr/brand.dtd | 0
{src/chrome => chrome}/locale/sr/brand.properties | 0
.../locale/sr/securityLevel.properties | 0
{src/chrome => chrome}/locale/sr/torbutton.dtd | 0
.../locale/sr/torbutton.properties | 0
{src/chrome => chrome}/locale/st/aboutTor.dtd | 0
{src/chrome => chrome}/locale/st/brand.dtd | 0
{src/chrome => chrome}/locale/st/brand.properties | 0
{src/chrome => chrome}/locale/st/torbutton.dtd | 0
.../locale/st/torbutton.properties | 0
{src/chrome => chrome}/locale/su/aboutTor.dtd | 0
{src/chrome => chrome}/locale/su/brand.dtd | 0
{src/chrome => chrome}/locale/su/brand.properties | 0
{src/chrome => chrome}/locale/su/torbutton.dtd | 0
.../locale/su/torbutton.properties | 0
.../chrome => chrome}/locale/sv-SE/aboutDialog.dtd | 0
.../locale/sv-SE/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/sv-SE/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sv-SE/brand.dtd | 0
.../locale/sv-SE/brand.properties | 0
.../locale/sv-SE/browserOnboarding.properties | 0
.../locale/sv-SE/securityLevel.properties | 0
{src/chrome => chrome}/locale/sv-SE/torbutton.dtd | 0
.../locale/sv-SE/torbutton.properties | 0
{src/chrome => chrome}/locale/sw/aboutTor.dtd | 0
{src/chrome => chrome}/locale/sw/brand.dtd | 0
{src/chrome => chrome}/locale/sw/brand.properties | 0
{src/chrome => chrome}/locale/sw/torbutton.dtd | 0
.../locale/sw/torbutton.properties | 0
{src/chrome => chrome}/locale/ta/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ta/brand.dtd | 0
{src/chrome => chrome}/locale/ta/brand.properties | 0
{src/chrome => chrome}/locale/ta/torbutton.dtd | 0
.../locale/ta/torbutton.properties | 0
{src/chrome => chrome}/locale/te/aboutTor.dtd | 0
{src/chrome => chrome}/locale/te/brand.dtd | 0
{src/chrome => chrome}/locale/te/brand.properties | 0
{src/chrome => chrome}/locale/te/torbutton.dtd | 0
.../locale/te/torbutton.properties | 0
{src/chrome => chrome}/locale/tg/aboutTor.dtd | 0
{src/chrome => chrome}/locale/tg/brand.dtd | 0
{src/chrome => chrome}/locale/tg/brand.properties | 0
{src/chrome => chrome}/locale/tg/torbutton.dtd | 0
.../locale/tg/torbutton.properties | 0
{src/chrome => chrome}/locale/th/aboutTor.dtd | 0
{src/chrome => chrome}/locale/th/brand.dtd | 0
{src/chrome => chrome}/locale/th/brand.properties | 0
{src/chrome => chrome}/locale/th/torbutton.dtd | 0
.../locale/th/torbutton.properties | 0
{src/chrome => chrome}/locale/ti/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ti/brand.dtd | 0
{src/chrome => chrome}/locale/ti/brand.properties | 0
{src/chrome => chrome}/locale/ti/torbutton.dtd | 0
.../locale/ti/torbutton.properties | 0
{src/chrome => chrome}/locale/tk/aboutTor.dtd | 0
{src/chrome => chrome}/locale/tk/brand.dtd | 0
{src/chrome => chrome}/locale/tk/brand.properties | 0
{src/chrome => chrome}/locale/tk/torbutton.dtd | 0
.../locale/tk/torbutton.properties | 0
{src/chrome => chrome}/locale/tr/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/tr/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/tr/aboutTor.dtd | 0
{src/chrome => chrome}/locale/tr/brand.dtd | 0
{src/chrome => chrome}/locale/tr/brand.properties | 0
.../locale/tr/browserOnboarding.properties | 0
.../locale/tr/securityLevel.properties | 0
{src/chrome => chrome}/locale/tr/torbutton.dtd | 0
.../locale/tr/torbutton.properties | 0
{src/chrome => chrome}/locale/uk/aboutTor.dtd | 0
{src/chrome => chrome}/locale/uk/brand.dtd | 0
{src/chrome => chrome}/locale/uk/brand.properties | 0
.../locale/uk/securityLevel.properties | 0
{src/chrome => chrome}/locale/uk/torbutton.dtd | 0
.../locale/uk/torbutton.properties | 0
{src/chrome => chrome}/locale/ur/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ur/brand.dtd | 0
{src/chrome => chrome}/locale/ur/brand.properties | 0
{src/chrome => chrome}/locale/ur/torbutton.dtd | 0
.../locale/ur/torbutton.properties | 0
{src/chrome => chrome}/locale/ve/aboutTor.dtd | 0
{src/chrome => chrome}/locale/ve/brand.dtd | 0
{src/chrome => chrome}/locale/ve/brand.properties | 0
{src/chrome => chrome}/locale/ve/torbutton.dtd | 0
.../locale/ve/torbutton.properties | 0
{src/chrome => chrome}/locale/vi/aboutDialog.dtd | 0
{src/chrome => chrome}/locale/vi/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/vi/aboutTor.dtd | 0
{src/chrome => chrome}/locale/vi/brand.dtd | 0
{src/chrome => chrome}/locale/vi/brand.properties | 0
.../locale/vi/browserOnboarding.properties | 0
.../locale/vi/securityLevel.properties | 0
{src/chrome => chrome}/locale/vi/torbutton.dtd | 0
.../locale/vi/torbutton.properties | 0
{src/chrome => chrome}/locale/wa/aboutTor.dtd | 0
{src/chrome => chrome}/locale/wa/brand.dtd | 0
{src/chrome => chrome}/locale/wa/brand.properties | 0
{src/chrome => chrome}/locale/wa/torbutton.dtd | 0
.../locale/wa/torbutton.properties | 0
{src/chrome => chrome}/locale/wo/aboutTor.dtd | 0
{src/chrome => chrome}/locale/wo/brand.dtd | 0
{src/chrome => chrome}/locale/wo/brand.properties | 0
{src/chrome => chrome}/locale/wo/torbutton.dtd | 0
.../locale/wo/torbutton.properties | 0
.../chrome => chrome}/locale/zh-CN/aboutDialog.dtd | 0
.../locale/zh-CN/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/zh-CN/aboutTor.dtd | 0
{src/chrome => chrome}/locale/zh-CN/brand.dtd | 0
.../locale/zh-CN/brand.properties | 0
.../locale/zh-CN/browserOnboarding.properties | 0
.../locale/zh-CN/securityLevel.properties | 0
{src/chrome => chrome}/locale/zh-CN/torbutton.dtd | 0
.../locale/zh-CN/torbutton.properties | 0
{src/chrome => chrome}/locale/zh-HK/aboutTor.dtd | 0
{src/chrome => chrome}/locale/zh-HK/brand.dtd | 0
.../locale/zh-HK/brand.properties | 0
{src/chrome => chrome}/locale/zh-HK/torbutton.dtd | 0
.../locale/zh-HK/torbutton.properties | 0
.../chrome => chrome}/locale/zh-TW/aboutDialog.dtd | 0
.../locale/zh-TW/aboutTBUpdate.dtd | 0
{src/chrome => chrome}/locale/zh-TW/aboutTor.dtd | 0
{src/chrome => chrome}/locale/zh-TW/brand.dtd | 0
.../locale/zh-TW/brand.properties | 0
.../locale/zh-TW/browserOnboarding.properties | 0
.../locale/zh-TW/securityLevel.properties | 0
{src/chrome => chrome}/locale/zh-TW/torbutton.dtd | 0
.../locale/zh-TW/torbutton.properties | 0
{src/chrome => chrome}/locale/zu/aboutTor.dtd | 0
{src/chrome => chrome}/locale/zu/brand.dtd | 0
{src/chrome => chrome}/locale/zu/brand.properties | 0
{src/chrome => chrome}/locale/zu/torbutton.dtd | 0
.../locale/zu/torbutton.properties | 0
{src/chrome => chrome}/skin/about-wordmark.png | Bin
{src/chrome => chrome}/skin/aboutDialog.css | 0
{src/chrome => chrome}/skin/aboutTor.css | 0
{src/chrome => chrome}/skin/forwardArrow.png | Bin
{src/chrome => chrome}/skin/icon-newsletter.png | Bin
.../chrome => chrome}/skin/icon_monthly_donors.png | Bin
{src/chrome => chrome}/skin/new_circuit.svg | 0
{src/chrome => chrome}/skin/preferences-mobile.css | 0
{src/chrome => chrome}/skin/preferences.css | 0
{src/chrome => chrome}/skin/searchLogo.png | Bin
.../chrome => chrome}/skin/tor-circuit-display.css | 0
{src/chrome => chrome}/skin/tor.png | Bin
.../skin/torbrowser_mobile_logo.png | Bin
.../skin/torbutton-update-needed.svg | 0
{src/chrome => chrome}/skin/torbutton.css | 0
{src/chrome => chrome}/skin/torbutton.svg | 0
.../cookie-jar-selector.js | 131 +-
{src/components => components}/domain-isolator.js | 19 +-
{src/components => components}/dragDropFilter.js | 16 +-
.../external-app-blocker.js | 13 +-
{src/components => components}/startup-observer.js | 7 -
{src/components => components}/torCheckService.js | 27 +-
{src/components => components}/torbutton-logger.js | 38 +-
.../preferences/preferences.js | 0
...mport-translations.sh => import-translations.sh | 2 +-
src/jar.mn => jar.mn | 13 -
makexpi.sh | 32 -
{src/modules => modules}/default-prefs.js | 2 +-
{src/modules => modules}/noscript-control.js | 50 +-
{src/modules => modules}/security-prefs.js | 9 +-
{src/modules => modules}/tor-control-port.js | 10 +-
{src/modules => modules}/utils.js | 16 +-
moz.build | 4 +-
src/CHANGELOG | 1392 ----------
src/LICENSE | 53 -
src/chrome.manifest.jar | 60 -
src/chrome.manifest.nojar | 60 -
src/chrome/content/aboutDialog.xul | 56 -
src/chrome/content/menu-items-overlay.xul | 31 -
src/chrome/content/menu-overlay.xul | 29 -
src/chrome/content/popup.xul | 43 -
src/chrome/content/pref-connection.xul | 10 -
src/chrome/content/tor-circuit-display.xul | 34 -
src/chrome/content/torbutton-extensions.xul | 28 -
src/chrome/content/torbutton.xul | 46 -
src/chrome/content/torbutton_tb.xul | 38 -
src/chrome/content/torcookie.js | 385 ---
src/chrome/content/torcookiedialog.xul | 72 -
src/components/aboutTor.js | 60 -
src/install.rdf | 24 -
trans_tools/old/mkmoz.sh | 20 -
trans_tools/old/mkpo.sh | 20 -
trans_tools/old/mvmoz.sh | 6 -
trans_tools/old/new_tb_strings.sh | 20 -
trans_tools/old/validate.py | 94 -
trans_tools/old/validate_all.sh | 7 -
update-unsigned.rdf | 392 ---
website/design/CHROME_NOTES | 120 -
website/design/FF35_AUDIT | 195 --
website/design/FF40_AUDIT | 50 -
website/design/MozillaBrownBag.odp | Bin 47062 -> 0 bytes
website/design/MozillaBrownBag.pdf | Bin 117892 -> 0 bytes
website/design/build.sh | 1 -
website/design/design.xml | 2901 --------------------
website/design/index.html.en | 1453 ----------
website/gimpy.css | 3 -
website/index.html.en | 532 ----
website/update.rdf | 173 --
837 files changed, 239 insertions(+), 8992 deletions(-)
diff --cc chrome/locale/mk/aboutDialog.dtd
index 6fb30ffe,00000000..6fb30ffe
mode 100644,000000..100644
--- a/chrome/locale/mk/aboutDialog.dtd
+++ b/chrome/locale/mk/aboutDialog.dtd
diff --cc chrome/locale/mk/aboutTBUpdate.dtd
index eb627510,00000000..eb627510
mode 100644,000000..100644
--- a/chrome/locale/mk/aboutTBUpdate.dtd
+++ b/chrome/locale/mk/aboutTBUpdate.dtd
diff --cc chrome/locale/mk/browserOnboarding.properties
index f7e732cc,00000000..f7e732cc
mode 100644,000000..100644
--- a/chrome/locale/mk/browserOnboarding.properties
+++ b/chrome/locale/mk/browserOnboarding.properties
diff --cc chrome/locale/ro/aboutDialog.dtd
index edd6a8c8,00000000..edd6a8c8
mode 100644,000000..100644
--- a/chrome/locale/ro/aboutDialog.dtd
+++ b/chrome/locale/ro/aboutDialog.dtd
diff --cc chrome/locale/ro/aboutTBUpdate.dtd
index 1a83bd50,00000000..1a83bd50
mode 100644,000000..100644
--- a/chrome/locale/ro/aboutTBUpdate.dtd
+++ b/chrome/locale/ro/aboutTBUpdate.dtd
diff --cc chrome/locale/ro/browserOnboarding.properties
index 102d2c51,00000000..102d2c51
mode 100644,000000..100644
--- a/chrome/locale/ro/browserOnboarding.properties
+++ b/chrome/locale/ro/browserOnboarding.properties
diff --cc chrome/skin/icon_monthly_donors.png
index 9505f471,00000000..9505f471
mode 100644,000000..100644
Binary files differ
1
0
07 Aug '19
commit 45b990730502ac878e39ba9bbd86347b4e8e533e
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri Aug 2 12:01:50 2019 +0200
Remove nsISupports from ChromeUtils.generateQI
This was causing an assert on debug builds of the browser.
---
components/domain-isolator.js | 2 +-
components/dragDropFilter.js | 2 +-
components/external-app-blocker.js | 2 +-
components/torCheckService.js | 2 +-
components/torbutton-logger.js | 2 +-
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/components/domain-isolator.js b/components/domain-isolator.js
index e04005a5..891a19cc 100644
--- a/components/domain-isolator.js
+++ b/components/domain-isolator.js
@@ -173,7 +173,7 @@ function DomainIsolator() {
// Firefox component requirements
DomainIsolator.prototype = {
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
classDescription: kMODULE_NAME,
classID: kMODULE_CID,
contractID: kMODULE_CONTRACTID,
diff --git a/components/dragDropFilter.js b/components/dragDropFilter.js
index 4465187e..66dbe3a4 100644
--- a/components/dragDropFilter.js
+++ b/components/dragDropFilter.js
@@ -32,7 +32,7 @@ function DragDropFilter() {
DragDropFilter.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver]),
// make this an nsIClassInfo object
flags: Ci.nsIClassInfo.DOM_OBJECT,
diff --git a/components/external-app-blocker.js b/components/external-app-blocker.js
index 747824d1..1cc2000f 100644
--- a/components/external-app-blocker.js
+++ b/components/external-app-blocker.js
@@ -33,7 +33,7 @@ ExternalAppBlocker.prototype =
{
_helperAppLauncher: undefined,
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIObserver,
Ci.nsIHelperAppWarningDialog]),
// make this an nsIClassInfo object
diff --git a/components/torCheckService.js b/components/torCheckService.js
index 4f79bef4..d4815ee2 100644
--- a/components/torCheckService.js
+++ b/components/torCheckService.js
@@ -25,7 +25,7 @@ function TBTorCheckService() {
TBTorCheckService.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIClassInfo]),
kCheckNotInitiated: 0, // Possible values for statusOfTorCheck.
kCheckSuccessful: 1,
diff --git a/components/torbutton-logger.js b/components/torbutton-logger.js
index ce4ba70b..22c664fa 100644
--- a/components/torbutton-logger.js
+++ b/components/torbutton-logger.js
@@ -58,7 +58,7 @@ function padInt(i)
TorbuttonLogger.prototype =
{
- QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIClassInfo]),
wrappedJSObject: null, // Initialized by constructor
1
0
commit 4dd346e2b81527785d7f8b68a5cff14972dd645c
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon May 13 18:35:51 2019 +0200
Remove ported overlays from jar.mn
---
jar.mn | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/jar.mn b/jar.mn
index 68fdb9ec..cfbe1476 100644
--- a/jar.mn
+++ b/jar.mn
@@ -10,24 +10,12 @@ torbutton.jar:
modules/ (modules/*)
skin/ (chrome/skin/*)
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-% overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-% overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-% overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-% overlay about:addons chrome://torbutton/content/torbutton-extensions.xul
-% overlay chrome://mozapps/content/extensions/extensions.xul chrome://torbutton/content/torbutton-extensions.xul
% resource torbutton %
% resource torbutton-assets resource://torbutton/skin/ contentaccessible=yes
# browser branding
% override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
% override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
-% overlay chrome://browser/content/aboutDialog.xul chrome://torbutton/content/aboutDialog.xul
-
-# UI customization
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-items-overlay.xul
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-overlay.xul
-% overlay chrome://browser/content/browser.xul chrome://torbutton/content/tor-circuit-display.xul
# Strings for the about:tbupdate page
% override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
@@ -94,7 +82,6 @@ torbutton.jar:
locale/zh-TW/ (chrome/locale/zh-TW/*)
% skin torbutton classic/1.0 %skin/
-% style chrome://global/content/customizeToolbar.xul chrome://torbutton/skin/torbutton.css
# Firefox 4-style component registration
% component {f605ec27-d867-44b5-ad97-2a29276642c3} %components/dragDropFilter.js
1
0
commit ce346d069afa5f1a42dfa13eb8fce2a23cfbf679
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon May 13 18:31:58 2019 +0200
Remove ported overlays
---
chrome/content/aboutDialog.xul | 56 ---------------------------------
chrome/content/menu-items-overlay.xul | 31 ------------------
chrome/content/menu-overlay.xul | 29 -----------------
chrome/content/tor-circuit-display.xul | 34 --------------------
chrome/content/torbutton-extensions.xul | 28 -----------------
chrome/content/torbutton.xul | 46 ---------------------------
6 files changed, 224 deletions(-)
diff --git a/chrome/content/aboutDialog.xul b/chrome/content/aboutDialog.xul
deleted file mode 100644
index 5b89a811..00000000
--- a/chrome/content/aboutDialog.xul
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-<?xml-stylesheet href="chrome://torbutton/skin/aboutDialog.css" type="text/css"?>
-
-<!DOCTYPE window [
-<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd" >
-%brandDTD;
-<!ENTITY % aboutDialogDTD SYSTEM "chrome://torbutton/locale/aboutDialog.dtd" >
-%aboutDialogDTD;
-]>
-
-<overlay id="main-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <vbox id="rightBox">
- <vbox id="detailsBox">
- <description class="text-blurb" id="projectDesc">
- &project.start;
- <label class="text-link"
- href="https://www.torproject.org/">
- &project.tpoLink;
- </label>&project.end;
- </description>
- <description class="text-blurb" id="helpDesc">
- &help.start;
- <label class="text-link"
- href="https://www.torproject.org/donate/donate.html.en">
- &help.donateLink;
- </label>
- &help.or;
- <label class="text-link"
- href="https://www.torproject.org/getinvolved/volunteer.html.en">
- &help.getInvolvedLink;
- </label>&help.end;
- </description>
- </vbox>
- </vbox>
-
- <vbox id="bottomBox">
- <hbox id="newBottom" pack="center" position="1">
- <label class="text-link bottom-link"
- href="https://www.torproject.org/docs/faq.html.en">
- &bottomLinks.questions;
- </label>
- <label class="text-link bottom-link"
- href="https://www.torproject.org/getinvolved/relays">
- &bottomLinks.grow;
- </label>
- <label class="text-link bottom-link"
- href="about:license">
- &bottomLinks.license;
- </label>
- </hbox>
- <description id="trademarkTor" insertafter="trademark">
- &tor.TrademarkStatement;
- </description>
- </vbox>
-</overlay>
diff --git a/chrome/content/menu-items-overlay.xul b/chrome/content/menu-items-overlay.xul
deleted file mode 100644
index b2e862b3..00000000
--- a/chrome/content/menu-items-overlay.xul
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-menu-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <menuitem id="menu_newIdentity"
- accesskey="&torbutton.context_menu.new_identity_key;"
- key="torbutton-new-identity-key"
- label="&torbutton.context_menu.new_identity;"
- oncommand="torbutton_new_identity();"/>
- <menuitem id="menu_newCircuit"
- accesskey="&torbutton.context_menu.new_circuit_key;"
- key="torbutton-new-circuit-key"
- label="&torbutton.context_menu.new_circuit;"
- oncommand="torbutton_new_circuit();"/>
- <toolbarbutton id="appMenuNewIdentity"
- class="subviewbutton subviewbutton-iconic"
- key="torbutton-new-identity-key"
- label="&torbutton.context_menu.new_identity;"
- oncommand="torbutton_new_identity();"/>
- <toolbarbutton id="appMenuNewCircuit"
- class="subviewbutton subviewbutton-iconic"
- key="torbutton-new-circuit-key"
- label="&torbutton.context_menu.new_circuit;"
- oncommand="torbutton_new_circuit();"/>
- <toolbarbutton id="appMenu-private-window-button"
- hidden="true"/>
- <toolbarbutton id="appMenuRestoreLastSession"
- hidden="true"/>
-</overlay>
diff --git a/chrome/content/menu-overlay.xul b/chrome/content/menu-overlay.xul
deleted file mode 100644
index 1e812cce..00000000
--- a/chrome/content/menu-overlay.xul
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?> <!-- -*- Mode: HTML -*- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/aboutTor.dtd">
-
-<overlay id="torbutton-menu-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <menupopup id="menu_HelpPopup">
- <!-- Bug 18905: Hide unused help menu items -->
- <menuitem id="menu_openHelp" removeelement="true"/>
- <menuitem id="menu_openTour" removeelement="true"/>
- <menuitem id="healthReport" removeelement="true"/>
- <menuitem id="feedbackPage" removeelement="true"/>
- <menuitem id="helpSafeMode" removeelement="true"/>
- <menuitem id="menu_HelpPopup_reportPhishingtoolmenu" removeelement="true"/>
- <menuitem id="menu_HelpPopup_reportPhishingErrortoolmenu" removeelement="true"/>
- <!-- dummy elements to avoid 'getElementById' errors -->
- <box id="feedbackPage"/>
- <box id="helpSafeMode"/>
- <box id="menu_HelpPopup_reportPhishingtoolmenu"/>
- <box id="menu_HelpPopup_reportPhishingErrortoolmenu"/>
- <!-- Add Tor Browser manual link -->
- <menuitem name="torBrowserUserManual"
- id="torBrowserUserManual"
- position="1"
- label="&aboutTor.torbrowser_user_manual.label;"
- accesskey="&aboutTor.torbrowser_user_manual.accesskey;"
- oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.locale.getRequestedLocale())" />
- </menupopup>
-</overlay>
diff --git a/chrome/content/tor-circuit-display.xul b/chrome/content/tor-circuit-display.xul
deleted file mode 100644
index b4d4ac7b..00000000
--- a/chrome/content/tor-circuit-display.xul
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/tor-circuit-display.css" type="text/css"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="circuit-display-overlay"
- xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:html="http://www.w3.org/1999/xhtml">
- <panelview id="identity-popup-mainView">
- <!-- Circuit display section -->
- <xul:hbox id="circuit-display-container"
- class="identity-popup-section"
- insertafter="identity-popup-security">
- <xul:vbox id="circuit-display-content" flex="1">
- <xul:label id="circuit-display-headline"
- class="identity-popup-headline"
- value="&torbutton.circuit_display.title;"/>
- <html:ul id="circuit-display-nodes" dir="auto">
- <li>example A</li>
- <li>example B</li>
- <li>example C</li>
- </html:ul>
- </xul:vbox>
- <xul:vbox id="circuit-reload-content" flex="1">
- <html:button id="circuit-reload-button"
- onclick="torbutton_new_circuit()">
- &torbutton.circuit_display.new_circuit;
- </html:button>
- <xul:hbox id="circuit-guard-note-container">
- </xul:hbox>
- </xul:vbox>
- </xul:hbox>
- </panelview>
-</overlay>
diff --git a/chrome/content/torbutton-extensions.xul b/chrome/content/torbutton-extensions.xul
deleted file mode 100644
index 060594df..00000000
--- a/chrome/content/torbutton-extensions.xul
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/brand.dtd">
-
-<overlay id="torbutton-extensions-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <vbox id="plugin-enable-button" class="alert-container" flex="1"
- hidden="true">
- <spacer class="alert-spacer-before"/>
- <vbox class="alert">
- <label value="&plugins.installed.find;"/>
- <button class="button-plugin-enable"
- label="&plugins.installed.enable;"
- command="cmd_pluginEnable"/>
- </vbox>
- <spacer class="alert-spacer-after"/>
- </vbox>
-
- <vbox id="plugin-disable-button" class="global-info" flex="1" align="end">
- <button class="button-plugin-disable"
- label="&plugins.installed.disable;"
- tooltiptext="&plugins.installed.disable.tip;"
- command="cmd_pluginDisable"/>
- <spacer flex="5000"/>
- </vbox>
-
-</overlay>
diff --git a/chrome/content/torbutton.xul b/chrome/content/torbutton.xul
deleted file mode 100644
index 2f6e72e4..00000000
--- a/chrome/content/torbutton.xul
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
-<?xul-overlay href="chrome://torbutton/content/popup.xul"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton_util.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/tor-circuit-display.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/content-sizer.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton.js" />
- <script language="JavaScript">
- //onLoad Hander
- try{window.addEventListener("load", torbutton_init, false);}catch(e){}
- </script>
-
- <stringbundleset id="torbutton-stringbundleset">
- <stringbundle id="torbutton-bundle" src="chrome://torbutton/locale/torbutton.properties"/>
- </stringbundleset>
-
- <!-- Place the context menu in the nav bar, so that the lack
- of the status bar on FF4 doesn't make it invisible -->
- <toolbar id="nav-bar">
- <menupopup id="torbutton-context-menu"/>
- </toolbar>
-
- <toolbarpalette id="BrowserToolbarPalette">
- <toolbarbutton
- id="torbutton-button"
- class="toolbarbutton-1 chromeclass-toolbar-additional"
- type="menu"
- orient="horizontal"
- label="Torbutton"
- tooltiptext="&torbutton.button.tooltip;"
- menu="torbutton-context-menu"
- context="torbutton-context-menu"/>
- </toolbarpalette>
-
-<!-- Global keyboard shortcuts for new identity and new circuit. -->
- <keyset>
- <key id="torbutton-new-identity-key" modifiers="accel shift" key="U" oncommand="torbutton_new_identity()"/>
- <key id="torbutton-new-circuit-key" modifiers="accel shift" key="L" oncommand="torbutton_new_circuit()"/>
- </keyset>
-</overlay>
1
0
07 Aug '19
commit 9cf79bcf222cfb1ca47f2cd6f119ac1f19b2f54d
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu May 9 19:50:40 2019 +0200
Remove overlays from chrome.manifest
---
src/chrome.manifest | 12 ------------
1 file changed, 12 deletions(-)
diff --git a/src/chrome.manifest b/src/chrome.manifest
index f6a267d7..13bef661 100644
--- a/src/chrome.manifest
+++ b/src/chrome.manifest
@@ -1,22 +1,10 @@
content torbutton chrome/content/
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-overlay about:addons chrome://torbutton/content/torbutton-extensions.xul
-overlay chrome://mozapps/content/extensions/extensions.xul chrome://torbutton/content/torbutton-extensions.xul
resource torbutton ./
resource torbutton-assets resource://torbutton/chrome/skin/ contentaccessible=yes
# browser branding
override chrome://branding/locale/brand.dtd chrome://torbutton/locale/brand.dtd
override chrome://branding/locale/brand.properties chrome://torbutton/locale/brand.properties
-overlay chrome://browser/content/aboutDialog.xul chrome://torbutton/content/aboutDialog.xul
-
-# UI customization
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-items-overlay.xul
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/menu-overlay.xul
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/tor-circuit-display.xul
# Strings for the about:tbupdate page
override chrome://browser/locale/aboutTBUpdate.dtd chrome://torbutton/locale/aboutTBUpdate.dtd
1
0
commit f7238d222fe4803070f65638cd5bbd4f778a477a
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri May 10 13:11:03 2019 +0200
XPI build not supported anymore
---
.gitignore | 1 -
README.BUILD | 19 ---
README.RELEASE | 107 --------------
makexpi.sh | 32 -----
update-unsigned.rdf | 392 ----------------------------------------------------
5 files changed, 551 deletions(-)
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 5fff1d9c..00000000
--- a/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-pkg
diff --git a/README.BUILD b/README.BUILD
deleted file mode 100644
index ea0803d7..00000000
--- a/README.BUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-To build an XPI that is suitable for Babelzilla, do the following:
-
- patch -p0 < no-english.diff
- chmod +x makexpi.sh
- ./makexpi.sh
- cd pkg/
-
-You should see:
-
- file torbutton-1.2.0rc1.xpi
- pkg/torbutton-1.2.0rc1.xpi: Zip archive data, at least v1.0 to extract
-
-This is to work around the fact that an xpi requires empty strings for
-incomplete translations or the formatting of various dialogs will be broken.
-Furthermore, Babelzilla doesn't know an english string from a Japanese string
-and simply records translations as matching strings. The XPI resulting from
-the above build process will be ready for Babelzilla but should not be used by
-anyone else.
-
diff --git a/README.RELEASE b/README.RELEASE
deleted file mode 100644
index 42365832..00000000
--- a/README.RELEASE
+++ /dev/null
@@ -1,107 +0,0 @@
-# Magical Torbutton Release Process Incantations
-#
-# "May this part of my job one day be replaced by a small shell script"
-#
-
-#. Decide the version number.
-
- export VERSION="1.5.2"
- vim ./src/install.rdf # edit <em:version> tag to reflect version
-
-#. Test upgrades of candidate XPI in latest Firefox and TBB product matrix
-
- # TODO: Currently manual
-
-#. Generate changelog from git shortlog
-
- # TODO: Currently manual
-
-#. tx noise: https://svn.torproject.org/svn/translation/trunk/documentation/howto.txt
-
- cd torbutton.git/trans_tools/po
- torsocks svn up
- torsocks tx pull -a
- cd ..
- ./validate_all.sh | less
-
- torsocks ./new_tb_strings.sh
-
- ./mkmoz.sh
- ./mvmoz.sh
- cd ..
- git diff .
- git commit .
-
-#. Tag the release:
-
- git tag -u mikeperry(a)fscked.org -s ${VERSION}
- torsocks git push origin-push --tags
-
-#. Create the .xpi
-
- cd /tmp/
- torsocks git clone git://git.torproject.org/git/torbutton.git torbutton-release
- cd torbutton-release
- git tag -v ${VERSION} # verify signature against git protocol haaAAXXXX
- git checkout -b tag-${VERSION} ${VERSION}
- mkdir ./pkg
- sh makexpi.sh
-
-#. SHA1 + Sign the .xpi
-
- gpg -abs ./pkg/torbutton-${VERSION}.xpi
- sha1sum ./pkg/torbutton-${VERSION}.xpi
-
-#. Upload .xpi to website
-
- chmod 664 ./pkg/torbutton-${VERSION}.xpi*
- torsocks scp ./pkg/torbutton-${VERSION}.xpi* vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/
- torsocks scp ./pkg/torbutton-${VERSION}.xpi vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-curre…
- torsocks scp ./pkg/torbutton-${VERSION}.xpi.asc vescum:/srv/www-master.torproject.org/htdocs/dist/torbutton/torbutton-curre…
-
-#. Update update-unsigned.rdf in torbutton.git with package sha1
-
- cd torbutton.git
- vim update-unsigned.rdf # Add <li> and <description> w/ sha1 and version
-
-#. Sign the new update-unsigned.rdf.
-
- # Key creation based on these instructions:
- # Command line: http://blog.techno-barje.fr/post/2009/10/08/How-to-setup-a-mozilla-extensio…
- # Gui: https://www.binaryturf.com/steps-release-extension-firefox-3/
-
- # TODO: Process currently manual due to offline signing.
- # No need to fear the reaper, man. We can do online signing if we just put
- # our minds to it: https://trac.torproject.org/projects/tor/ticket/6011
-
- # Special note: I was unable to update an already signed
- # copy of the update.rdf for a new release. We probably need to
- # keep the unsigned version around as input? See the root directory
- # of the torbutton.git for a copy.
- ./mccoy-cli.x86/mccoy -profile ./.mozilla/mccoy/*.default/ -signRDF update-unsigned.rdf -key Torbutton
-
- # Copy the signed update.rdf into place in the website svn
-
-#. Update update.rdf
-
- cd website-svn
- vim ./include/versions.wmi # Add sha1 and version
- cp /mnt/update-signed.rdf ./torbutton/update.rdf
-
-#. Update website
-
- torsocks svn up .
- torsocks svn commit .
-
- torsocks ssh vescum "/home/mirroradm/bin/trigger-mirrors"
-
-#. Test firefox autoupdate
-
- # Wait for mirrors to sync first.. Pester phobos/weasel/helix/Sebastian for
- # website push + dist chown + mirror update.
- # TODO: Currently manual
-
-#. Announce on tor-talk
-
- # FIXME: May need eventual minor improvements
- echo "Troll food." | mail tor-talk(a)lists.torproject.org -s "Feed the trolls"
diff --git a/makexpi.sh b/makexpi.sh
deleted file mode 100755
index 243fbd6b..00000000
--- a/makexpi.sh
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-APP_NAME=torbutton
-#VERSION=`grep em:version src/install.rdf | sed -e 's/["]//g' | cut -f2 -d=`
-XPI_NAME="$APP_NAME-`grep em:version src/install.rdf | sed -e 's/[<>]/ /g' | cut -f3`.xpi"
-
-if [ -e "pkg/$XPI_NAME" ]; then
- echo pkg/$XPI_NAME already exists.
- rm pkg/$XPI_NAME # meh.
- # exit 1
-fi
-
-# create jar file (we're just storing files here)
-echo ---------- create $APP_NAME.jar file ----------
-cd src/chrome
-#zip -r0 ../../$APP_NAME.jar ./ -x "*.svn/*"
-cd ../..
-
-# create .xpi
-echo ---------- create $APP_NAME.xpi ----------
-# create the pkg directory if it doesn't exist yet
-mkdir -p pkg
-cd src
-echo zip -X -9r ../pkg/$XPI_NAME ./ -x "chrome/*" -x "*.diff" -x "*.svn/*"
-zip -X -9r ../pkg/$XPI_NAME ./ -x "*.svn/*" -x "*.diff" #-x "chrome/*"
-#mv ../$APP_NAME.jar ./chrome
-#zip -9m ../pkg/$XPI_NAME chrome/$APP_NAME.jar
-cd ..
-
-#cp ./pkg/$XPI_NAME ~/
-#zip -9m ../../downloads/$sXpiName chrome/$APP_NAME.jar
-#zip -9 ../../downloads/$sXpiName install.rdf
-#cd ..
diff --git a/update-unsigned.rdf b/update-unsigned.rdf
deleted file mode 100644
index d4a013a7..00000000
--- a/update-unsigned.rdf
+++ /dev/null
@@ -1,392 +0,0 @@
-<?xml version="1.0"?>
-
-<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}">
- <em:updates>
- <Seq>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.14-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.15-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.16-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.17-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.18alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc3"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc4"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc5"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc6"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.2-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.3-alpha"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.0"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.3"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.1"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.2"/>
- <li resource="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.3"/>
- </Seq>
- </em:updates>
-
- </Description>
-
- <!-- version 1.1.14 -->
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.14-alpha">
- <em:version>1.1.14-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.14-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:b316f9d84930ecf23b0797f93a6433334a4c38d5</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.15-alpha">
- <em:version>1.1.15-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.15-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:fa0d47c98d258ba904d828bea15b140ab438eb56</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.16-alpha">
- <em:version>1.1.16-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.16-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:f892dac7e5da8c63005f896c9aa1436e3f77ab4b</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.17-alpha">
- <em:version>1.1.17-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.17-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:93e17f955655eb31e5a6ff9f71dfde479a5b7a6d</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.1.18alpha">
- <em:version>1.1.18alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.0b*</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.1.18alpha.xpi</em:updateLink>
- <em:updateHash>sha1:6fdcebcb1e6cc694b45065c2b6df07ffb12ea164</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc1">
- <em:version>1.2.0rc1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc1.xpi</em:updateLink>
- <em:updateHash>sha1:8c8cb5e7e3844b8310151c5b56fb622134ea67f6</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc2">
- <em:version>1.2.0rc2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc2.xpi</em:updateLink>
- <em:updateHash>sha1:f0d6e121e2b0fbd4d1db7c3f333b8d7ab5c1d906</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc3">
- <em:version>1.2.0rc3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc3.xpi</em:updateLink>
- <em:updateHash>sha1:184294b480119bb7b943ede116345c52ee7772fc</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc4">
- <em:version>1.2.0rc4</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc4.xpi</em:updateLink>
- <em:updateHash>sha1:23df6a12c7140b5817338136da1cd7737412bbbb</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc5">
- <em:version>1.2.0rc5</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc5.xpi</em:updateLink>
- <em:updateHash>sha1:050925e2c02e61f2f0ceb4683600fc0c58a835bb</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0rc6">
- <em:version>1.2.0rc6</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0rc6.xpi</em:updateLink>
- <em:updateHash>sha1:7f01c577641b6222781cd880c9825d6f50ff1cc4</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.0">
- <em:version>1.2.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.0.xpi</em:updateLink>
- <em:updateHash>sha1:086e2a05b8e5393f2f28533cdb715e69465c3169</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.1">
- <em:version>1.2.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>3.1a1pre</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.2.1.xpi</em:updateLink>
- <em:updateHash>sha1:204766e5c9112aba7313e3ab98023f57f1668978</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.2-alpha">
- <em:version>1.3.2-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>4.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/torbutton/releases/torbutton-1.3.2-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:4231cf0e568fe61f49011d4626e85cdb467c6a48</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.3.3-alpha">
- <em:version>1.3.3-alpha</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.3.3-alpha.xpi</em:updateLink>
- <em:updateHash>sha1:c7323cd408ebee28ee23b6a91fe056d59de668f5</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.0">
- <em:version>1.4.0</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.0.xpi</em:updateLink>
- <em:updateHash>sha1:4df99e70b2991bb51ea70d0c217961174b24a98e</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.1">
- <em:version>1.4.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.1.xpi</em:updateLink>
- <em:updateHash>sha1:7f80cf8eea6d523fdb0bac94eefce52ebbb192be</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.2">
- <em:version>1.4.2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.2.xpi</em:updateLink>
- <em:updateHash>sha1:a724c55165f81a86e2ec1d56026c9160964c5b87</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.3">
- <em:version>1.4.3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.3.xpi</em:updateLink>
- <em:updateHash>sha1:e048d53b3e36c161ccfb75b09c6aece8b7f1e94f</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4">
- <em:version>1.4.4</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.4.xpi</em:updateLink>
- <em:updateHash>sha1:3f352e7d8577fc576a9011d858a8b34f4fea4b09</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.4.1">
- <em:version>1.4.4.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.4.1.xpi</em:updateLink>
- <em:updateHash>sha1:95dc1e079da873aae9ca1beb7354fb8fdeaa7414</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5">
- <em:version>1.4.5</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.5.xpi</em:updateLink>
- <em:updateHash>sha1:5f2e2d72343b2d4702ec24491a11babedd3650b9</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.5.1">
- <em:version>1.4.5.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.5.1.xpi</em:updateLink>
- <em:updateHash>sha1:0002e2d61613504e41d8b773c30ff6307b8286da</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6">
- <em:version>1.4.6</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.xpi</em:updateLink>
- <em:updateHash>sha1:eedadda6e5aacb8dabe2118e6c14c4dd4441fed0</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.1">
- <em:version>1.4.6.1</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.1.xpi</em:updateLink>
- <em:updateHash>sha1:fb1df9ce40c5b1282e701f2a96694b0bfbdc2687</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.2">
- <em:version>1.4.6.2</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.2.xpi</em:updateLink>
- <em:updateHash>sha1:1182fa2dcb095ad8054a218c41bc0a849b5b30ed</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
- <Description about="urn:mozilla:extension:{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.4.6.3">
- <em:version>1.4.6.3</em:version>
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>0.9</em:minVersion>
- <em:maxVersion>10000.0</em:maxVersion>
- <em:updateLink>https://www.torproject.org/dist/torbutton/torbutton-1.4.6.3.xpi</em:updateLink>
- <em:updateHash>sha1:968455a5b702b3cabb6c16499e531a5a8f4c5f21</em:updateHash>
- </Description>
- </em:targetApplication>
- </Description>
-
-</RDF>
1
0
[torbutton/master] Fix components and modules, and minor style changes
by gkï¼ torproject.org 07 Aug '19
by gkï¼ torproject.org 07 Aug '19
07 Aug '19
commit 18e7226776301a82bb2c5715739b25f9c2b281ad
Author: Alex Catarineu <acat(a)torproject.org>
Date: Thu May 9 19:48:10 2019 +0200
Fix components and modules, and minor style changes
---
src/chrome/content/preferences-mobile.js | 10 +-
src/chrome/content/tor-circuit-display.js | 18 +--
src/chrome/content/torbutton.js | 230 +++++++++++++-----------------
src/chrome/content/torbutton_util.js | 14 +-
src/components/aboutTor.js | 21 +--
src/components/cookie-jar-selector.js | 131 +++++------------
src/components/domain-isolator.js | 19 ++-
src/components/dragDropFilter.js | 16 +--
src/components/external-app-blocker.js | 13 +-
src/components/torCheckService.js | 27 +---
src/components/torbutton-logger.js | 38 ++---
src/modules/default-prefs.js | 2 +-
src/modules/noscript-control.js | 50 ++++---
src/modules/security-prefs.js | 9 +-
src/modules/tor-control-port.js | 10 +-
src/modules/utils.js | 16 +--
16 files changed, 243 insertions(+), 381 deletions(-)
diff --git a/src/chrome/content/preferences-mobile.js b/src/chrome/content/preferences-mobile.js
index e2da9b88..fa79dce8 100644
--- a/src/chrome/content/preferences-mobile.js
+++ b/src/chrome/content/preferences-mobile.js
@@ -1,12 +1,12 @@
// # Security Settings User Interface for Mobile
// Utilities
-let { utils: Cu } = Components;
-let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
- Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref }
+ = Services.prefs;
let { getLocale, show_torbrowser_manual } =
- Cu.import("resource://torbutton/modules/utils.js", {});
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
// Description elements have the follow names.
const descNames =
@@ -64,7 +64,7 @@ function torbutton_set_learn_more_links() {
locale = getLocale();
}
let links = linkNames.map(name => document.getElementById(name));
- links.forEach(link => {;
+ links.forEach(link => {
if (show_manual && locale != "") {
link.href= "https:/tb-manual.torproject.org/" + locale +
"/security-slider.html";
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index 5ecbe7d7..05dc14de 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -26,18 +26,17 @@ let createTorCircuitDisplay = (function () {
"use strict";
// Mozilla utilities
-const { Cu : utils , Ci : interfaces } = Components.utils;
-Cu.import("resource://gre/modules/Services.jsm");
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
// Import the controller code.
-let { controller } = Cu.import("resource://torbutton/modules/tor-control-port.js", {});
+let { controller } = ChromeUtils.import("resource://torbutton/modules/tor-control-port.js", {});
// Utility functions
-let { bindPrefAndInit, observe, getLocale, getDomainForBrowser } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, observe, getLocale, getDomainForBrowser } = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
// Make the TorButton logger available.
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
// ## Circuit/stream credentials and node monitoring
@@ -209,18 +208,13 @@ let uiString = function (shortName) {
return torbuttonBundle.GetStringFromName("torbutton.circuit_display." + shortName);
};
-// __regionBundle__.
-// A list of localized region (country) names.
-let regionBundle = Services.strings.createBundle(
- "chrome://global/locale/regionNames.properties");
-
// __localizedCountryNameFromCode(countryCode)__.
// Convert a country code to a localized country name.
// Example: `'de'` -> `'Deutschland'` in German locale.
let localizedCountryNameFromCode = function (countryCode) {
if (!countryCode) return uiString("unknown_country");
try {
- return regionBundle.GetStringFromName(countryCode.toLowerCase());
+ return Services.intl.getRegionDisplayNames(undefined, [countryCode])[0];
} catch (e) {
return countryCode.toUpperCase();
}
@@ -363,7 +357,7 @@ let setupGuardNote = function () {
["div", {},
noteBefore, ["span", {class: "circuit-guard-name"}, name],
noteAfter, " ",
- ["span", {onclick: `gBrowser.selectedTab = gBrowser.addTab('https://support.torproject.org/${localeCode}/tbb/tbb-2/');`,
+ ["span", {onclick: `gBrowser.selectedTab = gBrowser.addTab('https://support.torproject.org/${localeCode}/tbb/tbb-2/', {triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});`,
class: "circuit-link"},
learnMoreString]]);
};
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index a7bd4f8c..d73ddf73 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -7,16 +7,20 @@
// TODO: Double-check there are no strange exploits to defeat:
// http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
-let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-const {AppConstants} = ChromeUtils.import("resource://gre/modules/AppConstants.jsm");
+/* global torbutton_log, gBrowser, torbutton_safelog, CustomizableUI,
+ createTorCircuitDisplay, torbutton_get_property_string, gFindBarInitialized,
+ gFindBar, OpenBrowserWindow, PrivateBrowsingUtils, torbutton_get_stringbundle,
+ Services, AppConstants
+ */
+
let {
showDialog,
show_torbrowser_manual,
unescapeTorString,
bindPrefAndInit,
getDomainForBrowser,
-} = Cu.import("resource://torbutton/modules/utils.js", {});
-let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
+} = ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+let SecurityPrefs = ChromeUtils.import("resource://torbutton/modules/security-prefs.js", {});
const k_tb_last_browser_version_pref = "extensions.torbutton.lastBrowserVersion";
const k_tb_browser_update_needed_pref = "extensions.torbutton.updateNeeded";
@@ -44,8 +48,7 @@ var m_tb_control_host = null; // Set if using TCP.
var m_tb_control_pass = null;
var m_tb_control_desc = null; // For logging.
-var m_tb_domWindowUtils = window.QueryInterface(Ci.nsIInterfaceRequestor).
- getInterface(Ci.nsIDOMWindowUtils);
+var m_tb_domWindowUtils = window.windowUtils;
// Bug 1506 P1: This object is only for updating the UI for toggling and style
var torbutton_window_pref_observer =
@@ -91,9 +94,8 @@ var torbutton_unique_pref_observer =
m_tb_prefs.addObserver("privacy.resistFingerprinting", this, false);
// We observe xpcom-category-entry-added for plugins w/ Gecko-Content-Viewers
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
- observerService.addObserver(this, "xpcom-category-entry-added", false);
+ var observerService = Services.obs;
+ observerService.addObserver(this, "xpcom-category-entry-added");
},
unregister: function()
@@ -106,8 +108,7 @@ var torbutton_unique_pref_observer =
m_tb_prefs.removeObserver("privacy.firstparty.isolate", this);
m_tb_prefs.removeObserver("privacy.resistFingerprinting", this);
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
+ var observerService = Services.obs;
observerService.removeObserver(this, "xpcom-category-entry-added");
},
@@ -165,11 +166,9 @@ var torbutton_unique_pref_observer =
}
var torbutton_tor_check_observer = {
- register: function()
- {
- this._obsSvc = Cc["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
- this._obsSvc.addObserver(this, k_tb_tor_check_failed_topic, false);
+ register() {
+ this._obsSvc = Services.obs;
+ this._obsSvc.addObserver(this, k_tb_tor_check_failed_topic);
},
unregister: function()
@@ -189,22 +188,24 @@ var torbutton_tor_check_observer = {
// If the user does not have an about:tor tab open in the front most
// window, open one.
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var win = wm.getMostRecentWindow("navigator:browser");
if (win == window) {
let foundTab = false;
- let tabBrowser = top.getBrowser();
+ let tabBrowser = top.gBrowser;
for (let i = 0; !foundTab && (i < tabBrowser.browsers.length); ++i) {
let b = tabBrowser.getBrowserAtIndex(i);
foundTab = (b.currentURI.spec.toLowerCase() == "about:tor");
}
- if (!foundTab)
- gBrowser.selectedTab = gBrowser.addTab("about:tor");
+ if (!foundTab) {
+ gBrowser.selectedTab = gBrowser.addTab("about:tor", {
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
+ });
+ }
}
}
- }
+ },
};
function torbutton_init_toolbutton()
@@ -268,8 +269,8 @@ function torbutton_init() {
} catch(e) {}
// Bug 1506 P4: These vars are very important for New Identity
- var environ = Components.classes["@mozilla.org/process/environment;1"]
- .getService(Components.interfaces.nsIEnvironment);
+ var environ = Cc["@mozilla.org/process/environment;1"]
+ .getService(Ci.nsIEnvironment);
if (environ.exists("TOR_CONTROL_PASSWD")) {
m_tb_control_pass = environ.get("TOR_CONTROL_PASSWD");
@@ -282,10 +283,12 @@ function torbutton_init() {
} catch(e) {
torbutton_log(4, 'unable to read authentication cookie');
}
- } else try {
+ } else {
+ try {
// Try to get password from Tor Launcher.
m_tb_control_pass = tlps.TorGetPassword(false);
- } catch(e) {}
+ } catch (e) {}
+ }
// Try to get the control port IPC file (an nsIFile) from Tor Launcher,
// since Tor Launcher knows how to handle its own preferences and how to
@@ -341,9 +344,8 @@ function torbutton_init() {
// This works only by setting the pref to `true` otherwise we get an
// exception and nothing is happening.
m_tb_prefs.setBoolPref("dom.quotaManager.testing", true);
- Cc["@mozilla.org/dom/quota-manager-service;1"]
- .getService(Ci.nsIQuotaManagerService).clear();
- } catch(e) {
+ Services.qms.clear();
+ } catch (e) {
} finally {
m_tb_prefs.setBoolPref("dom.quotaManager.testing", orig_quota_test);
}
@@ -503,8 +505,7 @@ function torbutton_confirm_plugins() {
torbutton_log(3, "Confirming plugin usage.");
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
// Display two buttons, both with string titles.
var flags = prompts.STD_YES_NO_BUTTONS + prompts.BUTTON_DELAY_ENABLE;
@@ -513,8 +514,7 @@ function torbutton_confirm_plugins() {
var askAgainText = torbutton_get_property_string("torbutton.popup.never_ask_again");
var askAgain = {value: false};
- var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var win = wm.getMostRecentWindow("navigator:browser");
var no_plugins = (prompts.confirmEx(win, "", message, flags, null, null, null,
askAgainText, askAgain) == 1);
@@ -531,8 +531,6 @@ function torbutton_confirm_plugins() {
// Now, if any tabs were open to about:addons, reload them. Our popup
// messed up that page.
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
var browserEnumerator = wm.getEnumerator("navigator:browser");
// Check each browser instance for our URL
@@ -553,15 +551,13 @@ function torbutton_confirm_plugins() {
}
function torbutton_inform_about_tbb() {
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
var message = torbutton_get_property_string("torbutton.popup.prompt_torbrowser");
var title = torbutton_get_property_string("torbutton.title.prompt_torbrowser");
var checkbox = {value: false};
- var sb = Components.classes["@mozilla.org/intl/stringbundle;1"]
- .getService(Components.interfaces.nsIStringBundleService);
+ var sb = Services.strings;
var browserstrings = sb.createBundle("chrome://browser/locale/browser.properties");
var askagain = browserstrings.GetStringFromName("privateBrowsingNeverAsk");
@@ -761,14 +757,14 @@ function torbutton_socket_readline(input) {
// Bug 1506 P4: Control port interaction. Needed for New Identity.
function torbutton_read_authentication_cookie(path) {
- var file = Components.classes['@mozilla.org/file/local;1']
- .createInstance(Components.interfaces.nsIFile);
+ var file = Cc["@mozilla.org/file/local;1"]
+ .createInstance(Ci.nsIFile);
file.initWithPath(path);
- var fileStream = Components.classes['@mozilla.org/network/file-input-stream;1']
- .createInstance(Components.interfaces.nsIFileInputStream);
+ var fileStream = Cc["@mozilla.org/network/file-input-stream;1"]
+ .createInstance(Ci.nsIFileInputStream);
fileStream.init(file, 1, 0, false);
- var binaryStream = Components.classes['@mozilla.org/binaryinputstream;1']
- .createInstance(Components.interfaces.nsIBinaryInputStream);
+ var binaryStream = Cc["@mozilla.org/binaryinputstream;1"]
+ .createInstance(Ci.nsIBinaryInputStream);
binaryStream.setInputStream(fileStream);
var array = binaryStream.readByteArray(fileStream.available());
binaryStream.close();
@@ -795,8 +791,7 @@ function torbutton_send_ctrl_cmd(command) {
// suppressing/unsuppressing user initiated events in a window's document to
// be sure that these events are not interfering with processing events being
// in the event queue.
- var thread = Cc["@mozilla.org/thread-manager;1"].
- getService(Ci.nsIThreadManager).currentThread;
+ var thread = Services.tm.currentThread;
m_tb_domWindowUtils.suppressEventHandling(true);
while (thread.processNextEvent(false)) {}
m_tb_domWindowUtils.suppressEventHandling(false);
@@ -871,15 +866,14 @@ function torbutton_new_identity() {
// conditions leading to failures (see bug 11783 for an example).
// TODO: Remove the Torbutton menu entry again once we have done our
// security control redesign.
- document.getElementById("torbutton-new-identity").disabled = true;
+ // document.getElementById("torbutton-new-identity").disabled = true;
document.getElementById("menu_newIdentity").disabled = true;
document.getElementById("appMenuNewIdentity").disabled = true;
let shouldConfirm = m_tb_prefs.getBoolPref("extensions.torbutton.confirm_newnym");
if (shouldConfirm) {
- let prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
- .getService(Ci.nsIPromptService);
+ let prompts = Services.prompt;
// Display two buttons, both with string titles.
let flags = prompts.STD_YES_NO_BUTTONS;
@@ -898,7 +892,7 @@ function torbutton_new_identity() {
} else {
// TODO: Remove the Torbutton menu entry again once we have done our
// security control redesign.
- document.getElementById("torbutton-new-identity").disabled = false;
+ // document.getElementById("torbutton-new-identity").disabled = false;
document.getElementById("menu_newIdentity").disabled = false;
document.getElementById("appMenuNewIdentity").disabled = false;
}
@@ -910,11 +904,11 @@ function torbutton_new_identity() {
// enabled (again).
// TODO: Remove the Torbutton menu entry again once we have done our
// security control redesign.
- document.getElementById("torbutton-new-identity").disabled = false;
+ torbutton_log(5, "Unexpected error on new identity: " + e);
+ window.alert("Torbutton: Unexpected error on new identity: " + e);
+ // document.getElementById("torbutton-new-identity").disabled = false;
document.getElementById("menu_newIdentity").disabled = false;
document.getElementById("appMenuNewIdentity").disabled = false;
- torbutton_log(5, "Unexpected error on new identity: "+e);
- window.alert("Torbutton: Unexpected error on new identity: "+e);
}
}
@@ -941,7 +935,7 @@ function torbutton_new_identity() {
*/
// Bug 1506 P4: Needed for New Identity.
function torbutton_do_new_identity() {
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
+ var obsSvc = Services.obs;
torbutton_log(3, "New Identity: Disabling JS");
torbutton_disable_all_js();
@@ -995,9 +989,9 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing HTTP Auth");
- if(m_tb_prefs.getBoolPref('extensions.torbutton.clear_http_auth')) {
- var auth = Components.classes["@mozilla.org/network/http-auth-manager;1"].
- getService(Components.interfaces.nsIHttpAuthManager);
+ if (m_tb_prefs.getBoolPref("extensions.torbutton.clear_http_auth")) {
+ var auth = Cc["@mozilla.org/network/http-auth-manager;1"].
+ getService(Ci.nsIHttpAuthManager);
auth.clearAll();
}
@@ -1006,8 +1000,8 @@ function torbutton_do_new_identity() {
// Clear all crypto auth tokens. This includes calls to PK11_LogoutAll(),
// nsNSSComponent::LogoutAuthenticatedPK11() and clearing the SSL session
// cache.
- let sdr = Components.classes["@mozilla.org/security/sdr;1"].
- getService(Components.interfaces.nsISecretDecoderRing);
+ let sdr = Cc["@mozilla.org/security/sdr;1"].
+ getService(Ci.nsISecretDecoderRing);
sdr.logoutAndTeardown();
// This clears the OCSP cache.
@@ -1047,8 +1041,7 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing Offline Cache");
try {
- const LoadContextInfo = Cc["@mozilla.org/load-context-info-factory;1"]
- .getService(Ci.nsILoadContextInfoFactory);
+ const LoadContextInfo = Services.loadContextInfo;
for (let contextInfo of [LoadContextInfo.default, LoadContextInfo.private]) {
let appCacheStorage = Services.cache2.appCacheStorage(contextInfo, null);
@@ -1089,19 +1082,18 @@ function torbutton_do_new_identity() {
// This works only by setting the pref to `true` otherwise we get an
// exception and nothing is happening.
m_tb_prefs.setBoolPref("dom.quotaManager.testing", true);
- Cc["@mozilla.org/dom/quota-manager-service;1"]
- .getService(Ci.nsIQuotaManagerService).clear();
- } catch(e) {
- torbutton_log(5, "Exception on storage clearing: "+e);
+ Services.qms.clear();
+ } catch (e) {
+ torbutton_log(5, "Exception on storage clearing: " + e);
} finally {
m_tb_prefs.setBoolPref("dom.quotaManager.testing", orig_quota_test);
}
torbutton_log(3, "New Identity: Clearing Cookies and DOM Storage");
- if (m_tb_prefs.getBoolPref('extensions.torbutton.cookie_protections')) {
- var selector = Components.classes["@torproject.org/cookie-jar-selector;1"]
- .getService(Components.interfaces.nsISupports)
+ if (m_tb_prefs.getBoolPref("extensions.torbutton.cookie_protections")) {
+ var selector = Cc["@torproject.org/cookie-jar-selector;1"]
+ .getService(Ci.nsISupports)
.wrappedJSObject;
// This emits "cookie-changed", "cleared", which kills DOM storage
// and the safe browsing API key
@@ -1119,18 +1111,12 @@ function torbutton_do_new_identity() {
// XXX: This may not clear zoom site-specific
// browser.content.full-zoom
- if (Ci.nsIContentPrefService2) { // Firefox >= 20
- XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
- "resource://gre/modules/PrivateBrowsingUtils.jsm");
- var pbCtxt = PrivateBrowsingUtils.privacyContextFromWindow(window);
- var cps = Cc["@mozilla.org/content-pref/service;1"]
- .getService(Ci.nsIContentPrefService2);
- cps.removeAllDomains(pbCtxt);
- } else { // Firefox < 20
- var cps = Cc["@mozilla.org/content-pref/service;1"].
- createInstance(Ci.nsIContentPrefService);
- cps.removeGroupedPrefs();
- }
+ ChromeUtils.defineModuleGetter(this, "PrivateBrowsingUtils",
+ "resource://gre/modules/PrivateBrowsingUtils.jsm");
+ var pbCtxt = PrivateBrowsingUtils.privacyContextFromWindow(window);
+ var cps = Cc["@mozilla.org/content-pref/service;1"]
+ .getService(Ci.nsIContentPrefService2);
+ cps.removeAllDomains(pbCtxt);
torbutton_log(3, "New Identity: Syncing prefs");
@@ -1139,8 +1125,7 @@ function torbutton_do_new_identity() {
torbutton_log(3, "New Identity: Clearing permissions");
- let pm = Cc["@mozilla.org/permissionmanager;1"].
- getService(Ci.nsIPermissionManager);
+ let pm = Services.perms;
pm.removeAll();
// Clear the domain isolation state.
@@ -1234,8 +1219,7 @@ function torbutton_clear_image_caches()
// Try to clear the private browsing cache. To do so, we must locate
// a content document that is contained within a private browsing window.
let didClearPBCache = false;
- let wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
+ let wm = Services.wm;
let enumerator = wm.getEnumerator("navigator:browser");
while (!didClearPBCache && enumerator.hasMoreElements()) {
let win = enumerator.getNext();
@@ -1243,7 +1227,7 @@ function torbutton_clear_image_caches()
if (!browserDoc.hasAttribute("privatebrowsingmode"))
continue;
- let tabbrowser = win.getBrowser();
+ let tabbrowser = win.gBrowser;
if (!tabbrowser)
continue;
@@ -1372,8 +1356,7 @@ function torbutton_local_tor_check()
if (socksAddr && socksAddr.startsWith("file:")) {
// Convert the file URL to a file path.
try {
- let ioService = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
+ let ioService = Services.io;
let fph = ioService.getProtocolHandler("file")
.QueryInterface(Ci.nsIFileProtocolHandler);
socksIPCPath = fph.getFileFromURLSpec(socksAddr).path;
@@ -1440,11 +1423,8 @@ function torbutton_local_tor_check()
} // torbutton_local_tor_check
-function torbutton_initiate_remote_tor_check()
-{
- let obsSvc = Cc["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
-
+function torbutton_initiate_remote_tor_check() {
+ let obsSvc = Services.obs;
try {
let checkSvc = Cc["@torproject.org/torbutton-torCheckService;1"]
.getService(Ci.nsISupports).wrappedJSObject;
@@ -1573,13 +1553,12 @@ function torbutton_close_tabs_on_new_identity() {
// TODO: muck around with browser.tabs.warnOnClose.. maybe..
torbutton_log(3, "Closing tabs...");
- let wm = Cc["@mozilla.org/appshell/window-mediator;1"]
- .getService(Ci.nsIWindowMediator);
+ let wm = Services.wm;
let enumerator = wm.getEnumerator("navigator:browser");
- let windowsToClose = new Array();
+ let windowsToClose = [];
while (enumerator.hasMoreElements()) {
let win = enumerator.getNext();
- let browser = win.getBrowser();
+ let browser = win.gBrowser;
if (!browser) {
torbutton_log(5, "No browser for possible closed window");
continue;
@@ -1598,7 +1577,9 @@ function torbutton_close_tabs_on_new_identity() {
}
if (win == window) {
- browser.addTab("about:blank");
+ browser.addTab("about:blank", {
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
+ });
} else {
// It is a bad idea to alter the window list while iterating
// over it, so add this window to an array and close it later.
@@ -1672,9 +1653,8 @@ function torbutton_open_cookie_dialog() {
// Bug 1506 P4: Used by New Identity if cookie protections are
// not in use.
function torbutton_clear_cookies() {
- torbutton_log(2, 'called torbutton_clear_cookies');
- var cm = Components.classes["@mozilla.org/cookiemanager;1"]
- .getService(Components.interfaces.nsICookieManager);
+ torbutton_log(2, "called torbutton_clear_cookies");
+ var cm = Services.cookies;
cm.removeAll();
}
@@ -1692,7 +1672,7 @@ function torbutton_disable_browser_js(browser) {
torbutton_log(3, "No content window to disable JS events.");
else
eventSuppressor = browser.contentWindow.
- QueryInterface(Components.interfaces.nsIInterfaceRequestor).
+ QueryInterface(Ci.nsIInterfaceRequestor).
getInterface(Ci.nsIDOMWindowUtils);
} catch(e) {
torbutton_log(4, "Failed to disable JS events: "+e)
@@ -1718,8 +1698,8 @@ function torbutton_disable_browser_js(browser) {
// Bug 1506 P3: The JS-killing bits of this are used by
// New Identity as a defense-in-depth measure.
function torbutton_disable_window_js(win) {
- var browser = win.getBrowser();
- if(!browser) {
+ var browser = win.gBrowser;
+ if (!browser) {
torbutton_log(5, "No browser for plugin window...");
return;
}
@@ -1760,8 +1740,7 @@ function torbutton_disable_window_js(win) {
// This is an ugly beast.. But unfortunately it has to be so..
// Looping over all tabs twice is not somethign we wanna do..
function torbutton_disable_all_js() {
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var enumerator = wm.getEnumerator("navigator:browser");
while(enumerator.hasMoreElements()) {
var win = enumerator.getNext();
@@ -1817,8 +1796,8 @@ function torbutton_do_startup()
{
if(m_tb_prefs.getBoolPref("extensions.torbutton.startup")) {
// Bug 1506: Still want to do this
- torbutton_toggle_plugins(
- m_tb_prefs.getBoolPref("plugin.disable"));
+ // torbutton_toggle_plugins(
+ // m_tb_prefs.getBoolPref("plugin.disable"));
// Bug 1506: Should probably be moved to an XPCOM component
torbutton_do_main_window_startup();
@@ -1839,7 +1818,7 @@ function torbutton_do_startup()
if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
var warning = torbutton_get_property_string("torbutton.popup.short_torbrowser");
var title = torbutton_get_property_string("torbutton.title.prompt_torbrowser");
- var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+ var prompts = Services.prompt;
prompts.alert(null, title, warning);
}
@@ -1867,8 +1846,8 @@ function torbutton_new_tab(event)
function torbutton_is_windowed(wind) {
torbutton_log(3, "Window: (" + wind.outerWidth + "," + wind.outerHeight + ") ?= ("
+ wind.screen.availWidth + "," + wind.screen.availHeight + ")");
- if(wind.windowState == Components.interfaces.nsIDOMChromeWindow.STATE_MINIMIZED
- || wind.windowState == Components.interfaces.nsIDOMChromeWindow.STATE_MAXIMIZED) {
+ if (wind.windowState == Ci.nsIDOMChromeWindow.STATE_MINIMIZED
+ || wind.windowState == Ci.nsIDOMChromeWindow.STATE_MAXIMIZED) {
torbutton_log(2, "Window is minimized/maximized");
return false;
}
@@ -1904,8 +1883,9 @@ function showSecurityPreferencesPanel(chromeWindow) {
if (settingsTab === null) {
// Open up the settings panel in a new tab.
tabBrowser.addTab(SECURITY_PREFERENCES_URI, {
- 'selected': true,
- 'parentId': tabBrowser.selectedTab.id
+ "selected": true,
+ "parentId": tabBrowser.selectedTab.id,
+ triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
});
} else {
// Activate an existing settings panel tab.
@@ -1984,8 +1964,7 @@ function torbutton_close_window(event) {
// But that is a major overhaul..
if (m_tb_is_main_window) {
torbutton_log(3, "Original window closed. Searching for another");
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
+ var wm = Services.wm;
var enumerator = wm.getEnumerator("navigator:browser");
while(enumerator.hasMoreElements()) {
var win = enumerator.getNext();
@@ -2016,9 +1995,8 @@ function torbutton_close_window(event) {
function torbutton_open_network_settings() {
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"]
- .getService(Ci.nsIObserverService);
- obsSvc.notifyObservers(this, "TorOpenNetworkSettings", null);
+ var obsSvc = Services.obs;
+ obsSvc.notifyObservers(this, "TorOpenNetworkSettings");
}
@@ -2032,14 +2010,7 @@ var m_tb_resize_date = null;
// probably not for android.
var torbutton_resizelistener =
{
- QueryInterface: function(aIID)
- {
- if (aIID.equals(Ci.nsIWebProgressListener) ||
- aIID.equals(Ci.nsISupportsWeakReference) ||
- aIID.equals(Ci.nsISupports))
- return this;
- throw Cr.NS_NOINTERFACE;
- },
+ QueryInterface: ChromeUtils.generateQI(["nsIWebProgressListener", "nsISupportsWeakReference"]),
onLocationChange: function(aProgress, aRequest, aURI) {},
onStateChange: function(aProgress, aRequest, aFlag, aStatus) {
@@ -2072,10 +2043,8 @@ var torbutton_resizelistener =
m_tb_resize_date = Date.now();
}
- let sb = torbutton_get_stringbundle();
// No need to get "OK" translated again.
- let sbSvc = Cc["@mozilla.org/intl/stringbundle;1"].
- getService(Ci.nsIStringBundleService);
+ let sbSvc = Services.strings;
let bundle = sbSvc.
createBundle("chrome://global/locale/commonDialogs.properties");
let button_label = bundle.GetStringFromName("OK");
@@ -2141,8 +2110,7 @@ var torbutton_resizelistener =
function torbutton_get_current_accept_language_value(aURI)
{
try {
- let ioService = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
+ let ioService = Services.io;
let channel = ioService.newChannelFromURI(aURI);
let httpChannel = channel.QueryInterface(Ci.nsIHttpChannel);
return httpChannel.getRequestHeader("Accept-Language");
diff --git a/src/chrome/content/torbutton_util.js b/src/chrome/content/torbutton_util.js
index e6de7681..c7116a09 100644
--- a/src/chrome/content/torbutton_util.js
+++ b/src/chrome/content/torbutton_util.js
@@ -3,8 +3,9 @@
// code directly. I don't see any of them as essential for 1506,
// really.
-var m_tb_torlog = Components.classes["@torproject.org/torbutton-logger;1"]
-.getService(Components.interfaces.nsISupports).wrappedJSObject;
+// let { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
+var m_tb_torlog = Cc["@torproject.org/torbutton-logger;1"]
+.getService(Ci.nsISupports).wrappedJSObject;
var m_tb_string_bundle = torbutton_get_stringbundle();
@@ -28,10 +29,8 @@ function torbutton_get_prefbranch(branch_name) {
var o_branch = false;
torbutton_log(1, "called get_prefbranch()");
- o_prefs = Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefService);
- if (!o_prefs)
- {
+ o_prefs = Services.prefs;
+ if (!o_prefs) {
torbutton_log(5, "Failed to get preferences-service!");
return false;
}
@@ -52,8 +51,7 @@ function torbutton_get_stringbundle()
var o_stringbundle = false;
try {
- var oBundle = Components.classes["@mozilla.org/intl/stringbundle;1"]
- .getService(Components.interfaces.nsIStringBundleService);
+ var oBundle = Services.strings;
o_stringbundle = oBundle.createBundle("chrome://torbutton/locale/torbutton.properties");
} catch(err) {
o_stringbundle = false;
diff --git a/src/components/aboutTor.js b/src/components/aboutTor.js
index e3ee03d6..ec48d668 100644
--- a/src/components/aboutTor.js
+++ b/src/components/aboutTor.js
@@ -14,20 +14,15 @@ const kMODULE_CID = Components.ID("84d47da6-79c3-4661-aa9f-8049476f7bf5");
const kAboutTorURL = "chrome://torbutton/content/aboutTor/aboutTor.xhtml";
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-
-function AboutTor()
-{
-}
+function AboutTor() {}
AboutTor.prototype =
{
- QueryInterface: XPCOMUtils.generateQI([Ci.nsIAboutModule]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsIAboutModule]),
// nsIClassInfo implementation:
classDescription: kMODULE_NAME,
@@ -35,11 +30,9 @@ AboutTor.prototype =
contractID: kMODULE_CONTRACTID,
// nsIAboutModule implementation:
- newChannel: function(aURI, aLoadInfo)
- {
- let ioSvc = Cc["@mozilla.org/network/io-service;1"]
- .getService(Ci.nsIIOService);
- let uri = ioSvc.newURI(kAboutTorURL, null, null);
+ newChannel(aURI, aLoadInfo) {
+ let ioSvc = Services.io;
+ let uri = ioSvc.newURI(kAboutTorURL);
let channel = ioSvc.newChannelFromURIWithLoadInfo(uri, aLoadInfo);
channel.originalURI = aURI;
diff --git a/src/components/cookie-jar-selector.js b/src/components/cookie-jar-selector.js
index 8456da3b..b3eeda53 100644
--- a/src/components/cookie-jar-selector.js
+++ b/src/components/cookie-jar-selector.js
@@ -18,12 +18,11 @@ const kMODULE_NAME = "Cookie Jar Selector";
const kMODULE_CONTRACTID = "@torproject.org/cookie-jar-selector;1";
const kMODULE_CID = Components.ID("e6204253-b690-4159-bfe8-d4eedab6b3be");
-const Cr = Components.results;
-const Cu = Components.utils;
-
-Cu.import("resource://torbutton/modules/default-prefs.js", {})
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {})
.ensureDefaultPrefs();
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
// XXX: Must match the definition in torcookie.js :/
function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,isSession,
expires,isProtected) {
@@ -42,73 +41,32 @@ function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,i
}
function CookieJarSelector() {
- var Cc = Components.classes;
- var Ci = Components.interfaces;
-
- this.logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ this.logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
- this.logger.log(3, "Component Load 5: New CookieJarSelector "+kMODULE_CONTRACTID);
+ this.logger.log(3, "Component Load 5: New CookieJarSelector " + kMODULE_CONTRACTID);
- this.prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
+ this.prefs = Services.prefs;
var getProfileFile = function(filename) {
- var loc = "ProfD"; // profile directory
- var file =
- Cc["@mozilla.org/file/directory_service;1"]
- .getService(Ci.nsIProperties)
+ var loc = "ProfD"; // profile directory
+ var file = Services.dirsvc
.get(loc, Ci.nsIFile)
.clone();
file.append(filename);
return file;
};
- var copyProfileFile = function(src, dest) {
- var srcfile = getProfileFile(src);
- var destfile = getProfileFile(dest);
- if (srcfile.exists()) {
- // XXX: Permissions issue with Vista roaming profiles?
- // Maybe file locking?
- try {
- if (destfile.exists()) {
- destfile.remove(false);
- }
- } catch(e) {
- this.logger.log(4, "Cookie file deletion exception: "+e);
- }
- try {
- srcfile.copyTo(null, dest);
- } catch(e) {
- this.logger.log(5, "Cookie file copy exception: "+e);
- }
- }
- };
-
- var moveProfileFile = function(src, dest) { // FIXME: Why does this not work?
- var srcfile = getProfileFile(src);
- var destfile = getProfileFile(dest);
- if (srcfile.exists()) {
- if (destfile.exists()) {
- destfile.remove(false);
- }
- srcfile.moveTo(null, dest);
- }
- };
-
this.clearCookies = function() {
try {
- Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager)
- .removeAll();
- } catch(e) {
- this.logger.log(4, "Cookie clearing exception: "+e);
+ Services.cookies.removeAll();
+ } catch (e) {
+ this.logger.log(4, "Cookie clearing exception: " + e);
}
};
this._cookiesToJS = function(getSession) {
- var cookieManager =
- Cc["@mozilla.org/cookiemanager;1"]
- .getService(Ci.nsICookieManager);
+ var cookieManager = Services.cookies;
var cookiesEnum = cookieManager.enumerator;
var cookiesAsJS = [];
var count = 0;
@@ -353,7 +311,7 @@ function CookieJarSelector() {
var nextCookie = enumerator.getNext();
if (!nextCookie) break;
- nextCookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
+ nextCookie = nextCookie.QueryInterface(Ci.nsICookie);
for (var i = 0; i < protCookies.length; i++) {
protcookie = protcookie || (nextCookie.host == protCookies[i].host &&
nextCookie.name == protCookies[i].name &&
@@ -371,7 +329,7 @@ function CookieJarSelector() {
}
// Emit cookie-changed event. This instructs other components to clear their identifiers
// (Specifically DOM storage and safe browsing, but possibly others)
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+ var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
obsSvc.notifyObservers(this, "cookie-changed", "cleared");
} catch (e) {
this.logger.log(5, "Error deleting unprotected cookies: " + e);
@@ -410,10 +368,8 @@ function CookieJarSelector() {
};
// Check firefox version to know filename
- var appInfo = Components.classes["@mozilla.org/xre/app-info;1"]
- .getService(Components.interfaces.nsIXULAppInfo);
- var versionChecker = Components.classes["@mozilla.org/xpcom/version-comparator;1"]
- .getService(Components.interfaces.nsIVersionComparator);
+ // var appInfo = Services.appinfo;
+ // var versionChecker = Services.vc;
// This JSObject is exported directly to chrome
this.wrappedJSObject = this;
@@ -424,15 +380,8 @@ function CookieJarSelector() {
this.timerCallback = {
cookie_changed: false,
- QueryInterface: function(iid) {
- if (!iid.equals(Component.interfaces.nsISupports) &&
- !iid.equals(Component.interfaces.nsITimer)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
- notify: function() {
+ QueryInterface: ChromeUtils.generateQI(["nsITimer"]),
+ notify() {
// this refers to timerCallback object. use jarThis to reference
// CookieJarSelector object.
if(!this.cookie_changed) {
@@ -450,27 +399,18 @@ function CookieJarSelector() {
}
-const nsISupports = Components.interfaces.nsISupports;
-const nsIClassInfo = Components.interfaces.nsIClassInfo;
-const nsIObserver = Components.interfaces.nsIObserver;
-const nsITimer = Components.interfaces.nsITimer;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsIObserverService = Components.interfaces.nsIObserverService;
-const nsICategoryManager = Components.interfaces.nsICategoryManager;
+const nsISupports = Ci.nsISupports;
+const nsIClassInfo = Ci.nsIClassInfo;
+const nsIObserver = Ci.nsIObserver;
+const nsITimer = Ci.nsITimer;
+const nsIComponentRegistrar = Ci.nsIComponentRegistrar;
+const nsIObserverService = Ci.nsIObserverService;
+const nsICategoryManager = Ci.nsICategoryManager;
// Start1506: You may or may not care about this:
CookieJarSelector.prototype =
{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIClassInfo) &&
- !iid.equals(nsIObserver) &&
- !iid.equals(nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI(["nsIClassInfo", "nsIObserver"]),
wrappedJSObject: null, // Initialized by constructor
@@ -496,19 +436,18 @@ CookieJarSelector.prototype =
observe : function(aSubject, aTopic, aData) {
switch(aTopic) {
case "cookie-changed":
- var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);
+ var prefs = Services.prefs;
this.timerCallback.cookie_changed = true;
-
+
if (aData == "added"
&& prefs.getBoolPref("extensions.torbutton.cookie_auto_protect")
- && !prefs.getBoolPref("extensions.torbutton.tor_memory_jar"))
- {
- this.addProtectedCookie(aSubject.QueryInterface(Components.interfaces.nsICookie2));//protect the new cookie!
+ && !prefs.getBoolPref("extensions.torbutton.tor_memory_jar")) {
+ this.addProtectedCookie(aSubject.QueryInterface(Ci.nsICookie2));// protect the new cookie!
}
break;
case "profile-after-change":
- var obsSvc = Components.classes["@mozilla.org/observer-service;1"].getService(nsIObserverService);
- obsSvc.addObserver(this, "cookie-changed", false);
+ var obsSvc = Cc["@mozilla.org/observer-service;1"].getService(nsIObserverService);
+ obsSvc.addObserver(this, "cookie-changed");
// after profil loading, initialize a timer to call timerCallback
// at a specified interval
this.timer.initWithCallback(this.timerCallback, 60 * 1000, nsITimer.TYPE_REPEATING_SLACK); // 1 minute
@@ -517,7 +456,7 @@ CookieJarSelector.prototype =
}
},
- timer: Components.classes["@mozilla.org/timer;1"].createInstance(nsITimer),
+ timer: Cc["@mozilla.org/timer;1"].createInstance(nsITimer),
}
@@ -525,7 +464,7 @@ CookieJarSelector.prototype =
* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
if (XPCOMUtils.generateNSGetFactory)
var NSGetFactory = XPCOMUtils.generateNSGetFactory([CookieJarSelector]);
else
diff --git a/src/components/domain-isolator.js b/src/components/domain-isolator.js
index fc28703f..e04005a5 100644
--- a/src/components/domain-isolator.js
+++ b/src/components/domain-isolator.js
@@ -6,21 +6,19 @@
// call earlier functions). The code file can be processed
// with docco.js to provide clear documentation.
-/* jshint esversion: 6 */
-/* global Components, console, XPCOMUtils */
-
// ### Abbreviations
-const Cc = Components.classes, Ci = Components.interfaces, Cu = Components.utils;
+
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// Make the logger available.
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
-let { ensureDefaultPrefs } = Cu.import("resource://torbutton/modules/default-prefs.js", {});
+let { ensureDefaultPrefs } = ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {});
ensureDefaultPrefs();
// Import Services object
-Cu.import("resource://gre/modules/Services.jsm");
+ChromeUtils.import("resource://gre/modules/Services.jsm");
// Import crypto object (FF 37+).
Cu.importGlobalProperties(["crypto"]);
@@ -82,6 +80,8 @@ tor.socksProxyCredentials = function (originalProxy, domain) {
proxy.port,
domain, // username
tor.noncesForDomains[domain], // password
+ "", // aProxyAuthorizationHeader
+ "", // aConnectionIsolationKey
proxy.flags,
proxy.failoverTimeout,
proxy.failoverProxy);
@@ -138,7 +138,6 @@ tor.isolateCircuitsByDomain = function () {
}
try {
let channel = aChannel.QueryInterface(Ci.nsIChannel),
- proxy = aProxy.QueryInterface(Ci.nsIProxyInfo),
firstPartyDomain = channel.loadInfo.originAttributes.firstPartyDomain;
if (firstPartyDomain === "") {
firstPartyDomain = "--unknown--";
@@ -165,7 +164,7 @@ const kMODULE_CONTRACTID = "@torproject.org/domain-isolator;1";
const kMODULE_CID = Components.ID("e33fd6d4-270f-475f-a96f-ff3140279f68");
// Import XPCOMUtils object.
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
// DomainIsolator object.
function DomainIsolator() {
@@ -174,7 +173,7 @@ function DomainIsolator() {
// Firefox component requirements
DomainIsolator.prototype = {
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
classDescription: kMODULE_NAME,
classID: kMODULE_CID,
contractID: kMODULE_CONTRACTID,
diff --git a/src/components/dragDropFilter.js b/src/components/dragDropFilter.js
index 916b835f..4465187e 100644
--- a/src/components/dragDropFilter.js
+++ b/src/components/dragDropFilter.js
@@ -5,13 +5,11 @@
* access to URLs (a potential proxy bypass vector).
*************************************************************************/
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-Cu.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// Module specific constants
const kMODULE_NAME = "Torbutton Drag and Drop Handler";
@@ -26,17 +24,15 @@ function DragDropFilter() {
this.logger.log(3, "Component Load 0: New DragDropFilter.");
try {
- var observerService = Cc["@mozilla.org/observer-service;1"].
- getService(Ci.nsIObserverService);
- observerService.addObserver(this, "on-datatransfer-available", false);
- } catch(e) {
+ Services.obs.addObserver(this, "on-datatransfer-available");
+ } catch (e) {
this.logger.log(5, "Failed to register drag observer");
}
}
DragDropFilter.prototype =
{
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver]),
// make this an nsIClassInfo object
flags: Ci.nsIClassInfo.DOM_OBJECT,
diff --git a/src/components/external-app-blocker.js b/src/components/external-app-blocker.js
index 1f88fc78..747824d1 100644
--- a/src/components/external-app-blocker.js
+++ b/src/components/external-app-blocker.js
@@ -12,14 +12,9 @@
* handle an URL (e.g., when the user clicks on a mailto: URL).
*************************************************************************/
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cr = Components.results;
-const Cu = Components.utils;
-
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-Cu.import("resource://gre/modules/Services.jsm");
-Cu.import("resource://gre/modules/SharedPromptUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+const {PromptUtils} = ChromeUtils.import("resource://gre/modules/SharedPromptUtils.jsm");
// Module specific constants
const kMODULE_NAME = "Torbutton External App Handler";
@@ -38,7 +33,7 @@ ExternalAppBlocker.prototype =
{
_helperAppLauncher: undefined,
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIObserver,
Ci.nsIHelperAppWarningDialog]),
// make this an nsIClassInfo object
diff --git a/src/components/torCheckService.js b/src/components/torCheckService.js
index 19e13f49..4f79bef4 100644
--- a/src/components/torCheckService.js
+++ b/src/components/torCheckService.js
@@ -7,16 +7,13 @@
* Tor check service
*************************************************************************/
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
+
// Module specific constants
const kMODULE_NAME = "Torbutton Tor Check Service";
const kMODULE_CONTRACTID = "@torproject.org/torbutton-torCheckService;1";
const kMODULE_CID = Components.ID("5d57312b-5d8c-4169-b4af-e80d6a28a72e");
-const Cr = Components.results;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
-
function TBTorCheckService() {
this._logger = Cc["@torproject.org/torbutton-logger;1"]
.getService(Ci.nsISupports).wrappedJSObject;
@@ -28,15 +25,7 @@ function TBTorCheckService() {
TBTorCheckService.prototype =
{
- QueryInterface: function(iid) {
- if (!iid.equals(Ci.nsIClassInfo) &&
- !iid.equals(Ci.nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
-
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
kCheckNotInitiated: 0, // Possible values for statusOfTorCheck.
kCheckSuccessful: 1,
@@ -79,10 +68,8 @@ TBTorCheckService.prototype =
{
Cu.importGlobalProperties(["XMLHttpRequest"]);
let req = new XMLHttpRequest();
- let prefs = Cc["@mozilla.org/preferences-service;1"]
- .getService(Ci.nsIPrefBranch);
- let url = prefs.getCharPref("extensions.torbutton.test_url");
- req.open('GET', url, aAsync);
+ let url = Services.prefs.getCharPref("extensions.torbutton.test_url");
+ req.open("GET", url, aAsync);
req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
req.overrideMimeType("text/xml");
req.timeout = 120000; // Wait at most two minutes for a response.
@@ -140,8 +127,8 @@ TBTorCheckService.prototype =
}
return ret;
- }
+ },
};
-Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
var NSGetFactory = XPCOMUtils.generateNSGetFactory([TBTorCheckService]);
diff --git a/src/components/torbutton-logger.js b/src/components/torbutton-logger.js
index fdf7bb7d..ce4ba70b 100644
--- a/src/components/torbutton-logger.js
+++ b/src/components/torbutton-logger.js
@@ -13,31 +13,25 @@ const kMODULE_NAME = "Torbutton Logger";
const kMODULE_CONTRACTID = "@torproject.org/torbutton-logger;1";
const kMODULE_CID = Components.ID("f36d72c9-9718-4134-b550-e109638331d7");
-const Cr = Components.results;
-const Cc = Components.classes;
-const Ci = Components.interfaces;
-const Cu = Components.utils;
+ChromeUtils.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-Cu.import("resource://torbutton/modules/default-prefs.js", {}).ensureDefaultPrefs();
-
-Cu.import("resource://gre/modules/Services.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
function TorbuttonLogger() {
// Register observer
- Services.prefs.addObserver("extensions.torbutton", this, false);
+ Services.prefs.addObserver("extensions.torbutton", this);
this.loglevel = Services.prefs.getIntPref("extensions.torbutton.loglevel");
this.logmethod = Services.prefs.getIntPref("extensions.torbutton.logmethod");
try {
- var logMngr = Components.classes["@mozmonkey.com/debuglogger/manager;1"]
- .getService(Components.interfaces.nsIDebugLoggerManager);
+ var logMngr = Cc["@mozmonkey.com/debuglogger/manager;1"]
+ .getService(Ci.nsIDebugLoggerManager);
this._debuglog = logMngr.registerLogger("torbutton");
} catch (exErr) {
this._debuglog = false;
}
- this._console = Components.classes["@mozilla.org/consoleservice;1"]
- .getService(Components.interfaces.nsIConsoleService);
+ this._console = Services.console;
// This JSObject is exported directly to chrome
this.wrappedJSObject = this;
@@ -50,10 +44,10 @@ function TorbuttonLogger() {
* Everything below is boring boilerplate and can probably be ignored.
*/
-const nsISupports = Components.interfaces.nsISupports;
-const nsIClassInfo = Components.interfaces.nsIClassInfo;
-const nsIComponentRegistrar = Components.interfaces.nsIComponentRegistrar;
-const nsIObserverService = Components.interfaces.nsIObserverService;
+const nsISupports = Ci.nsISupports;
+const nsIClassInfo = Ci.nsIClassInfo;
+const nsIComponentRegistrar = Ci.nsIComponentRegistrar;
+const nsIObserverService = Ci.nsIObserverService;
const logString = { 1:"VERB", 2:"DBUG", 3: "INFO", 4:"NOTE", 5:"WARN" };
@@ -64,15 +58,7 @@ function padInt(i)
TorbuttonLogger.prototype =
{
- QueryInterface: function(iid)
- {
- if (!iid.equals(nsIClassInfo) &&
- !iid.equals(nsISupports)) {
- Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
- return null;
- }
- return this;
- },
+ QueryInterface: ChromeUtils.generateQI([Ci.nsISupports, Ci.nsIClassInfo]),
wrappedJSObject: null, // Initialized by constructor
@@ -176,7 +162,7 @@ TorbuttonLogger.prototype =
* XPCOMUtils.generateNSGetFactory was introduced in Mozilla 2 (Firefox 4).
* XPCOMUtils.generateNSGetModule is for Mozilla 1.9.2 (Firefox 3.6).
*/
-Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
+const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
if (XPCOMUtils.generateNSGetFactory)
var NSGetFactory = XPCOMUtils.generateNSGetFactory([TorbuttonLogger]);
else
diff --git a/src/modules/default-prefs.js b/src/modules/default-prefs.js
index 6a2bd86c..5ea549f4 100644
--- a/src/modules/default-prefs.js
+++ b/src/modules/default-prefs.js
@@ -4,7 +4,7 @@ function ensureDefaultPrefs () {
if (loaded) {
return;
}
- Components.utils.import("resource://gre/modules/Services.jsm");
+ const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
const kDefaultPreferences = "resource://torbutton/defaults/preferences/preferences.js";
const defaultPrefBranch = Services.prefs.getDefaultBranch(null);
diff --git a/src/modules/noscript-control.js b/src/modules/noscript-control.js
index 4513dce8..0daf15e1 100644
--- a/src/modules/noscript-control.js
+++ b/src/modules/noscript-control.js
@@ -1,17 +1,16 @@
// # NoScript settings control (for binding to Security Slider)
-/* jshint esversion:6 */
-
// ## Utilities
-const { utils: Cu } = Components;
-const { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-const { LegacyExtensionContext } =
- Cu.import("resource://gre/modules/LegacyExtensionsUtils.jsm", {});
+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm", {});
const { bindPref } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-let logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+
+const { ExtensionUtils } = ChromeUtils.import("resource://gre/modules/ExtensionUtils.jsm");
+const { MessageChannel } = ChromeUtils.import("resource://gre/modules/MessageChannel.jsm");
+
+let logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = (level, msg) => logger.log(level, msg);
// ## NoScript settings
@@ -100,20 +99,28 @@ var initialize = () => {
initialized = true;
try {
- // A mock extension object that can communicate with another extension
- // via the WebExtensions sendMessage/onMessage mechanism.
- let extensionContext = new LegacyExtensionContext({ id : noscriptID });
+ // LegacyExtensionContext is not there anymore. Using raw
+ // Services.mm.broadcastAsyncMessage mecanism to communicate with
+ // NoScript.
// The component that handles WebExtensions' sendMessage.
- let messageManager = extensionContext.messenger.messageManagers[0];
// __setNoScriptSettings(settings)__.
// NoScript listens for internal settings with onMessage. We can send
// a new settings JSON object according to NoScript's
// protocol and these are accepted! See the use of
// `browser.runtime.onMessage.addListener(...)` in NoScript's bg/main.js.
+
+ // TODO: Is there a better way?
let sendNoScriptSettings = settings =>
- extensionContext.messenger.sendMessage(messageManager, settings, noscriptID);
+ Services.mm.broadcastAsyncMessage("MessageChannel:Messages", [{
+ messageName: "Extension:Message",
+ sender: { id: noscriptID, extensionId: noscriptID },
+ recipient: { extensionId: noscriptID },
+ data: new StructuredCloneHolder(settings),
+ channelId: ExtensionUtils.getUniqueId(),
+ responseType: MessageChannel.RESPONSE_NONE,
+ }]);
// __setNoScriptSafetyLevel(safetyLevel)__.
// Set NoScript settings according to a particular safety level
@@ -129,13 +136,20 @@ var initialize = () => {
// Wait for the first message from NoScript to arrive, and then
// bind the security_slider pref to the NoScript settings.
- let messageListener = (a,b,c) => {
+ const listener = ({ data }) => {
+ for (const msg of data) {
+ if (msg.recipient.extensionId === noscriptID) {
+ messageListener(msg.data.deserialize({}), msg.sender);
+ }
+ }
+ };
+ let messageListener = (a, b, c) => {
try {
- log(3, `Message received from NoScript: ${JSON.stringify([a,b,c])}`);
+ log(3, `Message received from NoScript: ${JSON.stringify([a, b, c])}`);
if (!["started", "pageshow"].includes(a.__meta.name)) {
return;
}
- extensionContext.api.browser.runtime.onMessage.removeListener(messageListener);
+ Services.mm.removeMessageListener("MessageChannel:Messages", listener);
let noscriptPersist = Services.prefs.getBoolPref("extensions.torbutton.noscript_persist", false);
let noscriptInited = Services.prefs.getBoolPref("extensions.torbutton.noscript_inited", false);
// Set the noscript safety level once if we have never run noscript
@@ -153,7 +167,7 @@ var initialize = () => {
log(5, e.message);
}
};
- extensionContext.api.browser.runtime.onMessage.addListener(messageListener);
+ Services.mm.addMessageListener("MessageChannel:Messages", listener);
log(3, "Listening for message from NoScript.");
} catch (e) {
log(5, e.message);
diff --git a/src/modules/security-prefs.js b/src/modules/security-prefs.js
index fa97b70d..ffc5ee39 100644
--- a/src/modules/security-prefs.js
+++ b/src/modules/security-prefs.js
@@ -2,13 +2,12 @@
// ### Utilities
-let {classes: Cc, utils: Cu } = Components;
let { getBoolPref, setBoolPref, getIntPref, setIntPref } =
- Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
+ ChromeUtils.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
let { bindPref, bindPrefAndInit } =
- Cu.import("resource://torbutton/modules/utils.js", {});
-let logger = Components.classes["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ ChromeUtils.import("resource://torbutton/modules/utils.js", {});
+let logger = Cc["@torproject.org/torbutton-logger;1"]
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = (level, msg) => logger.log(level, msg);
// ### Constants
diff --git a/src/modules/tor-control-port.js b/src/modules/tor-control-port.js
index 2c399367..f1d9ed14 100644
--- a/src/modules/tor-control-port.js
+++ b/src/modules/tor-control-port.js
@@ -19,15 +19,15 @@
"use strict";
// ### Mozilla Abbreviations
-let {classes: Cc, interfaces: Ci, results: Cr, Constructor: CC, utils: Cu } = Components;
+let { Constructor: CC } = Components;
// ### Import Mozilla Services
-Cu.import("resource://gre/modules/Services.jsm");
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// __log__.
// Logging function
let logger = Cc["@torproject.org/torbutton-logger;1"]
- .getService(Components.interfaces.nsISupports).wrappedJSObject;
+ .getService(Ci.nsISupports).wrappedJSObject;
let log = x => logger.eclog(3, x.trimRight().replace(/\r\n/g, "\n"));
// ### announce this file
@@ -42,8 +42,8 @@ let io = {};
// given ipcFile or host and port.
io.asyncSocketStreams = function (ipcFile, host, port) {
let sts = Cc["@mozilla.org/network/socket-transport-service;1"]
- .getService(Components.interfaces.nsISocketTransportService),
- UNBUFFERED = Ci.nsITransport.OPEN_UNBUFFERED;
+ .getService(Ci.nsISocketTransportService),
+ UNBUFFERED = Ci.nsITransport.OPEN_UNBUFFERED;
// Create an instance of a socket transport.
let socketTransport;
diff --git a/src/modules/utils.js b/src/modules/utils.js
index d7baca6e..7b81819d 100644
--- a/src/modules/utils.js
+++ b/src/modules/utils.js
@@ -1,14 +1,8 @@
// # Utils.js
// Various helpful utility functions.
-// ### Shortcut
-const { Cu: utils, Cr: results } = Components;
-
// ### Import Mozilla Services
-Cu.import("resource://gre/modules/Services.jsm");
-
-// ### Import global URL
-Cu.importGlobalProperties(["URL"]);
+const {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
// ### About firstPartyDomain literal
const k_tb_about_uri_first_party_domain = "about.ef2a7dd5-93bc-417f-a698-142c3116864f.mozilla";
@@ -76,8 +70,8 @@ var observe = function (topic, callback) {
// __env__.
// Provides access to process environment variables.
-let env = Components.classes["@mozilla.org/process/environment;1"]
- .getService(Components.interfaces.nsIEnvironment);
+let env = Cc["@mozilla.org/process/environment;1"]
+ .getService(Ci.nsIEnvironment);
// __getEnv(name)__.
// Reads the environment variable of the given name.
@@ -88,8 +82,8 @@ var getEnv = function (name) {
// __getLocale
// Reads the browser locale, the default locale is en-US.
var getLocale = function() {
- return Services.locale.getRequestedLocale() || "en-US";
-}
+ return Services.locale.requestedLocale || "en-US";
+};
// ## Windows
1
0
commit 02c91349acdb2a493fe0089139ae765b64250a77
Author: Alex Catarineu <acat(a)torproject.org>
Date: Fri May 10 11:51:26 2019 +0200
Delete chrome.manifest.*jar
---
src/chrome.manifest.jar | 60 -----------------------------------------------
src/chrome.manifest.nojar | 60 -----------------------------------------------
2 files changed, 120 deletions(-)
diff --git a/src/chrome.manifest.jar b/src/chrome.manifest.jar
deleted file mode 100644
index 8d503630..00000000
--- a/src/chrome.manifest.jar
+++ /dev/null
@@ -1,60 +0,0 @@
-content torbutton jar:chrome/torbutton.jar!/content/
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-
-locale torbutton af jar:chrome/torbutton.jar!/locale/af/
-locale torbutton ar jar:chrome/torbutton.jar!/locale/ar/
-locale torbutton bg jar:chrome/torbutton.jar!/locale/bg/
-locale torbutton bms jar:chrome/torbutton.jar!/locale/bms/
-locale torbutton bo jar:chrome/torbutton.jar!/locale/bo/
-locale torbutton ca jar:chrome/torbutton.jar!/locale/ca/
-locale torbutton cs jar:chrome/torbutton.jar!/locale/cs/
-locale torbutton da jar:chrome/torbutton.jar!/locale/da/
-locale torbutton de jar:chrome/torbutton.jar!/locale/de/
-locale torbutton el jar:chrome/torbutton.jar!/locale/el/
-locale torbutton en jar:chrome/torbutton.jar!/locale/en/
-locale torbutton es jar:chrome/torbutton.jar!/locale/es/
-locale torbutton eu jar:chrome/torbutton.jar!/locale/eu/
-locale torbutton fa jar:chrome/torbutton.jar!/locale/fa/
-locale torbutton fi jar:chrome/torbutton.jar!/locale/fi/
-locale torbutton fr jar:chrome/torbutton.jar!/locale/fr/
-locale torbutton fur jar:chrome/torbutton.jar!/locale/fur/
-locale torbutton gl jar:chrome/torbutton.jar!/locale/gl/
-locale torbutton gu jar:chrome/torbutton.jar!/locale/gu/
-locale torbutton he jar:chrome/torbutton.jar!/locale/he/
-locale torbutton hi jar:chrome/torbutton.jar!/locale/hi/
-locale torbutton hr jar:chrome/torbutton.jar!/locale/hr/
-locale torbutton hu jar:chrome/torbutton.jar!/locale/hu/
-locale torbutton id jar:chrome/torbutton.jar!/locale/id/
-locale torbutton is jar:chrome/torbutton.jar!/locale/is/
-locale torbutton it jar:chrome/torbutton.jar!/locale/it/
-locale torbutton ja jar:chrome/torbutton.jar!/locale/ja/
-locale torbutton ka jar:chrome/torbutton.jar!/locale/ka/
-locale torbutton km jar:chrome/torbutton.jar!/locale/km/
-locale torbutton ko jar:chrome/torbutton.jar!/locale/ko/
-locale torbutton ku jar:chrome/torbutton.jar!/locale/ku/
-locale torbutton mt jar:chrome/torbutton.jar!/locale/mt/
-locale torbutton nb jar:chrome/torbutton.jar!/locale/nb/
-locale torbutton nl jar:chrome/torbutton.jar!/locale/nl/
-locale torbutton pa jar:chrome/torbutton.jar!/locale/pa/
-locale torbutton pl jar:chrome/torbutton.jar!/locale/pl/
-locale torbutton pt-BR jar:chrome/torbutton.jar!/locale/pt-BR/
-locale torbutton pt jar:chrome/torbutton.jar!/locale/pt/
-locale torbutton ro jar:chrome/torbutton.jar!/locale/ro/
-locale torbutton ru jar:chrome/torbutton.jar!/locale/ru/
-locale torbutton sl jar:chrome/torbutton.jar!/locale/sl/
-locale torbutton sq jar:chrome/torbutton.jar!/locale/sq/
-locale torbutton sv jar:chrome/torbutton.jar!/locale/sv/
-locale torbutton sw jar:chrome/torbutton.jar!/locale/sw/
-locale torbutton th jar:chrome/torbutton.jar!/locale/th/
-locale torbutton tr jar:chrome/torbutton.jar!/locale/tr/
-locale torbutton uk jar:chrome/torbutton.jar!/locale/uk/
-locale torbutton vi jar:chrome/torbutton.jar!/locale/vi/
-locale torbutton zh-CN jar:chrome/torbutton.jar!/locale/zh-CN/
-locale torbutton zh-HK jar:chrome/torbutton.jar!/locale/zh-HK/
-locale torbutton zh-TW jar:chrome/torbutton.jar!/locale/zh-TW/
-
-skin torbutton classic/1.0 jar:chrome/torbutton.jar!/skin/
-style chrome://global/content/customizeToolbar.xul chrome://torbutton/skin/torbutton.css
diff --git a/src/chrome.manifest.nojar b/src/chrome.manifest.nojar
deleted file mode 100644
index 7631874e..00000000
--- a/src/chrome.manifest.nojar
+++ /dev/null
@@ -1,60 +0,0 @@
-content torbutton chrome/content/
-overlay chrome://browser/content/browser.xul chrome://torbutton/content/torbutton.xul
-overlay chrome://browser/content/preferences/connection.xul chrome://torbutton/content/pref-connection.xul
-overlay chrome://messenger/content/messenger.xul chrome://torbutton/content/torbutton_tb.xul
-overlay chrome://messenger/content/messengercompose/messengercompose.xul chrome://torbutton/content/torbutton_tb.xul
-
-locale torbutton af chrome/locale/af/
-locale torbutton ar chrome/locale/ar/
-locale torbutton bg chrome/locale/bg/
-locale torbutton bms chrome/locale/bms/
-locale torbutton bo chrome/locale/bo/
-locale torbutton ca chrome/locale/ca/
-locale torbutton cs chrome/locale/cs/
-locale torbutton da chrome/locale/da/
-locale torbutton de chrome/locale/de/
-locale torbutton el chrome/locale/el/
-locale torbutton en chrome/locale/en/
-locale torbutton es chrome/locale/es/
-locale torbutton eu chrome/locale/eu/
-locale torbutton fa chrome/locale/fa/
-locale torbutton fi chrome/locale/fi/
-locale torbutton fr chrome/locale/fr/
-locale torbutton fur chrome/locale/fur/
-locale torbutton gl chrome/locale/gl/
-locale torbutton gu chrome/locale/gu/
-locale torbutton he chrome/locale/he/
-locale torbutton hi chrome/locale/hi/
-locale torbutton hr chrome/locale/hr/
-locale torbutton hu chrome/locale/hu/
-locale torbutton id chrome/locale/id/
-locale torbutton is chrome/locale/is/
-locale torbutton it chrome/locale/it/
-locale torbutton ja chrome/locale/ja/
-locale torbutton ka chrome/locale/ka/
-locale torbutton km chrome/locale/km/
-locale torbutton ko chrome/locale/ko/
-locale torbutton ku chrome/locale/ku/
-locale torbutton mt chrome/locale/mt/
-locale torbutton nb chrome/locale/nb/
-locale torbutton nl chrome/locale/nl/
-locale torbutton pa chrome/locale/pa/
-locale torbutton pl chrome/locale/pl/
-locale torbutton pt chrome/locale/pt/
-locale torbutton pt-BR chrome/locale/pt-BR/
-locale torbutton ro chrome/locale/ro/
-locale torbutton ru chrome/locale/ru/
-locale torbutton sl chrome/locale/sl/
-locale torbutton sq chrome/locale/sq/
-locale torbutton sv chrome/locale/sv/
-locale torbutton sw chrome/locale/sw/
-locale torbutton th chrome/locale/th/
-locale torbutton tr chrome/locale/tr/
-locale torbutton uk chrome/locale/uk/
-locale torbutton vi chrome/locale/vi/
-locale torbutton zh-CN chrome/locale/zh-CN/
-locale torbutton zh-HK chrome/locale/zh-HK/
-locale torbutton zh-TW chrome/locale/zh-TW/
-
-skin torbutton classic/1.0 chrome/skin/
-style chrome://global/content/customizeToolbar.xul chrome://torbutton/skin/torbutton.css
1
0
commit 2a501682217eff74df47f45c60618b71f2a38353
Author: Alex Catarineu <acat(a)torproject.org>
Date: Mon May 13 18:30:50 2019 +0200
Remove unused files
---
src/chrome/content/popup.xul | 43 ----
src/chrome/content/pref-connection.xul | 10 -
src/chrome/content/torbutton_tb.xul | 38 ----
src/chrome/content/torcookie.js | 385 ---------------------------------
src/chrome/content/torcookiedialog.xul | 72 ------
5 files changed, 548 deletions(-)
diff --git a/src/chrome/content/popup.xul b/src/chrome/content/popup.xul
deleted file mode 100644
index 5d9b76ce..00000000
--- a/src/chrome/content/popup.xul
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-popup-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
- <stringbundleset id="torbutton-stringbundleset">
- <stringbundle id="torbutton-bundle" src="chrome://torbutton/locale/torbutton.properties"/>
- </stringbundleset>
- <panel id="torbutton-context-menu"
- onpopupshowing="torbutton_check_protections();"
- titlebar="normal" noautohide="true"
- anchor="torbutton-button" position="after_start" >
- <hbox align="start">
- <vbox>
- <menuitem id="torbutton-new-identity"
- label="&torbutton.context_menu.new_identity;"
- accesskey="&torbutton.context_menu.new_identity_key;"
- insertafter="context-stop"
- oncommand="torbutton_new_identity()"/>
- <menuseparator/>
- <menuitem id="torbutton-cookie-protector"
- label="&torbutton.context_menu.cookieProtections;"
- accesskey="&torbutton.context_menu.cookieProtections.key;"
- insertafter="context-stop"
- hidden="true"
- oncommand="torbutton_open_cookie_dialog()"/>
- <menuitem id="torbutton-networksettings"
- label="&torbutton.context_menu.networksettings;"
- accesskey="&torbutton.context_menu.networksettings.key;"
- oncommand="torbutton_open_network_settings()"/>
- <menuseparator id="torbutton-checkForUpdateSeparator"/>
- <menuitem id="torbutton-checkForUpdate"
- label="&torbutton.context_menu.downloadUpdate;"
- accesskey="&torbutton.context_menu.downloadUpdate.key;"
- insertafter="context-stop"
- oncommand="torbutton_check_for_update()"/>
- </vbox>
- </hbox>
- </panel>
-</overlay>
diff --git a/src/chrome/content/pref-connection.xul b/src/chrome/content/pref-connection.xul
deleted file mode 100644
index 4d5fb613..00000000
--- a/src/chrome/content/pref-connection.xul
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- TODO: This entire file could be removed, but see bug 19929. -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-prefs-notice"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
-
-</overlay>
diff --git a/src/chrome/content/torbutton_tb.xul b/src/chrome/content/torbutton_tb.xul
deleted file mode 100644
index 450ffb3a..00000000
--- a/src/chrome/content/torbutton_tb.xul
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
-<?xul-overlay href="chrome://torbutton/content/popup.xul"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<overlay id="torbutton-overlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton_util.js" />
- <script type="application/x-javascript" src="chrome://torbutton/content/torbutton.js" />
- <script language="JavaScript">
- //onLoad Hander
- try{window.addEventListener("load", torbutton_init, false);}catch(e){}
- </script>
-
- <stringbundleset id="torbutton-stringbundleset">
- <stringbundle id="torbutton-bundle" src="chrome://torbutton/locale/torbutton.properties"/>
- </stringbundleset>
-
- <toolbarpalette id="MailToolbarPalette">
- <toolbarbutton
- id="torbutton-button-tb"
- class="toolbarbutton-1"
- label="Torbutton"
- tooltiptext="&torbutton.button.tooltip;"
- context="torbutton-context-menu" />
- </toolbarpalette>
-
- <toolbarpalette id="MsgComposeToolbarPalette">
- <toolbarbutton
- id="torbutton-button-tb-msg"
- class="toolbarbutton-1"
- label="Torbutton"
- tooltiptext="&torbutton.button.tooltip;"
- context="torbutton-context-menu" />
- </toolbarpalette>
-
-</overlay>
diff --git a/src/chrome/content/torcookie.js b/src/chrome/content/torcookie.js
deleted file mode 100644
index 0a3dace6..00000000
--- a/src/chrome/content/torcookie.js
+++ /dev/null
@@ -1,385 +0,0 @@
-// Bug 1506 P2: I think cookie protections is a neat feature.
-
-var cookiesTree = null;
-var prefs = null;
-var cookies = [];
-var protectedCookies = [];
-var deletedCookies = [];
-var lastCookieSortColumn = "";
-var lastCookieSortAscending = false;
-var cookiemanager = null;
-var selector = null;
-//custom tree view, this is how we dynamically add the cookies
-var cookiesTreeView = {
- rowCount : 0,
- setTree : function(tree){},
- getImageSrc : function(row,column) {},
- getProgressMode : function(row,column) {},
- getCellValue : function(row,column) {},
- getCellText : function(row,column){
- var rv="";
- switch (column.id) {
- case "domainCol" : rv = cookies[row].rawHost; break;
- case "nameCol" : rv = cookies[row].name; break;
- case "lockCol" : rv = cookies[row].isProtected; break;
- case "pathCol" : rv = cookies[row].path; break;
- }
- return rv;
- },
- isSeparator : function(index) {return false;},
- isSorted: function() { return false; },
- isContainer : function(index) {return false;},
- cycleHeader : function(column, aElt) {},
- getRowProperties : function(row,column,prop){},
- getColumnProperties : function(column,columnElement,prop){},
- getCellProperties : function(row,column,prop) {}
- };
-
-// XXX: Must match the definition in cookie-jar-selector :/
-function Cookie(number,name,value,isDomain,host,rawHost,HttpOnly,path,isSecure,isSession,
- expires,isProtected) {
- this.number = number;
- this.name = name;
- this.value = value;
- this.isDomain = isDomain;
- this.host = host;
- this.rawHost = rawHost;
- this.isHttpOnly = HttpOnly;
- this.path = path;
- this.isSecure = isSecure;
- this.isSession = isSession;
- this.expires = expires;
- this.isProtected = isProtected;
-}
-
-function initDialog() {
- cookiesTree = document.getElementById("cookiesTree");
- prefs =Components.classes["@mozilla.org/preferences-service;1"]
- .getService(Components.interfaces.nsIPrefBranch);
- selector = Components.classes["@torproject.org/cookie-jar-selector;1"]
- .getService(Components.interfaces.nsISupports)
- .wrappedJSObject;
- //init cookie manager
- cookiemanager = Components.classes["@mozilla.org/cookiemanager;1"].getService();
- cookiemanager = cookiemanager.QueryInterface(Components.interfaces.nsICookieManager);
- var enumerator = cookiemanager.enumerator;
- var count = 0;
- getProtectedCookies();
- while (enumerator.hasMoreElements()) {
- var nextCookie = enumerator.getNext();
- if (!nextCookie) break;
- nextCookie = nextCookie.QueryInterface(Components.interfaces.nsICookie);
- var host = nextCookie.host;
- var isProt = checkIfProtected(nextCookie.name, host, nextCookie.path);
- //populate list
- cookies[count] =
- new Cookie(count++, nextCookie.name, nextCookie.value, nextCookie.isDomain, host,
- (host.charAt(0)==".") ? host.substring(1,host.length) : host, nextCookie.isHttpOnly,
- nextCookie.path, nextCookie.isSecure, nextCookie.isSession, nextCookie.expires,
- isProt);
- }
- //apply custom view
- cookiesTreeView.rowCount = cookies.length;
- cookiesTree.treeBoxObject.view = cookiesTreeView;
- document.getElementById('defaultCookieGroup').selectedIndex = prefs.getBoolPref("extensions.torbutton.cookie_auto_protect")? 0 : 1;
-}
-function protectCookie()
-{
- ProtectInTree(cookiesTree, cookiesTreeView,
- cookies, "protectCookie", "unprotectCookie", "removeCookie");
-}
-function unprotectCookie() {
- UnProtectInTree(cookiesTree, cookiesTreeView,
- cookies, "protectCookie", "unprotectCookie", "removeCookie");
-}
-function checkIfProtected(name, host, path)
-{
- for (var i = 0; i < protectedCookies.length; i++)
- {
- var cookie = protectedCookies[i];
- if (cookie.name == name && cookie.host == host && cookie.path == path)
- return true;
- }
- return false;
-}
-function itemSelected() {
- var selections = getTreeSelections(cookiesTree);
- if (selections.length) {
-
-//DY - check if (the last in list) selection is protected/unprotected, set buttons
- if (cookies[selections[(selections.length)-1]].isProtected) {
- document.getElementById("removeCookie").disabled = true;
- document.getElementById("unprotectCookie").disabled = false;
- document.getElementById("protectCookie").disabled = true;
- } else {
- document.getElementById("removeCookie").disabled = false;
- document.getElementById("unprotectCookie").disabled = true;
- document.getElementById("protectCookie").disabled = false;
- }
-
- }
-}
-function acceptDialog() {
-
- FinalizeCookieDeletions();
- var protectedcount = 0;
- var protcookies = [];
- for (var i = 0; i < cookies.length; i++)
- {
- if (cookies[i].isProtected)
- {
- protcookies[protectedcount] = cookies[i];
- protectedcount++;
- }
- }
- selector.protectCookies(protcookies);
- //output protected cookies
- prefs.setBoolPref("extensions.torbutton.cookie_auto_protect",document.getElementById('saveAllCookies').selected);
-}
-function CookieColumnSort(column) {
- lastCookieSortAscending =
- SortTree(cookiesTree, cookiesTreeView, cookies,
- column, lastCookieSortColumn, lastCookieSortAscending);
- lastCookieSortColumn = column;
-}
-function DeleteCookie() {
-//DY - check if any selection is protected
- var selections = getTreeSelections(cookiesTree);
- var protect = false;
- var i;
- for (i=0; i<selections.length; i++) {
- if (cookies[selections[i]].isProtected) {
- protect = true;
- }
- }
- if (!protect && i>0 ) {
- DeleteSelectedItemFromTree(cookiesTree, cookiesTreeView,
- cookies, deletedCookies,
- "removeCookie", "removeAllCookies",
- "protectCookie", "unprotectCookie");
- if (!cookies.length) {
- ;//ClearCookieProperties();
- }
-
- }
-}
-
-function getProtectedCookies()
-{
- var gotCookies = selector.getProtectedCookies("tor");
- if (gotCookies == null)
- return;
- protectedCookies = gotCookies;
-}
-
-//Tree Utils
-
-function SortTree(tree, view, table, column, lastSortColumn, lastSortAscending, updateSelection) {
-
- // remember which item was selected so we can restore it after the sort
- var selections = getTreeSelections(tree);
- var selectedNumber = selections.length ? table[selections[0]].number : -1;
-
- // determine if sort is to be ascending or descending
- var ascending = (column == lastSortColumn) ? !lastSortAscending : true;
-
- // do the sort or re-sort
- var compareFunc = function compare(first, second) {
- if (column=="isProtected") {
- return second[column].toString().localeCompare(first[column].toString());
- } else {
- return first[column].toLowerCase().localeCompare(second[column].toLowerCase());
- }
- }
- table.sort(compareFunc);
- if (!ascending)
- table.reverse();
-
- // restore the selection
- var selectedRow = -1;
- if (selectedNumber>=0 && updateSelection) {
- for (var s=0; s<table.length; s++) {
- if (table[s].number == selectedNumber) {
- // update selection
- // note: we need to deselect before reselecting in order to trigger ...Selected()
- tree.view.selection.select(-1);
- tree.view.selection.select(s);
- selectedRow = s;
- break;
- }
- }
- }
-
- // display the results
- tree.treeBoxObject.invalidate();
- if (selectedRow >= 0) {
- tree.treeBoxObject.ensureRowIsVisible(selectedRow)
- }
-
- return ascending;
-}
-function FinalizeCookieDeletions() {
- for (var c=0; c<deletedCookies.length; c++) {
- cookiemanager.remove(deletedCookies[c].host,
- deletedCookies[c].name,
- deletedCookies[c].path,
- false);
- }
- deletedCookies.length = 0;
-}
-function getTreeSelections(tree) {
- var selections = [];
- var select;
-
- select = tree.view.selection;
- if (select) {
- var count = select.getRangeCount();
- var min = new Object();
- var max = new Object();
- for (var i=0; i<count; i++) {
- select.getRangeAt(i, min, max);
- for (var k=min.value; k<=max.value; k++) {
- if (k != -1) {
- selections[selections.length] = k;
- }
- }
- }
- }
- return selections;
-}
-function ProtectInTree
- (tree, view, table, protButton, unprotButton, removeButton) {
-
- var selections = getTreeSelections(tree);
- for (var s=selections.length-1; s>= 0; s--) {
- var i = selections[s];
- table[i].isProtected = true;
- }
-
- //update tree view
- tree.treeBoxObject.invalidate();
-//DY - Update selections
- tree.treeBoxObject.ensureRowIsVisible(selections[0]);
- // disable/enable buttons
- document.getElementById(unprotButton).disabled = false;
- document.getElementById(protButton).disabled = true;
- document.getElementById(removeButton).disabled = true;
-}
-function UnProtectInTree
- (tree, view, table, protButton, unprotButton, removeButton) {
-
- var selections = getTreeSelections(tree);
- for (var s=selections.length-1; s>= 0; s--) {
- var i = selections[s];
- table[i].isProtected = false;
- }
-
- //update tree view
- tree.treeBoxObject.invalidate();
-//DY - Update selections
- tree.treeBoxObject.ensureRowIsVisible(selections[0]);
- // disable/enable buttons
- document.getElementById(unprotButton).disabled = true;
- document.getElementById(protButton).disabled = false;
- document.getElementById(removeButton).disabled = false;
-}
-function DeleteAllCookies() {
-
- DeleteAllFromTree(cookiesTree, cookiesTreeView,
- cookies, deletedCookies,
- "removeCookie", "removeAllCookies",
- "protectCookie", "unprotectCookie");
-
-}
-function DeleteSelectedItemFromTree
- (tree, view, table, deletedTable, removeButton, removeAllButton, protButton, unprotButton) {
-
- var selections = getTreeSelections(tree);
-
- tree.view.selection.clearSelection();
-
-
- // remove selected items from list (by setting them to null) and place in deleted list
- for (var s=selections.length-1; s>= 0; s--) {
- var i = selections[s];
- deletedTable[deletedTable.length] = table[i];
- table[i] = null;
- }
- // collapse list by removing all the null entries
- for (var j=0; j<table.length; j++) {
- if (table[j] == null) {
- var k = j;
- while ((k < table.length) && (table[k] == null)) {
- k++;
- }
- table.splice(j, k-j);
- view.rowCount -= k - j;
- tree.treeBoxObject.rowCountChanged(j, j - k);
- }
- }
-//DY - update selection and/or buttons
- if (table.length) {
-
-//DY - update selection to previous (first of) selected position or bottom
- var nextSelection = (selections[0] < table.length) ? selections[0] : table.length-1;
-
- tree.view.selection.select(nextSelection);
- tree.treeBoxObject.ensureRowIsVisible(nextSelection);
- if (table[nextSelection].isProtected) {
- document.getElementById(unprotButton).disabled = false;
- document.getElementById(protButton).disabled = true;
- } else {
- document.getElementById(unprotButton).disabled = true;
- document.getElementById(protButton).disabled = false;
- }
- } else {
- // disable buttons
- document.getElementById(removeButton).disabled = true;
- document.getElementById(removeAllButton).disabled = true;
- document.getElementById(unprotButton).disabled = true;
- document.getElementById(protButton).disabled = true;
- }
-}
-function DeleteAllFromTree
- (tree, view, table, deletedTable, removeButton, removeAllButton, protButton, unprotButton) {
-
- // remove items from table and place in deleted table
- for (var i=0; i<table.length; i++) {
-//DY - only if unprotected
- if (!table[i].isProtected) {
- deletedTable[deletedTable.length] = table[i];
- table[i] = null;
- }
- }
-
- tree.view.selection.clearSelection();
-
-//DY - fix up tree
- // collapse list by removing all the null entries
- for (var j=0; j<table.length; j++) {
- if (table[j] == null) {
- var k = j;
- while ((k < table.length) && (table[k] == null)) {
- k++;
- }
- table.splice(j, k-j);
- view.rowCount -= k - j;
- tree.treeBoxObject.rowCountChanged(j, j - k);
- }
- }
- // update selection and/or buttons
- if (table.length) {
- // update selection to top
- tree.view.selection.select(0);
- tree.treeBoxObject.ensureRowIsVisible(0);
- //if it exists is must already be protected
- document.getElementById(unprotButton).disabled = false;
- document.getElementById(protButton).disabled = true;
- } else {
- // disable all buttons
- document.getElementById(removeButton).disabled = true;
- document.getElementById(removeAllButton).disabled = true;
- document.getElementById(unprotButton).disabled = true;
- document.getElementById(protButton).disabled = true;
- }
-}
diff --git a/src/chrome/content/torcookiedialog.xul b/src/chrome/content/torcookiedialog.xul
deleted file mode 100644
index 68a7cafe..00000000
--- a/src/chrome/content/torcookiedialog.xul
+++ /dev/null
@@ -1,72 +0,0 @@
-<?xml version="1.0"?>
-<?xml-stylesheet href="chrome://torbutton/skin/torbutton.css" type="text/css"?>
-<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
-
-<!DOCTYPE overlay SYSTEM "chrome://torbutton/locale/torbutton.dtd">
-
-<dialog id="TorCookieDialog"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- title="&torbutton.cookiedialog.title;"
- buttons="accept,cancel"
- style="width: 30em;"
- onload="initDialog();"
- ondialogaccept="acceptDialog();"
- persist="screenX screenY width height">
- <script src="chrome://torbutton/content/torbutton.js" type="application/x-javascript"/>
- <script src="chrome://torbutton/content/torcookie.js" type="application/x-javascript"/>
- <stringbundleset id="torbutton-stringbundleset">
- <stringbundle id="torbutton-bundle" src="chrome://torbutton/locale/torbutton.properties"/>
- </stringbundleset>
-
- <label value=""/>
- <separator class="thin"/>
- <vbox flex="1">
- <tree id="cookiesTree" flex="1" style="height: 10em;"
- onkeypress="return;//do this later"
- onselect="itemSelected();"
- hidecolumnpicker="true">
- <treecols>
- <treecol id="lockCol" label="&torbutton.cookiedialog.lockCol;" flex="1"
- onclick="CookieColumnSort('isProtected', true);" persist="width"/>
- <splitter class="tree-splitter"/>
- <treecol id="domainCol" label="&torbutton.cookiedialog.domainCol;" flex="2"
- onclick="CookieColumnSort('rawHost', true);" persist="width"/>
- <splitter class="tree-splitter"/>
- <treecol id="nameCol" label="&torbutton.cookiedialog.nameCol;" flex="1"
- onclick="CookieColumnSort('name', true);" persist="width"/>
- <treecol id="pathCol" label="&torbutton.cookiedialog.pathCol;" flex="1"
- onclick="CookieColumnSort('path', true);" persist="width"/>
-
- </treecols>
- <treechildren/>
- </tree>
- </vbox>
- <groupbox>
- <hbox>
- <vbox>
- <button id="protectCookie" disabled="true"
- label="&torbutton.cookiedialog.protectCookie;"
- oncommand="protectCookie();"/>
- <button id="removeCookie" disabled="true"
- label="&torbutton.cookiedialog.removeCookie;"
- oncommand="DeleteCookie();"/>
- </vbox>
- <vbox>
- <button id="unprotectCookie" disabled="true"
- label="&torbutton.cookiedialog.unprotectCookie;"
- oncommand="unprotectCookie();"/>
- <button id="removeAllCookies"
- label="&torbutton.cookiedialog.removeAllBut;"
- oncommand="DeleteAllCookies();"/>
- </vbox>
- </hbox>
- <hbox>
- <radiogroup id="defaultCookieGroup">
- <radio id="saveAllCookies" label="&torbutton.cookiedialog.saveAllCookies;" />
- <radio id="donnotsaveCookies" label="&torbutton.cookiedialog.doNotSaveAllCookies;" />
- </radiogroup>
- </hbox>
- </groupbox>
-
-</dialog>
-
1
0
[tor-launcher/master] Bug 29197: Remove use of overlays (ESR68 compatibility).
by gkï¼ torproject.org 07 Aug '19
by gkï¼ torproject.org 07 Aug '19
07 Aug '19
commit 8bc4a8869936cfc782d1f4c749f7608ead6ddf18
Author: Kathy Brade <brade(a)pearlcrescent.com>
Date: Tue Jul 30 16:34:27 2019 -0400
Bug 29197: Remove use of overlays (ESR68 compatibility).
Use the window.MozXULElement.parseXULToFragment() function to
parse shared XUL.
---
src/chrome/content/localePicker.xul | 4 +-
...ings-overlay.xul => network-settings-shared.js} | 48 +++++++++++-----------
src/chrome/content/network-settings-wizard.xul | 10 ++---
src/chrome/content/network-settings.js | 36 ++++++++++++++++
src/chrome/content/network-settings.xul | 18 ++++----
5 files changed, 76 insertions(+), 40 deletions(-)
diff --git a/src/chrome/content/localePicker.xul b/src/chrome/content/localePicker.xul
index 6030468..1d0987c 100644
--- a/src/chrome/content/localePicker.xul
+++ b/src/chrome/content/localePicker.xul
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<wizard id="TorLauncherLocalePicker"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
diff --git a/src/chrome/content/network-settings-overlay.xul b/src/chrome/content/network-settings-shared.js
similarity index 91%
rename from src/chrome/content/network-settings-overlay.xul
rename to src/chrome/content/network-settings-shared.js
index 35b9fc7..206872b 100644
--- a/src/chrome/content/network-settings-overlay.xul
+++ b/src/chrome/content/network-settings-shared.js
@@ -1,16 +1,9 @@
-<?xml version="1.0"?>
-<!--
- - Copyright (c) 2018, The Tor Project, Inc.
- - See LICENSE for licensing information.
- - vim: set sw=2 sts=2 ts=8 et syntax=xml:
- -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<overlay id="TorNetworkSettingsOverlay"
- xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
- xmlns:html="http://www.w3.org/1999/xhtml">
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
+var proxySettings = `
<vbox id="proxySettings">
<hbox align="center">
<checkbox id="useProxy" groupboxID="proxySpecificSettings"
@@ -73,20 +66,16 @@
</grid>
</groupbox>
</vbox>
+`;
- <vbox id="proxyHelpContent">
+var proxyHelpContent = `
+ <vbox id="proxyHelpContent" hidden="true">
<hbox align="middle"><label>&torsettings.proxyHelpTitle;</label></hbox>
<description>&torsettings.proxyHelp1;</description>
</vbox>
+`;
- <groupbox id="firewallSpecificSettings">
- <hbox align="center">
- <label value="&torsettings.firewall.allowedPorts;"
- control="firewallAllowedPorts"/>
- <textbox id="firewallAllowedPorts" value="80,443"/>
- </hbox>
- </groupbox>
-
+var bridgeSettings = `
<vbox id="bridgeSettings">
<checkbox id="useBridges" groupboxID="bridgeSpecificSettings"
label="&torsettings.useBridges.checkbox;"
@@ -139,13 +128,17 @@
</vbox>
</groupbox>
</vbox>
+`;
- <vbox id="bridgeHelpContent">
+var bridgeHelpContent = `
+ <vbox id="bridgeHelpContent" hidden="true">
<hbox align="middle"><label>&torsettings.bridgeHelpTitle;</label></hbox>
<description>&torsettings.bridgeHelp1;</description>
<description>&torsettings.bridgeHelp2;</description>
</vbox>
+`;
+var progressContent = `
<vbox id="progressContent">
<hbox class="tbb-header" pack="center">
<image class="tbb-logo"/>
@@ -159,7 +152,9 @@
value="&torsettings.reconfigTor;"/>
</vbox>
</vbox>
+`;
+var restartContent = `
<vbox id="restartContent">
<hbox pack="center">
<description id="restartPanelMessage" flex="1"/>
@@ -170,7 +165,9 @@
oncommand="onRestartTor()"/>
</hbox>
</vbox>
+`;
+var bridgeDBRequestOverlayContent = `
<vbox id="bridgeDBRequestOverlayContent" align="center">
<vbox>
<label id="bridgeDBPrompt"/>
@@ -200,7 +197,9 @@
</hbox>
</vbox>
</vbox>
+`;
+var errorOverlayContent = `
<vbox id="errorOverlayContent">
<hbox pack="center">
<description errorElemId="message" flex="1"/>
@@ -211,10 +210,11 @@
oncommand="onDismissErrorOverlay()"/>
</hbox>
</vbox>
+`;
+var copyLogFeedbackPanel = `
<panel id="copyLogFeedbackPanel" type="arrow" fade="slow"
onclick="closeCopyLogFeedbackPanel()">
<description flex="1"/>
</panel>
-</overlay>
-
+`;
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 00145a8..2eb6d6d 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<wizard id="TorNetworkSettings"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -127,8 +125,8 @@
<wizardpage class="help" pageid="helpPanel" next="notUsed"
onpageadvanced="closeHelp(); return false;">
- <vbox id="bridgeHelpContent" hidden="true"/>
- <vbox id="proxyHelpContent" hidden="true"/>
+ <vbox id="bridgeHelpContent"/>
+ <vbox id="proxyHelpContent"/>
</wizardpage>
<hbox pack="start">
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index b39a194..85dade2 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -10,6 +10,7 @@ const Ci = Components.interfaces;
const Cu = Components.utils;
const Cr = Components.results;
+Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
"resource://torlauncher/modules/tl-util.jsm");
@@ -116,6 +117,8 @@ var gBridgeDBRequestEventListeners = [];
function initDialogCommon()
{
+ loadSharedXUL();
+
gObsService = Cc["@mozilla.org/observer-service;1"]
.getService(Ci.nsIObserverService);
@@ -158,6 +161,39 @@ function initDialogCommon()
}
+function loadSharedXUL()
+{
+ let ctxt = {};
+ Services.scriptloader.loadSubScript(
+ "chrome://torlauncher/content/network-settings-shared.js", ctxt);
+
+ let elementIDs =
+ [
+ "proxySettings",
+ "proxyHelpContent",
+ "bridgeSettings",
+ "bridgeHelpContent",
+ "progressContent",
+ "restartContent",
+ "bridgeDBRequestOverlayContent",
+ "errorOverlayContent",
+ "copyLogFeedbackPanel",
+ ];
+
+ let entityURLs = ["chrome://torlauncher/locale/network-settings.dtd"];
+ elementIDs.forEach(aID =>
+ {
+ let node = document.getElementById(aID);
+ if (node)
+ {
+ let xulStr = ctxt[aID];
+ let frag = window.MozXULElement.parseXULToFragment(xulStr, entityURLs);
+ node.parentNode.replaceChild(frag, node);
+ }
+ });
+}
+
+
function resizeDialogToFitContent()
{
// Resize this window to fit content. sizeToContent() alone will not do
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 6f95183..2ba0741 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<!--
- - Copyright (c) 2018, The Tor Project, Inc.
+ - Copyright (c) 2019, The Tor Project, Inc.
- See LICENSE for licensing information.
- vim: set sw=2 sts=2 ts=8 et syntax=xml:
-->
@@ -9,9 +9,7 @@
<?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
type="text/css"?>
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE dialog SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
<dialog id="TorNetworkSettings"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -41,7 +39,13 @@
groupboxID="firewallSpecificSettings"
label="&torsettings.firewall.checkbox;"
oncommand="toggleElemUI(this)"/>
- <groupbox id="firewallSpecificSettings"/>
+ <groupbox id="firewallSpecificSettings">
+ <hbox align="center">
+ <label value="&torsettings.firewall.allowedPorts;"
+ control="firewallAllowedPorts"/>
+ <textbox id="firewallAllowedPorts" value="80,443"/>
+ </hbox>
+ </groupbox>
</vbox>
</vbox>
@@ -60,8 +64,8 @@
</vbox>
<vbox id="helpPanel" class="help">
- <vbox id="bridgeHelpContent" hidden="true"/>
- <vbox id="proxyHelpContent" hidden="true"/>
+ <vbox id="bridgeHelpContent"/>
+ <vbox id="proxyHelpContent"/>
</vbox>
<vbox id="restartPanel" class="messagePanel" pack="center">
1
0