git: 5bab21c20a58 - main - www/tor-browser: Update to 13.01

From: Jesper Schmitz Mouridsen <jsm_at_FreeBSD.org>
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 ***