Version in base suite: 68.4.1-1~deb10u1 Version in overlay suite: 68.5.0-1~deb10u1 Base version: thunderbird_68.5.0-1~deb10u1 Target version: thunderbird_68.6.0-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/t/thunderbird/thunderbird_68.5.0-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/t/thunderbird/thunderbird_68.6.0-1~deb10u1.dsc browser/actors/WebRTCChild.jsm | 4 browser/app/blocklist.xml | 154 browser/components/enterprisepolicies/Policies.jsm | 100 browser/components/enterprisepolicies/content/aboutPolicies.js | 1 browser/components/enterprisepolicies/schemas/policies-schema.json | 24 browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js | 37 browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js | 21 browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js | 60 browser/components/extensions/test/browser/browser_ext_tabs_events.js | 43 browser/config/version.txt | 2 browser/config/version_display.txt | 2 browser/extensions/webcompat/data/injections.js | 15 browser/extensions/webcompat/data/ua_overrides.js | 87 browser/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css | 13 browser/extensions/webcompat/manifest.json | 2 browser/extensions/webcompat/moz.build | 1 browser/locales/en-US/browser/policies/policies-descriptions.ftl | 2 comm/.gecko_rev.yml | 2 comm/mail/base/content/msgMail3PaneWindow.js | 47 comm/mail/base/content/newInstall.js | 9 comm/mail/base/content/newInstall.xul | 29 comm/mail/base/content/newInstallPage.xhtml | 57 comm/mail/base/jar.mn | 3 comm/mail/components/aboutRedirector.js | 4 comm/mail/components/mailComponents.manifest | 1 comm/mail/config/version.txt | 2 comm/mail/config/version_display.txt | 2 comm/mail/themes/shared/jar.inc.mn | 3 comm/mail/themes/shared/mail/icons/information.svg | 11 comm/mail/themes/shared/mail/newInstall.css | 25 comm/mail/themes/shared/mail/newInstallPage.css | 22 comm/mailnews/base/search/src/nsMsgBodyHandler.cpp | 17 comm/mailnews/base/search/src/nsMsgSearchTerm.cpp | 2 comm/mailnews/base/test/unit/test_searchBody.js | 3 comm/mailnews/base/util/nsMsgDBFolder.cpp | 6 comm/mailnews/base/util/nsMsgIncomingServer.cpp | 8 comm/mailnews/news/test/unit/test_bug695309.js | 128 comm/mailnews/test/data/21-plaintext.eml | 2 comm/mailnews/test/data/23-HTML.eml | 6 comm/mailnews/test/data/24-HTML+attachment.eml | 5 comm/taskcluster/ci/beetmover-repackage/kind.yml | 2 comm/taskcluster/ci/config.yml | 5 comm/taskcluster/ci/docker-image/kind.yml | 1 comm/taskcluster/ci/partials-signing/kind.yml | 20 comm/taskcluster/ci/partials/kind.yml | 34 comm/taskcluster/comm_taskgraph/manifests/thunderbird_candidates.yml | 25 comm/taskcluster/comm_taskgraph/manifests/thunderbird_nightly.yml | 31 comm/taskcluster/comm_taskgraph/transforms/partials.py | 47 config/milestone.txt | 2 debian/changelog | 25 devtools/client/shared/curl.js | 34 dom/base/EventSource.cpp | 4 dom/base/Navigator.cpp | 3 dom/clients/manager/ClientSourceChild.cpp | 2 dom/clients/manager/ClientSourceOpChild.cpp | 28 dom/clients/manager/ClientSourceOpChild.h | 20 dom/fetch/FetchStream.cpp | 28 dom/indexedDB/test/mochitest.ini | 1 dom/media/MediaManager.cpp | 31 dom/media/MediaManager.h | 5 dom/media/nsIDOMNavigatorUserMedia.idl | 3 dom/quota/ActorsParent.cpp | 80 dom/quota/test/unit/head.js | 4 dom/quota/test/unit/test_clearStorageForPrincipal.js | 2 dom/xhr/XMLHttpRequestWorker.cpp | 2 dom/xhr/tests/mochitest.ini | 2 dom/xhr/tests/test_worker_xhr_doubleSend.html | 32 dom/xhr/tests/xhr_worker_doubleSend.js | 11 js/src/jit/CacheIR.cpp | 30 js/src/jit/CacheIR.h | 4 js/src/jit/Ion.cpp | 10 js/src/jit/IonAnalysis.cpp | 292 js/src/jit/IonAnalysis.h | 2 js/src/jit/Lowering.cpp | 11 js/src/jit/MIR.h | 4 js/src/vm/CommonPropertyNames.h | 9 layout/generic/ScrollAnchorContainer.cpp | 11 media/libcubeb/src/cubeb_audiounit.cpp | 9 media/webrtc/signaling/src/peerconnection/PeerConnectionImpl.cpp | 32 mobile/android/app/mobile.js | 9 mobile/android/app/src/main/res/values/arrays.xml | 10 mobile/android/app/src/main/res/xml/preferences_advanced.xml | 6 mobile/android/base/AndroidManifest.xml.in | 41 mobile/android/base/AppConstants.java.in | 7 mobile/android/base/java/org/mozilla/gecko/BrowserApp.java | 62 mobile/android/base/java/org/mozilla/gecko/GeckoApp.java | 24 mobile/android/base/java/org/mozilla/gecko/GeckoUpdateReceiver.java | 25 mobile/android/base/java/org/mozilla/gecko/notifications/NotificationHelper.java | 21 mobile/android/base/java/org/mozilla/gecko/preferences/GeckoPreferences.java | 14 mobile/android/base/java/org/mozilla/gecko/updater/PackageVerifier.java | 82 mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceHelper.java | 321 mobile/android/base/java/org/mozilla/gecko/updater/UpdateServiceReceiver.java | 46 mobile/android/base/java/org/mozilla/gecko/updater/Updater.java | 701 mobile/android/base/java/org/mozilla/gecko/updater/UpdaterService.java | 50 mobile/android/base/java/org/mozilla/gecko/updater/UpdatesApplyService.java | 18 mobile/android/base/java/org/mozilla/gecko/updater/UpdatesCheckService.java | 19 mobile/android/base/java/org/mozilla/gecko/updater/UpdatesDownloadService.java | 17 mobile/android/base/java/org/mozilla/gecko/updater/UpdatesPrefs.java | 103 mobile/android/base/java/org/mozilla/gecko/updater/UpdatesRegisterService.java | 31 mobile/android/base/locales/en-US/android_strings.dtd | 28 mobile/android/base/strings.xml.in | 21 mobile/android/chrome/content/about.xhtml | 10 mobile/android/components/geckoview/GeckoViewPermission.js | 2 mobile/android/config/version-files/beta/version.txt | 2 mobile/android/config/version-files/beta/version_display.txt | 2 mobile/android/config/version-files/nightly/version.txt | 2 mobile/android/config/version-files/nightly/version_display.txt | 2 mobile/android/config/version-files/release/version.txt | 2 mobile/android/config/version-files/release/version_display.txt | 2 mobile/android/extensions/webcompat/data/injections.js | 15 mobile/android/extensions/webcompat/data/ua_overrides.js | 87 mobile/android/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css | 13 mobile/android/extensions/webcompat/manifest.json | 2 mobile/android/extensions/webcompat/moz.build | 1 mobile/android/locales/en-US/chrome/about.dtd | 6 mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/BaseRobocopTest.java | 3 mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/StringHelper.java | 12 mobile/locales/l10n-changesets.json | 182 netwerk/dns/effective_tld_names.dat | 26 netwerk/dns/nsDNSService2.cpp | 3 netwerk/protocol/http/nsCORSListenerProxy.cpp | 2 netwerk/sctp/src/netinet/sctp.h | 8 netwerk/sctp/src/netinet/sctp_auth.c | 5 netwerk/sctp/src/netinet/sctp_pcb.c | 7 netwerk/sctp/src/netinet/sctp_usrreq.c | 18 security/manager/ssl/StaticHPKPins.h | 6 security/manager/ssl/nsSTSPreloadList.inc | 9006 ++++++---- security/sandbox/linux/SandboxFilter.cpp | 2 services/settings/dumps/blocklists/addons.json | 2 services/settings/dumps/blocklists/plugins.json | 2 services/settings/dumps/security-state/onecrl.json | 2 sourcestamp.txt | 6 taskcluster/ci/build/linux.yml | 3 taskcluster/ci/valgrind/kind.yml | 2 thunderbird-l10n/ar/manifest.json | 2 thunderbird-l10n/ast/manifest.json | 2 thunderbird-l10n/be/manifest.json | 2 thunderbird-l10n/bg/manifest.json | 2 thunderbird-l10n/br/manifest.json | 2 thunderbird-l10n/ca/manifest.json | 2 thunderbird-l10n/cak/manifest.json | 2 thunderbird-l10n/cs/manifest.json | 2 thunderbird-l10n/cy/manifest.json | 2 thunderbird-l10n/da/manifest.json | 2 thunderbird-l10n/de/manifest.json | 2 thunderbird-l10n/dsb/manifest.json | 2 thunderbird-l10n/el/manifest.json | 2 thunderbird-l10n/en-GB/manifest.json | 2 thunderbird-l10n/es-AR/manifest.json | 2 thunderbird-l10n/es-ES/manifest.json | 2 thunderbird-l10n/et/manifest.json | 2 thunderbird-l10n/eu/manifest.json | 2 thunderbird-l10n/fi/manifest.json | 2 thunderbird-l10n/fr/manifest.json | 2 thunderbird-l10n/fy-NL/manifest.json | 2 thunderbird-l10n/ga-IE/manifest.json | 2 thunderbird-l10n/gd/manifest.json | 2 thunderbird-l10n/gl/manifest.json | 2 thunderbird-l10n/he/manifest.json | 2 thunderbird-l10n/hr/manifest.json | 2 thunderbird-l10n/hsb/manifest.json | 2 thunderbird-l10n/hu/manifest.json | 2 thunderbird-l10n/hy-AM/manifest.json | 2 thunderbird-l10n/id/manifest.json | 2 thunderbird-l10n/is/manifest.json | 2 thunderbird-l10n/it/manifest.json | 2 thunderbird-l10n/ja/manifest.json | 2 thunderbird-l10n/ka/manifest.json | 2 thunderbird-l10n/kab/manifest.json | 2 thunderbird-l10n/kk/manifest.json | 2 thunderbird-l10n/ko/manifest.json | 2 thunderbird-l10n/lt/manifest.json | 2 thunderbird-l10n/ms/manifest.json | 2 thunderbird-l10n/nb-NO/manifest.json | 2 thunderbird-l10n/nl/manifest.json | 2 thunderbird-l10n/nn-NO/manifest.json | 2 thunderbird-l10n/pl/manifest.json | 2 thunderbird-l10n/pt-BR/manifest.json | 2 thunderbird-l10n/pt-PT/manifest.json | 2 thunderbird-l10n/rm/manifest.json | 2 thunderbird-l10n/ro/manifest.json | 2 thunderbird-l10n/ru/manifest.json | 2 thunderbird-l10n/si/manifest.json | 2 thunderbird-l10n/sk/manifest.json | 2 thunderbird-l10n/sl/manifest.json | 2 thunderbird-l10n/sq/manifest.json | 2 thunderbird-l10n/sr/manifest.json | 2 thunderbird-l10n/sv-SE/manifest.json | 2 thunderbird-l10n/tr/manifest.json | 2 thunderbird-l10n/uk/manifest.json | 2 thunderbird-l10n/uz/manifest.json | 2 thunderbird-l10n/vi/manifest.json | 2 thunderbird-l10n/zh-CN/manifest.json | 2 thunderbird-l10n/zh-TW/manifest.json | 2 toolkit/mozapps/extensions/AbuseReporter.jsm | 10 toolkit/mozapps/extensions/AddonManager.jsm | 1 toolkit/mozapps/extensions/addonManager.js | 1 toolkit/mozapps/extensions/amContentHandler.jsm | 3 toolkit/mozapps/extensions/amInstallTrigger.jsm | 3 toolkit/mozapps/extensions/amWebAPI.jsm | 10 toolkit/mozapps/extensions/internal/AddonTestUtils.jsm | 30 toolkit/mozapps/extensions/test/browser/browser_webapi_install.js | 22 toolkit/mozapps/extensions/test/xpcshell/test_AbuseReporter.js | 12 toolkit/mozapps/extensions/test/xpinstall/browser_amosigned_trigger.js | 23 toolkit/mozapps/extensions/test/xpinstall/browser_amosigned_url.js | 22 toolkit/mozapps/extensions/test/xpinstall/browser_containers.js | 22 toolkit/mozapps/extensions/test/xpinstall/browser_datauri.js | 22 toolkit/mozapps/extensions/test/xpinstall/browser_privatebrowsing.js | 22 208 files changed, 7922 insertions(+), 5362 deletions(-) diff -Nru thunderbird-68.5.0/browser/actors/WebRTCChild.jsm thunderbird-68.6.0/browser/actors/WebRTCChild.jsm --- thunderbird-68.5.0/browser/actors/WebRTCChild.jsm 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/actors/WebRTCChild.jsm 2020-03-10 21:02:16.000000000 +0000 @@ -222,7 +222,7 @@ // getting a microphone instead. if (audio && (device.mediaSource == "microphone") != sharingAudio) { audioDevices.push({ - name: device.name, + name: device.rawName, // unfiltered device name to show to the user deviceIndex: devices.length, id: device.rawId, mediaSource: device.mediaSource, @@ -235,7 +235,7 @@ // or that if we requested a screen share we aren't getting a camera. if (video && (device.mediaSource == "camera") != sharingScreen) { let deviceObject = { - name: device.name, + name: device.rawName, // unfiltered device name to show to the user deviceIndex: devices.length, id: device.rawId, mediaSource: device.mediaSource, diff -Nru thunderbird-68.5.0/browser/app/blocklist.xml thunderbird-68.6.0/browser/app/blocklist.xml --- thunderbird-68.5.0/browser/app/blocklist.xml 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/app/blocklist.xml 2020-03-10 21:02:16.000000000 +0000 @@ -1,5 +1,5 @@ - + @@ -2948,10 +2948,6 @@ - - - - @@ -3424,10 +3420,6 @@ - - - - @@ -3616,6 +3608,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3648,15 +3772,15 @@ https://get.adobe.com/shockwave/ - - - https://get.adobe.com/flashplayer/ - - https://get.adobe.com/flashplayer/ - + + + + + https://get.adobe.com/flashplayer/ + diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/Policies.jsm thunderbird-68.6.0/browser/components/enterprisepolicies/Policies.jsm --- thunderbird-68.5.0/browser/components/enterprisepolicies/Policies.jsm 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/Policies.jsm 2020-03-10 21:02:16.000000000 +0000 @@ -1110,6 +1110,15 @@ setDefaultPermission("microphone", param.Microphone); } + if (param.Autoplay) { + addAllowDenyPermissions( + "autoplay-media", + param.Autoplay.Allow, + param.Autoplay.Block + ); + setDefaultPermission("autoplay-media", param.Autoplay); + } + if (param.Location) { addAllowDenyPermissions( "geo", @@ -1175,8 +1184,10 @@ onBeforeAddons(manager, param) { if (Array.isArray(param)) { Services.locale.requestedLocales = param; - } else { + } else if (param) { Services.locale.requestedLocales = param.split(","); + } else { + Services.locale.requestedLocales = []; } }, }, @@ -1196,47 +1207,100 @@ setAndLockPref("privacy.clearOnShutdown.offlineApps", true); } } else { - setAndLockPref("privacy.sanitize.sanitizeOnShutdown", true); + let locked = true; + // Needed to preserve original behavior in perpetuity. + let lockDefaultPrefs = true; + if ("Locked" in param) { + locked = param.Locked; + lockDefaultPrefs = false; + } + setDefaultPref("privacy.sanitize.sanitizeOnShutdown", true, locked); if ("Cache" in param) { - setAndLockPref("privacy.clearOnShutdown.cache", param.Cache); + setDefaultPref("privacy.clearOnShutdown.cache", param.Cache, locked); } else { - setAndLockPref("privacy.clearOnShutdown.cache", false); + setDefaultPref( + "privacy.clearOnShutdown.cache", + false, + lockDefaultPrefs + ); } if ("Cookies" in param) { - setAndLockPref("privacy.clearOnShutdown.cookies", param.Cookies); + setDefaultPref( + "privacy.clearOnShutdown.cookies", + param.Cookies, + locked + ); } else { - setAndLockPref("privacy.clearOnShutdown.cookies", false); + setDefaultPref( + "privacy.clearOnShutdown.cookies", + false, + lockDefaultPrefs + ); } if ("Downloads" in param) { - setAndLockPref("privacy.clearOnShutdown.downloads", param.Downloads); + setDefaultPref( + "privacy.clearOnShutdown.downloads", + param.Downloads, + locked + ); } else { - setAndLockPref("privacy.clearOnShutdown.downloads", false); + setDefaultPref( + "privacy.clearOnShutdown.downloads", + false, + lockDefaultPrefs + ); } if ("FormData" in param) { - setAndLockPref("privacy.clearOnShutdown.formdata", param.FormData); + setDefaultPref( + "privacy.clearOnShutdown.formdata", + param.FormData, + locked + ); } else { - setAndLockPref("privacy.clearOnShutdown.formdata", false); + setDefaultPref( + "privacy.clearOnShutdown.formdata", + false, + lockDefaultPrefs + ); } if ("History" in param) { - setAndLockPref("privacy.clearOnShutdown.history", param.History); + setDefaultPref( + "privacy.clearOnShutdown.history", + param.History, + locked + ); } else { - setAndLockPref("privacy.clearOnShutdown.history", false); + setDefaultPref( + "privacy.clearOnShutdown.history", + false, + lockDefaultPrefs + ); } if ("Sessions" in param) { - setAndLockPref("privacy.clearOnShutdown.sessions", param.Sessions); + setDefaultPref( + "privacy.clearOnShutdown.sessions", + param.Sessions, + locked + ); } else { - setAndLockPref("privacy.clearOnShutdown.sessions", false); + setDefaultPref( + "privacy.clearOnShutdown.sessions", + false, + lockDefaultPrefs + ); } if ("SiteSettings" in param) { - setAndLockPref( + setDefaultPref( "privacy.clearOnShutdown.siteSettings", - param.SiteSettings + param.SiteSettings, + locked ); } if ("OfflineApps" in param) { - setAndLockPref( + setDefaultPref( "privacy.clearOnShutdown.offlineApps", - param.OfflineApps + param.OfflineApps, + locked ); } } diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/content/aboutPolicies.js thunderbird-68.6.0/browser/components/enterprisepolicies/content/aboutPolicies.js --- thunderbird-68.5.0/browser/components/enterprisepolicies/content/aboutPolicies.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/content/aboutPolicies.js 2020-03-10 21:02:16.000000000 +0000 @@ -277,6 +277,7 @@ DisableSetDesktopBackground: "DisableSetAsDesktopBackground", Certificates: "CertificatesDescription", SanitizeOnShutdown: "SanitizeOnShutdown2", + Permissions: "Permissions2", }; for (let policyName in schema.properties) { diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/schemas/policies-schema.json thunderbird-68.6.0/browser/components/enterprisepolicies/schemas/policies-schema.json --- thunderbird-68.5.0/browser/components/enterprisepolicies/schemas/policies-schema.json 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/schemas/policies-schema.json 2020-03-10 21:02:16.000000000 +0000 @@ -617,6 +617,27 @@ } }, + "Autoplay": { + "type": "object", + "properties": { + "Allow": { + "type": "array", + "strict": false, + "items": { + "type": "origin" + } + }, + + "Block": { + "type": "array", + "strict": false, + "items": { + "type": "origin" + } + } + } + }, + "Location": { "type": "object", "properties": { @@ -947,6 +968,9 @@ }, "OfflineApps": { "type": "boolean" + }, + "Locked": { + "type": "boolean" } } }, diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js --- thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_permissions.js 2020-03-10 21:02:16.000000000 +0000 @@ -8,7 +8,7 @@ } add_task(async function test_setup_preexisting_permissions() { - // Pre-existing ALLOW permissions that should be overriden + // Pre-existing ALLOW permissions that should be overridden // with DENY. // No ALLOW -> DENY override for popup and install permissions, @@ -38,8 +38,14 @@ Ci.nsIPermissionManager.ALLOW_ACTION, Ci.nsIPermissionManager.EXPIRE_SESSION ); + Services.perms.add( + URI("https://www.pre-existing-allow.com"), + "autoplay-media", + Ci.nsIPermissionManager.ALLOW_ACTION, + Ci.nsIPermissionManager.EXPIRE_SESSION + ); - // Pre-existing DENY permissions that should be overriden + // Pre-existing DENY permissions that should be overridden // with ALLOW. Services.perms.add( @@ -66,6 +72,12 @@ Ci.nsIPermissionManager.DENY_ACTION, Ci.nsIPermissionManager.EXPIRE_SESSION ); + Services.perms.add( + URI("https://www.pre-existing-deny.com"), + "autoplay-media", + Ci.nsIPermissionManager.DENY_ACTION, + Ci.nsIPermissionManager.EXPIRE_SESSION + ); }); add_task(async function test_setup_activate_policies() { @@ -88,6 +100,10 @@ Allow: ["https://www.allow.com", "https://www.pre-existing-deny.com"], Block: ["https://www.deny.com", "https://www.pre-existing-allow.com"], }, + Autoplay: { + Allow: ["https://www.allow.com", "https://www.pre-existing-deny.com"], + Block: ["https://www.deny.com", "https://www.pre-existing-allow.com"], + }, }, }, }); @@ -150,6 +166,10 @@ checkAllPermissionsForType("desktop-notification"); }); +add_task(async function test_autoplay_policy() { + checkAllPermissionsForType("autoplay-media"); +}); + add_task(async function test_change_permission() { // Checks that changing a permission will still retain the // value set through the engine. @@ -177,11 +197,18 @@ Ci.nsIPermissionManager.DENY_ACTION, Ci.nsIPermissionManager.EXPIRE_SESSION ); + Services.perms.add( + URI("https://www.allow.com"), + "autoplay-media", + Ci.nsIPermissionManager.DENY_ACTION, + Ci.nsIPermissionManager.EXPIRE_SESSION + ); checkPermission("allow.com", "ALLOW", "camera"); checkPermission("allow.com", "ALLOW", "microphone"); checkPermission("allow.com", "ALLOW", "geo"); checkPermission("allow.com", "ALLOW", "desktop-notification"); + checkPermission("allow.com", "ALLOW", "autoplay-media"); // Also change one un-managed permission to make sure it doesn't // cause any problems to the policy engine or the permission manager. @@ -209,6 +236,12 @@ Ci.nsIPermissionManager.DENY_ACTION, Ci.nsIPermissionManager.EXPIRE_SESSION ); + Services.perms.add( + URI("https://www.unmanaged.com"), + "autoplay-media", + Ci.nsIPermissionManager.DENY_ACTION, + Ci.nsIPermissionManager.EXPIRE_SESSION + ); }); add_task(async function test_setup_trackingprotection() { diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js --- thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_requestedlocales.js 2020-03-10 21:02:16.000000000 +0000 @@ -45,3 +45,24 @@ await localePromise; Services.locale.requestedLocales = originalLocales; }); + +add_task(async function test_system_locale_string() { + let originalLocales = Services.locale.requestedLocales; + + let localePromise = promiseLocaleChanged("und"); + Services.locale.requestedLocales = ["und"]; + await localePromise; + + let systemLocale = Cc["@mozilla.org/intl/ospreferences;1"].getService( + Ci.mozIOSPreferences + ).systemLocale; + localePromise = promiseLocaleChanged(systemLocale); + + await setupPolicyEngineWithJson({ + policies: { + RequestedLocales: "", + }, + }); + await localePromise; + Services.locale.requestedLocales = originalLocales; +}); diff -Nru thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js --- thunderbird-68.5.0/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_simple_pref_policies.js 2020-03-10 21:02:16.000000000 +0000 @@ -355,6 +355,66 @@ }, }, + // POLICY: SanitizeOnShutdown using Locked + { + policies: { + SanitizeOnShutdown: { + Cache: true, + Locked: true, + }, + }, + lockedPrefs: { + "privacy.sanitize.sanitizeOnShutdown": true, + "privacy.clearOnShutdown.cache": true, + }, + unlockedPrefs: { + "privacy.clearOnShutdown.cookies": false, + "privacy.clearOnShutdown.downloads": false, + "privacy.clearOnShutdown.formdata": false, + "privacy.clearOnShutdown.history": false, + "privacy.clearOnShutdown.sessions": false, + }, + }, + + { + policies: { + SanitizeOnShutdown: { + Cache: true, + Cookies: false, + Locked: true, + }, + }, + lockedPrefs: { + "privacy.sanitize.sanitizeOnShutdown": true, + "privacy.clearOnShutdown.cache": true, + "privacy.clearOnShutdown.cookies": false, + }, + unlockedPrefs: { + "privacy.clearOnShutdown.downloads": false, + "privacy.clearOnShutdown.formdata": false, + "privacy.clearOnShutdown.history": false, + "privacy.clearOnShutdown.sessions": false, + }, + }, + + { + policies: { + SanitizeOnShutdown: { + Cache: true, + Locked: false, + }, + }, + unlockedPrefs: { + "privacy.sanitize.sanitizeOnShutdown": true, + "privacy.clearOnShutdown.cache": true, + "privacy.clearOnShutdown.cookies": false, + "privacy.clearOnShutdown.downloads": false, + "privacy.clearOnShutdown.formdata": false, + "privacy.clearOnShutdown.history": false, + "privacy.clearOnShutdown.sessions": false, + }, + }, + // POLICY: DNSOverHTTPS Locked { policies: { diff -Nru thunderbird-68.5.0/browser/components/extensions/test/browser/browser_ext_tabs_events.js thunderbird-68.6.0/browser/components/extensions/test/browser/browser_ext_tabs_events.js --- thunderbird-68.5.0/browser/components/extensions/test/browser/browser_ext_tabs_events.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/components/extensions/test/browser/browser_ext_tabs_events.js 2020-03-10 21:02:16.000000000 +0000 @@ -77,16 +77,24 @@ } try { - let windows = await Promise.all([ - browser.windows.create({ url: "about:blank", incognito }), - browser.windows.create({ url: "about:blank", incognito }), - ]); + let firstWindow = await browser.windows.create({ + url: "about:blank", + incognito, + }); + let otherWindow = await browser.windows.create({ + url: "about:blank", + incognito, + }); - let windowId = windows[0].id; - let otherWindowId = windows[1].id; + let windowId = firstWindow.id; + let otherWindowId = otherWindow.id; - let created = await expectEvents(["onCreated", "onCreated"]); - let initialTab = created[1].tab; + // Wait for a tab in each window + await expectEvents(["onCreated", "onCreated"]); + let initialTab = (await browser.tabs.query({ + active: true, + windowId: otherWindowId, + }))[0]; browser.test.log("Create tab in window 1"); let tab = await browser.tabs.create({ @@ -98,7 +106,7 @@ browser.test.assertEq(0, oldIndex, "Tab has the expected index"); browser.test.assertEq(tab.incognito, incognito, "Tab is incognito"); - [created] = await expectEvents(["onCreated"]); + let [created] = await expectEvents(["onCreated"]); browser.test.assertEq(tab.id, created.tab.id, "Got expected tab ID"); browser.test.assertEq( oldIndex, @@ -159,7 +167,11 @@ await browser.tabs.remove(tab.id); let [removed] = await expectEvents(["onRemoved"]); - browser.test.assertEq(tab.id, removed.tabId, "Expected removed tab ID"); + browser.test.assertEq( + tab.id, + removed.tabId, + "Expected removed tab ID for tabs.remove" + ); browser.test.assertEq( otherWindowId, removed.windowId, @@ -178,7 +190,7 @@ browser.test.assertEq( initialTab.id, removed.tabId, - "Expected removed tab ID" + "Expected removed tab ID for windows.remove" ); browser.test.assertEq( otherWindowId, @@ -408,7 +420,7 @@ await extension.unload(); SpecialPowers.clearUserPref(RESOLUTION_PREF); -}); +}).skip(); // Bug 1614075 perma-fail comparing devicePixelRatio add_task(async function testTabRemovalEvent() { async function background() { @@ -561,8 +573,9 @@ }); add_task(async function testLastTabRemoval() { - const CLOSE_WINDOW_PREF = "browser.tabs.closeWindowWithLastTab"; - await SpecialPowers.pushPrefEnv({ set: [[CLOSE_WINDOW_PREF, false]] }); + await SpecialPowers.pushPrefEnv({ + set: [["browser.tabs.closeWindowWithLastTab", false]], + }); async function background() { let windowId; @@ -602,7 +615,7 @@ await extension.unload(); await BrowserTestUtils.closeWindow(newWin); - SpecialPowers.clearUserPref(CLOSE_WINDOW_PREF); + await SpecialPowers.popPrefEnv(); }); add_task(async function testTabActivationEvent() { diff -Nru thunderbird-68.5.0/browser/config/version.txt thunderbird-68.6.0/browser/config/version.txt --- thunderbird-68.5.0/browser/config/version.txt 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/config/version.txt 2020-03-10 21:02:17.000000000 +0000 @@ -1 +1 @@ -68.5.0 +68.6.0 diff -Nru thunderbird-68.5.0/browser/config/version_display.txt thunderbird-68.6.0/browser/config/version_display.txt --- thunderbird-68.5.0/browser/config/version_display.txt 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/config/version_display.txt 2020-03-10 21:02:17.000000000 +0000 @@ -1 +1 @@ -68.5.0esr +68.6.0esr diff -Nru thunderbird-68.5.0/browser/extensions/webcompat/data/injections.js thunderbird-68.6.0/browser/extensions/webcompat/data/injections.js --- thunderbird-68.5.0/browser/extensions/webcompat/data/injections.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/extensions/webcompat/data/injections.js 2020-03-10 21:02:16.000000000 +0000 @@ -444,6 +444,21 @@ ], }, }, + { + id: "bug1610344", + platform: "android", + domain: "directv.com.co", + bug: "1610344", + contentScripts: { + matches: ["https://*.directv.com.co/*"], + css: [ + { + file: + "injections/css/bug1610344-directv.com.co-hide-unsupported-message.css", + }, + ], + }, + }, ]; module.exports = AVAILABLE_INJECTIONS; diff -Nru thunderbird-68.5.0/browser/extensions/webcompat/data/ua_overrides.js thunderbird-68.6.0/browser/extensions/webcompat/data/ua_overrides.js --- thunderbird-68.5.0/browser/extensions/webcompat/data/ua_overrides.js 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/extensions/webcompat/data/ua_overrides.js 2020-03-10 21:02:16.000000000 +0000 @@ -218,30 +218,8 @@ }, { /* - * Bug 1480710 - m.imgur.com - Build UA override - * WebCompat issue #13154 - https://webcompat.com/issues/13154 - * - * imgur returns a 404 for requests to CSS and JS file if requested with a Fennec - * User Agent. By removing the Fennec identifies and adding Chrome Mobile's, we - * receive the correct CSS and JS files. - */ - id: "bug1480710", - platform: "android", - domain: "m.imgur.com", - bug: "1480710", - config: { - matches: ["*://m.imgur.com/*"], - uaTransformer: originalUA => { - return ( - UAHelpers.getPrefix(originalUA) + - " AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.85 Mobile Safari/537.36" - ); - }, - }, - }, - { - /* * Bug 945963 - tieba.baidu.com serves simplified mobile content to Firefox Android + * additionally, Bug 1525839 for more domains * WebCompat issue #18455 - https://webcompat.com/issues/18455 * * tieba.baidu.com and tiebac.baidu.com serve a heavily simplified and less functional @@ -254,8 +232,12 @@ bug: "945963", config: { matches: [ + "*://baike.baidu.com/*", + "*://image.baidu.com/*", + "*://news.baidu.com/*", "*://tieba.baidu.com/*", "*://tiebac.baidu.com/*", + "*://wenku.baidu.com/*", "*://zhidao.baidu.com/*", ], uaTransformer: originalUA => { @@ -303,25 +285,6 @@ }, { /* - * Bug 1338260 - Add UA override for directTV - * (Imported from ua-update.json.in) - * - * DirectTV has issues with scrolling and cut-off images. Pretending to be - * Chrome for Android fixes those issues. - */ - id: "bug1338260", - platform: "android", - domain: "directv.com", - bug: "1338260", - config: { - matches: ["*://*.directv.com/*"], - uaTransformer: _ => { - return "Mozilla/5.0 (Linux; Android 6.0.1; SM-G920F Build/MMB29K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.91 Mobile Safari/537.36"; - }, - }, - }, - { - /* * Bug 1385206 - Create UA override for rakuten.co.jp on Firefox Android * (Imported from ua-update.json.in) * @@ -443,25 +406,6 @@ }, { /* - * Bug 1567945 - Create UA override for beeg.com on Firefox Android - * WebCompat issue #16648 - https://webcompat.com/issues/16648 - * - * beeg.com is hiding content of a page with video if Firefox exists in UA, - * replacing "Firefox" with an empty string makes the page load - */ - id: "bug1567945", - platform: "android", - domain: "beeg.com", - bug: "1567945", - config: { - matches: ["*://beeg.com/*"], - uaTransformer: originalUA => { - return originalUA.replace(/Firefox.+$/, ""); - }, - }, - }, - { - /* * Bug 1574522 - UA override for enuri.com on Firefox for Android * WebCompat issue #37139 - https://webcompat.com/issues/37139 * @@ -647,6 +591,27 @@ }, }, }, + { + /* + * Bug 1442050 - UA overrides for my.nintendo.com + * Webcompat issue #12887 - https://webcompat.com/issues/12887 + * + * Nintendo ships a broken version of their mobile interface to mobile + * browsers that are not Chrome or Safari. In our tests, appending the + * "AppleWebKit" identifier to the UA string results in a version that + * works very well. + */ + id: "bug1442050", + platform: "android", + domain: "nintendo.com", + bug: "1442050", + config: { + matches: ["*://my.nintendo.com/*"], + uaTransformer: originalUA => { + return originalUA + " AppleWebKit"; + }, + }, + }, ]; const UAHelpers = { diff -Nru thunderbird-68.5.0/browser/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css thunderbird-68.6.0/browser/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css --- thunderbird-68.5.0/browser/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-68.6.0/browser/extensions/webcompat/injections/css/bug1610344-directv.com.co-hide-unsupported-message.css 2020-03-10 21:02:16.000000000 +0000 @@ -0,0 +1,13 @@ +/** + * directv.com.co - Browser is not supported message + * Bug #1610344 - https://bugzilla.mozilla.org/show_bug.cgi?id=1610344 + * WebCompat issue #41822 - https://webcompat.com/issues/41822 + * + * directv.com.co is showing a "This browser is not supported" message in + * Firefox. Our tests indicated that everything is working just fine, and our + * previous contact attempts have not been successful. This intervention + * hides the large red unsupported banner. + */ +.browser-compatible.compatible.incompatible { + display: none; +} diff -Nru thunderbird-68.5.0/browser/extensions/webcompat/manifest.json thunderbird-68.6.0/browser/extensions/webcompat/manifest.json --- thunderbird-68.5.0/browser/extensions/webcompat/manifest.json 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/extensions/webcompat/manifest.json 2020-03-10 21:02:16.000000000 +0000 @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Web Compat", "description": "Urgent post-release fixes for web compatibility.", - "version": "7.0.0", + "version": "8.0.0", "applications": { "gecko": { diff -Nru thunderbird-68.5.0/browser/extensions/webcompat/moz.build thunderbird-68.6.0/browser/extensions/webcompat/moz.build --- thunderbird-68.5.0/browser/extensions/webcompat/moz.build 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/extensions/webcompat/moz.build 2020-03-10 21:02:16.000000000 +0000 @@ -61,6 +61,7 @@ 'injections/css/bug1605611-maps.google.com-directions-time.css', 'injections/css/bug1609991-cracked.com-flex-basis-fix.css', 'injections/css/bug1610016-gaana.com-input-position-fix.css', + 'injections/css/bug1610344-directv.com.co-hide-unsupported-message.css', ] FINAL_TARGET_FILES.features['webcompat@mozilla.org']['injections']['js'] += [ diff -Nru thunderbird-68.5.0/browser/locales/en-US/browser/policies/policies-descriptions.ftl thunderbird-68.6.0/browser/locales/en-US/browser/policies/policies-descriptions.ftl --- thunderbird-68.5.0/browser/locales/en-US/browser/policies/policies-descriptions.ftl 2020-02-10 08:43:18.000000000 +0000 +++ thunderbird-68.6.0/browser/locales/en-US/browser/policies/policies-descriptions.ftl 2020-03-10 21:02:17.000000000 +0000 @@ -127,7 +127,7 @@ policy-PasswordManagerEnabled = Enable saving passwords to the password manager. -policy-Permissions = Configure permissions for camera, microphone, location and notifications. +policy-Permissions2 = Configure permissions for camera, microphone, location, notifications, and autoplay. policy-PopupBlocking = Allow certain websites to display popups by default. diff -Nru thunderbird-68.5.0/comm/.gecko_rev.yml thunderbird-68.6.0/comm/.gecko_rev.yml --- thunderbird-68.5.0/comm/.gecko_rev.yml 2020-02-10 08:43:40.000000000 +0000 +++ thunderbird-68.6.0/comm/.gecko_rev.yml 2020-03-10 21:02:40.000000000 +0000 @@ -2,7 +2,7 @@ GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified GECKO_HEAD_REPOSITORY: https://hg.mozilla.org/releases/mozilla-esr68 GECKO_HEAD_REF: THUNDERBIRD_68_VERBRANCH -GECKO_HEAD_REV: 16d79644762736956033ef1b43686c992a44e270 +GECKO_HEAD_REV: 09dcc64cbc433b6d78de33e44821c36bb07baa5a ### For comm-central # GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified diff -Nru thunderbird-68.5.0/comm/mail/base/content/msgMail3PaneWindow.js thunderbird-68.6.0/comm/mail/base/content/msgMail3PaneWindow.js --- thunderbird-68.5.0/comm/mail/base/content/msgMail3PaneWindow.js 2020-02-10 08:43:40.000000000 +0000 +++ thunderbird-68.6.0/comm/mail/base/content/msgMail3PaneWindow.js 2020-03-10 21:02:41.000000000 +0000 @@ -575,12 +575,6 @@ // accountProvisionerTabType is defined in accountProvisionerTab.js tabmail.registerTabType(accountProvisionerTabType); - // verifyAccounts returns true if the callback won't be called - // We also don't want the account wizard to open if any sort of account exists - if (verifyAccounts(LoadPostAccountWizard, false, AutoConfigWizard)) { - LoadPostAccountWizard(); - } - // Set up the summary frame manager to handle loading pages in the // multi-message pane gSummaryFrameManager = new SummaryFrameManager( @@ -594,6 +588,47 @@ // Load the periodic filter timer. PeriodicFilterManager.setupFiltering(); + + let pService = Cc["@mozilla.org/toolkit/profile-service;1"].getService( + Ci.nsIToolkitProfileService + ); + if (pService.createdAlternateProfile) { + // Show on a timeout so the main window has time to open. Otherwise + // the dialog would be confusingly showing out of context. + setTimeout(() => _showNewInstallModal()); + } else if (verifyAccounts(LoadPostAccountWizard, false, AutoConfigWizard)) { + // verifyAccounts returns true if the callback won't be called + // We also don't want the account wizard to open if any sort of account exists + LoadPostAccountWizard(); + } +} + +function _showNewInstallModal() { + Services.ww.openWindow( + null, + "chrome://messenger/content/newInstall.xul", + "_blank", + "chrome,modal,resizable=no,centerscreen", + null + ); + + let mail3PaneWindow = Services.wm.getMostRecentWindow("mail:3pane"); + if (mail3PaneWindow) { + let tabmail = mail3PaneWindow.document.getElementById("tabmail"); + let monitor = { + onTabTitleChanged() {}, + onTabSwitched() {}, + onTabClosing() { + AutoConfigWizard(); + tabmail.unregisterTabMonitor(monitor); + }, + }; + tabmail.registerTabMonitor(monitor); + tabmail.openTab("contentTab", { + contentPage: "about:newinstall", + clickHandler: "specialTabs.aboutClickHandler(event);", + }); + } } function LoadPostAccountWizard() { diff -Nru thunderbird-68.5.0/comm/mail/base/content/newInstall.js thunderbird-68.6.0/comm/mail/base/content/newInstall.js --- thunderbird-68.5.0/comm/mail/base/content/newInstall.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-68.6.0/comm/mail/base/content/newInstall.js 2020-03-10 21:02:41.000000000 +0000 @@ -0,0 +1,9 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +function init() { + document.querySelector("button").addEventListener("command", () => { + window.close(); + }); +} diff -Nru thunderbird-68.5.0/comm/mail/base/content/newInstall.xul thunderbird-68.6.0/comm/mail/base/content/newInstall.xul --- thunderbird-68.5.0/comm/mail/base/content/newInstall.xul 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-68.6.0/comm/mail/base/content/newInstall.xul 2020-03-10 21:02:41.000000000 +0000 @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + This installation of Thunderbird has a new profile. + It does not share email data, passwords, user preferences, and address books + with other installations of Thunderbird (including Thunderbird, + Thunderbird Beta, and Thunderbird Daily) on this computer. + +