git: 5bab21c20a58 - main - www/tor-browser: Update to 13.01
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 09 Nov 2023 19:39:26 UTC
The branch main has been updated by jsm: URL: https://cgit.FreeBSD.org/ports/commit/?id=5bab21c20a580787a9906f4012743287141878d8 commit 5bab21c20a580787a9906f4012743287141878d8 Author: Jesper Schmitz Mouridsen <jsm@FreeBSD.org> AuthorDate: 2023-11-09 19:16:52 +0000 Commit: Jesper Schmitz Mouridsen <jsm@FreeBSD.org> CommitDate: 2023-11-09 19:39:10 +0000 www/tor-browser: Update to 13.01 Include locales upfront, the LOCAL/jsm l10n distfile is made by a tor-browser-build of project l10n-firefox. The tpo/translations do not keep tags so two files per locale are out of sync with the linux release. PR: 273416 PR: 272477 Tested by: Martin Filla freebsd@sysctl.cz,rene@ Approved by: freebsd@sysctl.cz (maintainer) --- www/tor-browser/Makefile | 65 +- www/tor-browser/distinfo | 14 +- www/tor-browser/files/packagemanual.py | 69 + www/tor-browser/files/patch-addon-search | 24 +- .../files/patch-browser-app-nsBrowserApp.cpp | 14 +- www/tor-browser/files/patch-browser-base-jar.mn | 227 + .../patch-browser_app_profile_000-tor-browser.js | 16 +- www/tor-browser/files/patch-bug1427152 | 10 + www/tor-browser/files/patch-bug1504834_comment5 | 10 +- www/tor-browser/files/patch-bug1504834_comment9 | 49 - www/tor-browser/files/patch-bug1559213 | 39 +- www/tor-browser/files/patch-bug1626236 | 40 +- www/tor-browser/files/patch-bug1628567 | 4 +- www/tor-browser/files/patch-bug1640982 | 17 - www/tor-browser/files/patch-bug1659612 | 22 +- www/tor-browser/files/patch-bug1664115 | 82 - www/tor-browser/files/patch-bug1729459_comment12 | 93 - www/tor-browser/files/patch-bug847568 | 10 +- .../files/patch-gfx_skia_skia_src_base_SkEndian.h | 11 + ...patch-gfx_skia_skia_src_core_SkRasterPipeline.h | 11 + .../files/patch-i386-protobuf-alignment | 15 + www/tor-browser/files/patch-js_public_Utility.h | 35 + www/tor-browser/files/patch-libwebrtc-generate | 159 - www/tor-browser/files/patch-libwebrtc-generated | 50556 ++++++++++++++----- www/tor-browser/files/patch-libwebrtc-powerpc64 | 264 + .../files/patch-memory_mozalloc_throw__gcc.h | 2 +- .../files/patch-modules_fdlibm_src_math__private.h | 27 + www/tor-browser/files/patch-pipewire_init | 67 +- ...patch-python_mozbuild_mozbuild_gn__processor.py | 21 +- www/tor-browser/files/patch-rust-1.70.0 | 33 - www/tor-browser/files/patch-rust-1.73.0 | 83 - ...rd__party_libwebrtc_build_config_BUILDCONFIG.gn | 37 + ...third__party_libwebrtc_rtc__base_ip__address.cc | 23 + ...lkit_components_tor-launcher_TorProcess_sys_mjs | 26 + ...t_compononents_tor-launcher_TorLauncherUtil.jsm | 20 - ...oolkit_compononents_tor-launcher_TorProcess.jsm | 22 - .../files/patch-toolkit_torbutton_jar.mn | 80 + .../files/patch-toolkit_xre_glxtest.cpp | 17 + .../files/patch-toolkit_xre_nsXREDirPRovider.cpp | 14 - 39 files changed, 39157 insertions(+), 13171 deletions(-) diff --git a/www/tor-browser/Makefile b/www/tor-browser/Makefile index 3ed152b2da2f..b2af395fb18d 100644 --- a/www/tor-browser/Makefile +++ b/www/tor-browser/Makefile @@ -1,11 +1,14 @@ PORTNAME= tor-browser -DISTVERSION= 12.0.6 -PORTREVISION= 6 +DISTVERSION= 13.0.1 CATEGORIES= www net security wayland -MASTER_SITES= TOR -MASTER_SITE_SUBDIR=torbrowser/${DISTVERSION} -DISTNAME= src-firefox-tor-browser-102.11.0esr-${DISTVERSION:R}-1-build1 - +MASTER_SITES= TOR \ + https://build-sources.tbb.torproject.org/:source1 \ + LOCAL/jsm:source2 +MASTER_SITE_SUBDIR= torbrowser/${DISTVERSION} +DISTNAME= src-firefox-tor-browser-115.4.0esr-13.0-1-build2 +DISTFILES= ${DISTNAME}.tar.xz \ + manual_112141.zip:source1 \ + firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar:source2 MAINTAINER= freebsd@sysctl.cz COMMENT= Tor Browser for FreeBSD WWW= https://www.torproject.org/ @@ -25,11 +28,16 @@ BUILD_DEPENDS= nspr>=4.32:devel/nspr \ nasm:devel/nasm \ yasm:devel/yasm \ zip:archivers/zip +USE_GITLAB=nodefault +GL_SITE= https://gitlab.torproject.org/ +GL_ACCOUNT= tpo +GL_PROJECT= translation:basebrowser translation:torbrowser +GL_TAGNAME= 3faf7dcd545109f7bbd8a6374838e139ca422d6c:basebrowser 51bc08246d73990d461f747fb3c8cc7b6f66c1f4:torbrowser RUN_DEPENDS= tor:security/tor \ obfs4proxy:security/obfs4proxy-tor USES= compiler:c++11-lib libtool \ - perl5 pkgconfig python shebangfix localbase:ldflags tar:xz + perl5 pkgconfig python shebangfix localbase:ldflags tar:xz python:3 USE_GECKO= gecko SSP_UNSAFE= yes @@ -38,17 +46,19 @@ SUB_FILES= torrc-defaults tor-browser.desktop BUNDLE_LIBS= yes USE_MOZILLA= -sqlite +MOZILLA_VER=115.4.0 CFLAGS_powerpc64le= -DSQLITE_BYTEORDER=1234 CONFIGURE_ENV+= BINDGEN_CFLAGS="-I${LOCALBASE}/include" \ - MOZ_BRANDING_DIRECTORY="browser/branding/official" - + MOZ_CHROME_MULTILOCALE="ar ca cs da de el es-ES fa fi fr ga-IE he hu id is it ja ka ko lt mk ms my nb-NO nl pl pt-BR ro ru sq sv-SE th tr uk vi zh-CN zh-TW en-US" +MAKE_ENV+= AB_CD="multi" \ + LOCALES="ar ca cs da de el es-ES fa fi fr ga-IE he hu id is it ja ka ko lt mk ms my nb-NO nl pl pt-BR ro ru sq sv-SE th tr uk vi zh-CN zh-TW en-US" MOZ_EXPORT+= MOZ_TELEMETRY_REPORTING="" \ MOZILLA_OFFICIAL="1" \ MOZ_OFFICIAL_BRANDING="1" \ MOZ_APP_DISPLAYNAME="Tor Browser" \ - MOZ_APP_NAME="tor-browser" - -MOZ_OPTIONS= --with-tor-browser-version=${DISTVERSION}-1 \ + MOZ_APP_NAME="tor-browser" \ + MOZ_CHROME_MULTILOCALE="ar ca cs da de el es-ES fa fi fr ga-IE he hu id is it ja ka ko lt mk ms my nb-NO nl pl pt-BR ro ru sq sv-SE th tr uk vi zh-CN zh-TW en-US" +MOZ_OPTIONS= --with-base-browser-version=${DISTVERSION} \ --enable-official-branding \ --enable-optimize \ --enable-bundled-fonts \ @@ -60,12 +70,11 @@ MOZ_OPTIONS= --with-tor-browser-version=${DISTVERSION}-1 \ --enable-proxy-bypass-protection \ --disable-system-policies \ --disable-backgroundtasks \ - --enable-base-browser \ - --enable-verify-mar \ - --with-distribution-id=org.torproject + --with-distribution-id=org.torproject \ + --with-branding=browser/branding/tb-release WRKSRC= ${WRKDIR}/${DISTNAME:S/src-//} - +SHEBANG_FILES+= mach .include "${.CURDIR}/../../www/firefox/Makefile.options" .include <bsd.port.options.mk> @@ -83,11 +92,29 @@ MOZ_OPTIONS+= --with-wasi-sysroot=${LOCALBASE}/share/wasi-sysroot .endif post-patch: @${REINPLACE_CMD} 's|LOCALBASE|${LOCALBASE}|g' "${WRKSRC}/browser/app/profile/000-tor-browser.js" + ${MKDIR} ${WRKSRC}/tmp-manual + unzip -d ${WRKSRC}/tmp-manual ${DISTDIR}/manual_112141.zip + ${MKDIR} ${WRKSRC}/tmp-l10n-central + tar -C ${WRKSRC}/tmp-l10n-central -xf ${DISTDIR}/firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar pre-configure: - (cd ${WRKSRC} && ${LOCALBASE}/bin/autoconf2.13) - (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13) @${REINPLACE_CMD} 's|export MOZ_GOOGLE_.*||g' ${WRKSRC}/.mozconfig - @${REINPLACE_CMD} 's|ac_add_options --enable-update-channel=release||g' ${WRKSRC}/.mozconfig + ${PYTHON_CMD} ${FILESDIR}/packagemanual.py ${WRKSRC}/tmp-manual/public ${WRKSRC}/browser/base/content/manual +post-build: + ${MKDIR} -p ${WRKSRC}/../.mozbuild/l10n-central + find ${WRKSRC}/tmp-l10n-central -name "*.tar.xz" -exec tar -C ${WRKSRC}/../.mozbuild/l10n-central -xvf {} \; + cd ${WRKSRC}/../.build/ && MOZBUILD_STATE_PATH=${WRKSRC}/../.mozbuild MOZ_AUTOMATION="1" ${WRKSRC}/mach package-multi-locale --locales ar ca cs da de el es-ES fa fi fr ga-IE he hu id is it ja ka ko lt mk ms my nb-NO nl pl pt-BR ro ru sq sv-SE th tr uk vi zh-CN zh-TW +.for i in ar ca cs da de el es-ES fa fi fr ga-IE he hu id is it ja ka ko lt mk ms my nb-NO nl pl pt-BR ro ru sq sv-SE th tr uk vi zh-CN zh-TW + ${CP} ${WRKDIR}/translation-3faf7dcd545109f7bbd8a6374838e139ca422d6c/${i}/base-browser.ftl ${WRKDIR}/.build/dist/bin/browser/localization/${i}/browser/base-browser.ftl + ${CP} ${WRKDIR}/translation-3faf7dcd545109f7bbd8a6374838e139ca422d6c/${i}/newIdentity.properties ${WRKDIR}/.build/dist/bin/browser/chrome/${i}/locale/browser/newIdentity.properties + ${CP} ${WRKDIR}/translation-3faf7dcd545109f7bbd8a6374838e139ca422d6c/${i}/securityLevel.properties ${WRKDIR}/.build/dist/bin/browser/chrome/${i}/locale/browser/securityLevel.properties + ${MKDIR} ${WRKDIR}/.build/dist/bin/chrome/torbutton/locale/${i}/browser + test -f ${WRKDIR}/translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4/${i}/tor-browser.ftl && ${CP} ${WRKDIR}/translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4/${i}/tor-browser.ftl ${WRKDIR}/.build/dist/bin/browser/localization/${i}/browser/tor-browser.ftl + ${CP} ${WRKDIR}/translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4/${i}/cryptoSafetyPrompt.properties ${WRKDIR}/.build/dist/bin/browser/chrome/${i}/locale/browser/cryptoSafetyPrompt.properties +.for j in brand.dtd aboutDialog.dtd aboutTBUpdate.dtd torbutton.dtd onboarding.properties brand.properties torlauncher.properties branding/brand.ftl rulesets.properties settings.properties torConnect.properties onionLocation.properties aboutTor.dtd torbutton.properties browserOnboarding.properties + ${MKDIR} ${WRKDIR}/.build/dist/bin/chrome/torbutton/locale/${i}/branding + ${CP} ${WRKDIR}/translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4/${i}/${j} ${WRKDIR}/.build/dist/bin/chrome/torbutton/locale/${i}/${j} +.endfor +.endfor post-install: @${MKDIR} ${STAGEDIR}${DATADIR} ${INSTALL_DATA} ${WRKDIR}/torrc-defaults ${STAGEDIR}${DATADIR}/torrc-defaults diff --git a/www/tor-browser/distinfo b/www/tor-browser/distinfo index c8c74a3398cc..dc004626122e 100644 --- a/www/tor-browser/distinfo +++ b/www/tor-browser/distinfo @@ -1,3 +1,11 @@ -TIMESTAMP = 1684065683 -SHA256 (src-firefox-tor-browser-102.11.0esr-12.0-1-build1.tar.xz) = 9b64d00e9bb5ad63f005e8f950800ab3a12f75f214c55f900d88df26bce1ba5d -SIZE (src-firefox-tor-browser-102.11.0esr-12.0-1-build1.tar.xz) = 511957244 +TIMESTAMP = 1699195800 +SHA256 (src-firefox-tor-browser-115.4.0esr-13.0-1-build2.tar.xz) = 7b8d90c9d5ac0cc527da5e8170893e6c5af0f7ad924cfcde9a7ebfbdf3f2e486 +SIZE (src-firefox-tor-browser-115.4.0esr-13.0-1-build2.tar.xz) = 544811340 +SHA256 (manual_112141.zip) = f767bc5f655f1263623b7af588cfb045d3e41ee019dc7ecd713decc5c1a0ea9b +SIZE (manual_112141.zip) = 26293073 +SHA256 (firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar) = bbd290cd134e3a114241077ba82582617ab6c5117ff2226381943c504bd09775 +SIZE (firefox-tor-browser-13.0.1-build2-firefox-1l0n-out.tar) = 18848768 +SHA256 (tpo-translation-3faf7dcd545109f7bbd8a6374838e139ca422d6c_GL0.tar.gz) = e6fdc79f74d2c438a44e5ffb6404e3d64bab879cf146e88a170ccdcef3596d9b +SIZE (tpo-translation-3faf7dcd545109f7bbd8a6374838e139ca422d6c_GL0.tar.gz) = 108057 +SHA256 (tpo-translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4_GL0.tar.gz) = a57dd8210d347ca69f5731cd768862673d692c0a5a3364f411cc5fa1fb88c98e +SIZE (tpo-translation-51bc08246d73990d461f747fb3c8cc7b6f66c1f4_GL0.tar.gz) = 1059523 diff --git a/www/tor-browser/files/packagemanual.py b/www/tor-browser/files/packagemanual.py new file mode 100644 index 000000000000..7af51046aa30 --- /dev/null +++ b/www/tor-browser/files/packagemanual.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +from pathlib import Path +import re +import sys +import shutil + + +PAGE_NAME = 'offline-docs' +STATIC_PATH = 'chrome://browser/content/manual/static' + +if len(sys.argv) < 3: + print(f'Usage: {sys.argv[0]} lektor-out-directory target-directory') + sys.exit(1) + +source = Path(sys.argv[1]) +target = Path(sys.argv[2]) +if not target.exists(): + target.mkdir(exist_ok=True) + +static_re = re.compile('"(?:../)*static/([^"]+)"') +link_re = re.compile('href="../([^"]+)"') + + +def clean_urls(match): + m = re.match(r'(?:../)?([^/#]+)[/]?[#]?(.*)', match.group(1)) + slug = m.group(1) + if m.group(2): + anchor = '_' + m.group(2) + else: + anchor = '' + return f'href="#{slug}{anchor}"' + + +remove_images = [] +for p in (source / 'static/images').glob('**/*'): + if p.is_file(): + rel = p.relative_to(source) + remove_images.append(rel) + +htmls = source.rglob(f'{PAGE_NAME}/index.html') +for page in htmls: + with page.open(encoding='utf8') as f: + contents = f.read() + + remove_images = list(filter( + lambda im: contents.find(str(im)) == -1, remove_images)) + + contents = static_re.sub(f'"{STATIC_PATH}/\\1"', contents) + contents = link_re.sub(clean_urls, contents) + + rel = page.relative_to(source) + dest_name = str(list(rel.parents)[-2].name) + if dest_name == PAGE_NAME: + dest_name = 'en' + dest_name += '.html' + with (target / dest_name).open('w', encoding='utf8') as f: + f.write(contents) + + +def ignore_images(path, names): + return [ + n + for n in names + if Path(path, n).relative_to(source) in remove_images + ] + + +shutil.rmtree(target / 'static', ignore_errors=True) +shutil.copytree(source / 'static', target / 'static', ignore=ignore_images) diff --git a/www/tor-browser/files/patch-addon-search b/www/tor-browser/files/patch-addon-search index f405eab2aab1..b6dbf7924b43 100644 --- a/www/tor-browser/files/patch-addon-search +++ b/www/tor-browser/files/patch-addon-search @@ -2,7 +2,7 @@ https://github.com/mozilla/addons/issues/708 https://github.com/mozilla/addons-frontend/issues/4610 diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js -index af08811..77a3b18 100644 +index 621900f90fc1..401ef9074bd0 100644 --- browser/app/profile/firefox.js +++ browser/app/profile/firefox.js @@ -38,7 +38,7 @@ pref("extensions.postDownloadThirdPartyPrompt", true); @@ -14,7 +14,7 @@ index af08811..77a3b18 100644 pref("extensions.getAddons.link.url", "https://addons.mozilla.org/%LOCALE%/firefox/"); pref("extensions.getAddons.langpacks.url", "https://services.addons.mozilla.org/api/v4/addons/language-tools/?app=firefox&type=language&appversion=%VERSION%"); pref("extensions.getAddons.discovery.api_url", "https://services.addons.mozilla.org/api/v4/discovery/?lang=%LOCALE%&edition=%DISTRIBUTION%"); -@@ -193,8 +193,8 @@ pref("app.update.langpack.enabled", true); +@@ -204,8 +204,8 @@ pref("app.update.langpack.enabled", true); // .. etc .. // pref("extensions.update.enabled", true); @@ -25,24 +25,24 @@ index af08811..77a3b18 100644 pref("extensions.update.interval", 86400); // Check for updates to Extensions and // Themes every day -diff --git toolkit/mozapps/extensions/internal/AddonRepository.jsm toolkit/mozapps/extensions/internal/AddonRepository.jsm -index 661c902..a41b32f 100644 ---- toolkit/mozapps/extensions/internal/AddonRepository.jsm -+++ toolkit/mozapps/extensions/internal/AddonRepository.jsm -@@ -592,7 +592,7 @@ var AddonRepository = { +diff --git toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs +index f906f244b658..7bb2eb6697c6 100644 +--- toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs ++++ toolkit/mozapps/extensions/internal/AddonRepository.sys.mjs +@@ -596,7 +596,7 @@ export var AddonRepository = { addon.version = String(aEntry.current_version.version); if (Array.isArray(aEntry.current_version.files)) { for (let file of aEntry.current_version.files) { -- if (file.platform == "all" || file.platform == PLATFORM) { -+ if (file.platform == "all" || file.platform == "linux" || file.platform == PLATFORM) { +- if (file.platform == "all" || file.platform == lazy.PLATFORM) { ++ if (file.platform == "all" || file.platform == "linux" || file.platform == lazy.PLATFORM) { if (file.url) { - addon.sourceURI = NetUtil.newURI(file.url); + addon.sourceURI = lazy.NetUtil.newURI(file.url); } diff --git toolkit/mozapps/extensions/internal/XPIDatabase.jsm toolkit/mozapps/extensions/internal/XPIDatabase.jsm -index f8c99c7..c6ba8a1 100644 +index 03186dad43a4..4053fc6f2702 100644 --- toolkit/mozapps/extensions/internal/XPIDatabase.jsm +++ toolkit/mozapps/extensions/internal/XPIDatabase.jsm -@@ -520,7 +520,7 @@ class AddonInternal { +@@ -634,7 +634,7 @@ class AddonInternal { // Something is causing errors in here try { for (let platform of this.targetPlatforms) { diff --git a/www/tor-browser/files/patch-browser-app-nsBrowserApp.cpp b/www/tor-browser/files/patch-browser-app-nsBrowserApp.cpp index 3b9097714e21..68cb778b95a7 100644 --- a/www/tor-browser/files/patch-browser-app-nsBrowserApp.cpp +++ b/www/tor-browser/files/patch-browser-app-nsBrowserApp.cpp @@ -1,14 +1,12 @@ -diff --git browser/app/nsBrowserApp.cpp browser/app/nsBrowserApp.cpp -index 87c2e16..a41f1d9 100644 ---- browser/app/nsBrowserApp.cpp +--- browser/app/nsBrowserApp.cpp.orig 2016-09-19 16:19:28 UTC +++ browser/app/nsBrowserApp.cpp -@@ -337,6 +337,9 @@ int main(int argc, char* argv[], char* envp[]) { - } - #endif +@@ -324,6 +324,9 @@ int main(int argc, char* argv[], char* e + { + mozilla::TimeStamp start = mozilla::TimeStamp::Now(); + setenv("MOZ_GMP_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); + setenv("MOZ_PLUGIN_PATH", "%%LOCALBASE%%/lib/browser_plugins/symlinks/gecko", 0); + #ifdef HAS_DLL_BLOCKLIST - DllBlocklist_Initialize(gBlocklistInitFlags); - #endif + DllBlocklist_Initialize(); + diff --git a/www/tor-browser/files/patch-browser-base-jar.mn b/www/tor-browser/files/patch-browser-base-jar.mn new file mode 100644 index 000000000000..0dbfd0224b11 --- /dev/null +++ b/www/tor-browser/files/patch-browser-base-jar.mn @@ -0,0 +1,227 @@ +--- browser/base/jar.mn.orig 2023-10-21 13:09:52.025195000 +0000 ++++ browser/base/jar.mn 2023-10-21 13:10:04.930188000 +0000 +@@ -112,3 +112,224 @@ + * content/browser/default-bookmarks.html (content/default-bookmarks.html) + + content/browser/languageNotification.js (content/languageNotification.js) ++ content/browser/manual/ar.html (content/manual/ar.html) ++ content/browser/manual/bn.html (content/manual/bn.html) ++ content/browser/manual/ca.html (content/manual/ca.html) ++ content/browser/manual/de.html (content/manual/de.html) ++ content/browser/manual/el.html (content/manual/el.html) ++ content/browser/manual/en.html (content/manual/en.html) ++ content/browser/manual/es.html (content/manual/es.html) ++ content/browser/manual/fa.html (content/manual/fa.html) ++ content/browser/manual/fi.html (content/manual/fi.html) ++ content/browser/manual/fr.html (content/manual/fr.html) ++ content/browser/manual/ga.html (content/manual/ga.html) ++ content/browser/manual/he.html (content/manual/he.html) ++ content/browser/manual/hu.html (content/manual/hu.html) ++ content/browser/manual/id.html (content/manual/id.html) ++ content/browser/manual/is.html (content/manual/is.html) ++ content/browser/manual/it.html (content/manual/it.html) ++ content/browser/manual/ka.html (content/manual/ka.html) ++ content/browser/manual/km.html (content/manual/km.html) ++ content/browser/manual/ko.html (content/manual/ko.html) ++ content/browser/manual/lt.html (content/manual/lt.html) ++ content/browser/manual/mk.html (content/manual/mk.html) ++ content/browser/manual/my.html (content/manual/my.html) ++ content/browser/manual/pl.html (content/manual/pl.html) ++ content/browser/manual/pt-BR.html (content/manual/pt-BR.html) ++ content/browser/manual/pt-PT.html (content/manual/pt-PT.html) ++ content/browser/manual/ro.html (content/manual/ro.html) ++ content/browser/manual/ru.html (content/manual/ru.html) ++ content/browser/manual/sq.html (content/manual/sq.html) ++ content/browser/manual/static/collapse.min.js (content/manual/static/collapse.min.js) ++ content/browser/manual/static/css/bootstrap-grid.css (content/manual/static/css/bootstrap-grid.css) ++ content/browser/manual/static/css/bootstrap-reboot.css (content/manual/static/css/bootstrap-reboot.css) ++ content/browser/manual/static/css/bootstrap.css (content/manual/static/css/bootstrap.css) ++ content/browser/manual/static/fonts/Corben/Corben-Bold.ttf (content/manual/static/fonts/Corben/Corben-Bold.ttf) ++ content/browser/manual/static/fonts/Corben/Corben.ttf (content/manual/static/fonts/Corben/Corben.ttf) ++ content/browser/manual/static/fonts/Hanuman/Hanuman-Black.ttf (content/manual/static/fonts/Hanuman/Hanuman-Black.ttf) ++ content/browser/manual/static/fonts/Hanuman/Hanuman-Bold.ttf (content/manual/static/fonts/Hanuman/Hanuman-Bold.ttf) ++ content/browser/manual/static/fonts/Hanuman/Hanuman-Light.ttf (content/manual/static/fonts/Hanuman/Hanuman-Light.ttf) ++ content/browser/manual/static/fonts/Hanuman/Hanuman-Regular.ttf (content/manual/static/fonts/Hanuman/Hanuman-Regular.ttf) ++ content/browser/manual/static/fonts/Hanuman/Hanuman-Thin.ttf (content/manual/static/fonts/Hanuman/Hanuman-Thin.ttf) ++ content/browser/manual/static/fonts/Hanuman/OFL.txt (content/manual/static/fonts/Hanuman/OFL.txt) ++ content/browser/manual/static/fonts/Kanit/kanit.woff2 (content/manual/static/fonts/Kanit/kanit.woff2) ++ content/browser/manual/static/fonts/LeagueGothic/LeagueGothic-Italic.otf (content/manual/static/fonts/LeagueGothic/LeagueGothic-Italic.otf) ++ content/browser/manual/static/fonts/LeagueGothic/League_Gothic_Regular.woff (content/manual/static/fonts/LeagueGothic/League_Gothic_Regular.woff) ++ content/browser/manual/static/fonts/SourceCodePro/OFL.txt (content/manual/static/fonts/SourceCodePro/OFL.txt) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Black.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Black.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Bold.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Bold.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-ExtraLight.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Light.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Light.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Medium.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Medium.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Regular.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Regular.ttf) ++ content/browser/manual/static/fonts/SourceCodePro/SourceCodePro-Semibold.ttf (content/manual/static/fonts/SourceCodePro/SourceCodePro-Semibold.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/OFL.txt (content/manual/static/fonts/SourceSansPro/OFL.txt) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-Black.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-Black.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-BlackItalic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-BlackItalic.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-Bold.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-Bold.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-BoldItalic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-BoldItalic.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-ExtraLight.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-ExtraLight.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-ExtraLightItalic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-ExtraLightItalic.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-Italic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-Italic.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-Light.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-Light.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-LightItalic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-LightItalic.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-Regular.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-Regular.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-SemiBold.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-SemiBold.ttf) ++ content/browser/manual/static/fonts/SourceSansPro/SourceSansPro-SemiBoldItalic.ttf (content/manual/static/fonts/SourceSansPro/SourceSansPro-SemiBoldItalic.ttf) ++ content/browser/manual/static/fonts/SourceSerifPro/OFL.txt (content/manual/static/fonts/SourceSerifPro/OFL.txt) ++ content/browser/manual/static/fonts/SourceSerifPro/SourceSerifPro-Bold.ttf (content/manual/static/fonts/SourceSerifPro/SourceSerifPro-Bold.ttf) ++ content/browser/manual/static/fonts/SourceSerifPro/SourceSerifPro-Regular.ttf (content/manual/static/fonts/SourceSerifPro/SourceSerifPro-Regular.ttf) ++ content/browser/manual/static/fonts/SourceSerifPro/SourceSerifPro-Semibold.ttf (content/manual/static/fonts/SourceSerifPro/SourceSerifPro-Semibold.ttf) ++ content/browser/manual/static/fonts/TorIcons/tor-icons.eot (content/manual/static/fonts/TorIcons/tor-icons.eot) ++ content/browser/manual/static/fonts/TorIcons/tor-icons.svg (content/manual/static/fonts/TorIcons/tor-icons.svg) ++ content/browser/manual/static/fonts/TorIcons/tor-icons.ttf (content/manual/static/fonts/TorIcons/tor-icons.ttf) ++ content/browser/manual/static/fonts/TorIcons/tor-icons.woff (content/manual/static/fonts/TorIcons/tor-icons.woff) ++ content/browser/manual/static/fonts/TorIcons/tor-icons.woff2 (content/manual/static/fonts/TorIcons/tor-icons.woff2) ++ content/browser/manual/static/fonts/WhiteonBlack/WhiteOnBlack.ttf (content/manual/static/fonts/WhiteonBlack/WhiteOnBlack.ttf) ++ content/browser/manual/static/fonts/fontawesome/LICENSE.txt (content/manual/static/fonts/fontawesome/LICENSE.txt) ++ content/browser/manual/static/fonts/fontawesome/css/all.css (content/manual/static/fonts/fontawesome/css/all.css) ++ content/browser/manual/static/fonts/fontawesome/css/all.min.css (content/manual/static/fonts/fontawesome/css/all.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/brands.css (content/manual/static/fonts/fontawesome/css/brands.css) ++ content/browser/manual/static/fonts/fontawesome/css/brands.min.css (content/manual/static/fonts/fontawesome/css/brands.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/fontawesome.css (content/manual/static/fonts/fontawesome/css/fontawesome.css) ++ content/browser/manual/static/fonts/fontawesome/css/fontawesome.min.css (content/manual/static/fonts/fontawesome/css/fontawesome.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/regular.css (content/manual/static/fonts/fontawesome/css/regular.css) ++ content/browser/manual/static/fonts/fontawesome/css/regular.min.css (content/manual/static/fonts/fontawesome/css/regular.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/solid.css (content/manual/static/fonts/fontawesome/css/solid.css) ++ content/browser/manual/static/fonts/fontawesome/css/solid.min.css (content/manual/static/fonts/fontawesome/css/solid.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/svg-with-js.css (content/manual/static/fonts/fontawesome/css/svg-with-js.css) ++ content/browser/manual/static/fonts/fontawesome/css/svg-with-js.min.css (content/manual/static/fonts/fontawesome/css/svg-with-js.min.css) ++ content/browser/manual/static/fonts/fontawesome/css/v4-shims.css (content/manual/static/fonts/fontawesome/css/v4-shims.css) ++ content/browser/manual/static/fonts/fontawesome/css/v4-shims.min.css (content/manual/static/fonts/fontawesome/css/v4-shims.min.css) ++ content/browser/manual/static/fonts/fontawesome/png/dark/solid/arrow-down.png (content/manual/static/fonts/fontawesome/png/dark/solid/arrow-down.png) ++ content/browser/manual/static/fonts/fontawesome/png/dark/solid/language.png (content/manual/static/fonts/fontawesome/png/dark/solid/language.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/facebook.png (content/manual/static/fonts/fontawesome/png/primary/brands/facebook.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/instagram.png (content/manual/static/fonts/fontawesome/png/primary/brands/instagram.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/linkedin.png (content/manual/static/fonts/fontawesome/png/primary/brands/linkedin.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/mastodon.png (content/manual/static/fonts/fontawesome/png/primary/brands/mastodon.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/telegram.png (content/manual/static/fonts/fontawesome/png/primary/brands/telegram.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/twitter.png (content/manual/static/fonts/fontawesome/png/primary/brands/twitter.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/brands/youtube.png (content/manual/static/fonts/fontawesome/png/primary/brands/youtube.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/regular/file-alt.png (content/manual/static/fonts/fontawesome/png/primary/regular/file-alt.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/arrow-down.png (content/manual/static/fonts/fontawesome/png/primary/solid/arrow-down.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/arrow-right.png (content/manual/static/fonts/fontawesome/png/primary/solid/arrow-right.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/comments.png (content/manual/static/fonts/fontawesome/png/primary/solid/comments.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/cube.png (content/manual/static/fonts/fontawesome/png/primary/solid/cube.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/flag.png (content/manual/static/fonts/fontawesome/png/primary/solid/flag.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/folder-open.png (content/manual/static/fonts/fontawesome/png/primary/solid/folder-open.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/hands-helping.png (content/manual/static/fonts/fontawesome/png/primary/solid/hands-helping.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/key.png (content/manual/static/fonts/fontawesome/png/primary/solid/key.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/language.png (content/manual/static/fonts/fontawesome/png/primary/solid/language.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/life-ring.png (content/manual/static/fonts/fontawesome/png/primary/solid/life-ring.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/lock.png (content/manual/static/fonts/fontawesome/png/primary/solid/lock.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/magnifying-glass.png (content/manual/static/fonts/fontawesome/png/primary/solid/magnifying-glass.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/paper-plane.png (content/manual/static/fonts/fontawesome/png/primary/solid/paper-plane.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/signature.png (content/manual/static/fonts/fontawesome/png/primary/solid/signature.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/spider.png (content/manual/static/fonts/fontawesome/png/primary/solid/spider.png) ++ content/browser/manual/static/fonts/fontawesome/png/primary/solid/table-tennis.png (content/manual/static/fonts/fontawesome/png/primary/solid/table-tennis.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/android.png (content/manual/static/fonts/fontawesome/png/white/brands/android.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/apple.png (content/manual/static/fonts/fontawesome/png/white/brands/apple.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/facebook.png (content/manual/static/fonts/fontawesome/png/white/brands/facebook.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/github.png (content/manual/static/fonts/fontawesome/png/white/brands/github.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/instagram.png (content/manual/static/fonts/fontawesome/png/white/brands/instagram.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/linkedin.png (content/manual/static/fonts/fontawesome/png/white/brands/linkedin.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/linux.png (content/manual/static/fonts/fontawesome/png/white/brands/linux.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/mastodon.png (content/manual/static/fonts/fontawesome/png/white/brands/mastodon.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/twitter.png (content/manual/static/fonts/fontawesome/png/white/brands/twitter.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/brands/windows.png (content/manual/static/fonts/fontawesome/png/white/brands/windows.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/solid/arrow-down.png (content/manual/static/fonts/fontawesome/png/white/solid/arrow-down.png) ++ content/browser/manual/static/fonts/fontawesome/png/white/solid/arrow-right.png (content/manual/static/fonts/fontawesome/png/white/solid/arrow-right.png) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-brands-400.eot (content/manual/static/fonts/fontawesome/webfonts/fa-brands-400.eot) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-brands-400.svg (content/manual/static/fonts/fontawesome/webfonts/fa-brands-400.svg) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-brands-400.ttf (content/manual/static/fonts/fontawesome/webfonts/fa-brands-400.ttf) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-brands-400.woff (content/manual/static/fonts/fontawesome/webfonts/fa-brands-400.woff) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-brands-400.woff2 (content/manual/static/fonts/fontawesome/webfonts/fa-brands-400.woff2) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-regular-400.eot (content/manual/static/fonts/fontawesome/webfonts/fa-regular-400.eot) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-regular-400.svg (content/manual/static/fonts/fontawesome/webfonts/fa-regular-400.svg) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-regular-400.ttf (content/manual/static/fonts/fontawesome/webfonts/fa-regular-400.ttf) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-regular-400.woff (content/manual/static/fonts/fontawesome/webfonts/fa-regular-400.woff) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-regular-400.woff2 (content/manual/static/fonts/fontawesome/webfonts/fa-regular-400.woff2) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-solid-900.eot (content/manual/static/fonts/fontawesome/webfonts/fa-solid-900.eot) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-solid-900.svg (content/manual/static/fonts/fontawesome/webfonts/fa-solid-900.svg) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-solid-900.ttf (content/manual/static/fonts/fontawesome/webfonts/fa-solid-900.ttf) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-solid-900.woff (content/manual/static/fonts/fontawesome/webfonts/fa-solid-900.woff) ++ content/browser/manual/static/fonts/fontawesome/webfonts/fa-solid-900.woff2 (content/manual/static/fonts/fontawesome/webfonts/fa-solid-900.woff2) ++ content/browser/manual/static/fonts/grotesque/terminal-grotesque_open.otf (content/manual/static/fonts/grotesque/terminal-grotesque_open.otf) ++ content/browser/manual/static/images/android-censored.png (content/manual/static/images/android-censored.png) ++ content/browser/manual/static/images/android-configure.png (content/manual/static/images/android-configure.png) ++ content/browser/manual/static/images/android-connect.png (content/manual/static/images/android-connect.png) ++ content/browser/manual/static/images/android-new-identity.png (content/manual/static/images/android-new-identity.png) ++ content/browser/manual/static/images/android-provide-a-bridge.png (content/manual/static/images/android-provide-a-bridge.png) ++ content/browser/manual/static/images/android-provided-a-bridge.png (content/manual/static/images/android-provided-a-bridge.png) ++ content/browser/manual/static/images/android-security-settings.gif (content/manual/static/images/android-security-settings.gif) ++ content/browser/manual/static/images/android-select-a-bridge.png (content/manual/static/images/android-select-a-bridge.png) ++ content/browser/manual/static/images/android-selected-a-bridge.png (content/manual/static/images/android-selected-a-bridge.png) ++ content/browser/manual/static/images/android-uninstall-device-settings.png (content/manual/static/images/android-uninstall-device-settings.png) ++ content/browser/manual/static/images/android-uninstall-f-droid.png (content/manual/static/images/android-uninstall-f-droid.png) ++ content/browser/manual/static/images/android-uninstall-google-play.png (content/manual/static/images/android-uninstall-google-play.png) ++ content/browser/manual/static/images/android-update-f-droid.png (content/manual/static/images/android-update-f-droid.png) ++ content/browser/manual/static/images/android-update-google-play.png (content/manual/static/images/android-update-google-play.png) ++ content/browser/manual/static/images/android-view-logs.gif (content/manual/static/images/android-view-logs.gif) ++ content/browser/manual/static/images/bridge-qr.png (content/manual/static/images/bridge-qr.png) ++ content/browser/manual/static/images/bridgemoji.png (content/manual/static/images/bridgemoji.png) ++ content/browser/manual/static/images/built-in-bridge.png (content/manual/static/images/built-in-bridge.png) ++ content/browser/manual/static/images/circuit_full.png (content/manual/static/images/circuit_full.png) ++ content/browser/manual/static/images/client-auth.png (content/manual/static/images/client-auth.png) ++ content/browser/manual/static/images/configure.png (content/manual/static/images/configure.png) ++ content/browser/manual/static/images/connect.png (content/manual/static/images/connect.png) ++ content/browser/manual/static/images/connection-assist-auto.png (content/manual/static/images/connection-assist-auto.png) ++ content/browser/manual/static/images/connection-assist-offline.png (content/manual/static/images/connection-assist-offline.png) ++ content/browser/manual/static/images/connection-assist-select.png (content/manual/static/images/connection-assist-select.png) ++ content/browser/manual/static/images/connection-assist-test.png (content/manual/static/images/connection-assist-test.png) ++ content/browser/manual/static/images/connection-test-failure.png (content/manual/static/images/connection-test-failure.png) ++ content/browser/manual/static/images/connection-test-success.png (content/manual/static/images/connection-test-success.png) ++ content/browser/manual/static/images/gettor-bot-telegram.png (content/manual/static/images/gettor-bot-telegram.png) ++ content/browser/manual/static/images/how-tor-works.png (content/manual/static/images/how-tor-works.png) ++ content/browser/manual/static/images/http-website-error.png (content/manual/static/images/http-website-error.png) ++ content/browser/manual/static/images/https-only-mode.png (content/manual/static/images/https-only-mode.png) ++ content/browser/manual/static/images/linux-make-desktop-file-executable.png (content/manual/static/images/linux-make-desktop-file-executable.png) ++ content/browser/manual/static/images/macos-go-to-folder-menu.png (content/manual/static/images/macos-go-to-folder-menu.png) ++ content/browser/manual/static/images/macos-go-to-folder-window.png (content/manual/static/images/macos-go-to-folder-window.png) ++ content/browser/manual/static/images/new_identity.png (content/manual/static/images/new_identity.png) ++ content/browser/manual/static/images/onion-location.png (content/manual/static/images/onion-location.png) ++ content/browser/manual/static/images/pluggable-transport.png (content/manual/static/images/pluggable-transport.png) ++ content/browser/manual/static/images/provide-bridge.png (content/manual/static/images/provide-bridge.png) ++ content/browser/manual/static/images/proxy.png (content/manual/static/images/proxy.png) ++ content/browser/manual/static/images/quickstart.png (content/manual/static/images/quickstart.png) ++ content/browser/manual/static/images/request-a-bridge.png (content/manual/static/images/request-a-bridge.png) ++ content/browser/manual/static/images/security-settings-anim.gif (content/manual/static/images/security-settings-anim.gif) ++ content/browser/manual/static/images/security-settings-safest.png (content/manual/static/images/security-settings-safest.png) ++ content/browser/manual/static/images/tor-https-0.png (content/manual/static/images/tor-https-0.png) ++ content/browser/manual/static/images/tor-https-1.png (content/manual/static/images/tor-https-1.png) ++ content/browser/manual/static/images/tor-https-2.png (content/manual/static/images/tor-https-2.png) ++ content/browser/manual/static/images/tor-https-3.png (content/manual/static/images/tor-https-3.png) ++ content/browser/manual/static/images/update1.png (content/manual/static/images/update1.png) ++ content/browser/manual/static/images/update4.png (content/manual/static/images/update4.png) ++ content/browser/manual/static/js/anchor.min.js (content/manual/static/js/anchor.min.js) ++ content/browser/manual/static/js/bootstrap.bundle.js (content/manual/static/js/bootstrap.bundle.js) ++ content/browser/manual/static/js/bootstrap.bundle.js.map (content/manual/static/js/bootstrap.bundle.js.map) ++ content/browser/manual/static/js/bootstrap.bundle.min.js (content/manual/static/js/bootstrap.bundle.min.js) ++ content/browser/manual/static/js/bootstrap.bundle.min.js.map (content/manual/static/js/bootstrap.bundle.min.js.map) ++ content/browser/manual/static/js/bootstrap.js (content/manual/static/js/bootstrap.js) ++ content/browser/manual/static/js/bootstrap.js.map (content/manual/static/js/bootstrap.js.map) ++ content/browser/manual/static/js/bootstrap.min.js (content/manual/static/js/bootstrap.min.js) ++ content/browser/manual/static/js/bootstrap.min.js.map (content/manual/static/js/bootstrap.min.js.map) ++ content/browser/manual/static/js/clipboard.min.js (content/manual/static/js/clipboard.min.js) ++ content/browser/manual/static/js/collapse.min.js (content/manual/static/js/collapse.min.js) ++ content/browser/manual/static/js/download.js (content/manual/static/js/download.js) ++ content/browser/manual/static/js/errors.js (content/manual/static/js/errors.js) ++ content/browser/manual/static/js/fallback.js (content/manual/static/js/fallback.js) ++ content/browser/manual/static/js/holder.min.js (content/manual/static/js/holder.min.js) ++ content/browser/manual/static/js/jquery-3.2.1.min.js (content/manual/static/js/jquery-3.2.1.min.js) ++ content/browser/manual/static/js/jquery-slim.min.js (content/manual/static/js/jquery-slim.min.js) ++ content/browser/manual/static/js/modernizr.js (content/manual/static/js/modernizr.js) ++ content/browser/manual/static/js/popper.min.js (content/manual/static/js/popper.min.js) ++ content/browser/manual/static/js/scrollspy.min.js (content/manual/static/js/scrollspy.min.js) ++ content/browser/manual/static/js/util.min.js (content/manual/static/js/util.min.js) ++ content/browser/manual/sw.html (content/manual/sw.html) ++ content/browser/manual/th.html (content/manual/th.html) ++ content/browser/manual/tr.html (content/manual/tr.html) ++ content/browser/manual/uk.html (content/manual/uk.html) ++ content/browser/manual/vi.html (content/manual/vi.html) ++ content/browser/manual/zh-CN.html (content/manual/zh-CN.html) ++ content/browser/manual/zh-TW.html (content/manual/zh-TW.html) diff --git a/www/tor-browser/files/patch-browser_app_profile_000-tor-browser.js b/www/tor-browser/files/patch-browser_app_profile_000-tor-browser.js index 7ad39b4237ff..33dc6cdb02f8 100644 --- a/www/tor-browser/files/patch-browser_app_profile_000-tor-browser.js +++ b/www/tor-browser/files/patch-browser_app_profile_000-tor-browser.js @@ -1,6 +1,9 @@ ---- browser/app/profile/000-tor-browser.js.orig 2022-11-30 11:37:40 UTC +Set all path-related prefs to minimize patching of tl-util.jsm/tl-process.js + +Index: browser/app/profile/000-tor-browser.js +--- browser/app/profile/000-tor-browser.js.orig +++ browser/app/profile/000-tor-browser.js -@@ -123,14 +123,17 @@ pref("extensions.torlauncher.socks_port_flags", "Exten +@@ -100,7 +100,10 @@ pref("extensions.torlauncher.socks_port_flags", "Exten // The tor_path is relative to the application directory. On Linux and // Windows this is the Browser/ directory that contains the firefox // executables, and on Mac OS it is the TorBrowser.app directory. @@ -12,12 +15,3 @@ // The torrc_path and tordatadir_path are relative to the data directory, // which is TorBrowser-Data/ if it exists as a sibling of the application - // directory. If TorBrowser-Data/ does not exist, these paths are relative - // to the TorBrowser/ directory within the application directory. --pref("extensions.torlauncher.torrc_path", ""); --pref("extensions.torlauncher.tordatadir_path", ""); -+pref("extensions.torlauncher.torrc_path", "torrc"); -+pref("extensions.torlauncher.tordatadir_path", "tor_data"); - - // BridgeDB-related preferences (used for Moat). - pref("extensions.torlauncher.bridgedb_front", "cdn.sstatic.net"); diff --git a/www/tor-browser/files/patch-bug1427152 b/www/tor-browser/files/patch-bug1427152 new file mode 100644 index 000000000000..49bd5a581ac8 --- /dev/null +++ b/www/tor-browser/files/patch-bug1427152 @@ -0,0 +1,10 @@ +--- modules/libpref/Preferences.cpp.orig 2023-05-11 21:42:41 UTC ++++ modules/libpref/Preferences.cpp +@@ -6126,6 +6126,7 @@ static const PrefListEntry sDynamicPrefOverrideList[]{ + PREF_LIST_ENTRY("logging.config.LOG_FILE"), + PREF_LIST_ENTRY("media.audio_loopback_dev"), + PREF_LIST_ENTRY("media.decoder-doctor."), ++ PREF_LIST_ENTRY("media.cubeb.backend"), + PREF_LIST_ENTRY("media.cubeb.output_device"), + PREF_LIST_ENTRY("media.getusermedia.fake-camera-name"), + PREF_LIST_ENTRY("media.hls.server.url"), diff --git a/www/tor-browser/files/patch-bug1504834_comment5 b/www/tor-browser/files/patch-bug1504834_comment5 index 4d4886823f0f..b9897e0b7f66 100644 --- a/www/tor-browser/files/patch-bug1504834_comment5 +++ b/www/tor-browser/files/patch-bug1504834_comment5 @@ -37,10 +37,8 @@ index 6b3bdc7..7c6c342 100644 // The following values are OS and endian-independent synonyms. // -diff --git gfx/skia/skia/third_party/skcms/skcms.cc gfx/skia/skia/third_party/skcms/skcms.cc -index 6b4d87b..7c0559d 100644 ---- gfx/skia/skia/third_party/skcms/skcms.cc -+++ gfx/skia/skia/third_party/skcms/skcms.cc +--- gfx/skia/skia/modules/skcms/skcms.cc.orig ++++ gfx/skia/skia/modules/skcms/skcms.cc @@ -30,6 +30,8 @@ #include <avx512fintrin.h> #include <avx512dqintrin.h> @@ -49,8 +47,8 @@ index 6b4d87b..7c0559d 100644 + #define SKCMS_PORTABLE #endif - // sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. -@@ -280,20 +282,28 @@ enum { + static bool runtime_cpu_detection = true; +@@ -324,20 +326,28 @@ static uint16_t read_big_u16(const uint8_t* ptr) { uint16_t be; memcpy(&be, ptr, sizeof(be)); diff --git a/www/tor-browser/files/patch-bug1504834_comment9 b/www/tor-browser/files/patch-bug1504834_comment9 deleted file mode 100644 index c3d149ffa37b..000000000000 --- a/www/tor-browser/files/patch-bug1504834_comment9 +++ /dev/null @@ -1,49 +0,0 @@ -https://bugzilla.mozilla.org/show_bug.cgi?id=1504834#c9 -https://bugzilla.mozilla.org/attachment.cgi?id=9111146 -mozilla-bmo1504834-part3.patch - - -# HG changeset patch -# Parent aecb4600e5da17443b224c79eee178c1d8e155e3 -For FF68, AntiAliasing of XULTexts seem to be broken on big endian (s390x). Text and icons of the sandwich-menu to the -right of the address bar, as well as plugin-windows appears transparant, which usually means unreadable (white on white). - -diff -r aecb4600e5da gfx/skia/skia/include/private/SkNx.h ---- gfx/skia/skia/include/private/SkNx.h Tue Aug 20 09:46:55 2019 +0200 -+++ gfx/skia/skia/include/private/SkNx.h Mon Sep 09 10:04:06 2019 +0200 -@@ -238,7 +238,18 @@ - AI SkNx operator*(const SkNx& y) const { return fVal * y.fVal; } - AI SkNx operator/(const SkNx& y) const { return fVal / y.fVal; } - -+ // On Big endian the commented out variant doesn't work, -+ // and honestly, I have no idea why it exists in the first place. -+ // The reason its broken is, I think, that it defaults to the double-variant of ToBits() -+ // which gets a 64-bit integer, and FromBits returns 32-bit, -+ // cutting off the wrong half again. -+ // Overall, I see no reason to have ToBits and FromBits at all (even for floats/doubles). -+ // Still we are only "fixing" this for big endian and leave little endian alone (never touch a running system) -+#ifdef SK_CPU_BENDIAN -+ AI SkNx operator&(const SkNx& y) const { return fVal & y.fVal; } -+#else - AI SkNx operator&(const SkNx& y) const { return FromBits(ToBits(fVal) & ToBits(y.fVal)); } -+#endif - AI SkNx operator|(const SkNx& y) const { return FromBits(ToBits(fVal) | ToBits(y.fVal)); } - AI SkNx operator^(const SkNx& y) const { return FromBits(ToBits(fVal) ^ ToBits(y.fVal)); } - -diff -r aecb4600e5da gfx/skia/skia/src/opts/SkBlitMask_opts.h ---- gfx/skia/skia/src/opts/SkBlitMask_opts.h Tue Aug 20 09:46:55 2019 +0200 -+++ gfx/skia/skia/src/opts/SkBlitMask_opts.h Mon Sep 09 10:04:06 2019 +0200 -@@ -203,7 +203,13 @@ - // ~~~> - // a = 1*aa + d(1-1*aa) = aa + d(1-aa) - // c = 0*aa + d(1-1*aa) = d(1-aa) -+ -+ // For big endian we have to swap the alpha-mask from 0,0,0,255 to 255,0,0,0 -+#ifdef SK_CPU_BENDIAN -+ return Sk4px(Sk16b(aa) & Sk16b(255,0,0,0, 255,0,0,0, 255,0,0,0, 255,0,0,0)) -+#else - return Sk4px(Sk16b(aa) & Sk16b(0,0,0,255, 0,0,0,255, 0,0,0,255, 0,0,0,255)) -+#endif - + d.approxMulDiv255(aa.inv()); - }; - while (h --> 0) { diff --git a/www/tor-browser/files/patch-bug1559213 b/www/tor-browser/files/patch-bug1559213 index 09b4dcc58e83..49bbb0fb05ff 100644 --- a/www/tor-browser/files/patch-bug1559213 +++ b/www/tor-browser/files/patch-bug1559213 @@ -63,26 +63,27 @@ index 8509aec..eb6f129 100644 EXPORTS += [ diff --git media/ffvpx/libavcodec/moz.build media/ffvpx/libavcodec/moz.build index 0069865..e806fc8 100644 ---- media/ffvpx/libavcodec/moz.build +--- media/ffvpx/libavcodec/moz.build.orig +++ media/ffvpx/libavcodec/moz.build -@@ -112,9 +112,15 @@ if not CONFIG['MOZ_FFVPX_AUDIOONLY']: - 'vaapi_vp8.c', - 'vaapi_vp9.c', - ] -+ if CONFIG["MOZ_SYSTEM_AV1"]: -+ CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] -+ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] -+ else: -+ USE_LIBS += [ -+ 'dav1d', -+ 'media_libdav1d_asm', -+ ] - USE_LIBS += [ -- 'dav1d', -- 'media_libdav1d_asm', - 'mozva' - ] - +@@ -108,10 +108,14 @@ + 'vp9prob.c', + 'vp9recon.c' + ] +- USE_LIBS += [ +- 'dav1d', +- 'media_libdav1d_asm', +- ] ++ if CONFIG["MOZ_SYSTEM_AV1"]: ++ CFLAGS += CONFIG['MOZ_SYSTEM_LIBDAV1D_CFLAGS'] ++ OS_LIBS += CONFIG['MOZ_SYSTEM_LIBDAV1D_LIBS'] ++ else: ++ USE_LIBS += [ ++ 'dav1d', ++ 'media_libdav1d_asm', ++ ] + if CONFIG['MOZ_WAYLAND']: + LOCAL_INCLUDES += ['/media/mozva'] + SOURCES += [ diff --git toolkit/moz.configure toolkit/moz.configure index 0069865..e806fc8 100644 --- toolkit/moz.configure diff --git a/www/tor-browser/files/patch-bug1626236 b/www/tor-browser/files/patch-bug1626236 index ae3b522f6b90..ccb417b61f15 100644 --- a/www/tor-browser/files/patch-bug1626236 +++ b/www/tor-browser/files/patch-bug1626236 @@ -9,11 +9,10 @@ https://bug1626236.bmoattachments.org/attachment.cgi?id=9137096 # Parent 9cd90914846f667f18babc491a74c164ae5d6e9f imported patch decoder_workaround.patch -diff --git image/decoders/nsGIFDecoder2.cpp image/decoders/nsGIFDecoder2.cpp -index ebb0b7d..d52ef47 100644 ---- image/decoders/nsGIFDecoder2.cpp -+++ image/decoders/nsGIFDecoder2.cpp -@@ -422,6 +422,9 @@ void nsGIFDecoder2::ConvertColormap(uint32_t* aColormap, uint32_t aColors) { +diff -r 9cd90914846f image/decoders/nsGIFDecoder2.cpp +--- image/decoders/nsGIFDecoder2.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ image/decoders/nsGIFDecoder2.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -422,6 +422,9 @@ MOZ_ASSERT(mSwizzleFn); uint8_t* data = reinterpret_cast<uint8_t*>(aColormap); mSwizzleFn(data, data, aColors); @@ -23,11 +22,10 @@ index ebb0b7d..d52ef47 100644 } LexerResult nsGIFDecoder2::DoDecode(SourceBufferIterator& aIterator, -diff --git image/decoders/nsJPEGDecoder.cpp image/decoders/nsJPEGDecoder.cpp -index 9ea4403..d82772c 100644 ---- image/decoders/nsJPEGDecoder.cpp -+++ image/decoders/nsJPEGDecoder.cpp -@@ -257,6 +257,9 @@ LexerTransition<nsJPEGDecoder::State> nsJPEGDecoder::ReadJPEGData( +diff -r 9cd90914846f image/decoders/nsJPEGDecoder.cpp +--- image/decoders/nsJPEGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ image/decoders/nsJPEGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -263,6 +263,9 @@ case JCS_YCbCr: // By default, we will output directly to BGRA. If we need to apply // special color transforms, this may change. @@ -37,7 +35,7 @@ index 9ea4403..d82772c 100644 switch (SurfaceFormat::OS_RGBX) { case SurfaceFormat::B8G8R8X8: mInfo.out_color_space = JCS_EXT_BGRX; -@@ -271,6 +274,7 @@ LexerTransition<nsJPEGDecoder::State> nsJPEGDecoder::ReadJPEGData( +@@ -277,6 +280,7 @@ mState = JPEG_ERROR; return Transition::TerminateFailure(); } @@ -45,11 +43,10 @@ index 9ea4403..d82772c 100644 break; case JCS_CMYK: case JCS_YCCK: -diff --git image/decoders/nsPNGDecoder.cpp image/decoders/nsPNGDecoder.cpp -index e3e4ef4..3cc7315 100644 ---- image/decoders/nsPNGDecoder.cpp -+++ image/decoders/nsPNGDecoder.cpp -@@ -356,7 +356,7 @@ LexerResult nsPNGDecoder::DoDecode(SourceBufferIterator& aIterator, +diff -r 9cd90914846f image/decoders/nsPNGDecoder.cpp +--- image/decoders/nsPNGDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ image/decoders/nsPNGDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -361,7 +361,7 @@ IResumable* aOnResume) { MOZ_ASSERT(!HasError(), "Shouldn't call DoDecode after error!"); @@ -58,7 +55,7 @@ index e3e4ef4..3cc7315 100644 [=](State aState, const char* aData, size_t aLength) { switch (aState) { case State::PNG_DATA: -@@ -366,6 +366,14 @@ LexerResult nsPNGDecoder::DoDecode(SourceBufferIterator& aIterator, +@@ -371,6 +371,14 @@ } MOZ_CRASH("Unknown State"); }); @@ -73,11 +70,10 @@ index e3e4ef4..3cc7315 100644 } LexerTransition<nsPNGDecoder::State> nsPNGDecoder::ReadPNGData( -diff --git image/decoders/nsWebPDecoder.cpp image/decoders/nsWebPDecoder.cpp -index e58ca92..2056ebb 100644 ---- image/decoders/nsWebPDecoder.cpp -+++ image/decoders/nsWebPDecoder.cpp -@@ -247,7 +247,12 @@ nsresult nsWebPDecoder::CreateFrame(const OrientedIntRect& aFrameRect) { +diff -r 9cd90914846f image/decoders/nsWebPDecoder.cpp +--- image/decoders/nsWebPDecoder.cpp Thu Feb 27 12:57:14 2020 +0100 ++++ image/decoders/nsWebPDecoder.cpp Fri Mar 27 13:06:18 2020 +0100 +@@ -237,7 +237,12 @@ // WebP doesn't guarantee that the alpha generated matches the hint in the // header, so we always need to claim the input is BGRA. If the output is // BGRX, swizzling will mask off the alpha channel. diff --git a/www/tor-browser/files/patch-bug1628567 b/www/tor-browser/files/patch-bug1628567 index 003ba36d3ad1..32b0dc260d22 100644 --- a/www/tor-browser/files/patch-bug1628567 +++ b/www/tor-browser/files/patch-bug1628567 @@ -1,10 +1,10 @@ Don't pass --target when CC/CXX contains clang diff --git third_party/rust/cc/src/lib.rs third_party/rust/cc/src/lib.rs -index 8cafd2a..f40b746 100644 +index 9d133a0..273e520 100644 --- third_party/rust/cc/src/lib.rs +++ third_party/rust/cc/src/lib.rs -@@ -2796,24 +2796,7 @@ impl Tool { +@@ -2667,24 +2667,7 @@ impl Tool { } fn with_features(path: PathBuf, clang_driver: Option<&str>, cuda: bool) -> Self { diff --git a/www/tor-browser/files/patch-bug1640982 b/www/tor-browser/files/patch-bug1640982 deleted file mode 100644 index 5ad0fbad6c72..000000000000 --- a/www/tor-browser/files/patch-bug1640982 +++ /dev/null @@ -1,17 +0,0 @@ -Unbreak build with Rust 1.45.0 - -error: options `-C embed-bitcode=no` and `-C lto` are incompatible - -diff --git config/makefiles/rust.mk config/makefiles/rust.mk -index 75570d3..94ec33f 100644 ---- config/makefiles/rust.mk -+++ config/makefiles/rust.mk -@@ -97,7 +97,7 @@ ifndef rustflags_sancov - # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045. - ifndef MOZ_CODE_COVERAGE - ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE))) --cargo_rustc_flags += -Clto -+cargo_rustc_flags += - endif - # We need -Cembed-bitcode=yes for all crates when using -Clto. - RUSTFLAGS += -Cembed-bitcode=yes diff --git a/www/tor-browser/files/patch-bug1659612 b/www/tor-browser/files/patch-bug1659612 index dce125b883d2..a7aea97734a0 100644 --- a/www/tor-browser/files/patch-bug1659612 +++ b/www/tor-browser/files/patch-bug1659612 @@ -20,16 +20,22 @@ media/libcubeb/src/cubeb_alsa.c:1168:3: note: include the header <stdlib.h> or e ^ 2 errors generated. ---- media/libcubeb/src/cubeb_alsa.c.orig 2021-08-31 14:26:24.530548000 +0200 -+++ media/libcubeb/src/cubeb_alsa.c 2021-08-31 14:26:43.081470000 +0200 -@@ -5,9 +5,7 @@ +--- media/libcubeb/src/cubeb_alsa.c.orig 2023-03-29 20:51:00.139281000 +0200 ++++ media/libcubeb/src/cubeb_alsa.c 2023-03-29 20:51:46.219013000 +0200 +@@ -5,12 +5,16 @@ * accompanying file LICENSE for details. */ #undef NDEBUG --#define _DEFAULT_SOURCE --#define _BSD_SOURCE --#define _XOPEN_SOURCE 500 -+#define _GNU_SOURCE 1 ++#if defined(__FreeBSD__) ++#define _GNU_SOURCE ++#else + #define _DEFAULT_SOURCE + #define _BSD_SOURCE + #if defined(__NetBSD__) + #define _NETBSD_SOURCE /* timersub() */ + #endif + #define _XOPEN_SOURCE 500 ++#endif #include "cubeb-internal.h" #include "cubeb/cubeb.h" - #include <alsa/asoundlib.h> + #include "cubeb_tracing.h" diff --git a/www/tor-browser/files/patch-bug1664115 b/www/tor-browser/files/patch-bug1664115 deleted file mode 100644 index 3be934a8c04e..000000000000 --- a/www/tor-browser/files/patch-bug1664115 +++ /dev/null @@ -1,82 +0,0 @@ -Revert bug 1647717 to workaround the issue of occational tab crashing when -using any cubeb backends other than pulse-rust to play media. The loss of -such change will be that users will not be able to do profiling on threads -created by libcubeb. - ---- dom/media/AudioStream.cpp.orig 2022-04-19 19:43:36.505544000 +0200 -+++ dom/media/AudioStream.cpp 2022-04-19 19:47:53.111474000 +0200 -@@ -27,7 +27,6 @@ - #endif - #include "Tracing.h" - #include "webaudio/blink/DenormalDisabler.h" --#include "AudioThreadRegistry.h" - #include "mozilla/StaticPrefs_media.h" - - // Use abort() instead of exception in SoundTouch. -@@ -144,8 +143,6 @@ - mOutChannels(aOutputChannels), - mState(INITIALIZED), - mDataSource(aSource), -- mAudioThreadId(ProfilerThreadId{}), -- mSandboxed(CubebUtils::SandboxEnabled()), - mPlaybackComplete(false), - mPlaybackRate(1.0f), - mPreservesPitch(true) {} -@@ -552,17 +549,6 @@ - aWriter.Available()); - } - --bool AudioStream::CheckThreadIdChanged() { -- ProfilerThreadId id = profiler_current_thread_id(); -- if (id != mAudioThreadId) { -- mAudioThreadId = id; -- mAudioThreadChanged = true; -- return true; -- } -- mAudioThreadChanged = false; -- return false; --} -- - void AudioStream::AssertIsOnAudioThread() const { - // This can be called right after CheckThreadIdChanged, because the audio - // thread can change when not sandboxed. -@@ -591,9 +577,6 @@ - } - - long AudioStream::DataCallback(void* aBuffer, long aFrames) { -- if (CheckThreadIdChanged() && !mSandboxed) { -- CubebUtils::GetAudioThreadRegistry()->Register(mAudioThreadId); -- } - WebCore::DenormalDisabler disabler; - *** 78491 LINES SKIPPED ***