Version in base suite: 78.6.0-1~deb10u1 Base version: thunderbird_78.6.0-1~deb10u1 Target version: thunderbird_78.9.0-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/t/thunderbird/thunderbird_78.6.0-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/t/thunderbird/thunderbird_78.9.0-1~deb10u1.dsc /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.ico |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.png |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/images/baidu-com@2x.png |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/search/extensions/baidu/favicon.ico |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/search/extensions/bing/favicon.ico |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/cert9.db |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/key4.db |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/mochitest.client |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/data/bluebird50.jpg |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/data/bluebird50.jpg.gpg |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/config/external/icu/data/icudt67l.dat |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/be/metaZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/be/windowsZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/be/zoneinfo64.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/ee/metaZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/ee/windowsZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/ee/zoneinfo64.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/le/metaZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/le/windowsZones.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/intl/tzdata/source/le/zoneinfo64.res |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-1_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1-256_sf-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-1_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-1_sf-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-1_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-1-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-1.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/app_mf-256_sf-256_p7-256.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/big_manifest.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/cose_int_signed_with_pkcs7.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/cose_multiple_signed_with_pkcs7.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/cose_signed_with_pkcs7.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/cose_tampered_good_pkcs7.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/empty_signerInfos.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/huge_manifest.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/only_cose_multiple_signed.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/only_cose_signed.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/unknown_issuer_app.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/security/manager/ssl/tests/unit/test_signed_apps/unsigned_app.zip |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_support/argparse-1.4.0-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_support/pip-8.1.2-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_support/setuptools-25.2.0-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_support/wheel-0.29.0-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/pip-19.1.1-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/pip-20.2.2-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/setuptools-43.0.0-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/setuptools-44.1.1-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/setuptools-49.6.0-py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/wheel-0.33.6-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/wheel-0.35.1-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_support/pip-19.3.1-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_support/setuptools-41.6.0-py2.py3-none-any.whl |binary /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_support/wheel-0.33.6-py2.py3-none-any.whl |binary thunderbird-78.9.0/.cargo/config.in | 2 thunderbird-78.9.0/Cargo.lock | 9 thunderbird-78.9.0/Cargo.toml | 4 thunderbird-78.9.0/accessible/generic/TableCellAccessible.cpp | 15 thunderbird-78.9.0/accessible/tests/mochitest/table/test_headers_table.html | 45 thunderbird-78.9.0/browser/base/content/browser.js | 1 thunderbird-78.9.0/browser/base/content/nsContextMenu.js | 10 thunderbird-78.9.0/browser/base/content/tabbrowser.js | 2 thunderbird-78.9.0/browser/components/enterprisepolicies/Policies.jsm | 14 thunderbird-78.9.0/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm | 11 thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser.ini | 1 thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js | 73 thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/policy_websitefilter_savelink.html | 11 thunderbird-78.9.0/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js | 34 thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/top_sites.json | 2 thunderbird-78.9.0/browser/components/newtab/lib/CFRPageActions.jsm | 2 thunderbird-78.9.0/browser/components/resistfingerprinting/test/browser/browser_navigator.js | 158 thunderbird-78.9.0/browser/components/search/extensions/allegro-pl/manifest.json | 6 thunderbird-78.9.0/browser/components/search/extensions/bing/manifest.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/at/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/au/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/be/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ca/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ch/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/de/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/en/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/es/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/fr/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ie/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/it/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/nl/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/uk/messages.json | 4 thunderbird-78.9.0/browser/components/search/extensions/ebay/manifest.json | 2 thunderbird-78.9.0/browser/components/search/test/browser/browser_bing.js | 2 thunderbird-78.9.0/browser/components/search/test/browser/browser_eBay.js | 27 thunderbird-78.9.0/browser/components/search/test/browser/browser_searchEngine_behaviors.js | 2 thunderbird-78.9.0/browser/config/version.txt | 2 thunderbird-78.9.0/browser/config/version_display.txt | 2 thunderbird-78.9.0/browser/extensions/pdfjs/content/PdfJsNetwork.jsm | 1 thunderbird-78.9.0/browser/installer/windows/nsis/shared.nsh | 17 thunderbird-78.9.0/build/build-clang/clang-11-mingw.json | 14 thunderbird-78.9.0/build/build-clang/clang-9-mingw.json | 14 thunderbird-78.9.0/build/moz.configure/init.configure | 20 thunderbird-78.9.0/build/moz.configure/toolchain.configure | 6 thunderbird-78.9.0/build/moz.configure/warnings.configure | 5 thunderbird-78.9.0/build/upload_generated_sources.py | 2 thunderbird-78.9.0/build/valgrind/mach_commands.py | 4 thunderbird-78.9.0/comm/.gecko_rev.yml | 4 thunderbird-78.9.0/comm/calendar/base/content/calendar-base-view.js | 14 thunderbird-78.9.0/comm/calendar/base/content/calendar-chrome-startup.js | 7 thunderbird-78.9.0/comm/calendar/base/content/calendar-management.js | 11 thunderbird-78.9.0/comm/calendar/base/content/calendar-modes.js | 2 thunderbird-78.9.0/comm/calendar/base/content/calendar-month-base-view.js | 4 thunderbird-78.9.0/comm/calendar/base/content/calendar-multiday-base-view.js | 23 thunderbird-78.9.0/comm/calendar/base/content/calendar-unifinder.js | 1 thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.js | 19 thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xhtml | 24 thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog.xhtml | 1 thunderbird-78.9.0/comm/calendar/base/content/today-pane.js | 4 thunderbird-78.9.0/comm/calendar/base/modules/calRecurrenceUtils.jsm | 20 thunderbird-78.9.0/comm/calendar/base/modules/utils/calViewUtils.jsm | 25 thunderbird-78.9.0/comm/calendar/base/src/CalCalendarManager.jsm | 1 thunderbird-78.9.0/comm/calendar/base/src/CalTimezoneService.jsm | 11 thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-daypicker.css | 2 thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-task-view.css | 26 thunderbird-78.9.0/comm/calendar/base/themes/linux/calendar-task-tree.css | 8 thunderbird-78.9.0/comm/calendar/base/themes/linux/lightning.css | 1 thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-tree.css | 4 thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-view.css | 2 thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-tree.css | 4 thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-view.css | 11 thunderbird-78.9.0/comm/calendar/lightning/content/imip-bar.js | 12 thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-iframe.js | 5 thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-toolbar.inc.xhtml | 12 thunderbird-78.9.0/comm/calendar/providers/caldav/CalDavCalendar.jsm | 5 thunderbird-78.9.0/comm/calendar/providers/caldav/modules/CalDavRequest.jsm | 2 thunderbird-78.9.0/comm/calendar/providers/storage/CalStorageCalendar.jsm | 8 thunderbird-78.9.0/comm/calendar/test/.eslintrc.js | 74 thunderbird-78.9.0/comm/calendar/test/browser/browser.ini | 3 thunderbird-78.9.0/comm/calendar/test/browser/browser_taskDelete.js | 183 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser.ini | 4 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_alarmDialog.js | 2 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attachMenu.js | 256 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attendeesDialog.js | 16 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialog.js | 6 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialogModificationPrompt.js | 8 thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/data/guests.txt | 2 thunderbird-78.9.0/comm/calendar/test/browser/invitations/browser.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/preferences/browser.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_annual.js | 4 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_daily.js | 3 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_lastDayOfMonth.js | 4 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_rotated.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyUntil.js | 6 thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyWithException.js | 2 thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser_timezones.js | 14 thunderbird-78.9.0/comm/calendar/test/browser/views/browser.ini | 2 thunderbird-78.9.0/comm/calendar/test/browser/views/browser_monthView.js | 2 thunderbird-78.9.0/comm/calendar/test/browser/views/browser_multiweekView.js | 2 thunderbird-78.9.0/comm/calendar/test/modules/CalendarTestUtils.jsm | 155 thunderbird-78.9.0/comm/calendar/test/modules/CalendarUtils.jsm | 11 thunderbird-78.9.0/comm/calendar/test/modules/ItemEditingHelpers.jsm | 48 thunderbird-78.9.0/comm/calendar/test/moz.build | 1 thunderbird-78.9.0/comm/calendar/test/unit/test_alarmutils.js | 8 thunderbird-78.9.0/comm/calendar/test/unit/test_datetime_before_1970.js | 2 thunderbird-78.9.0/comm/calendar/test/unit/test_extract.js | 3 thunderbird-78.9.0/comm/calendar/test/unit/test_storage_get_items.js | 339 thunderbird-78.9.0/comm/calendar/test/unit/xpcshell-shared.ini | 5 thunderbird-78.9.0/comm/chat/components/public/imIAccount.idl | 14 thunderbird-78.9.0/comm/chat/content/accounts.css | 1 thunderbird-78.9.0/comm/chat/content/chat-account-richlistitem.js | 2 thunderbird-78.9.0/comm/chat/modules/jsProtoHelper.jsm | 36 thunderbird-78.9.0/comm/chat/modules/socket.jsm | 48 thunderbird-78.9.0/comm/chat/protocols/irc/irc.jsm | 4 thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-base.jsm | 2 thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-session.jsm | 4 thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPConnection.cpp | 24 thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPOperation.cpp | 3 thunderbird-78.9.0/comm/mail/app/profile/all-thunderbird.js | 4 thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.css | 5 thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.js | 44 thunderbird-78.9.0/comm/mail/base/content/folderDisplay.js | 32 thunderbird-78.9.0/comm/mail/base/content/foldersummary.js | 5 thunderbird-78.9.0/comm/mail/base/content/gloda-autocomplete-input.js | 16 thunderbird-78.9.0/comm/mail/base/content/mail3PaneWindowCommands.js | 7 thunderbird-78.9.0/comm/mail/base/content/mailCommands.js | 3 thunderbird-78.9.0/comm/mail/base/content/mailWidgets.js | 11 thunderbird-78.9.0/comm/mail/base/content/mailWindowOverlay.js | 3 thunderbird-78.9.0/comm/mail/base/content/mainMailToolbox.inc.xhtml | 3 thunderbird-78.9.0/comm/mail/base/content/messenger.xhtml | 1 thunderbird-78.9.0/comm/mail/base/content/msgHdrView.js | 58 thunderbird-78.9.0/comm/mail/base/content/msgMail3PaneWindow.js | 16 thunderbird-78.9.0/comm/mail/base/content/tabmail.js | 40 thunderbird-78.9.0/comm/mail/base/modules/ExtensionsUI.jsm | 24 thunderbird-78.9.0/comm/mail/base/modules/QuickFilterManager.jsm | 29 thunderbird-78.9.0/comm/mail/base/modules/ThemeVariableMap.jsm | 6 thunderbird-78.9.0/comm/mail/components/MessengerContentHandler.jsm | 14 thunderbird-78.9.0/comm/mail/components/accountcreation/content/createInBackend.js | 62 thunderbird-78.9.0/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js | 15 thunderbird-78.9.0/comm/mail/components/accountcreation/content/sanitizeDatatypes.js | 13 thunderbird-78.9.0/comm/mail/components/activity/content/activity-widgets.js | 2 thunderbird-78.9.0/comm/mail/components/addrbook/content/abTrees.js | 8 thunderbird-78.9.0/comm/mail/components/addrbook/content/addressbook.xhtml | 2 thunderbird-78.9.0/comm/mail/components/addrbook/test/browser/browser.ini | 1 thunderbird-78.9.0/comm/mail/components/addrbook/test/browser/browser_cardDAV_properties.js | 261 thunderbird-78.9.0/comm/mail/components/compose/content/MsgComposeCommands.js | 72 thunderbird-78.9.0/comm/mail/components/compose/content/addressingWidgetOverlay.js | 14 thunderbird-78.9.0/comm/mail/components/compose/content/messengercompose.xhtml | 3 thunderbird-78.9.0/comm/mail/components/extensions/ExtensionToolbarButtons.jsm | 38 thunderbird-78.9.0/comm/mail/components/extensions/extensionPopup.js | 48 thunderbird-78.9.0/comm/mail/components/extensions/jar.mn | 5 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-accounts.js | 17 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-browserAction.js | 34 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-cloudFile.js | 4 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-compose.js | 162 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-mail.js | 4 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-messages.js | 10 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-theme.js | 511 thunderbird-78.9.0/comm/mail/components/extensions/parent/ext-windows.js | 7 thunderbird-78.9.0/comm/mail/components/extensions/schemas/accounts.json | 19 thunderbird-78.9.0/comm/mail/components/extensions/schemas/addressBook.json | 3 thunderbird-78.9.0/comm/mail/components/extensions/schemas/browserAction.json | 67 thunderbird-78.9.0/comm/mail/components/extensions/schemas/cloudFile.json | 2 thunderbird-78.9.0/comm/mail/components/extensions/schemas/compose.json | 16 thunderbird-78.9.0/comm/mail/components/extensions/schemas/composeAction.json | 67 thunderbird-78.9.0/comm/mail/components/extensions/schemas/mailTabs.json | 4 thunderbird-78.9.0/comm/mail/components/extensions/schemas/menus.json | 38 thunderbird-78.9.0/comm/mail/components/extensions/schemas/messageDisplay.json | 9 thunderbird-78.9.0/comm/mail/components/extensions/schemas/messageDisplayAction.json | 67 thunderbird-78.9.0/comm/mail/components/extensions/schemas/messages.json | 4 thunderbird-78.9.0/comm/mail/components/extensions/schemas/tabs.json | 29 thunderbird-78.9.0/comm/mail/components/extensions/schemas/theme.json | 493 thunderbird-78.9.0/comm/mail/components/extensions/schemas/windows.json | 29 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/browser_ext_compose_begin.js | 296 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/browser_ext_compose_details.js | 92 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/browser_ext_compose_onBeforeSend.js | 5 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/browser_ext_mailTabs.js | 2 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/browser_ext_windows.js | 82 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/data/content.html | 2 thunderbird-78.9.0/comm/mail/components/extensions/test/browser/head.js | 27 thunderbird-78.9.0/comm/mail/components/extensions/test/xpcshell/head.js | 23 thunderbird-78.9.0/comm/mail/components/extensions/test/xpcshell/test_ext_accounts.js | 21 thunderbird-78.9.0/comm/mail/components/im/content/chat-messenger.inc.xhtml | 5 thunderbird-78.9.0/comm/mail/components/im/content/imAccounts.js | 42 thunderbird-78.9.0/comm/mail/components/im/content/imAccounts.xhtml | 4 thunderbird-78.9.0/comm/mail/components/newmailaccount/content/accountProvisioner.js | 37 thunderbird-78.9.0/comm/mail/components/newmailaccount/content/accountProvisioner.xhtml | 1 thunderbird-78.9.0/comm/mail/components/newmailaccount/content/uriListener.js | 39 thunderbird-78.9.0/comm/mail/components/shell/nsGNOMEShellService.cpp | 50 thunderbird-78.9.0/comm/mail/components/telemetry/Scalars.yaml | 25 thunderbird-78.9.0/comm/mail/config/version.txt | 2 thunderbird-78.9.0/comm/mail/config/version_display.txt | 2 thunderbird-78.9.0/comm/mail/extensions/am-e2e/am-e2e.js | 372 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/BondOpenPGP.jsm | 2 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/modules/RNP.jsm | 155 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/modules/core.jsm | 14 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/modules/decryption.jsm | 18 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/ui/enigmailMessengerOverlay.js | 90 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/ui/enigmailMsgComposeOverlay.js | 22 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/ui/enigmailMsgHdrViewOverlay.js | 26 thunderbird-78.9.0/comm/mail/extensions/openpgp/content/ui/keyWizard.js | 30 thunderbird-78.9.0/comm/mail/extensions/openpgp/moz.build | 4 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/data/bluebird50.jpg.asc | 200 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/data/plaintext-with-key-and-windows-1252-encoded-eml-attachment.eml | 109 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/data/plaintext-with-windows-1252-encoded-eml-attachment.eml | 39 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/test_encryptAndOrSign.js | 276 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/test_secretKeys.js | 141 thunderbird-78.9.0/comm/mail/extensions/openpgp/test/unit/rnp/xpcshell.ini | 10 thunderbird-78.9.0/comm/mail/extensions/smime/content/msgHdrViewSMIMEOverlay.js | 27 thunderbird-78.9.0/comm/mail/installer/windows/nsis/installer.nsi | 13 thunderbird-78.9.0/comm/mail/installer/windows/nsis/shared.nsh | 2 thunderbird-78.9.0/comm/mail/locales/en-US/messenger/addressbook/abCardDAVProperties.ftl | 31 thunderbird-78.9.0/comm/mail/test/browser/account/browser.ini | 2 thunderbird-78.9.0/comm/mail/test/browser/account/browser_mailAccountSetupWizard.js | 33 thunderbird-78.9.0/comm/mail/test/browser/account/browser_manageIdentities.js | 268 thunderbird-78.9.0/comm/mail/test/browser/account/head.js | 82 thunderbird-78.9.0/comm/mail/test/browser/account/xml/example.com | 4 thunderbird-78.9.0/comm/mail/test/browser/composition/browser.ini | 1 thunderbird-78.9.0/comm/mail/test/browser/composition/browser_messageBody.js | 59 thunderbird-78.9.0/comm/mail/test/browser/folder-display/browser.ini | 4 thunderbird-78.9.0/comm/mail/test/browser/folder-display/browser_mailTelemetry.js | 104 thunderbird-78.9.0/comm/mail/test/browser/folder-display/browser_readMsgs.js | 69 thunderbird-78.9.0/comm/mail/test/browser/folder-display/data/test-invalid-vcard.eml | 25 thunderbird-78.9.0/comm/mail/test/browser/global-search-bar/browser_globalSearchBar.js | 43 thunderbird-78.9.0/comm/mail/test/browser/newmailaccount/browser_newmailaccount.js | 72 thunderbird-78.9.0/comm/mail/test/browser/newmailaccount/html/config.xml | 11 thunderbird-78.9.0/comm/mail/test/browser/openpgp/browser_viewMessage.js | 112 thunderbird-78.9.0/comm/mail/test/browser/openpgp/data/eml/signed-inline-indented.eml | 23 thunderbird-78.9.0/comm/mail/test/browser/shared-modules/AccountManagerHelpers.jsm | 9 thunderbird-78.9.0/comm/mail/test/browser/shared-modules/FolderDisplayHelpers.jsm | 13 thunderbird-78.9.0/comm/mail/test/browser/shared-modules/OpenPGPTestUtils.jsm | 19 thunderbird-78.9.0/comm/mail/test/browser/tabmail/browser.ini | 1 thunderbird-78.9.0/comm/mail/test/browser/tabmail/browser_tabSwitch.js | 238 thunderbird-78.9.0/comm/mail/themes/addons/dark/manifest.json | 1 thunderbird-78.9.0/comm/mail/themes/addons/light/manifest.json | 1 thunderbird-78.9.0/comm/mail/themes/linux/mail/compose/messengercompose.css | 4 thunderbird-78.9.0/comm/mail/themes/linux/mail/input-fields.css | 3 thunderbird-78.9.0/comm/mail/themes/linux/mail/messageIcons.css | 2 thunderbird-78.9.0/comm/mail/themes/linux/mail/messenger.css | 13 thunderbird-78.9.0/comm/mail/themes/linux/mail/searchBox.css | 19 thunderbird-78.9.0/comm/mail/themes/osx/mail/compose/messengercompose.css | 14 thunderbird-78.9.0/comm/mail/themes/osx/mail/input-fields.css | 2 thunderbird-78.9.0/comm/mail/themes/osx/mail/messenger.css | 16 thunderbird-78.9.0/comm/mail/themes/osx/mail/searchBox.css | 32 thunderbird-78.9.0/comm/mail/themes/osx/mail/tabmail.css | 4 thunderbird-78.9.0/comm/mail/themes/shared/jar.inc.mn | 1 thunderbird-78.9.0/comm/mail/themes/shared/mail/accountCentral.css | 2 thunderbird-78.9.0/comm/mail/themes/shared/mail/cardDAV.css | 101 thunderbird-78.9.0/comm/mail/themes/shared/mail/input-fields.css | 10 thunderbird-78.9.0/comm/mail/themes/shared/mail/messageHeader.css | 10 thunderbird-78.9.0/comm/mail/themes/shared/mail/messenger.css | 33 thunderbird-78.9.0/comm/mail/themes/shared/mail/messengercompose.css | 14 thunderbird-78.9.0/comm/mail/themes/shared/mail/searchBox.css | 22 thunderbird-78.9.0/comm/mail/themes/shared/mail/tabmail.css | 15 thunderbird-78.9.0/comm/mail/themes/shared/mail/themeableDialog.css | 10 thunderbird-78.9.0/comm/mail/themes/windows/mail/addrbook/addressbook.css | 2 thunderbird-78.9.0/comm/mail/themes/windows/mail/compose/messengercompose.css | 39 thunderbird-78.9.0/comm/mail/themes/windows/mail/input-fields.css | 2 thunderbird-78.9.0/comm/mail/themes/windows/mail/messageHeader.css | 6 thunderbird-78.9.0/comm/mail/themes/windows/mail/messenger.css | 10 thunderbird-78.9.0/comm/mail/themes/windows/mail/searchBox.css | 38 thunderbird-78.9.0/comm/mailnews/addrbook/content/abAddressBookNameDialog.js | 5 thunderbird-78.9.0/comm/mailnews/addrbook/content/abCardDAVDialog.css | 87 thunderbird-78.9.0/comm/mailnews/addrbook/content/abCardDAVDialog.js | 77 thunderbird-78.9.0/comm/mailnews/addrbook/content/abCardDAVDialog.xhtml | 55 thunderbird-78.9.0/comm/mailnews/addrbook/content/abCardDAVProperties.js | 141 thunderbird-78.9.0/comm/mailnews/addrbook/content/abCardDAVProperties.xhtml | 74 thunderbird-78.9.0/comm/mailnews/addrbook/content/abResultsPane.js | 5 thunderbird-78.9.0/comm/mailnews/addrbook/content/abView.js | 10 thunderbird-78.9.0/comm/mailnews/addrbook/modules/AddrBookDirectory.jsm | 102 thunderbird-78.9.0/comm/mailnews/addrbook/modules/AddrBookMailingList.jsm | 47 thunderbird-78.9.0/comm/mailnews/addrbook/modules/CardDAVDirectory.jsm | 428 thunderbird-78.9.0/comm/mailnews/addrbook/modules/VCardUtils.jsm | 16 thunderbird-78.9.0/comm/mailnews/addrbook/public/nsIMsgVCardService.idl | 12 thunderbird-78.9.0/comm/mailnews/addrbook/src/nsAbCardProperty.cpp | 8 thunderbird-78.9.0/comm/mailnews/addrbook/src/nsAbContentHandler.cpp | 9 thunderbird-78.9.0/comm/mailnews/addrbook/src/nsAbOutlookDirectory.cpp | 65 thunderbird-78.9.0/comm/mailnews/addrbook/src/nsAbOutlookDirectory.h | 9 thunderbird-78.9.0/comm/mailnews/addrbook/src/nsAbQueryStringToExpression.cpp | 4 thunderbird-78.9.0/comm/mailnews/addrbook/test/CardDAVServer.jsm | 9 thunderbird-78.9.0/comm/mailnews/addrbook/test/unit/test_cardDAV_syncV1.js | 169 thunderbird-78.9.0/comm/mailnews/addrbook/test/unit/test_cardDAV_syncV2.js | 187 thunderbird-78.9.0/comm/mailnews/addrbook/test/unit/test_vCard.js | 101 thunderbird-78.9.0/comm/mailnews/base/content/folderProps.js | 2 thunderbird-78.9.0/comm/mailnews/base/content/msgSelectOfflineFolders.js | 6 thunderbird-78.9.0/comm/mailnews/base/content/virtualFolderListEdit.js | 6 thunderbird-78.9.0/comm/mailnews/base/prefs/content/AccountManager.js | 8 thunderbird-78.9.0/comm/mailnews/base/prefs/content/am-identities-list.js | 11 thunderbird-78.9.0/comm/mailnews/base/prefs/content/am-identity-edit.js | 6 thunderbird-78.9.0/comm/mailnews/base/prefs/content/am-identity-edit.xhtml | 13 thunderbird-78.9.0/comm/mailnews/base/public/nsIMsgDBView.idl | 10 thunderbird-78.9.0/comm/mailnews/base/src/MailNewsCommandLineHandler.jsm | 4 thunderbird-78.9.0/comm/mailnews/base/src/OAuth2Module.jsm | 3 thunderbird-78.9.0/comm/mailnews/base/src/OAuth2Providers.jsm | 4 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgAccountManager.cpp | 8 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgDBFolder.cpp | 59 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgDBView.cpp | 5 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgDBView.h | 8 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgSearchDBView.cpp | 15 thunderbird-78.9.0/comm/mailnews/base/src/nsMsgSearchDBView.h | 4 thunderbird-78.9.0/comm/mailnews/base/test/unit/test_accountMgrRemoveDefault.js | 55 thunderbird-78.9.0/comm/mailnews/base/test/unit/xpcshell.ini | 1 thunderbird-78.9.0/comm/mailnews/compose/src/nsMsgSend.cpp | 14 thunderbird-78.9.0/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp | 20 thunderbird-78.9.0/comm/mailnews/extensions/smime/msgCompSecurityInfo.js | 7 thunderbird-78.9.0/comm/mailnews/imap/src/nsImapIncomingServer.cpp | 4 thunderbird-78.9.0/comm/mailnews/imap/src/nsImapProtocol.cpp | 70 thunderbird-78.9.0/comm/mailnews/imap/src/nsImapUrl.cpp | 22 thunderbird-78.9.0/comm/mailnews/imap/src/nsImapUrl.h | 1 thunderbird-78.9.0/comm/mailnews/import/content/importDialog.js | 5 thunderbird-78.9.0/comm/mailnews/import/src/nsTextAddress.cpp | 2 thunderbird-78.9.0/comm/mailnews/import/src/nsVCardAddress.cpp | 37 thunderbird-78.9.0/comm/mailnews/import/src/nsVCardAddress.h | 6 thunderbird-78.9.0/comm/mailnews/import/test/unit/resources/import_helper.js | 6 thunderbird-78.9.0/comm/mailnews/jar.mn | 3 thunderbird-78.9.0/comm/mailnews/mime/src/mimeenc.cpp | 5 thunderbird-78.9.0/comm/mailnews/mime/src/mimemsg.cpp | 14 thunderbird-78.9.0/comm/mailnews/mime/test/unit/test_openpgp_decrypt.js | 11 thunderbird-78.9.0/comm/mailnews/test/resources/MessageGenerator.jsm | 20 thunderbird-78.9.0/comm/third_party/README.rnp | 2 thunderbird-78.9.0/comm/third_party/patches/rnp/disable_obsolete_ciphers.patch | 22 thunderbird-78.9.0/comm/third_party/rnp/CHANGELOG.md | 242 thunderbird-78.9.0/comm/third_party/rnp/docs/installation.adoc | 8 thunderbird-78.9.0/comm/third_party/rnp/include/repgp/repgp_def.h | 2 thunderbird-78.9.0/comm/third_party/rnp/include/rnp.h | 1 thunderbird-78.9.0/comm/third_party/rnp/include/rnp/rnp.h | 146 thunderbird-78.9.0/comm/third_party/rnp/include/rnp/rnp_err.h | 1 thunderbird-78.9.0/comm/third_party/rnp/include/rnp/rnp_sdk.h | 2 thunderbird-78.9.0/comm/third_party/rnp/moz.build | 1 thunderbird-78.9.0/comm/third_party/rnp/src/common/file-utils.cpp | 256 thunderbird-78.9.0/comm/third_party/rnp/src/common/file-utils.h | 18 thunderbird-78.9.0/comm/third_party/rnp/src/common/str-utils.cpp | 39 thunderbird-78.9.0/comm/third_party/rnp/src/common/str-utils.h | 9 thunderbird-78.9.0/comm/third_party/rnp/src/fuzzing/dump.c | 6 thunderbird-78.9.0/comm/third_party/rnp/src/fuzzing/verify_detached.c | 6 thunderbird-78.9.0/comm/third_party/rnp/src/lib/CMakeLists.txt | 2 thunderbird-78.9.0/comm/third_party/rnp/src/lib/config.h.in | 2 thunderbird-78.9.0/comm/third_party/rnp/src/lib/crypto.cpp | 27 thunderbird-78.9.0/comm/third_party/rnp/src/lib/crypto.h | 2 thunderbird-78.9.0/comm/third_party/rnp/src/lib/crypto/dsa.cpp | 6 thunderbird-78.9.0/comm/third_party/rnp/src/lib/crypto/dsa.h | 2 thunderbird-78.9.0/comm/third_party/rnp/src/lib/crypto/signatures.cpp | 20 thunderbird-78.9.0/comm/third_party/rnp/src/lib/fingerprint.cpp | 24 thunderbird-78.9.0/comm/third_party/rnp/src/lib/fingerprint.h | 4 thunderbird-78.9.0/comm/third_party/rnp/src/lib/generate-key.cpp | 67 thunderbird-78.9.0/comm/third_party/rnp/src/lib/key-provider.cpp | 15 thunderbird-78.9.0/comm/third_party/rnp/src/lib/misc.cpp | 16 thunderbird-78.9.0/comm/third_party/rnp/src/lib/pgp-key.cpp | 2993 thunderbird-78.9.0/comm/third_party/rnp/src/lib/pgp-key.h | 633 thunderbird-78.9.0/comm/third_party/rnp/src/lib/rnp.cpp | 758 thunderbird-78.9.0/comm/third_party/rnp/src/lib/types.h | 435 thunderbird-78.9.0/comm/third_party/rnp/src/lib/utils.h | 9 thunderbird-78.9.0/comm/third_party/rnp/src/lib/version.h | 10 thunderbird-78.9.0/comm/third_party/rnp/src/librekey/key_store_g10.cpp | 40 thunderbird-78.9.0/comm/third_party/rnp/src/librekey/key_store_kbx.cpp | 42 thunderbird-78.9.0/comm/third_party/rnp/src/librekey/key_store_pgp.cpp | 163 thunderbird-78.9.0/comm/third_party/rnp/src/librekey/key_store_pgp.h | 10 thunderbird-78.9.0/comm/third_party/rnp/src/librekey/rnp_key_store.cpp | 387 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-armor.cpp | 1 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-common.cpp | 119 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-common.h | 6 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-ctx.h | 1 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-def.h | 4 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-dump.cpp | 164 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-key.cpp | 839 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-key.h | 37 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-packet.cpp | 2325 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-packet.h | 355 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-parse.cpp | 269 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-parse.h | 1 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-sig.cpp | 636 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-sig.h | 343 thunderbird-78.9.0/comm/third_party/rnp/src/librepgp/stream-write.cpp | 119 thunderbird-78.9.0/comm/third_party/rnp/src/rnp/fficli.cpp | 119 thunderbird-78.9.0/comm/third_party/rnp/src/rnp/fficli.h | 5 thunderbird-78.9.0/comm/third_party/rnp/src/rnp/rnp.cpp | 15 thunderbird-78.9.0/comm/third_party/rnp/src/rnpkeys/main.cpp | 22 thunderbird-78.9.0/comm/third_party/rnp/src/rnpkeys/rnpkeys.cpp | 10 thunderbird-78.9.0/comm/third_party/rnp/src/rnpkeys/rnpkeys.h | 1 thunderbird-78.9.0/comm/third_party/rnp/version.txt | 1 thunderbird-78.9.0/config/makefiles/rust.mk | 10 thunderbird-78.9.0/config/milestone.txt | 2 thunderbird-78.9.0/debian/changelog | 104 thunderbird-78.9.0/debian/copyright | 5 thunderbird-78.9.0/debian/patches/fixes/Add-missing-bindings-for-mips-in-the-authenticator-crate.patch | 6 thunderbird-78.9.0/debian/patches/fixes/Bug-1556197-amend-Bug-1544631-for-fixing-mips32.patch | 4 thunderbird-78.9.0/debian/patches/fixes/reduce-the-rust-debuginfo-level-on-selected-architectures.patch | 6 thunderbird-78.9.0/debian/patches/porting-arm/Reduce-memory-usage-while-linking-on-arm-el-hf-platforms.patch | 4 thunderbird-78.9.0/debian/patches/porting-m68k/Add-m68k-support-to-Thunderbird.patch | 6 thunderbird-78.9.0/debian/patches/porting-mips/Bug-1642265-MIPS64-Add-branchTestSymbol-and-fallibleUnbox.patch | 69 thunderbird-78.9.0/debian/patches/porting-s390x/Explicitly-instantiate-TIntermTraverser-traverse-TIntermN.patch | 35 thunderbird-78.9.0/debian/patches/prefs/Don-t-auto-disable-extensions-in-system-directories.patch | 2 thunderbird-78.9.0/debian/patches/series | 2 thunderbird-78.9.0/debian/source.filter | 1 thunderbird-78.9.0/debian/source/lintian-overrides | 3 thunderbird-78.9.0/debian/thunderbird-wrapper-helper.sh | 22 thunderbird-78.9.0/debian/thunderbird-wrapper.sh | 16 thunderbird-78.9.0/debian/thunderbird.desktop | 2 thunderbird-78.9.0/debian/thunderbird.dirs | 1 thunderbird-78.9.0/debian/thunderbird.docs | 1 thunderbird-78.9.0/debian/thunderbird.links | 1 thunderbird-78.9.0/devtools/client/webconsole/test/browser/browser_webconsole_output_order.js | 26 thunderbird-78.9.0/docshell/base/BrowsingContext.h | 4 thunderbird-78.9.0/docshell/base/URIFixup.jsm | 11 thunderbird-78.9.0/docshell/base/nsDocShell.cpp | 26 thunderbird-78.9.0/dom/base/BodyConsumer.cpp | 13 thunderbird-78.9.0/dom/base/Document.cpp | 3 thunderbird-78.9.0/dom/base/EventSource.cpp | 612 thunderbird-78.9.0/dom/base/EventSource.h | 16 thunderbird-78.9.0/dom/base/nsContentUtils.cpp | 18 thunderbird-78.9.0/dom/base/nsFrameLoader.cpp | 2 thunderbird-78.9.0/dom/base/nsISelectionController.idl | 4 thunderbird-78.9.0/dom/base/test/chrome/chrome.ini | 1 thunderbird-78.9.0/dom/base/test/chrome/test_input_value_set_preserve_undo.xhtml | 37 thunderbird-78.9.0/dom/bindings/Codegen.py | 14 thunderbird-78.9.0/dom/bindings/TypedArray.h | 27 thunderbird-78.9.0/dom/canvas/ClientWebGLContext.cpp | 5 thunderbird-78.9.0/dom/canvas/ImageBitmap.cpp | 23 thunderbird-78.9.0/dom/canvas/SanitizeRenderer.h | 56 thunderbird-78.9.0/dom/canvas/WebGLContextTextures.cpp | 10 thunderbird-78.9.0/dom/canvas/WebGLShaderValidator.cpp | 1 thunderbird-78.9.0/dom/canvas/gtest/TestSanitizeRenderer.cpp | 59 thunderbird-78.9.0/dom/canvas/gtest/moz.build | 15 thunderbird-78.9.0/dom/canvas/moz.build | 7 thunderbird-78.9.0/dom/canvas/test/webgl-conf/generated-mochitest.ini | 11 thunderbird-78.9.0/dom/canvas/test/webgl-conf/mochitest-errata.ini | 37 thunderbird-78.9.0/dom/canvas/test/webgl-mochitest/mochitest.ini | 4 thunderbird-78.9.0/dom/canvas/test/webgl-mochitest/test_tex_pbo.html | 100 thunderbird-78.9.0/dom/html/HTMLInputElement.cpp | 12 thunderbird-78.9.0/dom/html/HTMLMediaElement.cpp | 4 thunderbird-78.9.0/dom/html/TextControlState.cpp | 69 thunderbird-78.9.0/dom/html/TextControlState.h | 8 thunderbird-78.9.0/dom/indexedDB/SafeRefPtr.h | 14 thunderbird-78.9.0/dom/media/MediaTrackGraph.cpp | 9 thunderbird-78.9.0/dom/media/MediaTrackGraph.h | 6 thunderbird-78.9.0/dom/media/test/crashtests/1673526-1.html | 20 thunderbird-78.9.0/dom/media/test/crashtests/1673526-2.html | 20 thunderbird-78.9.0/dom/media/test/crashtests/crashtests.list | 2 thunderbird-78.9.0/dom/media/test/mochitest.ini | 1 thunderbird-78.9.0/dom/media/test/test_decode_error_crossorigin.html | 54 thunderbird-78.9.0/dom/media/tests/mochitest/mochitest.ini | 1 thunderbird-78.9.0/dom/media/tests/mochitest/test_peerConnection_portRestrictions.html | 62 thunderbird-78.9.0/dom/media/webaudio/AudioNodeEngine.h | 5 thunderbird-78.9.0/dom/media/webaudio/AudioNodeTrack.cpp | 2 thunderbird-78.9.0/dom/media/webaudio/AudioNodeTrack.h | 2 thunderbird-78.9.0/dom/media/webaudio/AudioWorkletNode.cpp | 2 thunderbird-78.9.0/dom/media/webaudio/blink/ReverbInputBuffer.cpp | 18 thunderbird-78.9.0/dom/media/webaudio/blink/ReverbInputBuffer.h | 3 thunderbird-78.9.0/dom/messagechannel/MessagePortParent.h | 4 thunderbird-78.9.0/dom/messagechannel/MessagePortService.cpp | 22 thunderbird-78.9.0/dom/script/ScriptLoader.cpp | 26 thunderbird-78.9.0/dom/security/nsCSPContext.cpp | 38 thunderbird-78.9.0/dom/security/nsCSPService.cpp | 29 thunderbird-78.9.0/dom/security/test/csp/test_blocked_uri_in_reports.html | 6 thunderbird-78.9.0/dom/serviceworkers/ServiceWorkerInterceptController.cpp | 7 thunderbird-78.9.0/dom/webgpu/ipc/WebGPUParent.cpp | 8 thunderbird-78.9.0/dom/workers/RuntimeService.cpp | 156 thunderbird-78.9.0/dom/workers/WorkerPrivate.cpp | 6 thunderbird-78.9.0/gfx/2d/GenericRefCounted.h | 18 thunderbird-78.9.0/gfx/angle/MERGE_BASE | 2 thunderbird-78.9.0/gfx/angle/checkout/include/EGL/egl.h | 4 thunderbird-78.9.0/gfx/angle/checkout/include/EGL/eglext.h | 59 thunderbird-78.9.0/gfx/angle/checkout/include/EGL/eglext_angle.h | 108 thunderbird-78.9.0/gfx/angle/checkout/include/EGL/eglplatform.h | 8 thunderbird-78.9.0/gfx/angle/checkout/include/GLES/glext_angle.h | 2 thunderbird-78.9.0/gfx/angle/checkout/include/GLES/glext_explicit_context_autogen.inc | 4 thunderbird-78.9.0/gfx/angle/checkout/include/GLES2/gl2ext.h | 276 thunderbird-78.9.0/gfx/angle/checkout/include/GLES2/gl2ext_angle.h | 356 thunderbird-78.9.0/gfx/angle/checkout/include/GLES2/gl2ext_explicit_context_autogen.inc | 154 thunderbird-78.9.0/gfx/angle/checkout/include/GLES3/gl31ext_explicit_context_autogen.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/include/GLES3/gl32ext_explicit_context_autogen.inc | 100 thunderbird-78.9.0/gfx/angle/checkout/include/GLES3/gl3ext_explicit_context_autogen.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/include/GLSLANG/ShaderLang.h | 148 thunderbird-78.9.0/gfx/angle/checkout/include/GLSLANG/ShaderVars.h | 135 thunderbird-78.9.0/gfx/angle/checkout/include/angle_gl.h | 8 thunderbird-78.9.0/gfx/angle/checkout/include/export.h | 10 thunderbird-78.9.0/gfx/angle/checkout/include/platform/Feature.h | 35 thunderbird-78.9.0/gfx/angle/checkout/include/platform/FeaturesD3D.h | 95 thunderbird-78.9.0/gfx/angle/checkout/include/platform/FeaturesGL.h | 328 thunderbird-78.9.0/gfx/angle/checkout/include/platform/FeaturesMtl.h | 90 thunderbird-78.9.0/gfx/angle/checkout/include/platform/FeaturesVk.h | 419 thunderbird-78.9.0/gfx/angle/checkout/include/platform/FrontendFeatures.h | 22 thunderbird-78.9.0/gfx/angle/checkout/include/platform/Platform.h | 324 thunderbird-78.9.0/gfx/angle/checkout/include/platform/PlatformMethods.h | 339 thunderbird-78.9.0/gfx/angle/checkout/include/vulkan/vulkan_fuchsia_ext.h | 145 thunderbird-78.9.0/gfx/angle/checkout/out/gen/angle/angle_commit.h | 4 thunderbird-78.9.0/gfx/angle/checkout/out/gen/angle/id/commit.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/common/Color.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/Color.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/FastVector.h | 244 thunderbird-78.9.0/gfx/angle/checkout/src/common/FixedVector.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/common/Float16ToFloat32.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/MemoryBuffer.cpp | 48 thunderbird-78.9.0/gfx/angle/checkout/src/common/MemoryBuffer.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/common/Optional.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.cpp | 54 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedEGLEnums_autogen.h | 17 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedEnums.cpp | 169 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedEnums.h | 317 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedGLEnums_autogen.cpp | 72 thunderbird-78.9.0/gfx/angle/checkout/src/common/PackedGLEnums_autogen.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/common/PoolAlloc.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/common/PoolAlloc.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/common/aligned_memory.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/android_util.cpp | 130 thunderbird-78.9.0/gfx/angle/checkout/src/common/android_util.h | 16 thunderbird-78.9.0/gfx/angle/checkout/src/common/angle_version.h | 28 thunderbird-78.9.0/gfx/angle/checkout/src/common/angleutils.cpp | 24 thunderbird-78.9.0/gfx/angle/checkout/src/common/angleutils.h | 46 thunderbird-78.9.0/gfx/angle/checkout/src/common/apple_platform_utils.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/common/bitset_utils.h | 31 thunderbird-78.9.0/gfx/angle/checkout/src/common/debug.cpp | 115 thunderbird-78.9.0/gfx/angle/checkout/src/common/debug.h | 120 thunderbird-78.9.0/gfx/angle/checkout/src/common/entry_points_enum_autogen.cpp | 2770 thunderbird-78.9.0/gfx/angle/checkout/src/common/entry_points_enum_autogen.h | 1394 thunderbird-78.9.0/gfx/angle/checkout/src/common/event_tracer.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/event_tracer.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/common/mathutil.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/common/mathutil.h | 193 thunderbird-78.9.0/gfx/angle/checkout/src/common/matrix_utils.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/common/platform.h | 44 thunderbird-78.9.0/gfx/angle/checkout/src/common/string_utils.cpp | 58 thunderbird-78.9.0/gfx/angle/checkout/src/common/string_utils.h | 26 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils.cpp | 74 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils.h | 17 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils_linux.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils_mac.cpp | 14 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils_posix.cpp | 194 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils_win.cpp | 256 thunderbird-78.9.0/gfx/angle/checkout/src/common/system_utils_win32.cpp | 99 thunderbird-78.9.0/gfx/angle/checkout/src/common/third_party/base/anglebase/base_export.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/third_party/base/anglebase/containers/mru_cache.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/third_party/base/anglebase/no_destructor.h | 106 thunderbird-78.9.0/gfx/angle/checkout/src/common/third_party/base/anglebase/sys_byteorder.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/common/third_party/xxhash/xxhash.c | 16 thunderbird-78.9.0/gfx/angle/checkout/src/common/tls.cpp | 28 thunderbird-78.9.0/gfx/angle/checkout/src/common/tls.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/common/uniform_type_info_autogen.cpp | 155 thunderbird-78.9.0/gfx/angle/checkout/src/common/utilities.cpp | 262 thunderbird-78.9.0/gfx/angle/checkout/src/common/utilities.h | 47 thunderbird-78.9.0/gfx/angle/checkout/src/common/version.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DiagnosticsBase.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DiagnosticsBase.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DirectiveHandlerBase.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DirectiveHandlerBase.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DirectiveParser.cpp | 24 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/DirectiveParser.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/ExpressionParser.cpp | 1906 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/ExpressionParser.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Input.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Input.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Lexer.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Lexer.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Macro.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Macro.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/MacroExpander.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/MacroExpander.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Preprocessor.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Preprocessor.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/SourceLocation.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Token.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Token.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Tokenizer.cpp | 2613 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/Tokenizer.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/numeric_lex.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/preprocessor_lex_autogen.cpp | 2621 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/preprocessor/preprocessor_tab_autogen.cpp | 1910 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ASTMetadataHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/AtomicCounterFunctionHLSL.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/AtomicCounterFunctionHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BaseTypes.h | 461 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulator.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulatorGLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulatorHLSL.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltInFunctionEmulatorHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.cpp | 111 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/BuiltinsWorkaroundGLSL.h | 24 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/CallDAG.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/CallDAG.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/CodeGen.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/CollectVariables.cpp | 203 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/CollectVariables.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Common.h | 106 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Compiler.cpp | 313 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Compiler.h | 62 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ConstantUnion.cpp | 17 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ConstantUnion.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Declarator.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Declarator.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Diagnostics.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Diagnostics.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/DirectiveHandler.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.cpp | 58 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ExtensionBehavior.h | 27 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ExtensionGLSL.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ExtensionGLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/FlagStd140Structs.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/FlagStd140Structs.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/FunctionLookup.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/FunctionLookup.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/HashNames.cpp | 74 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/HashNames.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImageFunctionHLSL.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImageFunctionHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableString.cpp | 69 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableString.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableStringBuilder.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableStringBuilder.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableString_ESSL_autogen.cpp | 338 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ImmutableString_autogen.cpp | 416 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/InfoSink.cpp | 29 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/InfoSink.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Initialize.cpp | 68 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Initialize.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/InitializeDll.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/InitializeDll.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/InitializeGlobals.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/IntermNode.cpp | 120 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/IntermNode.h | 100 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/IsASTDepthBelowLimit.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/IsASTDepthBelowLimit.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Operator.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Operator.h | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputESSL.cpp | 24 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputESSL.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputGLSL.cpp | 24 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputGLSL.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.cpp | 112 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputGLSLBase.h | 25 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputHLSL.cpp | 161 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputHLSL.h | 41 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputTree.cpp | 21 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/OutputTree.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext.cpp | 533 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext.h | 32 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext_ESSL_autogen.h | 101 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext_autogen.h | 66 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext_complete_autogen.h | 101 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ParseContext_interm.h | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/PoolAlloc.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/PoolAlloc.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Pragma.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/QualifierTypes.cpp | 100 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/QualifierTypes.h | 27 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ResourcesHLSL.cpp | 208 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ResourcesHLSL.h | 25 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Severity.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ShaderLang.cpp | 215 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ShaderStorageBlockOutputHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ShaderVars.cpp | 243 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/StaticType.h | 94 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/StructureHLSL.cpp | 95 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/StructureHLSL.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Symbol.cpp | 22 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Symbol.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolTable.cpp | 150 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolTable.h | 175 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolTable_ESSL_autogen.cpp |24335 ++ thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.cpp |48643 +++-- thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolTable_autogen.h | 112 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolUniqueId.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/SymbolUniqueId.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TextureFunctionHLSL.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TextureFunctionHLSL.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.cpp | 39 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorESSL.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.cpp | 90 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorGLSL.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.cpp | 169 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/TranslatorHLSL.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Types.cpp | 300 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/Types.h | 64 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.cpp | 17 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/UtilsHLSL.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateAST.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.cpp | 65 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateGlobalInitializer.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateLimitations.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateMaxParameters.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateMaxParameters.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateOutputs.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateSwitch.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateSwitch.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.cpp | 22 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/ValidateVaryingLocations.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/VariablePacker.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/VariablePacker.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/VersionGLSL.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/VersionGLSL.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/blocklayout.cpp | 84 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/blocklayout.h | 51 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/blocklayoutHLSL.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/blocklayoutHLSL.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_lex.cpp | 4108 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_lex_autogen.cpp | 3783 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_tab.cpp | 5201 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_tab.h | 284 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.cpp | 5613 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/glslang_tab_autogen.h | 312 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/length_limits.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/AddAndTrueToLoopCondition.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/AddAndTrueToLoopCondition.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/AddDefaultReturnStatements.cpp | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/AddDefaultReturnStatements.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ArrayReturnValueToOutParameter.cpp | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ArrayReturnValueToOutParameter.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/BreakVariableAliasingInInnerLoops.cpp | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/BreakVariableAliasingInInnerLoops.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampFragDepth.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampFragDepth.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ClampPointSize.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp | 20 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.h | 19 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/DeferGlobalInitializers.h | 16 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EarlyFragmentTestsOptimization.cpp | 79 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EarlyFragmentTestsOptimization.h | 23 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.cpp | 29 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.h | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.cpp | 166 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h | 34 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.cpp | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/EmulatePrecision.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ExpandIntegerPowExpressions.cpp | 19 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ExpandIntegerPowExpressions.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/FlagSamplersWithTexelFetch.cpp | 100 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/FlagSamplersWithTexelFetch.h | 31 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/FoldExpressions.cpp | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/FoldExpressions.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.cpp | 20 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/InitializeVariables.h | 29 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/NameEmbeddedUniformStructs.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/NameEmbeddedUniformStructs.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneEmptyCases.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneEmptyCases.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.cpp | 14 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/PruneNoOps.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordConstantPrecision.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordUniformBlocksTranslatedToStructuredBuffers.cpp | 269 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RecordUniformBlocksTranslatedToStructuredBuffers.h | 25 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RegenerateStructNames.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RegenerateStructNames.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp | 73 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h | 24 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp | 72 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveDynamicIndexing.h | 22 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp | 146 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h | 40 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemovePow.cpp | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemovePow.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveSwitchFallThrough.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveSwitchFallThrough.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp | 594 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicCounters.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicFunctionExpressions.cpp | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteAtomicFunctionExpressions.h | 14 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.cpp | 1023 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteCubeMapSamplersAs2DArray.h | 29 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.cpp | 144 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDfdy.h | 23 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDoWhile.cpp | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteDoWhile.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteElseBlocks.cpp | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteElseBlocks.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteExpressionsWithShaderStorageBlock.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteExpressionsWithShaderStorageBlock.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteInterpolateAtOffset.cpp | 139 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteInterpolateAtOffset.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteRepeatedAssignToSwizzled.cpp | 17 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteRepeatedAssignToSwizzled.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteRowMajorMatrices.cpp | 1599 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteRowMajorMatrices.h | 25 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp | 773 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplers.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteStructSamplersOld.cpp | 705 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp | 30 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.h | 16 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteUnaryMinusOperatorFloat.cpp | 17 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteUnaryMinusOperatorFloat.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteUnaryMinusOperatorInt.cpp | 17 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/RewriteUnaryMinusOperatorInt.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateArrayConstructorStatements.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateArrayConstructorStatements.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateArrayInitialization.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateArrayInitialization.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateDeclarations.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateExpressionsReturningArrays.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SeparateExpressionsReturningArrays.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SimplifyLoopConditions.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp | 16 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/SplitSequenceOperator.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UnfoldShortCircuitAST.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UnfoldShortCircuitAST.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UnfoldShortCircuitToIf.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UnfoldShortCircuitToIf.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UseInterfaceBlockFields.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/UseInterfaceBlockFields.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/VectorizeVectorScalarArithmetic.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/VectorizeVectorScalarArithmetic.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/WrapSwitchStatementsInBlocks.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_ops/WrapSwitchStatementsInBlocks.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn.h | 18 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_ESSL_autogen.h | 2747 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_autogen.h | 1373 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/BuiltIn_complete_autogen.h | 4731 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/FindFunction.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/FindMain.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/FindSymbolNode.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNodePatternMatcher.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.cpp | 44 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermNode_util.h | 28 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.cpp | 40 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/IntermTraverse.h | 32 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/NodeSearch.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp | 180 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h | 33 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipDistanceVariable.cpp | 312 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceClipDistanceVariable.h | 35 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp | 32 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceShadowingVariables.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.cpp | 92 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/ReplaceVariable.h | 132 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/RunAtTheEndOfShader.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/tree_util/Visit.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/util.cpp | 64 thunderbird-78.9.0/gfx/angle/checkout/src/compiler/translator/util.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo.cpp | 46 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo.h | 44 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo_internal.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.cpp | 253 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo_vulkan.h | 22 thunderbird-78.9.0/gfx/angle/checkout/src/gpu_info_util/SystemInfo_win.cpp | 30 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/copyimage.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/copyimage.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/copyimage.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/generatemip.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/generatemip.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/imageformats.cpp | 112 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/imageformats.h | 48 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/loadimage.cpp | 286 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/loadimage.h | 162 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/loadimage.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/image_util/loadimage_etc.cpp | 154 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/AttributeMap.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/AttributeMap.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/BinaryStream.h | 39 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/BlobCache.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/BlobCache.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Buffer.cpp | 80 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Buffer.h | 35 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Caps.cpp | 654 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Caps.h | 520 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Compiler.cpp | 71 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Compiler.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Config.cpp | 16 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Config.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Constants.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context.cpp | 4138 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context.h | 290 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context.inl.h | 41 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl.cpp | 537 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_0_autogen.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_1_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_2_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_3_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_4_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_1_5_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_2_0_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_2_1_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_3_0_autogen.h | 48 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_3_1_autogen.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_3_2_autogen.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_3_3_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_0_autogen.h | 103 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_1_autogen.h | 63 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_2_autogen.h | 26 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_3_autogen.h | 49 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_4_autogen.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_5_autogen.h | 261 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gl_4_6_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_1_0.cpp | 121 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_1_0_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_2_0_autogen.h | 139 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_3_0_autogen.h | 126 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_3_1_autogen.h | 158 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_3_2_autogen.h | 83 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Context_gles_ext_autogen.h | 371 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Debug.cpp | 34 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Debug.h | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Device.cpp | 16 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Device.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Display.cpp | 752 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Display.h | 111 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/EGLSync.cpp | 40 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/EGLSync.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Error.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Error.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Error.inc | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ErrorStrings.h | 104 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Fence.cpp | 18 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Fence.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/FrameCapture.h | 523 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/FrameCapture_mock.cpp | 33 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Framebuffer.cpp | 720 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Framebuffer.h | 133 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.cpp | 76 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/FramebufferAttachment.h | 52 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/GLES1Renderer.cpp | 81 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/GLES1Renderer.h | 199 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/GLES1State.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/GLES1State.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/HandleAllocator.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/HandleAllocator.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/HandleRangeAllocator.cpp | 227 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/HandleRangeAllocator.h | 60 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Image.cpp | 46 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Image.h | 20 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ImageIndex.cpp | 51 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ImageIndex.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/IndexRangeCache.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/IndexRangeCache.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/InfoLog.h | 90 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/LoggingAnnotator.cpp | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/LoggingAnnotator.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/MemoryObject.cpp | 28 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/MemoryObject.h | 16 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.cpp | 108 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/MemoryProgramCache.h | 17 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Observer.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay.cpp | 102 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay.h | 151 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/OverlayWidgets.cpp | 579 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/OverlayWidgets.h | 185 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay_autogen.cpp | 322 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay_autogen.h | 47 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay_font_autogen.cpp | 2728 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Overlay_font_autogen.h | 29 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Path.cpp | 77 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Path.h | 71 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Platform.cpp | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Program.cpp | 2855 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Program.h | 690 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramExecutable.cpp | 519 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramExecutable.h | 399 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.cpp | 97 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramLinkedResources.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramPipeline.cpp | 700 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ProgramPipeline.h | 107 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Query.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Query.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/RefCountObject.h | 34 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Renderbuffer.cpp | 163 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Renderbuffer.h | 72 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ResourceManager.cpp | 256 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ResourceManager.h | 213 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/ResourceMap.h | 139 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Sampler.cpp | 60 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Sampler.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Semaphore.cpp | 9 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Semaphore.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Shader.cpp | 74 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Shader.h | 88 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/SizedMRUCache.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/State.cpp | 1347 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/State.h | 428 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Stream.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Stream.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Surface.cpp | 144 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Surface.h | 40 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Texture.cpp | 539 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Texture.h | 161 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Thread.cpp | 21 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Thread.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/TransformFeedback.cpp | 28 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/TransformFeedback.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Uniform.cpp | 66 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Uniform.h | 24 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VaryingPacking.cpp | 285 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VaryingPacking.h | 127 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Version.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/Version.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VertexArray.cpp | 64 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VertexArray.h | 26 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VertexAttribute.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/VertexAttribute.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/WorkerThread.cpp | 134 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/WorkerThread.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/angletypes.cpp | 522 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/angletypes.h | 447 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/angletypes.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_1_0_autogen.h | 263 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_2_0_autogen.h | 769 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_3_0_autogen.h | 611 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_3_1_autogen.h | 523 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_3_2_autogen.h | 553 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/capture_gles_ext_autogen.h | 2558 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/entry_points_enum_autogen.h | 1366 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/entry_points_utils.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/es3_copy_conversion_table_autogen.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/features.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/format_map_autogen.cpp | 271 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/format_map_desktop.cpp | 128 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/formatutils.cpp | 904 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/formatutils.h | 172 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/frame_capture_utils_autogen.h | 1576 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/gl_enum_utils.h | 28 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/gl_enum_utils_autogen.h | 218 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/queryconversions.cpp | 31 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/queryconversions.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/queryutils.cpp | 1279 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/queryutils.h | 52 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/BufferImpl.cpp | 33 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/BufferImpl.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/CompilerImpl.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.cpp | 105 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ContextImpl.h | 150 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/DeviceImpl.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/DeviceImpl.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/DisplayImpl.cpp | 25 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/DisplayImpl.h | 23 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/EGLImplFactory.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/EGLReusableSync.cpp | 116 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/EGLReusableSync.h | 54 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/EGLSyncImpl.cpp | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/EGLSyncImpl.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/FenceNVImpl.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/Format.h | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/FormatID_autogen.h | 45 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/Format_table_autogen.cpp | 477 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/FramebufferImpl.h | 24 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/GLImplFactory.h | 21 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ImageImpl.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/MemoryObjectImpl.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/OverlayImpl.h | 49 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/PathImpl.h | 36 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ProgramImpl.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ProgramPipelineImpl.cpp | 20 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ProgramPipelineImpl.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/QueryImpl.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/RenderTargetCache.h | 48 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/RenderbufferImpl.h | 113 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/SamplerImpl.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/SemaphoreImpl.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ShaderImpl.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/ShaderImpl.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/StreamProducerImpl.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/SurfaceImpl.cpp | 20 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/SurfaceImpl.h | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/SyncImpl.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.cpp | 78 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/TextureImpl.h | 64 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/TransformFeedbackImpl.h | 1 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.h | 21 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/copyvertex.inc.h | 121 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/CompilerD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DeviceD3D.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DeviceD3D.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.cpp | 100 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DisplayD3D.h | 68 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.cpp | 130 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicHLSL.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.cpp | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/EGLImageD3D.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/EGLImageD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.cpp | 159 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/FramebufferD3D.h | 26 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/HLSLCompiler.cpp | 22 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/HLSLCompiler.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ImageD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/IndexBuffer.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/IndexBuffer.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/IndexDataManager.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/IndexDataManager.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/NativeWindowD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.cpp | 420 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ProgramD3D.h | 56 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RenderTargetD3D.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RenderTargetD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp | 32 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RenderbufferD3D.h | 14 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/RendererD3D.h | 16 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/SamplerD3D.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.cpp | 54 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderD3D.h | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/ShaderExecutableD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/SurfaceD3D.cpp | 21 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/SurfaceD3D.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/SwapChainD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.cpp | 289 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureD3D.h | 48 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/TextureStorage.h | 34 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/VertexBuffer.cpp | 31 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/VertexBuffer.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/VertexDataManager.cpp | 54 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/VertexDataManager.h | 11 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Blit11Helper_autogen.inc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.cpp | 242 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Buffer11.h | 34 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.cpp | 118 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Clear11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.cpp | 415 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Context11.h | 100 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.cpp | 33 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/DebugAnnotator11.h | 15 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.cpp | 31 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ExternalImageSiblingImpl11.h | 18 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Fence11.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Fence11.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.cpp | 40 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Framebuffer11.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Image11.h | 9 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/IndexBuffer11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/InputLayoutCache.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/NativeWindow11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/PixelTransfer11.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Program11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Query11.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Query11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp | 103 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.h | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp | 622 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Renderer11.h | 64 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.cpp | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ResourceManager11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/ShaderExecutable11.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp | 392 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StateManager11.h | 24 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.cpp | 5 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/StreamProducerD3DTexture.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/SwapChain11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp | 384 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h | 85 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/TransformFeedback11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Trim11.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/Trim11.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexArray11.cpp | 41 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexArray11.h | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/VertexBuffer11.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/converged/CompositorNativeWindow11.cpp | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp | 516 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/dxgi_support_table.h | 43 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/dxgi_support_table_autogen.cpp | 3042 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/formatutils11.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/formatutils11.h | 12 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp | 430 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h | 32 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp | 198 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/texture_format_table_utils.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.cpp | 6 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d11/win32/NativeWindow11Win32.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.cpp | 32 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Blit9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.cpp | 168 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Context9.h | 95 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.cpp | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/DebugAnnotator9.h | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Fence9.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Fence9.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.cpp | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Framebuffer9.h | 10 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.cpp | 22 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Image9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/IndexBuffer9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/NativeWindow9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Query9.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Query9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/RenderTarget9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp | 96 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/Renderer9.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/ShaderCache.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/ShaderExecutable9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp | 104 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/StateManager9.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/SwapChain9.cpp | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/SwapChain9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.cpp | 47 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/TextureStorage9.h | 17 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/VertexBuffer9.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.cpp | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/VertexDeclarationCache.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp | 201 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/formatutils9.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp | 69 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/d3d9/vertexconversion.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d/formatutilsD3D.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.cpp | 206 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/d3d_format.h | 55 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.cpp | 114 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/driver_utils.h | 74 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/dxgi_format_map.h | 27 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/dxgi_format_map_autogen.cpp | 516 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/dxgi_support_table.h | 43 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/dxgi_support_table_autogen.cpp | 3042 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/gl/functionsgl_enums.h | 1376 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/load_functions_table_autogen.cpp | 443 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.cpp | 594 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/renderer_utils.h | 210 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/renderer/serial_utils.h | 106 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/trace.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationEGL.cpp | 946 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationEGL.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES.cpp | 2162 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES.h | 492 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES1.cpp | 557 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES1_autogen.h | 224 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES2.cpp | 2829 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES2.h | 33 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES2_autogen.h | 463 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES3.cpp | 1106 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES3.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES31.cpp | 834 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES31.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES31_autogen.h | 326 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES32.cpp | 589 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES32.h | 20 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES32_autogen.h | 225 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationES3_autogen.h | 368 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationESEXT.cpp | 1189 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationESEXT_autogen.h | 1388 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL1.cpp | 476 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL11.cpp | 31 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL11_autogen.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL12_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL13.cpp | 88 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL13_autogen.h | 98 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL14.cpp | 87 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL14_autogen.h | 89 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL15.cpp | 8 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL15_autogen.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL1_autogen.h | 499 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL2.cpp | 65 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL21_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL2_autogen.h | 67 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL3.cpp | 109 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL31.cpp | 15 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL31_autogen.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL32.cpp | 54 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL32_autogen.h | 40 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL33.cpp | 129 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL33_autogen.h | 111 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL3_autogen.h | 79 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL4.cpp | 169 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL41.cpp | 151 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL41_autogen.h | 156 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL42.cpp | 28 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL42_autogen.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL43.cpp | 167 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL43_autogen.h | 117 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL44.cpp | 36 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL44_autogen.h | 38 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL45.cpp | 537 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL45_autogen.h | 532 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL46.cpp | 11 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL46_autogen.h | 13 thunderbird-78.9.0/gfx/angle/checkout/src/libANGLE/validationGL4_autogen.h | 155 thunderbird-78.9.0/gfx/angle/checkout/src/libEGL/egl_loader_autogen.cpp | 406 thunderbird-78.9.0/gfx/angle/checkout/src/libEGL/egl_loader_autogen.h | 305 thunderbird-78.9.0/gfx/angle/checkout/src/libEGL/libEGL.cpp | 76 thunderbird-78.9.0/gfx/angle/checkout/src/libEGL/libEGL.def | 7 thunderbird-78.9.0/gfx/angle/checkout/src/libEGL/libEGL.rc | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_egl.cpp | 441 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_egl.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_egl_ext.cpp | 644 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_egl_ext.h | 30 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.cpp | 1590 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_1_0_autogen.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.cpp | 2972 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_2_0_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.cpp | 2402 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_0_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.cpp | 1716 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_1_autogen.h | 2 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.cpp | 1274 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_3_2_autogen.h | 161 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.cpp |27446 ++ thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/entry_points_gles_ext_autogen.h | 1039 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/global_state.cpp | 211 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/global_state.h | 114 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/libGLESv2.rc | 36 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.cpp | 2129 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/libGLESv2_autogen.def | 335 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/proc_table_egl.h | 4 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/proc_table_egl_autogen.cpp | 282 thunderbird-78.9.0/gfx/angle/checkout/src/libGLESv2/resource.h | 3 thunderbird-78.9.0/gfx/angle/checkout/src/third_party/trace_event/trace_event.h | 32 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vk_icd.h | 228 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vk_layer.h | 210 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vk_platform.h | 82 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vk_sdk_platform.h | 69 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vulkan.h | 87 thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vulkan.hpp |94266 ++++++++++ thunderbird-78.9.0/gfx/angle/checkout/third_party/vulkan-headers/src/include/vulkan/vulkan_core.h |11384 + thunderbird-78.9.0/gfx/angle/checkout/third_party/zlib/google/compression_utils_portable.cc | 205 thunderbird-78.9.0/gfx/angle/checkout/third_party/zlib/google/compression_utils_portable.h | 63 thunderbird-78.9.0/gfx/angle/cherry_picks.txt | 199 thunderbird-78.9.0/gfx/angle/moz.build | 10 thunderbird-78.9.0/gfx/angle/moz.build.common | 23 thunderbird-78.9.0/gfx/angle/targets/angle_common/moz.build | 401 thunderbird-78.9.0/gfx/angle/targets/angle_gpu_info_util/moz.build | 367 thunderbird-78.9.0/gfx/angle/targets/angle_image_util/moz.build | 353 thunderbird-78.9.0/gfx/angle/targets/compression_utils_portable/moz.build | 170 thunderbird-78.9.0/gfx/angle/targets/libEGL/moz.build | 437 thunderbird-78.9.0/gfx/angle/targets/libGLESv2/moz.build | 840 thunderbird-78.9.0/gfx/angle/targets/preprocessor/moz.build | 367 thunderbird-78.9.0/gfx/angle/targets/translator/moz.build | 619 thunderbird-78.9.0/gfx/angle/update-angle.py | 563 thunderbird-78.9.0/gfx/angle/vendor_from_git.py | 53 thunderbird-78.9.0/gfx/ots/src/glyf.cc | 206 thunderbird-78.9.0/gfx/ots/src/glyf.h | 28 thunderbird-78.9.0/gfx/thebes/gfxFontEntry.cpp | 6 thunderbird-78.9.0/image/Image.cpp | 2 thunderbird-78.9.0/intl/tzdata/GIT-INFO | 8 thunderbird-78.9.0/intl/tzdata/VERSION | 2 thunderbird-78.9.0/intl/tzdata/source/metaZones.txt | 21 thunderbird-78.9.0/intl/tzdata/source/windowsZones.txt | 13 thunderbird-78.9.0/intl/tzdata/source/zoneinfo64.txt | 104 thunderbird-78.9.0/ipc/glue/BackgroundUtils.cpp | 2 thunderbird-78.9.0/js/public/GCAPI.h | 4 thunderbird-78.9.0/js/src/builtin/TestingFunctions.cpp | 6 thunderbird-78.9.0/js/src/builtin/intl/TimeZoneDataGenerated.h | 2 thunderbird-78.9.0/js/src/debugger/Frame.cpp | 1 thunderbird-78.9.0/js/src/debugger/Object.cpp | 5 thunderbird-78.9.0/js/src/devtools/rootAnalysis/analyzeRoots.js | 59 thunderbird-78.9.0/js/src/devtools/rootAnalysis/mach_commands.py | 3 thunderbird-78.9.0/js/src/frontend/BytecodeEmitter.cpp | 2 thunderbird-78.9.0/js/src/frontend/OptionalEmitter.cpp | 2 thunderbird-78.9.0/js/src/frontend/OptionalEmitter.h | 3 thunderbird-78.9.0/js/src/gc/GC.cpp | 62 thunderbird-78.9.0/js/src/gc/GCRuntime.h | 4 thunderbird-78.9.0/js/src/jit/CacheIR.cpp | 4 thunderbird-78.9.0/js/src/jit/MacroAssembler.h | 4 thunderbird-78.9.0/js/src/jit/mips-shared/Assembler-mips-shared.cpp | 15 thunderbird-78.9.0/js/src/jit/mips-shared/Assembler-mips-shared.h | 4 thunderbird-78.9.0/js/src/jit/mips-shared/MacroAssembler-mips-shared-inl.h | 24 thunderbird-78.9.0/js/src/jit/mips-shared/MacroAssembler-mips-shared.cpp | 5 thunderbird-78.9.0/js/src/jit/mips-shared/MacroAssembler-mips-shared.h | 3 thunderbird-78.9.0/js/src/jit/mips32/MacroAssembler-mips32-inl.h | 13 thunderbird-78.9.0/js/src/jit/mips64/MacroAssembler-mips64-inl.h | 38 thunderbird-78.9.0/js/src/jit/mips64/MacroAssembler-mips64.cpp | 8 thunderbird-78.9.0/js/src/jit/mips64/MacroAssembler-mips64.h | 10 thunderbird-78.9.0/js/src/jit/x64/Assembler-x64.h | 4 thunderbird-78.9.0/js/src/jit/x64/CodeGenerator-x64.cpp | 7 thunderbird-78.9.0/js/src/jit/x64/MacroAssembler-x64-inl.h | 6 thunderbird-78.9.0/js/src/jit/x86/CodeGenerator-x86.cpp | 7 thunderbird-78.9.0/js/src/jit/x86/LIR-x86.h | 7 thunderbird-78.9.0/js/src/jit/x86/Lowering-x86.cpp | 7 thunderbird-78.9.0/js/src/jsapi-tests/testGCFinalizeCallback.cpp | 24 thunderbird-78.9.0/js/src/jsapi-tests/testGCGrayMarking.cpp | 4 thunderbird-78.9.0/js/src/jsapi-tests/testGCWeakCache.cpp | 2 thunderbird-78.9.0/js/src/jsapi.cpp | 5 thunderbird-78.9.0/js/src/jsapi.h | 5 thunderbird-78.9.0/js/src/jsfriendapi.h | 21 thunderbird-78.9.0/js/src/shell/js.cpp | 45 thunderbird-78.9.0/js/src/tests/non262/ArrayBuffer/bug1689503.js | 9 thunderbird-78.9.0/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backward_links.js | 2 thunderbird-78.9.0/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backzone.js | 3 thunderbird-78.9.0/js/src/tests/non262/Intl/DateTimeFormat/timeZone_backzone_links.js | 2 thunderbird-78.9.0/js/src/tests/non262/Intl/DateTimeFormat/timeZone_notbackward_links.js | 2 thunderbird-78.9.0/js/src/vm/ArrayBufferObject.cpp | 7 thunderbird-78.9.0/js/src/vm/ArrayBufferViewObject.cpp | 31 thunderbird-78.9.0/js/src/vm/NativeObject-inl.h | 2 thunderbird-78.9.0/js/src/vm/Runtime.h | 3 thunderbird-78.9.0/js/src/vm/TypedArrayObject.cpp | 4 thunderbird-78.9.0/js/src/wasm/WasmBaselineCompile.cpp | 34 thunderbird-78.9.0/js/src/wasm/WasmIonCompile.cpp | 3 thunderbird-78.9.0/js/xpconnect/src/XPCVariant.cpp | 6 thunderbird-78.9.0/js/xpconnect/src/XPCWrappedNativeInfo.cpp | 3 thunderbird-78.9.0/layout/base/PresShell.cpp | 6 thunderbird-78.9.0/layout/base/PresShell.h | 1 thunderbird-78.9.0/layout/generic/nsFrameSelection.cpp | 21 thunderbird-78.9.0/layout/generic/nsFrameSelection.h | 6 thunderbird-78.9.0/layout/tools/reftest/mach_test_package_commands.py | 10 thunderbird-78.9.0/mach | 9 thunderbird-78.9.0/media/audioipc/bug1648612.patch | 99 thunderbird-78.9.0/media/audioipc/client/src/stream.rs | 18 thunderbird-78.9.0/media/audioipc/update.sh | 2 thunderbird-78.9.0/media/gmp-clearkey/0.1/moz.build | 1 thunderbird-78.9.0/media/webrtc/signaling/src/media-conduit/WebrtcMediaDataEncoderCodec.cpp | 245 thunderbird-78.9.0/media/webrtc/signaling/src/media-conduit/WebrtcMediaDataEncoderCodec.h | 17 thunderbird-78.9.0/media/webrtc/signaling/src/mediapipeline/MediaPipeline.cpp | 6 thunderbird-78.9.0/media/webrtc/signaling/src/peerconnection/MediaTransportHandler.cpp | 24 thunderbird-78.9.0/media/webrtc/signaling/src/sdp/sipcc/sdp_attr.c | 6 thunderbird-78.9.0/mfbt/RefCounted.h | 90 thunderbird-78.9.0/mfbt/ThreadSafeWeakPtr.h | 253 thunderbird-78.9.0/mfbt/tests/TestThreadSafeWeakPtr.cpp | 28 thunderbird-78.9.0/mobile/android/app/mobile.js | 4 thunderbird-78.9.0/modules/libpref/init/StaticPrefList.yaml | 5 thunderbird-78.9.0/mozglue/build/TsanOptions.cpp | 4 thunderbird-78.9.0/mozglue/misc/WindowsProcessMitigations.cpp | 28 thunderbird-78.9.0/mozglue/misc/interceptor/MMPolicies.h | 38 thunderbird-78.9.0/netwerk/base/LoadInfo.cpp | 4 thunderbird-78.9.0/netwerk/base/LoadInfo.h | 14 thunderbird-78.9.0/netwerk/base/nsNetUtil.cpp | 5 thunderbird-78.9.0/netwerk/dns/effective_tld_names.dat | 205 thunderbird-78.9.0/netwerk/dns/nsDNSService2.cpp | 36 thunderbird-78.9.0/netwerk/dns/nsDNSService2.h | 3 thunderbird-78.9.0/netwerk/ipc/NeckoChannelParams.ipdlh | 1 thunderbird-78.9.0/netwerk/protocol/http/HttpTransactionParent.cpp | 4 thunderbird-78.9.0/netwerk/protocol/http/HttpTransactionShell.h | 4 thunderbird-78.9.0/netwerk/protocol/http/nsHttpHandler.cpp | 14 thunderbird-78.9.0/netwerk/protocol/http/nsHttpTransaction.cpp | 28 thunderbird-78.9.0/netwerk/protocol/http/nsHttpTransaction.h | 2 thunderbird-78.9.0/netwerk/protocol/viewsource/nsIViewSourceChannel.idl | 5 thunderbird-78.9.0/netwerk/protocol/viewsource/nsViewSourceChannel.cpp | 2 thunderbird-78.9.0/netwerk/sctp/src/netinet/sctp_input.c | 91 thunderbird-78.9.0/netwerk/sctp/src/netinet/sctp_pcb.c | 16 thunderbird-78.9.0/netwerk/test/unit/http2-ca.pem | 2 thunderbird-78.9.0/other-licenses/atk-1.0/atk/atkobject.h | 8 thunderbird-78.9.0/parser/html/javasrc/MetaScanner.java | 7 thunderbird-78.9.0/parser/html/javasrc/Portability.java | 13 thunderbird-78.9.0/parser/html/javasrc/Tokenizer.java | 6 thunderbird-78.9.0/parser/html/nsHtml5MetaScanner.cpp | 2 thunderbird-78.9.0/parser/html/nsHtml5Portability.cpp | 9 thunderbird-78.9.0/parser/html/nsHtml5Portability.h | 1 thunderbird-78.9.0/parser/html/nsHtml5Tokenizer.cpp | 2 thunderbird-78.9.0/python/mach/docs/commands.rst | 16 thunderbird-78.9.0/python/mach/docs/settings.rst | 13 thunderbird-78.9.0/python/mach/mach/commands/commandinfo.py | 11 thunderbird-78.9.0/python/mach/mach/commands/settings.py | 8 thunderbird-78.9.0/python/mach/mach/decorators.py | 39 thunderbird-78.9.0/python/mach/mach/dispatcher.py | 5 thunderbird-78.9.0/python/mach/mach/main.py | 10 thunderbird-78.9.0/python/mach/mach/mixin/process.py | 3 thunderbird-78.9.0/python/mach/mach/registrar.py | 28 thunderbird-78.9.0/python/mach/mach/test/providers/basic.py | 3 thunderbird-78.9.0/python/mach/mach/test/providers/commands.py | 3 thunderbird-78.9.0/python/mach/mach/test/providers/conditions.py | 12 thunderbird-78.9.0/python/mach/mach/test/providers/conditions_invalid.py | 3 thunderbird-78.9.0/python/mach/mach/test/providers/throw.py | 4 thunderbird-78.9.0/python/mach/mach/test/test_commands.py | 7 thunderbird-78.9.0/python/mach/mach/test/test_conditions.py | 29 thunderbird-78.9.0/python/mach/mach/test/test_error_output.py | 9 thunderbird-78.9.0/python/mach_commands.py | 70 thunderbird-78.9.0/python/mozboot/mozboot/mach_commands.py | 24 thunderbird-78.9.0/python/mozbuild/mozbuild/action/test_archive.py | 7 thunderbird-78.9.0/python/mozbuild/mozbuild/base.py | 29 thunderbird-78.9.0/python/mozbuild/mozbuild/code-analysis/mach_commands.py | 14 thunderbird-78.9.0/python/mozbuild/mozbuild/configure/__init__.py | 142 thunderbird-78.9.0/python/mozbuild/mozbuild/frontend/mach_commands.py | 2 thunderbird-78.9.0/python/mozbuild/mozbuild/mach_commands.py | 4 thunderbird-78.9.0/python/mozbuild/mozbuild/pythonutil.py | 3 thunderbird-78.9.0/python/mozbuild/mozbuild/test/configure/common.py | 156 thunderbird-78.9.0/python/mozbuild/mozbuild/test/configure/test_configure.py | 52 thunderbird-78.9.0/python/mozbuild/mozbuild/test/configure/test_moz_configure.py | 23 thunderbird-78.9.0/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py | 4 thunderbird-78.9.0/python/mozbuild/mozbuild/test/python.ini | 3 thunderbird-78.9.0/python/mozbuild/mozbuild/test/test_base.py | 4 thunderbird-78.9.0/python/mozbuild/mozbuild/vendor_python.py | 4 thunderbird-78.9.0/python/mozbuild/mozbuild/virtualenv.py | 25 thunderbird-78.9.0/python/mozbuild/mozpack/executables.py | 5 thunderbird-78.9.0/python/mozbuild/mozpack/test/python.ini | 1 thunderbird-78.9.0/python/mozperftest/mozperftest/browser/noderunner.py | 2 thunderbird-78.9.0/python/mozperftest/mozperftest/mach_commands.py | 4 thunderbird-78.9.0/python/mozperftest/mozperftest/tests/test_mach_commands.py | 12 thunderbird-78.9.0/remote/mach_commands.py | 4 thunderbird-78.9.0/security/manager/ssl/StaticHPKPins.h | 14 thunderbird-78.9.0/security/manager/ssl/nsSTSPreloadList.inc |19620 +- thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/client-cert-via-intermediate.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/client-cert-with-ocsp-signing.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/code-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/ee-from-expired-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/ee-from-untrusted-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/email-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/has-cn.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/has-empty-subject.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/has-non-empty-subject.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/has-o.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/has-ou.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/intermediate.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/invalid.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/longOID.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/md5-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/pgo-ca-all-usages.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/pgo-ca-regular-usages.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/revoked.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/ssl-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/unknown-issuer.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/mochitest/browser/untrusted-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/badSubjectAltNames.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/beforeEpochIssuer.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ca-used-as-end-entity.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/default-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ee-from-missing-intermediate.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ee-imminently-distrusted.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/eeIssuedByNonCA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/eeIssuedByV1Cert.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/emptyIssuerName.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/emptyNameCA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ev-test-intermediate.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ev-test.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/expiredissuer.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/idn-certificate.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/inadequateKeySizeEE.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/inadequatekeyusage-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/ipAddressAsDNSNameInSAN.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/md5signature.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/mismatch-untrusted.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/mismatch.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/mismatchCN.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/mitm.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/noValidNames.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/notYetValidIssuer.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/nsCertTypeCritical.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/nsCertTypeCriticalWithExtKeyUsage.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/nsCertTypeNotCritical.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/other-issuer-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/self-signed-EE-with-cA-true.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/selfsigned-inadequateEKU.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/selfsigned.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/test-ca.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/unknownissuer.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/untrustedissuer.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/bad_certs/v1Cert.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/ca-used-as-end-entity.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/default-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/delegatedSHA1Signer.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/delegatedSigner.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/invalidDelegatedSignerFromIntermediate.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/invalidDelegatedSignerKeyUsageCrlSigning.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/invalidDelegatedSignerNoExtKeyUsage.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/invalidDelegatedSignerWrongExtKeyUsage.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/multi-tls-feature-bad-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/multi-tls-feature-good-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/must-staple-ee-with-must-staple-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/must-staple-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/must-staple-missing-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/ocspEEWithIntermediate.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/ocspOtherEndEntity.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/rsa-1016-keysizeDelegatedSigner.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/test-ca.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/test-multi-tls-feature-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/ocsp_certs/test-must-staple-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/sign_app.py | 22 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_certDB_import/emailEE.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_certDB_import/importedCA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-CA.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-SA-CA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-SA-OCSP.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-SA-nsSGC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-SA.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-int-CA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-int-SA-CA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-int-SA-OCSP.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-int-SA-nsSGC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-int-SA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/ee-nsSGC.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/int-CA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/int-SA-CA.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/int-SA-OCSP.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/int-SA-nsSGC.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_eku/int-SA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_embedded_null/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_embedded_null/embeddedNull.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_embedded_null/embeddedNullCNAndSAN.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_embedded_null/embeddedNullSAN.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_embedded_null/embeddedNullSAN2.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ca-all-usages.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ca-missing-keyCertSign.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ca-no-keyUsage-extension.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-and-keyEncipherment-ca-all-usages.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-and-keyEncipherment-ca-missing-keyCertSign.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-and-keyEncipherment-ca-no-keyUsage-extension.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-only-ca-all-usages.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-only-ca-missing-keyCertSign.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyCertSign-only-ca-no-keyUsage-extension.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyEncipherment-only-ca-all-usages.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyEncipherment-only-ca-missing-keyCertSign.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-keyEncipherment-only-ca-no-keyUsage-extension.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-no-keyUsage-extension-ca-all-usages.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-no-keyUsage-extension-ca-missing-keyCertSign.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_keyUsage/ee-no-keyUsage-extension-ca-no-keyUsage-extension.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ca-rsa.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ca-secp384r1.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ee-rsa-direct.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ee-rsa.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ee-secp384r1-direct.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/ee-secp384r1.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/int-rsa.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_signatures/int-secp384r1.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_trust/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_trust/ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_trust/int.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_utf8/certificateToAlter.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v1-BC-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v1-BC-not-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v1-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v2-BC-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v2-BC-not-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v2-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v3-BC-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v3-BC-not-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v3-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v4-BC-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v4-BC-not-cA_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee-v4-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v1-BC-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v1-BC-not-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v1-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v2-BC-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v2-BC-not-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v2-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v3-BC-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v3-BC-not-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v3-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v4-BC-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v4-BC-not-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ee_int-v4-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v1-BC-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v1-BC-not-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v1-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v2-BC-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v2-BC-not-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v2-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v3-BC-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v3-BC-not-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v3-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v4-BC-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v4-BC-not-cA_ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/int-v4-noBC_ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v1-BC-cA.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v1-BC-not-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v1-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v2-BC-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v2-BC-not-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v2-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v3-BC-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v3-BC-not-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v3-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v4-BC-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v4-BC-not-cA.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_cert_version/ss-v4-noBC.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_onecrl_RSA_ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_onecrl_ee.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_onecrl_no_SAN_ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_onecrl_wrong_key_ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_remote_newtab_ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_content_signing/content_signing_root.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ct/ct-insufficient-scts.example.com.pem | 34 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ct/ct-valid.example.com.pem | 52 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ct/default-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ct/test-ca.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_delegated_credentials/default-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_delegated_credentials/delegated-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_delegated_credentials/test-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_delegated_credentials/test-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/anyPolicy-ee-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/anyPolicy-ee-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/anyPolicy-int-path-ee.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/anyPolicy-int-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-and-test-oid-ee-cabforum-oid-int-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-and-test-oid-ee-cabforum-oid-int-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-and-test-oid-ee-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-and-test-oid-ee-path-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-oid-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/cabforum-oid-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/no-ocsp-ee-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/no-ocsp-ee-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/no-ocsp-int-path-ee.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/no-ocsp-int-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/non-ev-root-path-ee.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/non-ev-root-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/non-evroot-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/reverse-order-oids-path-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/reverse-order-oids-path-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-and-cabforum-oid-ee-cabforum-oid-int-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-and-cabforum-oid-ee-cabforum-oid-int-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-and-cabforum-oid-ee-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-and-cabforum-oid-ee-path-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-oid-ee-cabforum-oid-int-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-oid-ee-cabforum-oid-int-path-int.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-oid-path-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ev_certs/test-oid-path-int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-bad-ku-no-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-bad-ku-server-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-cA-FALSE-asserts-keyCertSign.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-limited-depth-invalid.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-limited-depth.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-no-extensions.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-no-ku-no-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-no-ku-server-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-not-a-ca.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-valid-ku-no-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/ee-int-valid-ku-server-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-bad-ku-no-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-bad-ku-server-eku.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-cA-FALSE-asserts-keyCertSign.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-limited-depth-invalid.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-limited-depth.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-no-extensions.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-no-ku-no-eku.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-no-ku-server-eku.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-not-a-ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-valid-ku-no-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_basic_usage_constraints/int-valid-ku-server-eku.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_preloads/default-ee.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_preloads/ee2.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_preloads/int.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_intermediate_preloads/int2.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_rsa_1016-int_rsa_1024-root_rsa_1024.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_rsa_1024-int_rsa_1016-root_rsa_1024.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_rsa_1024-int_rsa_1024-root_rsa_1016.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_rsa_1024-int_rsa_1024-root_rsa_1024.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp224r1_224-int_secp256r1_256-root_rsa_2048.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp224r1_224-int_secp256r1_256-root_secp256r1_256.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp256k1_256-int_secp256r1_256-root_secp256r1_256.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp256r1_256-int_rsa_1016-root_secp256r1_256.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp256r1_256-int_secp224r1_224-root_secp256r1_256.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp256r1_256-int_secp256r1_256-root_secp224r1_224.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp256r1_256-int_secp256r1_256-root_secp256k1_256.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp384r1_384-int_secp256r1_256-root_rsa_2048.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/ee_secp521r1_521-int_secp384r1_384-root_secp256r1_256.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_rsa_1016-root_rsa_1024.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_rsa_1016-root_secp256r1_256.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_rsa_1024-root_rsa_1016.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_rsa_1024-root_rsa_1024.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp224r1_224-root_secp256r1_256.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp256r1_256-root_rsa_2048.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp256r1_256-root_secp224r1_224.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp256r1_256-root_secp256k1_256.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp256r1_256-root_secp256r1_256.pem | 10 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/int_secp384r1_384-root_secp256r1_256.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_rsa_1016.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_rsa_1024.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_rsa_2048.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_secp224r1_224.pem | 8 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_secp256k1_256.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize/root_secp256r1_256.pem | 12 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_ee_rsa_2040-ev_int_rsa_2048-evroot.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_ee_rsa_2048-ev_int_rsa_2040-evroot.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_ee_rsa_2048-ev_int_rsa_2048-ev_root_rsa_2040.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_ee_rsa_2048-ev_int_rsa_2048-evroot.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_int_rsa_2040-evroot.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_int_rsa_2048-ev_root_rsa_2040.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_keysize_ev/ev_int_rsa_2048-evroot.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_missing_intermediate/missing-intermediate.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/NameConstraints.dcissallowed.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/NameConstraints.dcissblocked.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/ca-example-com-permitted.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/dciss.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/ee-example-com-and-org.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/ee-example-com.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/ee-example-org.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/ee-example-test.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_name_constraints/int-example-org-permitted.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/bad-scheme.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/ca.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/empty-scheme-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/ftp-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/hTTp-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/https-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/int.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/negative-port.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/no-host-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/no-path-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/no-scheme-host-port.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/no-scheme-url.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/unknown-scheme.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_ocsp_url/user-pass.pem | 16 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/another-ee-revoked-by-revocations-txt-serial-2.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/another-ee-revoked-by-revocations-txt.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/ee-revoked-by-revocations-txt.pem | 14 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/ee-revoked-by-subject-and-pubkey.pem | 20 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/same-issuer-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_onecrl/test-int-ee.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_validity/ev_ee_27_months-ev_int_60_months-evroot.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_validity/ev_ee_28_months-ev_int_60_months-evroot.pem | 18 thunderbird-78.9.0/security/manager/ssl/tests/unit/test_validity/ev_int_60_months-evroot.pem | 18 thunderbird-78.9.0/security/manager/tools/PreloadedHPKPins.json | 5 thunderbird-78.9.0/security/sandbox/mac/SandboxPolicyContent.h | 1 thunderbird-78.9.0/security/sandbox/mac/SandboxPolicyFlash.h | 1 thunderbird-78.9.0/services/settings/dumps/blocklists/addons-bloomfilters.json | 4153 thunderbird-78.9.0/services/settings/dumps/blocklists/addons.json |21961 ++ thunderbird-78.9.0/services/settings/dumps/blocklists/gfx.json | 1087 thunderbird-78.9.0/services/settings/dumps/blocklists/plugins.json | 3515 thunderbird-78.9.0/services/settings/dumps/main/anti-tracking-url-decoration.json | 11 thunderbird-78.9.0/services/settings/dumps/main/example.json | 4 thunderbird-78.9.0/services/settings/dumps/main/hijack-blocklists.json | 59 thunderbird-78.9.0/services/settings/dumps/main/language-dictionaries.json | 647 thunderbird-78.9.0/services/settings/dumps/main/onboarding.json | 96 thunderbird-78.9.0/services/settings/dumps/main/search-config.json | 4368 thunderbird-78.9.0/services/settings/dumps/main/search-default-override-allowlist.json | 17 thunderbird-78.9.0/services/settings/dumps/main/sites-classification.json | 463 thunderbird-78.9.0/services/settings/dumps/main/url-classifier-skip-urls.json | 4 thunderbird-78.9.0/services/settings/dumps/pinning/pins.json | 4 thunderbird-78.9.0/services/settings/dumps/security-state/intermediates.json |47867 +++++ thunderbird-78.9.0/services/settings/dumps/security-state/onecrl.json |19925 ++ thunderbird-78.9.0/sourcestamp.txt | 6 thunderbird-78.9.0/taskcluster/ci/condprof/kind.yml | 14 thunderbird-78.9.0/taskcluster/ci/config.yml | 24 thunderbird-78.9.0/taskcluster/ci/docker-image/kind.yml | 5 thunderbird-78.9.0/taskcluster/ci/fetch/toolchains.yml | 14 thunderbird-78.9.0/taskcluster/ci/generate-profile/kind.yml | 8 thunderbird-78.9.0/taskcluster/ci/source-test/python.yml | 6 thunderbird-78.9.0/taskcluster/ci/system-symbols/kind.yml | 26 thunderbird-78.9.0/taskcluster/ci/test/mochitest.yml | 5 thunderbird-78.9.0/taskcluster/ci/test/xpcshell.yml | 1 thunderbird-78.9.0/taskcluster/ci/toolchain/clang.yml | 20 thunderbird-78.9.0/taskcluster/docker/firefox-snap/Dockerfile | 68 thunderbird-78.9.0/taskcluster/docker/firefox-snap/download_and_install_snap.sh | 27 thunderbird-78.9.0/taskcluster/docker/periodic-updates/scripts/periodic_file_updates.sh | 2 thunderbird-78.9.0/taskcluster/docker/recipes/install-mercurial.sh | 8 thunderbird-78.9.0/taskcluster/docker/recipes/ubuntu1804-test-system-setup-base.sh | 166 thunderbird-78.9.0/taskcluster/docker/recipes/ubuntu1804-test-system-setup.sh | 151 thunderbird-78.9.0/taskcluster/docker/system-symbols-mac/Dockerfile | 44 thunderbird-78.9.0/taskcluster/docker/system-symbols-mac/requirements.txt | 2 thunderbird-78.9.0/taskcluster/docker/system-symbols-mac/setup.sh | 25 thunderbird-78.9.0/taskcluster/docker/system-symbols-win/Dockerfile | 55 thunderbird-78.9.0/taskcluster/docker/system-symbols-win/requirements.txt | 16 thunderbird-78.9.0/taskcluster/docker/ubuntu1804-test-base/Dockerfile | 22 thunderbird-78.9.0/taskcluster/docker/ubuntu1804-test-base/apt-prefs | 18 thunderbird-78.9.0/taskcluster/docker/ubuntu1804-test/Dockerfile | 10 thunderbird-78.9.0/taskcluster/docker/update-verify/Dockerfile | 2 thunderbird-78.9.0/taskcluster/docker/update-verify/system-setup.sh | 2 thunderbird-78.9.0/taskcluster/mach_commands.py | 2 thunderbird-78.9.0/taskcluster/scripts/misc/build-clang-mingw.sh | 6 thunderbird-78.9.0/taskcluster/scripts/misc/mingw-dwrite_3.patch | 84 thunderbird-78.9.0/taskcluster/scripts/run-task | 9 thunderbird-78.9.0/taskcluster/scripts/tester/test-linux.sh | 6 thunderbird-78.9.0/taskcluster/taskgraph/transforms/build.py | 4 thunderbird-78.9.0/taskcluster/taskgraph/transforms/job/mach.py | 24 thunderbird-78.9.0/taskcluster/taskgraph/transforms/job/python_test.py | 9 thunderbird-78.9.0/taskcluster/taskgraph/transforms/job/toolchain.py | 12 thunderbird-78.9.0/testing/condprofile/mach_commands.py | 2 thunderbird-78.9.0/testing/gtest/mach_test_package_commands.py | 10 thunderbird-78.9.0/testing/mach_commands.py | 8 thunderbird-78.9.0/testing/marionette/mach_test_package_commands.py | 6 thunderbird-78.9.0/testing/mochitest/mach_commands.py | 2 thunderbird-78.9.0/testing/mochitest/mach_test_package_commands.py | 14 thunderbird-78.9.0/testing/mochitest/runtests.py | 2 thunderbird-78.9.0/testing/mozbase/mozinstall/mozinstall/mozinstall.py | 15 thunderbird-78.9.0/testing/mozbase/mozlog/setup.py | 5 thunderbird-78.9.0/testing/mozbase/moznetwork/moznetwork/moznetwork.py | 3 thunderbird-78.9.0/testing/mozbase/mozrunner/mozrunner/devices/android_device.py | 11 thunderbird-78.9.0/testing/mozharness/configs/raptor/windows_config.py | 2 thunderbird-78.9.0/testing/mozharness/configs/raptor/windows_vm_config.py | 2 thunderbird-78.9.0/testing/mozharness/configs/unittests/linux_unittest.py | 1 thunderbird-78.9.0/testing/mozharness/configs/unittests/mac_unittest.py | 1 thunderbird-78.9.0/testing/mozharness/configs/unittests/win_unittest.py | 3 thunderbird-78.9.0/testing/mozharness/external_tools/robustcheckout.py | 36 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/AUTHORS.txt | 91 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/LICENSE.txt | 22 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/MANIFEST.in | 12 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/PKG-INFO | 87 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/README.rst | 31 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/bin/rebuild-script.py | 73 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/Makefile | 130 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/changes.rst | 985 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/conf.py | 155 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/development.rst | 61 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/index.rst | 137 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/installation.rst | 58 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/make.bat | 170 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/reference.rst | 261 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/docs/userguide.rst | 258 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/scripts/virtualenv | 3 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/setup.cfg | 8 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/setup.py | 123 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/site.py | 760 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/tests/test_activate.sh | 96 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/tests/test_activate_output.expected | 2 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/tests/test_cmdline.py | 44 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/tests/test_virtualenv.py | 139 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv.py | 2326 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate.bat | 30 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate.csh | 36 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate.fish | 76 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate.ps1 | 150 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate.sh | 78 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/activate_this.py | 34 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/deactivate.bat | 19 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/distutils-init.py | 101 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/distutils.cfg | 6 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/python-config | 78 thunderbird-78.9.0/testing/mozharness/external_tools/virtualenv/virtualenv_embedded/site.py | 758 thunderbird-78.9.0/testing/mozharness/mozharness/base/python.py | 25 thunderbird-78.9.0/testing/mozharness/mozharness/base/script.py | 2 thunderbird-78.9.0/testing/mozharness/mozharness/mozilla/l10n/locales.py | 5 thunderbird-78.9.0/testing/mozharness/scripts/android_emulator_pgo.py | 3 thunderbird-78.9.0/testing/mozharness/scripts/fx_desktop_build.py | 1 thunderbird-78.9.0/testing/mozharness/scripts/openh264_build.py | 1 thunderbird-78.9.0/testing/mozharness/scripts/repackage.py | 1 thunderbird-78.9.0/testing/testsuite-targets.mk | 10 thunderbird-78.9.0/testing/web-platform/mach_commands.py | 2 thunderbird-78.9.0/testing/web-platform/mach_test_package_commands.py | 10 thunderbird-78.9.0/testing/web-platform/meta/content-security-policy/frame-src/frame-src-redirect.html.ini | 5 thunderbird-78.9.0/testing/web-platform/meta/html/browsers/sandboxing/sandbox-navigation-timing.tentative.html.ini | 6 thunderbird-78.9.0/testing/web-platform/meta/html/syntax/serializing-html-fragments/escaping.html.ini | 9 thunderbird-78.9.0/testing/web-platform/tests/html/syntax/serializing-html-fragments/escaping.html | 89 thunderbird-78.9.0/testing/xpcshell/mach_test_package_commands.py | 10 thunderbird-78.9.0/testing/xpcshell/moz-http2/http2-cert.pem | 2 thunderbird-78.9.0/testing/xpcshell/moz.build | 4 thunderbird-78.9.0/testing/xpcshell/python.ini | 2 thunderbird-78.9.0/testing/xpcshell/runxpcshelltests.py | 30 thunderbird-78.9.0/testing/xpcshell/selftest.py | 58 thunderbird-78.9.0/testing/xpcshell/xpcshellcommandline.py | 4 thunderbird-78.9.0/third_party/python/biplist/AUTHORS | 3 thunderbird-78.9.0/third_party/python/biplist/LICENSE | 25 thunderbird-78.9.0/third_party/python/biplist/MANIFEST.in | 4 thunderbird-78.9.0/third_party/python/biplist/PKG-INFO | 24 thunderbird-78.9.0/third_party/python/biplist/README.md | 62 thunderbird-78.9.0/third_party/python/biplist/biplist/__init__.py | 977 thunderbird-78.9.0/third_party/python/biplist/setup.cfg | 5 thunderbird-78.9.0/third_party/python/biplist/setup.py | 58 thunderbird-78.9.0/third_party/python/pip-tools/.appveyor.yml | 115 thunderbird-78.9.0/third_party/python/pip-tools/.github/workflows/ci.yml | 66 thunderbird-78.9.0/third_party/python/pip-tools/.github/workflows/cron.yml | 69 thunderbird-78.9.0/third_party/python/pip-tools/.github/workflows/qa.yml | 43 thunderbird-78.9.0/third_party/python/pip-tools/.pre-commit-config.yaml | 10 thunderbird-78.9.0/third_party/python/pip-tools/.pre-commit-hooks.yaml | 7 thunderbird-78.9.0/third_party/python/pip-tools/.travis.yml | 40 thunderbird-78.9.0/third_party/python/pip-tools/CHANGELOG.md | 112 thunderbird-78.9.0/third_party/python/pip-tools/CONTRIBUTING.md | 1 thunderbird-78.9.0/third_party/python/pip-tools/PKG-INFO | 123 thunderbird-78.9.0/third_party/python/pip-tools/README.rst | 114 thunderbird-78.9.0/third_party/python/pip-tools/dev-requirements.txt | 5 thunderbird-78.9.0/third_party/python/pip-tools/piptools/_compat/__init__.py | 32 thunderbird-78.9.0/third_party/python/pip-tools/piptools/_compat/pip_compat.py | 119 thunderbird-78.9.0/third_party/python/pip-tools/piptools/exceptions.py | 10 thunderbird-78.9.0/third_party/python/pip-tools/piptools/locations.py | 3 thunderbird-78.9.0/third_party/python/pip-tools/piptools/logging.py | 30 thunderbird-78.9.0/third_party/python/pip-tools/piptools/repositories/base.py | 9 thunderbird-78.9.0/third_party/python/pip-tools/piptools/repositories/local.py | 24 thunderbird-78.9.0/third_party/python/pip-tools/piptools/repositories/pypi.py | 397 thunderbird-78.9.0/third_party/python/pip-tools/piptools/resolver.py | 103 thunderbird-78.9.0/third_party/python/pip-tools/piptools/scripts/compile.py | 127 thunderbird-78.9.0/third_party/python/pip-tools/piptools/scripts/sync.py | 114 thunderbird-78.9.0/third_party/python/pip-tools/piptools/sync.py | 38 thunderbird-78.9.0/third_party/python/pip-tools/piptools/utils.py | 65 thunderbird-78.9.0/third_party/python/pip-tools/piptools/writer.py | 10 thunderbird-78.9.0/third_party/python/pip-tools/setup.cfg | 59 thunderbird-78.9.0/third_party/python/pip-tools/setup.py | 57 thunderbird-78.9.0/third_party/python/pip-tools/tox.ini | 48 thunderbird-78.9.0/third_party/python/requirements.in | 5 thunderbird-78.9.0/third_party/python/requirements.txt | 17 thunderbird-78.9.0/third_party/python/virtualenv/AUTHORS.txt | 93 thunderbird-78.9.0/third_party/python/virtualenv/LICENSE.txt | 22 thunderbird-78.9.0/third_party/python/virtualenv/MANIFEST.in | 22 thunderbird-78.9.0/third_party/python/virtualenv/PKG-INFO | 78 thunderbird-78.9.0/third_party/python/virtualenv/README.rst | 44 thunderbird-78.9.0/third_party/python/virtualenv/README_MOZILLA | 10 thunderbird-78.9.0/third_party/python/virtualenv/__main__.py | 168 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs-1.4.4.dist-info/LICENSE.txt | 23 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs-1.4.4.dist-info/METADATA | 264 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs-1.4.4.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs-1.4.4.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs-1.4.4.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/appdirs-1.4.4-py2.py3-none-any/appdirs.py | 608 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/backports/__init__.py | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/backports/configparser/__init__.py | 1473 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/backports/configparser/helpers.py | 274 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser-4.0.2.dist-info/LICENSE | 7 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser-4.0.2.dist-info/METADATA | 259 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser-4.0.2.dist-info/RECORD | 9 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser-4.0.2.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser-4.0.2.dist-info/top_level.txt | 2 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/configparser-4.0.2-py2.py3-none-any/configparser.py | 61 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/LICENSE.txt | 122 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/METADATA | 70 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2-0.6.0.post1.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/contextlib2-0.6.0.post1-py2.py3-none-any/contextlib2.py | 518 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib-0.3.1.dist-info/METADATA | 24 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib-0.3.1.dist-info/RECORD | 26 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib-0.3.1.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/__init__.py | 23 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/__init__.py | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/misc.py | 41 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/shutil.py | 764 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/sysconfig.cfg | 84 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/sysconfig.py | 786 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/_backport/tarfile.py | 2607 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/compat.py | 1120 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/database.py | 1339 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/index.py | 516 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/locators.py | 1302 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/manifest.py | 393 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/markers.py | 131 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/metadata.py | 1056 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/resources.py | 355 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/scripts.py | 419 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/util.py | 1761 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/version.py | 736 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/distlib-0.3.1-py2.py3-none-any/distlib/wheel.py | 1018 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock-3.0.12.dist-info/LICENSE | 24 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock-3.0.12.dist-info/METADATA | 156 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock-3.0.12.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock-3.0.12.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock-3.0.12.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/filelock-3.0.12-py3-none-any/filelock.py | 451 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata-1.1.3.dist-info/LICENSE | 13 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata-1.1.3.dist-info/METADATA | 65 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata-1.1.3.dist-info/RECORD | 21 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata-1.1.3.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata-1.1.3.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata/__init__.py | 541 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.1.3-py2.py3-none-any/importlib_metadata/_compat.py | 143 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata-1.7.0.dist-info/LICENSE | 13 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata-1.7.0.dist-info/METADATA | 66 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata-1.7.0.dist-info/RECORD | 21 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata-1.7.0.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata-1.7.0.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata/__init__.py | 623 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_metadata-1.7.0-py2.py3-none-any/importlib_metadata/_compat.py | 152 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources-1.0.2.dist-info/LICENSE | 13 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources-1.0.2.dist-info/METADATA | 49 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources-1.0.2.dist-info/RECORD | 39 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources-1.0.2.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources-1.0.2.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/__init__.py | 36 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/_compat.py | 23 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/_py2.py | 270 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/_py3.py | 312 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/abc.py | 58 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-1.0.2-py2.py3-none-any/importlib_resources/version.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources-3.0.0.dist-info/LICENSE | 13 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources-3.0.0.dist-info/METADATA | 53 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources-3.0.0.dist-info/RECORD | 40 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources-3.0.0.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources-3.0.0.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/__init__.py | 53 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/_common.py | 121 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/_compat.py | 127 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/_py2.py | 107 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/_py3.py | 150 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/abc.py | 142 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/readers.py | 41 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/importlib_resources-3.0.0-py2.py3-none-any/importlib_resources/trees.py | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/DESCRIPTION.rst | 61 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/METADATA | 88 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/RECORD | 7 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/metadata.json | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2-2.3.5.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/pathlib2-2.3.5-py2.py3-none-any/pathlib2/__init__.py | 1809 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir-1.10.0.dist-info/LICENSE.txt | 27 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir-1.10.0.dist-info/METADATA | 238 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir-1.10.0.dist-info/RECORD | 7 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir-1.10.0.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir-1.10.0.dist-info/top_level.txt | 2 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/scandir-1.10.0-cp38-cp38-macosx_10_15_x86_64/scandir.py | 693 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six-1.15.0.dist-info/LICENSE | 18 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six-1.15.0.dist-info/METADATA | 49 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six-1.15.0.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six-1.15.0.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six-1.15.0.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/six-1.15.0-py2.py3-none-any/six.py | 982 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing-3.7.4.1.dist-info/LICENSE | 254 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing-3.7.4.1.dist-info/METADATA | 41 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing-3.7.4.1.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing-3.7.4.1.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing-3.7.4.1.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.1-py3-none-any/typing.py | 2422 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing-3.7.4.3.dist-info/LICENSE | 254 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing-3.7.4.3.dist-info/METADATA | 50 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing-3.7.4.3.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing-3.7.4.3.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing-3.7.4.3.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/typing-3.7.4.3-py2-none-any/typing.py | 2550 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/LICENSE | 7 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/METADATA | 49 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp-1.2.0.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-1.2.0-py2.py3-none-any/zipp.py | 286 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp-3.1.0.dist-info/LICENSE | 19 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp-3.1.0.dist-info/METADATA | 52 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp-3.1.0.dist-info/RECORD | 6 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp-3.1.0.dist-info/WHEEL | 5 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp-3.1.0.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/__virtualenv__/zipp-3.1.0-py3-none-any/zipp.py | 285 thunderbird-78.9.0/third_party/python/virtualenv/distributions.json | 83 thunderbird-78.9.0/third_party/python/virtualenv/modules.json | 341 thunderbird-78.9.0/third_party/python/virtualenv/pyproject.toml | 51 thunderbird-78.9.0/third_party/python/virtualenv/setup.cfg | 86 thunderbird-78.9.0/third_party/python/virtualenv/setup.py | 16 thunderbird-78.9.0/third_party/python/virtualenv/tasks/make_zipapp.py | 37 thunderbird-78.9.0/third_party/python/virtualenv/tasks/release.py | 76 thunderbird-78.9.0/third_party/python/virtualenv/tasks/update_embedded.py | 89 thunderbird-78.9.0/third_party/python/virtualenv/tasks/upgrade_wheels.py | 48 thunderbird-78.9.0/third_party/python/virtualenv/tox.ini | 127 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/LICENSE | 20 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/METADATA | 91 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/RECORD | 120 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/WHEEL | 6 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/entry_points.txt | 32 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/top_level.txt | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv-20.0.31.dist-info/zip-safe | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv.py | 2657 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/__init__.py | 10 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/__main__.py | 77 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/__init__.py | 19 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/activator.py | 44 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/bash/__init__.py | 13 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/bash/activate.sh | 84 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/batch/__init__.py | 23 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/batch/activate.bat | 40 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/batch/deactivate.bat | 19 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/batch/pydoc.bat | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/cshell/__init__.py | 14 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/cshell/activate.csh | 55 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/fish/__init__.py | 10 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/fish/activate.fish | 100 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/powershell/__init__.py | 10 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/powershell/activate.ps1 | 60 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/python/__init__.py | 35 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/python/activate_this.py | 32 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/via_template.py | 65 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/xonsh/__init__.py | 14 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/activation/xonsh/activate.xsh | 46 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/app_data/__init__.py | 62 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/app_data/base.py | 91 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/app_data/na.py | 67 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/app_data/via_disk_folder.py | 172 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/app_data/via_tempdir.py | 28 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/cli/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/cli/parser.py | 120 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/convert.py | 81 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/env_var.py | 29 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/config/ini.py | 83 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/creator.py | 224 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/debug.py | 110 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/describe.py | 117 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/pyenv_cfg.py | 61 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/_virtualenv.py | 130 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/api.py | 111 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/builtin_way.py | 17 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/cpython/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/cpython/common.py | 56 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/cpython/cpython2.py | 102 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/cpython/cpython3.py | 71 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/cpython/mac_os.py | 297 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/pypy/common.py | 52 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/pypy/pypy2.py | 121 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/pypy/pypy3.py | 63 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/python2/python2.py | 111 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/python2/site.py | 165 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/ref.py | 163 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/builtin/via_global_self_do.py | 99 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/store.py | 26 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/create/via_global_ref/venv.py | 80 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/builtin.py | 155 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/cached_py_info.py | 145 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/discover.py | 46 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/py_info.py | 489 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/py_spec.py | 122 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/windows/__init__.py | 28 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/discovery/windows/pep514.py | 161 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/info.py | 65 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/report.py | 57 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/__init__.py | 150 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/plugin/activators.py | 53 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/plugin/base.py | 58 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/plugin/creators.py | 77 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/plugin/discovery.py | 31 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/plugin/seeders.py | 31 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/run/session.py | 90 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/__init__.py | 1 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/base_embed.py | 117 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/pip_invoke.py | 56 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/via_app_data/pip_install/base.py | 158 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/via_app_data/pip_install/copy.py | 35 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/via_app_data/pip_install/symlink.py | 61 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/embed/via_app_data/via_app_data.py | 142 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/seeder.py | 39 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/__init__.py | 11 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/acquire.py | 122 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/bundle.py | 51 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/embed/__init__.py | 62 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/periodic_update.py | 364 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/seed/wheels/util.py | 116 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/__init__.py | 11 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/error.py | 13 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/lock.py | 120 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/path/__init__.py | 16 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/path/_pathlib/__init__.py | 45 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/path/_pathlib/via_os_path.py | 145 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/path/_permission.py | 32 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/path/_sync.py | 96 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/six.py | 50 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/subprocess/__init__.py | 36 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/subprocess/_win_subprocess.py | 171 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/util/zipapp.py | 33 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv/version.py | 3 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.bat | 35 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.csh | 55 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.fish | 102 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.ps1 | 60 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.sh | 84 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate.xsh | 46 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/activate_this.py | 46 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/deactivate.bat | 19 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/distutils-init.py | 134 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/distutils.cfg | 6 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/python-config | 78 thunderbird-78.9.0/third_party/python/virtualenv/virtualenv_embedded/site.py | 829 thunderbird-78.9.0/third_party/rust/thin-vec/.cargo-checksum.json | 2 thunderbird-78.9.0/third_party/rust/thin-vec/Cargo.toml | 8 thunderbird-78.9.0/third_party/rust/thin-vec/src/heap.rs | 15 thunderbird-78.9.0/third_party/rust/thin-vec/src/lib.rs | 36 thunderbird-78.9.0/thunderbird-l10n/af/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/ar/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/ast/manifest.json | 58 thunderbird-78.9.0/thunderbird-l10n/be/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/bg/manifest.json | 80 thunderbird-78.9.0/thunderbird-l10n/br/manifest.json | 84 thunderbird-78.9.0/thunderbird-l10n/ca/manifest.json | 84 thunderbird-78.9.0/thunderbird-l10n/cak/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/cs/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/cy/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/da/manifest.json | 62 thunderbird-78.9.0/thunderbird-l10n/de/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/dsb/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/el/manifest.json | 54 thunderbird-78.9.0/thunderbird-l10n/en-CA/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/en-GB/manifest.json | 72 thunderbird-78.9.0/thunderbird-l10n/es-AR/manifest.json | 62 thunderbird-78.9.0/thunderbird-l10n/es-ES/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/et/manifest.json | 54 thunderbird-78.9.0/thunderbird-l10n/eu/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/fa/manifest.json | 80 thunderbird-78.9.0/thunderbird-l10n/fi/manifest.json | 50 thunderbird-78.9.0/thunderbird-l10n/fr/manifest.json | 74 thunderbird-78.9.0/thunderbird-l10n/fy-NL/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/ga-IE/manifest.json | 78 thunderbird-78.9.0/thunderbird-l10n/gd/manifest.json | 48 thunderbird-78.9.0/thunderbird-l10n/gl/manifest.json | 76 thunderbird-78.9.0/thunderbird-l10n/he/manifest.json | 72 thunderbird-78.9.0/thunderbird-l10n/hr/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/hsb/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/hu/manifest.json | 74 thunderbird-78.9.0/thunderbird-l10n/hy-AM/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/id/manifest.json | 72 thunderbird-78.9.0/thunderbird-l10n/is/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/it/manifest.json | 76 thunderbird-78.9.0/thunderbird-l10n/ja/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/ka/manifest.json | 78 thunderbird-78.9.0/thunderbird-l10n/kab/manifest.json | 64 thunderbird-78.9.0/thunderbird-l10n/kk/manifest.json | 52 thunderbird-78.9.0/thunderbird-l10n/ko/manifest.json | 80 thunderbird-78.9.0/thunderbird-l10n/lt/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/ms/manifest.json | 80 thunderbird-78.9.0/thunderbird-l10n/nb-NO/manifest.json | 76 thunderbird-78.9.0/thunderbird-l10n/nl/manifest.json | 76 thunderbird-78.9.0/thunderbird-l10n/nn-NO/manifest.json | 56 thunderbird-78.9.0/thunderbird-l10n/pa-IN/manifest.json | 64 thunderbird-78.9.0/thunderbird-l10n/pl/manifest.json | 58 thunderbird-78.9.0/thunderbird-l10n/pt-BR/manifest.json | 70 thunderbird-78.9.0/thunderbird-l10n/pt-PT/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/rm/manifest.json | 86 thunderbird-78.9.0/thunderbird-l10n/ro/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/ru/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/si/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/sk/manifest.json | 84 thunderbird-78.9.0/thunderbird-l10n/sl/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/sq/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/sr/manifest.json | 82 thunderbird-78.9.0/thunderbird-l10n/sv-SE/manifest.json | 68 thunderbird-78.9.0/thunderbird-l10n/th/manifest.json | 80 thunderbird-78.9.0/thunderbird-l10n/tr/manifest.json | 66 thunderbird-78.9.0/thunderbird-l10n/uk/manifest.json | 64 thunderbird-78.9.0/thunderbird-l10n/uz/manifest.json | 72 thunderbird-78.9.0/thunderbird-l10n/vi/manifest.json | 60 thunderbird-78.9.0/thunderbird-l10n/zh-CN/manifest.json | 76 thunderbird-78.9.0/thunderbird-l10n/zh-TW/manifest.json | 56 thunderbird-78.9.0/toolkit/components/enterprisepolicies/EnterprisePolicies.js | 81 thunderbird-78.9.0/toolkit/components/enterprisepolicies/tests/browser/browser.ini | 2 thunderbird-78.9.0/toolkit/components/enterprisepolicies/tests/browser/browser_policies_gpo.js | 206 thunderbird-78.9.0/toolkit/components/extensions/child/ext-identity.js | 12 thunderbird-78.9.0/toolkit/components/extensions/test/browser/browser_ext_windows_popup_title.js | 1 thunderbird-78.9.0/toolkit/components/extensions/test/mochitest/test_ext_identity.html | 31 thunderbird-78.9.0/toolkit/components/extensions/test/xpcshell/test_ext_contentscript_triggeringPrincipal.js | 11 thunderbird-78.9.0/toolkit/components/extensions/test/xpcshell/test_ext_webRequest_viewsource_StreamFilter.js | 96 thunderbird-78.9.0/toolkit/components/extensions/test/xpcshell/xpcshell-e10s.ini | 2 thunderbird-78.9.0/toolkit/components/extensions/test/xpcshell/xpcshell-remote.ini | 1 thunderbird-78.9.0/toolkit/components/extensions/webrequest/StreamFilterParent.cpp | 15 thunderbird-78.9.0/toolkit/components/reputationservice/ApplicationReputation.cpp | 13 thunderbird-78.9.0/toolkit/components/search/tests/xpcshell/searchconfigs/head_searchconfig.js | 6 thunderbird-78.9.0/toolkit/components/search/tests/xpcshell/searchconfigs/test_ebay.js | 28 thunderbird-78.9.0/toolkit/components/telemetry/app/TelemetryEnvironment.jsm | 2 thunderbird-78.9.0/toolkit/components/telemetry/docs/data/environment.rst | 4 thunderbird-78.9.0/toolkit/components/windowwatcher/nsOpenWindowInfo.cpp | 5 thunderbird-78.9.0/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc | 15 thunderbird-78.9.0/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.h | 3 thunderbird-78.9.0/toolkit/crashreporter/breakpad-client/mac/handler/exception_handler.cc | 10 thunderbird-78.9.0/toolkit/crashreporter/breakpad-client/mac/handler/exception_handler.h | 3 thunderbird-78.9.0/toolkit/crashreporter/nsExceptionHandler.cpp | 114 thunderbird-78.9.0/toolkit/crashreporter/tools/upload_symbols.py | 2 thunderbird-78.9.0/toolkit/library/rust/shared/build.rs | 2 thunderbird-78.9.0/toolkit/mozapps/extensions/content/aboutaddons.html | 1 thunderbird-78.9.0/toolkit/mozapps/extensions/content/aboutaddons.js | 5 thunderbird-78.9.0/toolkit/mozapps/extensions/test/browser/browser_html_discover_view.js | 2 thunderbird-78.9.0/toolkit/mozapps/extensions/test/browser/discovery/api_response.json | 37 thunderbird-78.9.0/toolkit/mozapps/update/UpdateService.jsm | 24 thunderbird-78.9.0/toolkit/mozapps/update/updater/launchchild_osx.mm | 122 thunderbird-78.9.0/tools/browsertime/mach_commands.py | 10 thunderbird-78.9.0/tools/compare-locales/mach_commands.py | 4 thunderbird-78.9.0/tools/crashreporter/system-symbols/mac/PackageSymbolDumper.py | 4 thunderbird-78.9.0/tools/crashreporter/system-symbols/mac/list-packages.py | 4 thunderbird-78.9.0/tools/crashreporter/system-symbols/mac/repo_sync | 864 thunderbird-78.9.0/tools/crashreporter/system-symbols/mac/run.sh | 14 thunderbird-78.9.0/tools/crashreporter/system-symbols/mac/scrapesymbols/gathersymbols.py | 5 thunderbird-78.9.0/tools/crashreporter/system-symbols/win/run.sh | 7 thunderbird-78.9.0/tools/crashreporter/system-symbols/win/symsrv-fetch.py | 2 thunderbird-78.9.0/tools/lint/codespell.yml | 1 thunderbird-78.9.0/tools/lint/file-whitespace.yml | 1 thunderbird-78.9.0/tools/lint/mach_commands.py | 2 thunderbird-78.9.0/tools/mach_commands.py | 10 thunderbird-78.9.0/tools/moztreedocs/mach_commands.py | 4 thunderbird-78.9.0/tools/power/mach_commands.py | 4 thunderbird-78.9.0/tools/tryselect/mach_commands.py | 8 thunderbird-78.9.0/tools/update-verify/release/compare-directories.py | 2 thunderbird-78.9.0/tools/update-verify/release/updates/verify.sh | 2 thunderbird-78.9.0/tools/update-verify/scripts/chunked-verify.py | 2 thunderbird-78.9.0/widget/gtk/nsGtkKeyUtils.cpp | 25 thunderbird-78.9.0/widget/gtk/nsGtkKeyUtils.h | 3 thunderbird-78.9.0/widget/windows/nsNativeDragTarget.cpp | 8 thunderbird-78.9.0/widget/windows/nsSound.cpp | 37 thunderbird-78.9.0/xpcom/base/CycleCollectedJSRuntime.cpp | 31 thunderbird-78.9.0/xpcom/base/CycleCollectedJSRuntime.h | 2 thunderbird-78.9.0/xpcom/io/nsLocalFileWin.cpp | 125 thunderbird-78.9.0/xpcom/io/nsSegmentedBuffer.cpp | 102 thunderbird-78.9.0/xpcom/io/nsSegmentedBuffer.h | 28 thunderbird-78.9.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.S | 9 thunderbird-78.9.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc64_linux.cpp | 14 thunderbird-78.9.0/xpcom/reflect/xptcall/md/unix/xptcstubs_ppc64_linux.cpp | 14 thunderbird-78.9.0/xpcom/tests/gtest/TestSegmentedBuffer.cpp | 40 thunderbird-78.9.0/xpcom/tests/gtest/moz.build | 1 2459 files changed, 479433 insertions(+), 108540 deletions(-) diff -Nru thunderbird-78.6.0/.cargo/config.in thunderbird-78.9.0/.cargo/config.in --- thunderbird-78.6.0/.cargo/config.in 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/.cargo/config.in 2021-03-22 15:46:43.000000000 +0000 @@ -3,9 +3,9 @@ # Please do not edit. [source."https://github.com/shravanrn/nix/"] -branch = "r0.13.1" git = "https://github.com/shravanrn/nix/" replace-with = "vendored-sources" +rev = "4af6c367603869a30fddb5ffb0aba2b9477ba92e" [source."https://github.com/mozilla/rkv"] git = "https://github.com/mozilla/rkv" diff -Nru thunderbird-78.6.0/Cargo.lock thunderbird-78.9.0/Cargo.lock --- thunderbird-78.6.0/Cargo.lock 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/Cargo.lock 2021-03-22 15:46:43.000000000 +0000 @@ -3200,7 +3200,7 @@ [[package]] name = "nix" version = "0.13.1" -source = "git+https://github.com/shravanrn/nix/?branch=r0.13.1#4af6c367603869a30fddb5ffb0aba2b9477ba92e" +source = "git+https://github.com/shravanrn/nix/?rev=4af6c367603869a30fddb5ffb0aba2b9477ba92e#4af6c367603869a30fddb5ffb0aba2b9477ba92e" dependencies = [ "bitflags", "cc", @@ -4792,12 +4792,9 @@ [[package]] name = "thin-vec" -version = "0.1.0" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fdf4b84c65a85168477b7fb6c498e0716bc9487fba24623389ea7f51708044" -dependencies = [ - "libc", -] +checksum = "3a93c9ade36a827a69257925808463db46ffcf193442fad01eb9bdc1d31aed81" [[package]] name = "thiserror" diff -Nru thunderbird-78.6.0/Cargo.toml thunderbird-78.9.0/Cargo.toml --- thunderbird-78.6.0/Cargo.toml 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/Cargo.toml 2021-03-22 15:46:43.000000000 +0000 @@ -68,8 +68,8 @@ libudev-sys = { path = "dom/webauthn/libudev-sys" } packed_simd = { git = "https://github.com/hsivonen/packed_simd", rev="3541e3818fdc7c2a24f87e3459151a4ce955a67a" } rlbox_lucet_sandbox = { git = "https://github.com/PLSysSec/rlbox_lucet_sandbox/", rev="d510da5999a744c563b0acd18056069d1698273f" } -nix = { git = "https://github.com/shravanrn/nix/", branch = "r0.13.1", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" } -spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3", rev = "20191ad2f370afd6d247edcb9ff9da32d3bedb9c" } +nix = { git = "https://github.com/shravanrn/nix/", rev="4af6c367603869a30fddb5ffb0aba2b9477ba92e" } +spirv_cross = { git = "https://github.com/kvark/spirv_cross", branch = "wgpu3" } # failure's backtrace feature might break our builds, see bug 1608157. failure = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } failure_derive = { git = "https://github.com/badboy/failure", rev = "64af847bc5fdcb6d2438bec8a6030812a80519a5" } diff -Nru thunderbird-78.6.0/accessible/generic/TableCellAccessible.cpp thunderbird-78.9.0/accessible/generic/TableCellAccessible.cpp --- thunderbird-78.6.0/accessible/generic/TableCellAccessible.cpp 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/accessible/generic/TableCellAccessible.cpp 2021-03-22 15:46:43.000000000 +0000 @@ -67,7 +67,20 @@ // Check whether the previous table cell has a cached value. cachedHeader = cache.GetWeak(tableCell, &inCache); - if (inCache && cell->Role() != roles::COLUMNHEADER) { + if ( + // We check the cache first because even though we might not use it, + // it's faster than the other conditions. + inCache && + // Only use the cached value if: + // 1. cell is a table cell which is not a column header. In that case, + // cell is the previous header and cachedHeader is the one before that. + // We will return cell later. + cell->Role() != roles::COLUMNHEADER && + // 2. cell starts in this column. If it starts in a previous column and + // extends into this one, its header will be for the starting column, + // which is wrong for this cell. + // ColExtent is faster than ColIdx, so check that first. + (tableCell->ColExtent() == 1 || tableCell->ColIdx() == colIdx)) { if (!cachedHeader || !cachedHeader->IsDefunct()) { // Cache it for this cell. cache.Put(this, RefPtr(cachedHeader)); diff -Nru thunderbird-78.6.0/accessible/tests/mochitest/table/test_headers_table.html thunderbird-78.9.0/accessible/tests/mochitest/table/test_headers_table.html --- thunderbird-78.6.0/accessible/tests/mochitest/table/test_headers_table.html 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/accessible/tests/mochitest/table/test_headers_table.html 2021-03-22 15:46:43.000000000 +0000 @@ -426,6 +426,37 @@ testHeaderCells(headerInfoMap); + // //////////////////////////////////////////////////////////////////////// + // Ensure correct column headers after colspan in a previous row. + headerInfoMap = [ + { + cell: "t11r1c1", + columnHeaderCells: [], + rowHeaderCells: [], + }, + { + cell: "t11r1c2", + columnHeaderCells: [], + rowHeaderCells: [], + }, + { + cell: "t11r2c1_2", + columnHeaderCells: ["t11r1c1"], + rowHeaderCells: [], + }, + { + cell: "t11r3c1", + columnHeaderCells: ["t11r1c1"], + rowHeaderCells: [], + }, + { + cell: "t11r3c2", + columnHeaderCells: ["t11r1c2"], + rowHeaderCells: [], + }, + ]; + testHeaderCells(headerInfoMap); + SimpleTest.finish(); } @@ -707,5 +738,19 @@ 50:35 + + + + + + + + + + + + + +
ab
ef
diff -Nru thunderbird-78.6.0/browser/base/content/browser.js thunderbird-78.9.0/browser/base/content/browser.js --- thunderbird-78.6.0/browser/base/content/browser.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/base/content/browser.js 2021-03-22 15:46:43.000000000 +0000 @@ -89,6 +89,7 @@ WebNavigationFrames: "resource://gre/modules/WebNavigationFrames.jsm", fxAccounts: "resource://gre/modules/FxAccounts.jsm", webrtcUI: "resource:///modules/webrtcUI.jsm", + WebsiteFilter: "resource:///modules/policies/WebsiteFilter.jsm", ZoomUI: "resource:///modules/ZoomUI.jsm", }); diff -Nru thunderbird-78.6.0/browser/base/content/nsContextMenu.js thunderbird-78.9.0/browser/base/content/nsContextMenu.js --- thunderbird-78.6.0/browser/base/content/nsContextMenu.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/base/content/nsContextMenu.js 2021-03-22 15:46:43.000000000 +0000 @@ -453,6 +453,16 @@ "context-savelink", this.onSaveableLink || this.onPlainTextLink ); + if ( + (this.onSaveableLink || this.onPlainTextLink) && + Services.policies.status === Services.policies.ACTIVE + ) { + this.setItemAttr( + "context-savelink", + "disabled", + !WebsiteFilter.isAllowed(this.linkURL) + ); + } // Save image depends on having loaded its content, video and audio don't. this.showItem("context-saveimage", this.onLoadedImage || this.onCanvas); diff -Nru thunderbird-78.6.0/browser/base/content/tabbrowser.js thunderbird-78.9.0/browser/base/content/tabbrowser.js --- thunderbird-78.6.0/browser/base/content/tabbrowser.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/base/content/tabbrowser.js 2021-03-22 15:46:43.000000000 +0000 @@ -927,7 +927,7 @@ // XXX https://bugzilla.mozilla.org/show_bug.cgi?id=22183#c239 try { if (docElement.getAttribute("chromehidden").includes("location")) { - const uri = Services.uriFixup.createExposableURI(aBrowser.currentURI); + const uri = Services.io.createExposableURI(aBrowser.currentURI); let prefix = uri.prePath; if (uri.scheme == "about") { prefix = uri.spec; diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/Policies.jsm thunderbird-78.9.0/browser/components/enterprisepolicies/Policies.jsm --- thunderbird-78.6.0/browser/components/enterprisepolicies/Policies.jsm 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/Policies.jsm 2021-03-22 15:46:43.000000000 +0000 @@ -1444,6 +1444,7 @@ onBeforeAddons(manager, param) { const allowedPrefixes = [ "accessibility.", + "app.update.", "browser.", "datareporting.policy.", "dom.", @@ -1472,9 +1473,14 @@ "security.osclientcerts.autoload", "security.ssl.errorReporting.enabled", "security.tls.hello_downgrade_check", + "security.tls.version.enable-deprecated", "security.warn_submit_secure_to_insecure", ]; - const blockedPrefs = []; + const blockedPrefs = [ + "app.update.channel", + "app.update.lastUpdateTime", + "app.update.migrated", + ]; for (let preference in param) { if (blockedPrefs.includes(preference)) { @@ -2277,7 +2283,11 @@ )} - {url}` ); }, - onInstallEnded: () => { + /* eslint-disable-next-line no-shadow */ + onInstallEnded: (install, addon) => { + if (addon.type == "theme") { + addon.enable(); + } install.removeListener(listener); log.debug(`Installation succeeded - ${url}`); }, diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm thunderbird-78.9.0/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm --- thunderbird-78.6.0/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/helpers/WebsiteFilter.jsm 2021-03-22 15:46:43.000000000 +0000 @@ -134,4 +134,15 @@ createInstance(outer, iid) { return this.QueryInterface(iid); }, + isAllowed(url) { + if (this._blockPatterns?.matches(url.toLowerCase())) { + if ( + !this._exceptionsPatterns || + !this._exceptionsPatterns.matches(url.toLowerCase()) + ) { + return false; + } + } + return true; + }, }; diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/browser.ini thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser.ini --- thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/browser.ini 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser.ini 2021-03-22 15:46:43.000000000 +0000 @@ -7,6 +7,7 @@ policytest_v0.2.xpi policy_websitefilter_block.html policy_websitefilter_exception.html + policy_websitefilter_savelink.html ../../../../../toolkit/components/antitracking/test/browser/page.html ../../../../../toolkit/components/antitracking/test/browser/subResources.sjs extensionsettings.html diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js --- thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js 2021-03-22 15:46:43.000000000 +0000 @@ -6,6 +6,7 @@ "http://mochi.test:8888/browser/browser/components/enterprisepolicies/tests/browser/"; const BLOCKED_PAGE = "policy_websitefilter_block.html"; const EXCEPTION_PAGE = "policy_websitefilter_exception.html"; +const SAVELINKAS_PAGE = "policy_websitefilter_savelink.html"; add_task(async function test_http() { await setupPolicyEngineWithJson({ @@ -53,3 +54,75 @@ await checkBlockedPage("file:///this_should_be_blocked", true); }); + +add_task(async function test_savelink() { + await setupPolicyEngineWithJson({ + policies: { + WebsiteFilter: { + Block: ["*://mochi.test/*policy_websitefilter_block*"], + }, + }, + }); + + let tab = await BrowserTestUtils.openNewForegroundTab( + gBrowser, + SUPPORT_FILES_PATH + SAVELINKAS_PAGE + ); + + let contextMenu = document.getElementById("contentAreaContextMenu"); + let promiseContextMenuOpen = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + await BrowserTestUtils.synthesizeMouse( + "#savelink_blocked", + 0, + 0, + { + type: "contextmenu", + button: 2, + centered: true, + }, + gBrowser.selectedBrowser + ); + await promiseContextMenuOpen; + + let saveLink = document.getElementById("context-savelink"); + is(saveLink.disabled, true, "Save Link As should be disabled"); + + let promiseContextMenuHidden = BrowserTestUtils.waitForEvent( + contextMenu, + "popuphidden" + ); + contextMenu.hidePopup(); + await promiseContextMenuHidden; + + promiseContextMenuOpen = BrowserTestUtils.waitForEvent( + contextMenu, + "popupshown" + ); + await BrowserTestUtils.synthesizeMouse( + "#savelink_notblocked", + 0, + 0, + { + type: "contextmenu", + button: 2, + centered: true, + }, + gBrowser.selectedBrowser + ); + await promiseContextMenuOpen; + + saveLink = document.getElementById("context-savelink"); + is(saveLink.disabled, false, "Save Link As should not be disabled"); + + promiseContextMenuHidden = BrowserTestUtils.waitForEvent( + contextMenu, + "popuphidden" + ); + contextMenu.hidePopup(); + await promiseContextMenuHidden; + + BrowserTestUtils.removeTab(tab); +}); diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/policy_websitefilter_savelink.html thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/policy_websitefilter_savelink.html --- thunderbird-78.6.0/browser/components/enterprisepolicies/tests/browser/policy_websitefilter_savelink.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/tests/browser/policy_websitefilter_savelink.html 2021-03-22 15:46:43.000000000 +0000 @@ -0,0 +1,11 @@ + + + + + Save Link As test + + + Should not be saveable
+ Should be saveable + + diff -Nru thunderbird-78.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js thunderbird-78.9.0/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js --- thunderbird-78.6.0/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/enterprisepolicies/tests/xpcshell/test_extensionsettings.js 2021-03-22 15:46:43.000000000 +0000 @@ -17,6 +17,7 @@ const BASE_URL = `http://example.com/data`; let addonID = "policytest2@mozilla.com"; +let themeID = "policytheme@mozilla.com"; add_task(async function setup() { await AddonTestUtils.promiseStartupManager(); @@ -219,3 +220,36 @@ ); equal(newRestrictedDomains, restrictedDomains + ",example.com,example.org"); }); + +add_task(async function test_theme() { + let themeFile = AddonTestUtils.createTempWebExtensionFile({ + manifest: { + applications: { + gecko: { + id: themeID, + }, + }, + theme: {}, + }, + }); + + server.registerFile("/data/policy_theme.xpi", themeFile); + + await Promise.all([ + AddonTestUtils.promiseInstallEvent("onInstallEnded"), + setupPolicyEngineWithJson({ + policies: { + ExtensionSettings: { + "policytheme@mozilla.com": { + installation_mode: "normal_installed", + install_url: BASE_URL + "/policy_theme.xpi", + }, + }, + }, + }), + ]); + let currentTheme = Services.prefs.getCharPref("extensions.activeThemeID"); + equal(currentTheme, themeID, "Theme should be active"); + let addon = await AddonManager.getAddonByID(themeID); + await addon.uninstall(); +}); Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.ico and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.ico differ Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.png and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/favicons/baidu-com.png differ Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/browser/components/newtab/data/content/tippytop/images/baidu-com@2x.png and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/images/baidu-com@2x.png differ diff -Nru thunderbird-78.6.0/browser/components/newtab/data/content/tippytop/top_sites.json thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/top_sites.json --- thunderbird-78.6.0/browser/components/newtab/data/content/tippytop/top_sites.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/newtab/data/content/tippytop/top_sites.json 2021-03-22 15:46:43.000000000 +0000 @@ -27,7 +27,7 @@ "title": "baidu", "url": "https://www.baidu.com/", "image_url": "images/baidu-com@2x.png", - "favicon_url": "favicons/baidu-com.ico" + "favicon_url": "favicons/baidu-com.png" }, { "title": "bbc", diff -Nru thunderbird-78.6.0/browser/components/newtab/lib/CFRPageActions.jsm thunderbird-78.9.0/browser/components/newtab/lib/CFRPageActions.jsm --- thunderbird-78.6.0/browser/components/newtab/lib/CFRPageActions.jsm 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/newtab/lib/CFRPageActions.jsm 2021-03-22 15:46:43.000000000 +0000 @@ -37,7 +37,7 @@ "app.support.baseURL" ); const ADDONS_API_URL = - "https://services.addons.mozilla.org/api/v3/addons/addon"; + "https://services.addons.mozilla.org/api/v4/addons/addon"; const DELAY_BEFORE_EXPAND_MS = 1000; const CATEGORY_ICONS = { diff -Nru thunderbird-78.6.0/browser/components/resistfingerprinting/test/browser/browser_navigator.js thunderbird-78.9.0/browser/components/resistfingerprinting/test/browser/browser_navigator.js --- thunderbird-78.6.0/browser/components/resistfingerprinting/test/browser/browser_navigator.js 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/components/resistfingerprinting/test/browser/browser_navigator.js 2021-03-22 15:46:43.000000000 +0000 @@ -17,8 +17,28 @@ "http://example.net/browser/browser/" + "components/resistfingerprinting/test/browser/"; -var spoofedUserAgentNavigator; -var spoofedUserAgentHeader; +let expectedResults; + +let osVersion = Services.sysinfo.get("version"); +if (AppConstants.platform == "macosx") { + // Convert Darwin version to macOS version: 19.x.x -> 10.15 etc. + // https://en.wikipedia.org/wiki/Darwin_%28operating_system%29 + let DarwinVersionParts = osVersion.split("."); + let DarwinMajorVersion = +DarwinVersionParts[0]; + let macOsMinorVersion = DarwinMajorVersion - 4; + if (macOsMinorVersion > 15) { + macOsMinorVersion = 15; + } + osVersion = `10.${macOsMinorVersion}`; +} + +const DEFAULT_APPVERSION = { + linux: "5.0 (X11)", + win: "5.0 (Windows)", + macosx: "5.0 (Macintosh)", + android: `5.0 (Android ${osVersion})`, + other: "5.0 (X11)", +}; const SPOOFED_APPNAME = "Netscape"; @@ -29,6 +49,21 @@ android: "5.0 (Android 9)", other: "5.0 (X11)", }; + +let cpuArch = Services.sysinfo.get("arch"); +if (cpuArch == "x86-64") { + // Convert CPU arch "x86-64" to "x86_64" used in Linux and Android UAs. + cpuArch = "x86_64"; +} + +const DEFAULT_PLATFORM = { + linux: `Linux ${cpuArch}`, + win: "Win32", + macosx: "MacIntel", + android: `Linux ${cpuArch}`, + other: `Linux ${cpuArch}`, +}; + const SPOOFED_PLATFORM = { linux: "Linux x86_64", win: "Win32", @@ -36,6 +71,20 @@ android: "Linux aarch64", other: "Linux x86_64", }; + +const WindowsOscpu = + cpuArch == "x86_64" + ? `Windows NT ${osVersion}; Win64; x64` + : `Windows NT ${osVersion}`; + +const DEFAULT_OSCPU = { + linux: `Linux ${cpuArch}`, + win: WindowsOscpu, + macosx: `Intel Mac OS X ${osVersion}`, + android: `Linux ${cpuArch}`, + other: `Linux ${cpuArch}`, +}; + const SPOOFED_OSCPU = { linux: "Linux x86_64", win: "Windows NT 10.0; Win64; x64", @@ -43,6 +92,15 @@ android: "Linux aarch64", other: "Linux x86_64", }; + +const DEFAULT_UA_OS = { + linux: `X11; Linux ${cpuArch}`, + win: WindowsOscpu, + macosx: `Macintosh; Intel Mac OS X ${osVersion}`, + android: `Android ${osVersion}; Mobile`, + other: `X11; Linux ${cpuArch}`, +}; + const SPOOFED_UA_NAVIGATOR_OS = { linux: "X11; Linux x86_64", win: "Windows NT 10.0; Win64; x64", @@ -80,8 +138,8 @@ is( result, - spoofedUserAgentHeader, - "User Agent HTTP Header is correctly spoofed." + expectedResults.userAgentHeader, + `Checking ${expectedResults.testDesc} User Agent HTTP Header.` ); BrowserTestUtils.removeTab(tab); @@ -100,6 +158,8 @@ result = JSON.parse(result); + let testDesc = expectedResults.testDesc; + is( result.appName, SPOOFED_APPNAME, @@ -107,30 +167,28 @@ ); is( result.appVersion, - SPOOFED_APPVERSION[AppConstants.platform], - "Navigator.appVersion is correctly spoofed." + expectedResults.appVersion, + `Checking ${testDesc} navigator.appVersion.` ); is( result.platform, - SPOOFED_PLATFORM[AppConstants.platform], - "Navigator.platform is correctly spoofed." + expectedResults.platform, + `Checking ${testDesc} navigator.platform.` ); is( result.userAgent, - spoofedUserAgentNavigator, - "Navigator.userAgent is correctly spoofed." + expectedResults.userAgentNavigator, + `Checking ${testDesc} navigator.userAgent.` ); - is(result.mimeTypesLength, 0, "Navigator.mimeTypes has a length of 0."); - is(result.pluginsLength, 0, "Navigator.plugins has a length of 0."); is( result.oscpu, - SPOOFED_OSCPU[AppConstants.platform], - "Navigator.oscpu is correctly spoofed." + expectedResults.oscpu, + `Checking ${testDesc} navigator.oscpu.` ); is( result.hardwareConcurrency, - SPOOFED_HW_CONCURRENCY, - "Navigator.hardwareConcurrency is correctly spoofed." + expectedResults.hardwareConcurrency, + `Checking ${testDesc} navigator.hardwareConcurrency.` ); is( @@ -190,6 +248,8 @@ result = JSON.parse(result); + let testDesc = expectedResults.testDesc; + is( result.appName, SPOOFED_APPNAME, @@ -197,23 +257,23 @@ ); is( result.appVersion, - SPOOFED_APPVERSION[AppConstants.platform], - "Navigator.appVersion is correctly spoofed." + expectedResults.appVersion, + `Checking ${testDesc} navigator.appVersion.` ); is( result.platform, - SPOOFED_PLATFORM[AppConstants.platform], - "Navigator.platform is correctly spoofed." + expectedResults.platform, + `Checking ${testDesc} navigator.platform.` ); is( result.userAgent, - spoofedUserAgentNavigator, - "Navigator.userAgent is correctly spoofed." + expectedResults.userAgentNavigator, + `Checking ${testDesc} navigator.userAgent.` ); is( result.hardwareConcurrency, - SPOOFED_HW_CONCURRENCY, - "Navigator.hardwareConcurrency is correctly spoofed." + expectedResults.hardwareConcurrency, + `Checking ${testDesc} navigator.hardwareConcurrency.` ); is( @@ -244,7 +304,35 @@ } } -add_task(async function setup() { +add_task(async function setupDefaultUserAgent() { + let appVersion = parseInt(Services.appinfo.version); + let defaultUserAgent = `Mozilla/5.0 (${ + DEFAULT_UA_OS[AppConstants.platform] + }; rv:${appVersion}.0) Gecko/20100101 Firefox/${appVersion}.0`; + expectedResults = { + testDesc: "default", + appVersion: DEFAULT_APPVERSION[AppConstants.platform], + hardwareConcurrency: navigator.hardwareConcurrency, + oscpu: DEFAULT_OSCPU[AppConstants.platform], + platform: DEFAULT_PLATFORM[AppConstants.platform], + userAgentNavigator: defaultUserAgent, + userAgentHeader: defaultUserAgent, + }; +}); + +add_task(async function runDefaultNavigatorTest() { + await testNavigator(); +}); + +add_task(async function runDefaultHTTPHeaderTest() { + await testUserAgentHeader(); +}); + +add_task(async function runDefaultWorkerNavigatorTest() { + await testWorkerNavigator(); +}); + +add_task(async function setupResistFingerprinting() { await SpecialPowers.pushPrefEnv({ set: [["privacy.resistFingerprinting", true]], }); @@ -252,24 +340,34 @@ let appVersion = parseInt(Services.appinfo.version); let spoofedVersion = appVersion - ((appVersion - 78) % 13); - spoofedUserAgentNavigator = `Mozilla/5.0 (${ + let spoofedUserAgentNavigator = `Mozilla/5.0 (${ SPOOFED_UA_NAVIGATOR_OS[AppConstants.platform] }; rv:${spoofedVersion}.0) Gecko/20100101 Firefox/${spoofedVersion}.0`; - spoofedUserAgentHeader = `Mozilla/5.0 (${ + let spoofedUserAgentHeader = `Mozilla/5.0 (${ SPOOFED_UA_HTTPHEADER_OS[AppConstants.platform] }; rv:${spoofedVersion}.0) Gecko/20100101 Firefox/${spoofedVersion}.0`; + + expectedResults = { + testDesc: "spoofed", + appVersion: SPOOFED_APPVERSION[AppConstants.platform], + hardwareConcurrency: SPOOFED_HW_CONCURRENCY, + oscpu: SPOOFED_OSCPU[AppConstants.platform], + platform: SPOOFED_PLATFORM[AppConstants.platform], + userAgentNavigator: spoofedUserAgentNavigator, + userAgentHeader: spoofedUserAgentHeader, + }; }); -add_task(async function runNavigatorTest() { +add_task(async function runSpoofedNavigatorTest() { await testNavigator(); }); -add_task(async function runHTTPHeaderTest() { +add_task(async function runSpoofedHTTPHeaderTest() { await testUserAgentHeader(); }); -add_task(async function runWorkerNavigatorTest() { +add_task(async function runSpoofedWorkerNavigatorTest() { await testWorkerNavigator(); }); diff -Nru thunderbird-78.6.0/browser/components/search/extensions/allegro-pl/manifest.json thunderbird-78.9.0/browser/components/search/extensions/allegro-pl/manifest.json --- thunderbird-78.6.0/browser/components/search/extensions/allegro-pl/manifest.json 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/allegro-pl/manifest.json 2021-03-22 15:46:43.000000000 +0000 @@ -2,7 +2,7 @@ "name": "Allegro", "description": "Wyszukiwanie w aukcjach Allegro", "manifest_version": 2, - "version": "1.0", + "version": "1.1", "applications": { "gecko": { "id": "allegro-pl@search.mozilla.org" @@ -18,9 +18,9 @@ "chrome_settings_overrides": { "search_provider": { "name": "Allegro", - "search_url": "https://allegro.pl/listing/listing.php", + "search_url": "https://allegro.pl/listing", "search_form": "https://allegro.pl", "search_url_get_params": "string={searchTerms}&sourceid=Mozilla-search" } } -} \ No newline at end of file +} Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/browser/components/search/extensions/baidu/favicon.ico and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/search/extensions/baidu/favicon.ico differ Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/browser/components/search/extensions/bing/favicon.ico and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/browser/components/search/extensions/bing/favicon.ico differ diff -Nru thunderbird-78.6.0/browser/components/search/extensions/bing/manifest.json thunderbird-78.9.0/browser/components/search/extensions/bing/manifest.json --- thunderbird-78.6.0/browser/components/search/extensions/bing/manifest.json 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/bing/manifest.json 2021-03-22 15:46:43.000000000 +0000 @@ -1,8 +1,8 @@ { "name": "Bing", - "description": "Bing. Search by Microsoft.", + "description": "Microsoft Bing", "manifest_version": 2, - "version": "1.1", + "version": "1.1.1", "applications": { "gecko": { "id": "bing@search.mozilla.org" diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/at/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/at/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/at/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/at/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/5221-53469-19255-0/1" + "message": "https://www.ebay.at/sch/" }, "searchForm": { "message": "https://www.ebay.at/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.at/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=5221-53469-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/au/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/au/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/au/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/au/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/705-53470-19255-0/1" + "message": "https://www.ebay.com.au/sch/" }, "searchForm": { "message": "https://www.ebay.com.au/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.com.au/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=705-53470-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/be/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/be/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/be/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/be/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/1553-53471-19255-0/1" + "message": "https://www.befr.ebay.be/sch/" }, "searchForm": { "message": "https://www.befr.ebay.be/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.befr.ebay.be/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=1553-53471-19255-0&kw={searchTerms}" } } diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ca/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ca/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ca/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ca/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/706-53473-19255-0/1" + "message": "https://ebay.ca/sch/" }, "searchForm": { "message": "https://www.ebay.ca/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.ca/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=706-53473-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ch/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ch/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ch/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ch/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/5222-53480-19255-0/1" + "message": "https://www.ebay.ch/sch/" }, "searchForm": { "message": "https://www.ebay.ch/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.ch/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=5222-53480-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/de/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/de/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/de/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/de/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/707-53477-19255-0/1" + "message": "https://ebay.de/sch/" }, "searchForm": { "message": "https://www.ebay.de/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.de/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=707-53477-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/en/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/en/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/en/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/en/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/711-53200-19255-0/1" + "message": "https://www.ebay.com/sch/" }, "searchForm": { "message": "https://www.ebay.com/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.com/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=711-53200-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/es/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/es/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/es/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/es/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/1185-53479-19255-0/1" + "message": "https://www.ebay.es/sch/" }, "searchForm": { "message": "https://www.ebay.es/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.es/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=1185-53479-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/fr/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/fr/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/fr/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/fr/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/709-53476-19255-0/1" + "message": "https://www.ebay.fr/sch/" }, "searchForm": { "message": "https://www.ebay.fr/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.fr/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=709-53476-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ie/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ie/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/ie/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/ie/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/5282-53468-19255-0/1" + "message": "https://www.ebay.ie/sch/" }, "searchForm": { "message": "https://www.ebay.ie/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.ie/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=5282-53468-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/it/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/it/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/it/messages.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/it/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/724-53478-19255-0/1" + "message": "https://www.ebay.it/sch/" }, "searchForm": { "message": "https://www.ebay.it/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.it/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=724-53478-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/nl/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/nl/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/nl/messages.json 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/nl/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/1346-53482-19255-0/1" + "message": "https://www.ebay.nl/sch/" }, "searchForm": { "message": "https://www.ebay.nl/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.nl/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=1346-53482-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/uk/messages.json thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/uk/messages.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/_locales/uk/messages.json 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/_locales/uk/messages.json 2021-03-22 15:46:43.000000000 +0000 @@ -6,12 +6,12 @@ "message": "eBay - Online auctions" }, "searchUrl": { - "message": "https://rover.ebay.com/rover/1/710-53481-19255-0/1" + "message": "https://www.ebay.co.uk/sch/" }, "searchForm": { "message": "https://www.ebay.co.uk/" }, "searchUrlGetParams": { - "message": "ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.co.uk/sch/{searchTerms}" + "message": "toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=710-53481-19255-0&kw={searchTerms}" } } \ No newline at end of file diff -Nru thunderbird-78.6.0/browser/components/search/extensions/ebay/manifest.json thunderbird-78.9.0/browser/components/search/extensions/ebay/manifest.json --- thunderbird-78.6.0/browser/components/search/extensions/ebay/manifest.json 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/extensions/ebay/manifest.json 2021-03-22 15:46:43.000000000 +0000 @@ -2,7 +2,7 @@ "name": "__MSG_extensionName__", "description": "__MSG_extensionDescription__", "manifest_version": 2, - "version": "1.0", + "version": "1.1", "applications": { "gecko": { "id": "ebay@search.mozilla.org" diff -Nru thunderbird-78.6.0/browser/components/search/test/browser/browser_bing.js thunderbird-78.9.0/browser/components/search/test/browser/browser_bing.js --- thunderbird-78.6.0/browser/components/search/test/browser/browser_bing.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/test/browser/browser_bing.js 2021-03-22 15:46:43.000000000 +0000 @@ -47,7 +47,7 @@ const EXPECTED_ENGINE = { name: "Bing", alias: null, - description: "Bing. Search by Microsoft.", + description: "Microsoft Bing", searchForm: "https://www.bing.com/search?pc=MOZI&q=", hidden: false, wrappedJSObject: { diff -Nru thunderbird-78.6.0/browser/components/search/test/browser/browser_eBay.js thunderbird-78.9.0/browser/components/search/test/browser/browser_eBay.js --- thunderbird-78.6.0/browser/components/search/test/browser/browser_eBay.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/test/browser/browser_eBay.js 2021-03-22 15:46:43.000000000 +0000 @@ -14,7 +14,7 @@ ok(engine, "eBay"); let base = - "https://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.com/sch/foo"; + "https://www.ebay.com/sch/?toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=711-53200-19255-0&kw=foo"; let url; // Test search URLs (including purposes). @@ -33,14 +33,9 @@ { type: "text/html", method: "GET", - template: "https://rover.ebay.com/rover/1/711-53200-19255-0/1", + template: "https://www.ebay.com/sch/", params: [ { - name: "ff3", - value: "4", - purpose: undefined, - }, - { name: "toolid", value: "20004", purpose: undefined, @@ -51,13 +46,23 @@ purpose: undefined, }, { - name: "customid", - value: "", + name: "mkevt", + value: "1", + purpose: undefined, + }, + { + name: "mkcid", + value: "1", + purpose: undefined, + }, + { + name: "mkrid", + value: "711-53200-19255-0", purpose: undefined, }, { - name: "mpre", - value: "https://www.ebay.com/sch/{searchTerms}", + name: "kw", + value: "{searchTerms}", purpose: undefined, }, ], diff -Nru thunderbird-78.6.0/browser/components/search/test/browser/browser_searchEngine_behaviors.js thunderbird-78.9.0/browser/components/search/test/browser/browser_searchEngine_behaviors.js --- thunderbird-78.6.0/browser/components/search/test/browser/browser_searchEngine_behaviors.js 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/components/search/test/browser/browser_searchEngine_behaviors.js 2021-03-22 15:46:43.000000000 +0000 @@ -45,7 +45,7 @@ { alias: "e", baseURL: - "https://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&toolid=20004&campid=5338192028&customid=&mpre=https://www.ebay.com/sch/foo", + "https://www.ebay.com/sch/?toolid=20004&campid=5338192028&mkevt=1&mkcid=1&mkrid=711-53200-19255-0&kw=foo", codes: { context: "", keyword: "", diff -Nru thunderbird-78.6.0/browser/config/version.txt thunderbird-78.9.0/browser/config/version.txt --- thunderbird-78.6.0/browser/config/version.txt 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/config/version.txt 2021-03-22 15:46:43.000000000 +0000 @@ -1 +1 @@ -78.6.0 +78.9.0 diff -Nru thunderbird-78.6.0/browser/config/version_display.txt thunderbird-78.9.0/browser/config/version_display.txt --- thunderbird-78.6.0/browser/config/version_display.txt 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/config/version_display.txt 2021-03-22 15:46:43.000000000 +0000 @@ -1 +1 @@ -78.6.0esr +78.9.0esr diff -Nru thunderbird-78.6.0/browser/extensions/pdfjs/content/PdfJsNetwork.jsm thunderbird-78.9.0/browser/extensions/pdfjs/content/PdfJsNetwork.jsm --- thunderbird-78.6.0/browser/extensions/pdfjs/content/PdfJsNetwork.jsm 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/browser/extensions/pdfjs/content/PdfJsNetwork.jsm 2021-03-22 15:46:43.000000000 +0000 @@ -94,6 +94,7 @@ var rangeStr = args.begin + "-" + (args.end - 1); xhr.setRequestHeader("Range", "bytes=" + rangeStr); pendingRequest.expectedStatus = 206; + xhr.channel.QueryInterface(Ci.nsIHttpChannel).redirectionLimit = 0; } else { pendingRequest.expectedStatus = 200; } diff -Nru thunderbird-78.6.0/browser/installer/windows/nsis/shared.nsh thunderbird-78.9.0/browser/installer/windows/nsis/shared.nsh --- thunderbird-78.6.0/browser/installer/windows/nsis/shared.nsh 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/browser/installer/windows/nsis/shared.nsh 2021-03-22 15:46:43.000000000 +0000 @@ -1609,7 +1609,22 @@ ${Unless} ${Errors} ; This is all protected by a user choice hash in Windows 8 so it won't ; help, but it also won't hurt. - AppAssocReg::SetAppAsDefaultAll "$R9" + AppAssocReg::SetAppAsDefault "$R9" ".htm" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" ".html" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" ".shtml" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" ".webp" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" ".xht" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" ".xhtml" "file" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" "http" "protocol" + Pop $0 + AppAssocReg::SetAppAsDefault "$R9" "https" "protocol" + Pop $0 ${EndUnless} ${RemoveDeprecatedKeys} ${MigrateTaskBarShortcut} diff -Nru thunderbird-78.6.0/build/build-clang/clang-11-mingw.json thunderbird-78.9.0/build/build-clang/clang-11-mingw.json --- thunderbird-78.6.0/build/build-clang/clang-11-mingw.json 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/build/build-clang/clang-11-mingw.json 2021-03-22 15:46:43.000000000 +0000 @@ -0,0 +1,14 @@ +{ + "stages": "4", + "pgo" : true, + "build_libcxx": true, + "build_type": "Release", + "assertions": false, + "python_path": "/usr/bin/python2.7", + "gcc_dir": "{MOZ_FETCHES_DIR}/gcc", + "cc": "{MOZ_FETCHES_DIR}/gcc/bin/gcc", + "cxx": "{MOZ_FETCHES_DIR}/gcc/bin/g++", + "as": "{MOZ_FETCHES_DIR}/gcc/bin/gcc", + "patches": [ + ] +} diff -Nru thunderbird-78.6.0/build/build-clang/clang-9-mingw.json thunderbird-78.9.0/build/build-clang/clang-9-mingw.json --- thunderbird-78.6.0/build/build-clang/clang-9-mingw.json 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/build/build-clang/clang-9-mingw.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,14 +0,0 @@ -{ - "stages": "4", - "pgo" : true, - "build_libcxx": true, - "build_type": "Release", - "assertions": false, - "python_path": "/usr/bin/python2.7", - "gcc_dir": "{MOZ_FETCHES_DIR}/gcc", - "cc": "{MOZ_FETCHES_DIR}/gcc/bin/gcc", - "cxx": "{MOZ_FETCHES_DIR}/gcc/bin/g++", - "as": "{MOZ_FETCHES_DIR}/gcc/bin/gcc", - "patches": [ - ] -} diff -Nru thunderbird-78.6.0/build/moz.configure/init.configure thunderbird-78.9.0/build/moz.configure/init.configure --- thunderbird-78.6.0/build/moz.configure/init.configure 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/build/moz.configure/init.configure 2021-03-22 15:46:43.000000000 +0000 @@ -238,8 +238,12 @@ option(env='PYTHON3', nargs=1, help='Python 3 interpreter (3.5 or later)') +option(env='VIRTUALENV_NAME', nargs=1, default='init_py3', + help='Name of the in-objdir virtualenv') -@depends('PYTHON3', check_build_environment, mozconfig, '--help') + +@depends('PYTHON3', 'VIRTUALENV_NAME', check_build_environment, mozconfig, + '--help') @imports(_from='__builtin__', _import='Exception') @imports('os') @imports('sys') @@ -251,7 +255,7 @@ @imports(_from='mozbuild.pythonutil', _import='find_python3_executable') @imports(_from='mozbuild.pythonutil', _import='python_executable_version') @imports(_from='six', _import='ensure_text') -def virtualenv_python3(env_python, build_env, mozconfig, help): +def virtualenv_python3(env_python, virtualenv_name, build_env, mozconfig, help): # Avoid re-executing python when running configure --help. if help: return @@ -269,6 +273,7 @@ log.debug("python3: sys.executable: %r" % sys.executable) python = env_python[0] if env_python else None + virtualenv_name = virtualenv_name[0] # Did our python come from mozconfig? Overrides environment setting. # Ideally we'd rely on the mozconfig injection from mozconfig_options, @@ -304,7 +309,7 @@ with LineIO(lambda l: log.info(l), 'replace') as out: manager = VirtualenvManager( topsrcdir, topobjdir, - os.path.join(virtualenvs_root, 'init_py3'), out, + os.path.join(virtualenvs_root, virtualenv_name), out, os.path.join(topsrcdir, 'build', 'virtualenv_packages.txt')) # If we're not in the virtualenv, we need to update the path to include some @@ -370,6 +375,10 @@ # value which messes with mach's virtualenv handling code. Override # Homebrew's changes with the correct sys.executable value. os.environ['PYTHONEXECUTABLE'] = python + # Another quirk on macOS, with the system python, the virtualenv is + # not fully operational (missing entries in sys.path) if + # __PYVENV_LAUNCHER__ is set. + os.environ.pop('__PYVENV_LAUNCHER__', None) # One would prefer to use os.execl, but that's completely borked on # Windows. sys.exit(subprocess.call([python] + sys.argv)) @@ -378,6 +387,11 @@ if not distutils.sysconfig.get_python_lib(): die('Could not determine python site packages directory') + # We may have set PYTHONEXECUTABLE above, and that affects python + # subprocesses we may invoke as part of configure (e.g. hg), so + # unset it. + os.environ.pop('PYTHONEXECUTABLE', None) + str_version = '.'.join(str(v) for v in version) return namespace( diff -Nru thunderbird-78.6.0/build/moz.configure/toolchain.configure thunderbird-78.9.0/build/moz.configure/toolchain.configure --- thunderbird-78.6.0/build/moz.configure/toolchain.configure 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/build/moz.configure/toolchain.configure 2021-03-22 15:46:43.000000000 +0000 @@ -137,8 +137,9 @@ help='Location of platform SDK to use') @depends('--with-macos-sdk', host) + @imports(_from='__builtin__', _import='open') @imports(_from='os.path', _import='isdir') - @imports(_from='biplist', _import='readPlist') + @imports('plistlib') def macos_sdk(sdk, host): sdk_min_version = Version('10.11') sdk_max_version = Version('10.15.4') @@ -159,7 +160,8 @@ 'valid SDK. SDKs are installed when the optional cross-development ' 'tools are selected during the Xcode/Developer Tools installation.' % sdk) - obj = readPlist(os.path.join(sdk, 'SDKSettings.plist')) + with open(os.path.join(sdk, 'SDKSettings.plist'), 'rb') as plist: + obj = plistlib.load(plist) if not obj: die('Error parsing SDKSettings.plist in the SDK directory: %s' % sdk) if 'Version' not in obj: diff -Nru thunderbird-78.6.0/build/moz.configure/warnings.configure thunderbird-78.9.0/build/moz.configure/warnings.configure --- thunderbird-78.6.0/build/moz.configure/warnings.configure 2020-12-12 00:45:43.000000000 +0000 +++ thunderbird-78.9.0/build/moz.configure/warnings.configure 2021-03-22 15:46:43.000000000 +0000 @@ -223,6 +223,11 @@ when=depends(build_project) (lambda build_project: build_project == 'js')) +# Disable broken missing-braces warning on old clang versions +check_and_add_gcc_warning( + '-Wno-missing-braces', + when=depends(c_compiler)(lambda c: c.type == 'clang' and c.version < '6.0')) + # Please keep these last in this file add_old_configure_assignment('_WARNINGS_CFLAGS', warnings_flags.cflags) Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/build/pgo/certs/cert9.db and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/cert9.db differ Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/build/pgo/certs/key4.db and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/key4.db differ Binary files /srv/release.debian.org/tmp/s2YzddJ2tW/thunderbird-78.6.0/build/pgo/certs/mochitest.client and /srv/release.debian.org/tmp/GxbQMrLkkX/thunderbird-78.9.0/build/pgo/certs/mochitest.client differ diff -Nru thunderbird-78.6.0/build/upload_generated_sources.py thunderbird-78.9.0/build/upload_generated_sources.py --- thunderbird-78.6.0/build/upload_generated_sources.py 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/build/upload_generated_sources.py 2021-03-22 15:46:43.000000000 +0000 @@ -155,7 +155,7 @@ region, bucket = get_s3_region_and_bucket() config = MozbuildObject.from_environment() - config._activate_virtualenv() + config.activate_virtualenv() config.virtualenv_manager.install_pip_package('boto3==1.4.4') with timed() as elapsed: diff -Nru thunderbird-78.6.0/build/valgrind/mach_commands.py thunderbird-78.9.0/build/valgrind/mach_commands.py --- thunderbird-78.6.0/build/valgrind/mach_commands.py 2020-12-12 00:45:44.000000000 +0000 +++ thunderbird-78.9.0/build/valgrind/mach_commands.py 2021-03-22 15:46:43.000000000 +0000 @@ -32,10 +32,6 @@ ''' Run Valgrind tests. ''' - - def __init__(self, context): - MachCommandBase.__init__(self, context) - @Command('valgrind-test', category='testing', conditions=[conditions.is_firefox_or_thunderbird, is_valgrind_build], description='Run the Valgrind test job (memory-related errors).') diff -Nru thunderbird-78.6.0/comm/.gecko_rev.yml thunderbird-78.9.0/comm/.gecko_rev.yml --- thunderbird-78.6.0/comm/.gecko_rev.yml 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/.gecko_rev.yml 2021-03-22 15:50:42.000000000 +0000 @@ -1,8 +1,8 @@ --- GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified GECKO_HEAD_REPOSITORY: https://hg.mozilla.org/releases/mozilla-esr78 -GECKO_HEAD_REF: FIREFOX_78_6_0esr_BUILD1 -GECKO_HEAD_REV: 8e6813a535daf9ef261c2bbb80cb10e9a832d68e +GECKO_HEAD_REF: FIREFOX_78_9_0esr_BUILD1 +GECKO_HEAD_REV: 403985a1dd4d3c4c51ab977e1212bef4bfee6a32 ### For comm-central # GECKO_BASE_REPOSITORY: https://hg.mozilla.org/mozilla-unified diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-base-view.js thunderbird-78.9.0/comm/calendar/base/content/calendar-base-view.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-base-view.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-base-view.js 2021-03-22 15:50:42.000000000 +0000 @@ -489,13 +489,11 @@ this.setAttribute("type", this.type); - this.addEventListener( - "viewresize", - event => { - this.onResize(this); - }, - true - ); + window.addEventListener("viewresize", event => { + if (this.isVisible()) { + this.onResize(); + } + }); // Add a preference observer to monitor changes. Services.prefs.addObserver("calendar.", this.mPrefObserver); @@ -529,7 +527,7 @@ * * @param {calICalendarView} [calViewElem] - A calendar view element. */ - onResize(calView) { + onResize() { // Child classes should provide the implementation. throw new Error(this.constructor.name + ".onResize not implemented"); } diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-chrome-startup.js thunderbird-78.9.0/comm/calendar/base/content/calendar-chrome-startup.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-chrome-startup.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-chrome-startup.js 2021-03-22 15:50:42.000000000 +0000 @@ -76,10 +76,13 @@ // Start alarm service Cc["@mozilla.org/calendar/alarm-service;1"].getService(Ci.calIAlarmService).startup(); document.getElementById("calsidebar_splitter").addEventListener("command", () => { - document.dispatchEvent(new CustomEvent("viewresize", { bubbles: true })); + window.dispatchEvent(new CustomEvent("viewresize")); + }); + document.getElementById("calendar-view-splitter").addEventListener("command", () => { + window.dispatchEvent(new CustomEvent("viewresize")); }); window.addEventListener("resize", () => { - document.dispatchEvent(new CustomEvent("viewresize", { bubbles: true })); + window.dispatchEvent(new CustomEvent("viewresize")); }); // Set calendar color CSS on this window diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-management.js thunderbird-78.9.0/comm/calendar/base/content/calendar-management.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-management.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-management.js 2021-03-22 15:50:42.000000000 +0000 @@ -446,23 +446,12 @@ QueryInterface: ChromeUtils.generateQI([Ci.calICalendarManagerObserver]), onCalendarRegistered(calendar) { - let inComposite = calendar.getProperty("calendar-main-in-composite"); - if (inComposite === null && !calendar.getProperty("disabled")) { - compositeCalendar.addCalendar(calendar); - } addCalendarItem(calendar); saveSortOrder(); }, onCalendarUnregistering(calendar) { - compositeCalendar.removeCalendar(calendar); let item = calendarList.getElementsByAttribute("calendar-id", calendar.id)[0]; item.remove(); - if ( - !compositeCalendar.defaultCalendar || - compositeCalendar.defaultCalendar.id == calendar.id - ) { - compositeCalendar.defaultCalendar = compositeCalendar.getCalendars()[0]; - } saveSortOrder(); }, onCalendarDeleting(calendar) {}, diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-modes.js thunderbird-78.9.0/comm/calendar/base/content/calendar-modes.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-modes.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-modes.js 2021-03-22 15:50:42.000000000 +0000 @@ -93,7 +93,7 @@ window.setCursor("auto"); // make sure the view is sized correctly - document.dispatchEvent(new CustomEvent("viewresize", { bubbles: true })); + window.dispatchEvent(new CustomEvent("viewresize")); // Load the unifinder if it isn't already loaded. ensureUnifinderLoaded(); diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-month-base-view.js thunderbird-78.9.0/comm/calendar/base/content/calendar-month-base-view.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-month-base-view.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-month-base-view.js 2021-03-22 15:50:42.000000000 +0000 @@ -385,8 +385,8 @@ * * @param {Element} viewElement A calendar view element (calICalendarView). */ - onResize(viewElement) { - viewElement.adjustWeekdayLength(); + onResize() { + this.adjustWeekdayLength(); // Delete the timer for the time indicator in day/week view. timeIndicator.cancel(); } diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-multiday-base-view.js thunderbird-78.9.0/comm/calendar/base/content/calendar-multiday-base-view.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-multiday-base-view.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-multiday-base-view.js 2021-03-22 15:50:42.000000000 +0000 @@ -670,36 +670,33 @@ * * @param {Element} calViewElem A calendar view element (calICalendarView). */ - onResize(calViewElem) { - const self = calViewElem || this; // eslint-disable-line consistent-this - const isARelayout = !calViewElem; - + onResize() { const scrollboxRect = this.scrollbox.getBoundingClientRect(); - const isOrientHorizontal = self.getAttribute("orient") == "horizontal"; + const isOrientHorizontal = this.getAttribute("orient") == "horizontal"; const size = isOrientHorizontal ? scrollboxRect.width : scrollboxRect.height; - const ppmRaw = size / self.mVisibleMinutes; + const ppmRaw = size / this.mVisibleMinutes; const ppmRounded = Math.floor(ppmRaw * 1000) / 1000; - const ppm = ppmRounded < self.mMinPixelsPerMinute ? self.mMinPixelsPerMinute : ppmRounded; + const ppm = ppmRounded < this.mMinPixelsPerMinute ? this.mMinPixelsPerMinute : ppmRounded; - const ppmHasChanged = self.pixelsPerMinute != ppm; - self.pixelsPerMinute = ppm; + const ppmHasChanged = this.pixelsPerMinute != ppm; + this.pixelsPerMinute = ppm; - setTimeout(() => self.scrollToMinute(self.mFirstVisibleMinute), 0); + setTimeout(() => this.scrollToMinute(this.mFirstVisibleMinute), 0); // Fit the weekday labels while scrolling. - self.adjustWeekdayLength(isOrientHorizontal); + this.adjustWeekdayLength(isOrientHorizontal); // Adjust the time indicator position and the related timer. if (this.mTimeIndicatorInterval != 0) { - const viewHasChanged = isARelayout && timeIndicator.lastView != this.id; + const viewHasChanged = timeIndicator.lastView != this.id; if ( gCurrentMode == "calendar" && (!timeIndicator.timer || ppmHasChanged || viewHasChanged) ) { - self.updateTimeIndicatorPosition(true, ppmHasChanged, viewHasChanged); + this.updateTimeIndicatorPosition(true, ppmHasChanged, viewHasChanged); } } } diff -Nru thunderbird-78.6.0/comm/calendar/base/content/calendar-unifinder.js thunderbird-78.9.0/comm/calendar/base/content/calendar-unifinder.js --- thunderbird-78.6.0/comm/calendar/base/content/calendar-unifinder.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/calendar-unifinder.js 2021-03-22 15:50:42.000000000 +0000 @@ -981,6 +981,7 @@ // Toggle the elements goToggleToolbar("bottom-events-box", "calendar_show_unifinder_command"); goToggleToolbar("calendar-view-splitter"); + window.dispatchEvent(new CustomEvent("viewresize")); unifinderTreeView.treeElement.view = unifinderTreeView; diff -Nru thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.js thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.js --- thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.js 2021-03-22 15:50:42.000000000 +0000 @@ -414,7 +414,7 @@ initializeControls(rule); // Update controls - updateRecurrenceDeck(); + updateRecurrenceBox(); opener.setCursor("auto"); self.focus(); @@ -613,7 +613,7 @@ // matters, so we can't always just append at the end. This // code here always inserts a rule first, because all our // exceptions should come afterward. - let deckNumber = Number(getElementValue("period-list")); + let periodNumber = Number(getElementValue("period-list")); let args = window.arguments[0]; let recurrenceInfo = args.recurrenceInfo; @@ -630,7 +630,7 @@ let recRule = cal.createRecurrenceRule(); const ALL_WEEKDAYS = [2, 3, 4, 5, 6, 7, 1]; // The sequence MO,TU,WE,TH,FR,SA,SU. - switch (deckNumber) { + switch (periodNumber) { case 0: { recRule.type = "DAILY"; let dailyGroup = document.getElementById("daily-group"); @@ -851,12 +851,17 @@ } /** - * Handler function to update the period-deck when an item from the period-list - * is selected. Also updates the controls on that deck. + * Handler function to update the period-box when an item from the period-list + * is selected. Also updates the controls on that period-box. */ -function updateRecurrenceDeck() { - document.getElementById("period-deck").selectedIndex = Number(getElementValue("period-list")); +function updateRecurrenceBox() { + let periodBox = document.getElementById("period-box"); + let periodNumber = Number(getElementValue("period-list")); + for (let i = 0; i < periodBox.children.length; i++) { + periodBox.children[i].hidden = i != periodNumber; + } updateRecurrenceControls(); + window.sizeToContent(); } /** diff -Nru thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xhtml thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xhtml --- thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xhtml 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog-recurrence.xhtml 2021-03-22 15:50:42.000000000 +0000 @@ -9,6 +9,7 @@ + @@ -49,11 +50,11 @@ disable-on-occurrence="true" control="period-list"/> - + + oncommand="updateRecurrenceBox();" + disable-on-readonly="true" + disable-on-occurrence="true"> - + - @@ -100,7 +101,7 @@ - + + diff -Nru thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog.xhtml thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog.xhtml --- thunderbird-78.6.0/comm/calendar/base/content/dialogs/calendar-event-dialog.xhtml 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/content/dialogs/calendar-event-dialog.xhtml 2021-03-22 15:50:42.000000000 +0000 @@ -439,6 +439,7 @@ label="&event.attachments.url.label;" accesskey="&event.attachments.url.accesskey;" command="cmd_attach_url"/> + { - document.dispatchEvent(new CustomEvent("viewresize", { bubbles: true })); + window.dispatchEvent(new CustomEvent("viewresize")); }); Services.obs.addObserver(TodayPane, "defaultTimezoneChanged"); @@ -129,7 +129,7 @@ } } - document.dispatchEvent(new CustomEvent("viewresize", { bubbles: true })); + window.dispatchEvent(new CustomEvent("viewresize")); }, /** diff -Nru thunderbird-78.6.0/comm/calendar/base/modules/calRecurrenceUtils.jsm thunderbird-78.9.0/comm/calendar/base/modules/calRecurrenceUtils.jsm --- thunderbird-78.6.0/comm/calendar/base/modules/calRecurrenceUtils.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/modules/calRecurrenceUtils.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -473,9 +473,12 @@ occCounter = occCounter + ritem.count; byCount = true; } else { - // the rule is limited by as an until date - let from = aItem.parentItem.startDate.clone(); - let until = aItem.parentItem.endDate.clone(); + // The rule is limited by an until date. + let parentItem = aItem.parentItem; + let startDate = parentItem.startDate ?? parentItem.entryDate; + let endDate = parentItem.endDate ?? parentItem.dueDate ?? startDate; + let from = startDate.clone(); + let until = endDate.clone(); if (until.compare(ritem.untilDate) == -1) { until = ritem.untilDate.clone(); } @@ -483,12 +486,13 @@ let exceptionIds = recInfo.getExceptionIds(); for (let exceptionId of exceptionIds) { let recur = recInfo.getExceptionFor(exceptionId); - recur.QueryInterface(Ci.calIEvent); - if (from.compare(recur.startDate) == 1) { - from = recur.startDate.clone(); + let recurStartDate = recur.startDate ?? recur.entryDate; + let recurEndDate = recur.endDate ?? recur.dueDate ?? recurStartDate; + if (from.compare(recurStartDate) == 1) { + from = recurStartDate.clone(); } - if (until.compare(recur.endDate) == -1) { - until = recur.endDate.clone(); + if (until.compare(recurEndDate) == -1) { + until = recurEndDate.clone(); } } diff -Nru thunderbird-78.6.0/comm/calendar/base/modules/utils/calViewUtils.jsm thunderbird-78.9.0/comm/calendar/base/modules/utils/calViewUtils.jsm --- thunderbird-78.6.0/comm/calendar/base/modules/utils/calViewUtils.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/modules/utils/calViewUtils.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -158,7 +158,30 @@ let comp = (aWindow._compositeCalendar = Cc[ "@mozilla.org/calendar/calendar;1?type=composite" ].createInstance(Ci.calICompositeCalendar)); - comp.prefPrefix = "calendar-main"; + const prefix = "calendar-main"; + + const calManagerObserver = { + QueryInterface: ChromeUtils.generateQI([Ci.calICalendarManagerObserver]), + + onCalendarRegistered(calendar) { + let inComposite = calendar.getProperty(prefix + "-in-composite"); + if (inComposite === null && !calendar.getProperty("disabled")) { + comp.addCalendar(calendar); + } + }, + onCalendarUnregistering(calendar) { + comp.removeCalendar(calendar); + if (!comp.defaultCalendar || comp.defaultCalendar.id == calendar.id) { + comp.defaultCalendar = comp.getCalendars()[0]; + } + }, + onCalendarDeleting(calendar) {}, + }; + const calManager = cal.getCalendarManager(); + calManager.addObserver(calManagerObserver); + aWindow.addEventListener("unload", () => calManager.removeObserver(calManagerObserver)); + + comp.prefPrefix = prefix; // populate calendar from existing calendars if (typeof aWindow.gCalendarStatusFeedback != "undefined") { // If we are in a window that has calendar status feedback, set diff -Nru thunderbird-78.6.0/comm/calendar/base/src/CalCalendarManager.jsm thunderbird-78.9.0/comm/calendar/base/src/CalCalendarManager.jsm --- thunderbird-78.6.0/comm/calendar/base/src/CalCalendarManager.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/src/CalCalendarManager.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -735,6 +735,7 @@ "calendar-main-default", "readOnly", "imip.identity.key", + "username", ]; for (let prop of propsToCopy) { newCal.setProperty(prop, aCalendar.getProperty(prop)); diff -Nru thunderbird-78.6.0/comm/calendar/base/src/CalTimezoneService.jsm thunderbird-78.9.0/comm/calendar/base/src/CalTimezoneService.jsm --- thunderbird-78.6.0/comm/calendar/base/src/CalTimezoneService.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/src/CalTimezoneService.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -264,7 +264,9 @@ if (!this.mDefaultTimezone) { let prefTzid = Services.prefs.getStringPref("calendar.timezone.local", null); let tzid = prefTzid; - if (!tzid) { + // If a user already has a profile created by an earlier version + // with floating timezone, set the correctly guessed timezone. + if (!tzid || tzid == "floating") { try { tzid = guessSystemTimezone(); } catch (e) { @@ -317,8 +319,9 @@ */ function guessSystemTimezone() { // Probe JSDates for basic OS timezone offsets and names. - const dateJun = new Date(2005, 5, 20).toString(); - const dateDec = new Date(2005, 11, 20).toString(); + // Check timezone rules for current year + const dateJun = new Date(new Date().getFullYear(), 5, 20).toString(); + const dateDec = new Date(new Date().getFullYear(), 11, 20).toString(); const tzNameRegex = /[^(]* ([^ ]*) \(([^)]+)\)/; const nameDataJun = dateJun.match(tzNameRegex); const nameDataDec = dateDec.match(tzNameRegex); @@ -563,7 +566,7 @@ try { let line = {}, hasMore = true, - MAXLINES = 10; + MAXLINES = 50; for (let i = 0; hasMore && i < MAXLINES; i++) { hasMore = fileInstream.readLine(line); if (line.value && line.value.match(tzRegex)) { diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/common/calendar-daypicker.css thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-daypicker.css --- thunderbird-78.6.0/comm/calendar/base/themes/common/calendar-daypicker.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-daypicker.css 2021-03-22 15:50:42.000000000 +0000 @@ -24,5 +24,5 @@ button.calendar-daypicker[checked="true"] { background-color: Highlight !important; - color: HighlightText; + color: HighlightText !important; } diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/common/calendar-task-view.css thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-task-view.css --- thunderbird-78.6.0/comm/calendar/base/themes/common/calendar-task-view.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/common/calendar-task-view.css 2021-03-22 15:50:42.000000000 +0000 @@ -4,6 +4,12 @@ @namespace html url("http://www.w3.org/1999/xhtml"); +#calendar-task-details-container { + border-bottom-width: 0; + padding: 0; + overflow: hidden; +} + #calendar-task-details { display: flex; flex-direction: column; @@ -15,10 +21,7 @@ } #calendar-task-details-grid { - padding-top: 1px; - padding-inline-start: 0; - padding-inline-end: 0; - padding-bottom: 0.2em; + padding: 1px 2px 0.2em; width: 100%; } @@ -49,6 +52,10 @@ padding-bottom: 0.3em; } +#task-actions-toolbox { + margin-inline-end: 3px; +} + #task-addition-box { border-bottom: 1px solid ThreeDShadow; } @@ -83,8 +90,12 @@ #calendar-task-details-description { width: 100%; box-sizing: border-box; - font-family: serif; - font-size: 16px; + border-width: 0; + border-top: 1px solid var(--splitter-color); + margin-block: 0; + padding-inline: 4px; + outline: none; + resize: none; } .task-details-name { @@ -100,7 +111,8 @@ } #calendar-task-details-attachment-row { - margin-top: 3px; + border-top: 1px solid var(--splitter-color); + padding-block: 2px; } #calendar-task-details-attachment-rows { diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/linux/calendar-task-tree.css thunderbird-78.9.0/comm/calendar/base/themes/linux/calendar-task-tree.css --- thunderbird-78.6.0/comm/calendar/base/themes/linux/calendar-task-tree.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/linux/calendar-task-tree.css 2021-03-22 15:50:42.000000000 +0000 @@ -3,3 +3,11 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @import url(chrome://calendar/skin/shared/calendar-task-tree.css); + +.calendar-task-tree-col-priority > .treecol-icon { + padding-inline-end: 4px; +} + +:root[lwt-tree] .calendar-task-tree-col-priority > .treecol-icon { + padding-inline-end: 1px; +} diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/linux/lightning.css thunderbird-78.9.0/comm/calendar/base/themes/linux/lightning.css --- thunderbird-78.6.0/comm/calendar/base/themes/linux/lightning.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/linux/lightning.css 2021-03-22 15:50:42.000000000 +0000 @@ -43,7 +43,6 @@ /* Lightning sidebar in calendar and task mode */ #ltnSidebar { background-color: -moz-field; - border-bottom: 1px solid ThreeDShadow; } /* Today pane button in status bar */ diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/osx/calendar-task-tree.css thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-tree.css --- thunderbird-78.6.0/comm/calendar/base/themes/osx/calendar-task-tree.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-tree.css 2021-03-22 15:50:42.000000000 +0000 @@ -3,3 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ @import url(chrome://calendar/skin/shared/calendar-task-tree.css); + +.calendar-task-tree-col-priority > .treecol-icon { + padding-inline-end: 1px; +} diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/osx/calendar-task-view.css thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-view.css --- thunderbird-78.6.0/comm/calendar/base/themes/osx/calendar-task-view.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/osx/calendar-task-view.css 2021-03-22 15:50:42.000000000 +0000 @@ -6,9 +6,7 @@ #calendar-task-details-container { background-color: ButtonFace; - border-bottom-width: 0; padding-top: 2px; - overflow: hidden; } #other-actions-box { diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/windows/calendar-task-tree.css thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-tree.css --- thunderbird-78.6.0/comm/calendar/base/themes/windows/calendar-task-tree.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-tree.css 2021-03-22 15:50:42.000000000 +0000 @@ -4,6 +4,10 @@ @import url(chrome://calendar/skin/shared/calendar-task-tree.css); +.calendar-task-tree-col-priority > .treecol-icon { + padding-inline-end: 1px; +} + /* Use on Win7 and up default theme a dark text color when selected focus */ @media (-moz-windows-default-theme) { .calendar-task-tree > treechildren::-moz-tree-row(inprogress, selected, focus) { diff -Nru thunderbird-78.6.0/comm/calendar/base/themes/windows/calendar-task-view.css thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-view.css --- thunderbird-78.6.0/comm/calendar/base/themes/windows/calendar-task-view.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/base/themes/windows/calendar-task-view.css 2021-03-22 15:50:42.000000000 +0000 @@ -15,11 +15,7 @@ } #calendar-task-details-container { - border-top: 1px solid ThreeDShadow; - border-left: 1px solid ThreeDShadow; - border-right: 0; - border-bottom: 0; - overflow: hidden; + padding-top: 0; } #other-actions-box { @@ -61,11 +57,6 @@ border-top-width: 0; } -#calendar-task-details-container { - border-top-width: 0; - padding-top: 0; -} - @media (-moz-windows-default-theme) { #task-addition-box { background-color: #f8f8f8; diff -Nru thunderbird-78.6.0/comm/calendar/lightning/content/imip-bar.js thunderbird-78.9.0/comm/calendar/lightning/content/imip-bar.js --- thunderbird-78.6.0/comm/calendar/lightning/content/imip-bar.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/lightning/content/imip-bar.js 2021-03-22 15:50:42.000000000 +0000 @@ -65,11 +65,13 @@ // We need to extend the HideMessageHeaderPane function to also hide the // message header pane. Otherwise, the imip bar will still be shown when // changing folders. - ltnImipBar.tbHideMessageHeaderPane = HideMessageHeaderPane; - HideMessageHeaderPane = function(...args) { - ltnImipBar.resetBar(); - ltnImipBar.tbHideMessageHeaderPane(...args); - }; + if (!ltnImipBar.tbHideMessageHeaderPane) { + ltnImipBar.tbHideMessageHeaderPane = HideMessageHeaderPane; + HideMessageHeaderPane = function(...args) { + ltnImipBar.resetBar(); + ltnImipBar.tbHideMessageHeaderPane(...args); + }; + } // Set up our observers Services.obs.addObserver(ltnImipBar, "onItipItemCreation"); diff -Nru thunderbird-78.6.0/comm/calendar/lightning/content/lightning-item-iframe.js thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-iframe.js --- thunderbird-78.6.0/comm/calendar/lightning/content/lightning-item-iframe.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-iframe.js 2021-03-22 15:50:42.000000000 +0000 @@ -2340,8 +2340,9 @@ */ function uploadCloudAttachment(attachment, cloudFileAccount, listItem) { let file = attachment.uri.QueryInterface(Ci.nsIFileURL).file; + let image = listItem.querySelector("image"); listItem.attachCloudFileAccount = cloudFileAccount; - listItem.setAttribute("image", "chrome://global/skin/icons/loading.png"); + image.setAttribute("src", "chrome://global/skin/icons/loading.png"); cloudFileAccount.uploadFile(file).then( upload => { delete gAttachMap[attachment.hashId]; @@ -2350,7 +2351,7 @@ attachment.setParameter("PROVIDER", cloudFileAccount.type); listItem.setAttribute("label", file.leafName); gAttachMap[attachment.hashId] = attachment; - listItem.setAttribute("image", cloudFileAccount.iconURL); + image.setAttribute("src", cloudFileAccount.iconURL); listItem.attachCloudFileUpload = upload; updateAttachment(); }, diff -Nru thunderbird-78.6.0/comm/calendar/lightning/content/lightning-item-toolbar.inc.xhtml thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-toolbar.inc.xhtml --- thunderbird-78.6.0/comm/calendar/lightning/content/lightning-item-toolbar.inc.xhtml 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/lightning/content/lightning-item-toolbar.inc.xhtml 2021-03-22 15:50:42.000000000 +0000 @@ -53,10 +53,18 @@ + disable-on-readonly="true"> + + + + + { this._oncompleted = resolve; - this._oncompleteerror = reject; + this._oncompletederror = reject; }); } diff -Nru thunderbird-78.6.0/comm/calendar/providers/storage/CalStorageCalendar.jsm thunderbird-78.9.0/comm/calendar/providers/storage/CalStorageCalendar.jsm --- thunderbird-78.6.0/comm/calendar/providers/storage/CalStorageCalendar.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/providers/storage/CalStorageCalendar.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -1640,6 +1640,10 @@ }, cacheItem(item) { + if (item.recurrenceId) { + // Do not cache recurring item instances. See bug 1686466. + return; + } this.mItemCache.set(item.id, item); if (item.recurrenceInfo) { if (cal.item.isEvent(item)) { @@ -1769,7 +1773,7 @@ } let rec = item.recurrenceInfo; - let exc = await this.getEventFromRow(row, false); + let exc = await this.getEventFromRow(row); rec.modifyException(exc, true); }); @@ -1781,7 +1785,7 @@ } let rec = item.recurrenceInfo; - let exc = await this.getTodoFromRow(row, false); + let exc = await this.getTodoFromRow(row); rec.modifyException(exc, true); }); diff -Nru thunderbird-78.6.0/comm/calendar/test/.eslintrc.js thunderbird-78.9.0/comm/calendar/test/.eslintrc.js --- thunderbird-78.6.0/comm/calendar/test/.eslintrc.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/.eslintrc.js 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,74 @@ +/* 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/. */ + +"use strict"; + +// Calendar tests run with the pref calendar.timezone.local set to UTC. This +// works fine on the CI, where the system clock is also UTC, but on developers' +// machines the time difference causes some problems. If you have to use the +// Date object, make sure that you use UTC methods. + +module.exports = { + rules: { + "no-restricted-properties": [ + "error", + { + property: "getFullYear", + message: "These tests run in UTC. Use 'getUTCFullYear' instead.", + }, + { + property: "getMonth", + message: "These tests run in UTC. Use 'getUTCMonth' instead.", + }, + { + property: "getDay", + message: "These tests run in UTC. Use 'getUTCDay' instead.", + }, + { + property: "getDate", + message: "These tests run in UTC. Use 'getUTCDate' instead.", + }, + { + property: "getHours", + message: "These tests run in UTC. Use 'getUTCHours' instead.", + }, + { + property: "getMinutes", + message: "These tests run in UTC. Use 'getUTCMinutes' instead.", + }, + { + property: "setFullYear", + message: "These tests run in UTC. Use 'setUTCFullYear' instead.", + }, + { + property: "setMonth", + message: "These tests run in UTC. Use 'setUTCMonth' instead.", + }, + { + property: "setDay", + message: "These tests run in UTC. Use 'setUTCDay' instead.", + }, + { + property: "setDate", + message: "These tests run in UTC. Use 'setUTCDate' instead.", + }, + { + property: "setHours", + message: "These tests run in UTC. Use 'setUTCHours' instead.", + }, + { + property: "setMinutes", + message: "These tests run in UTC. Use 'setUTCMinutes' instead.", + }, + ], + "no-restricted-syntax": [ + "error", + { + selector: "[callee.name='Date'][arguments.length>=2]", + message: + "These tests run in UTC. Use 'new Date(Date.UTC(...))' to construct a Date with arguments.", + }, + ], + }, +}; diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,7 +1,7 @@ [default] head = head.js prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true @@ -16,6 +16,7 @@ [browser_eventDisplay.js] [browser_import.js] [browser_localICS.js] +[browser_taskDelete.js] [browser_tabs.js] [browser_taskDisplay.js] [browser_todayPane.js] diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/browser_taskDelete.js thunderbird-78.9.0/comm/calendar/test/browser/browser_taskDelete.js --- thunderbird-78.6.0/comm/calendar/test/browser/browser_taskDelete.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/browser_taskDelete.js 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,183 @@ +/* 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/. */ + +/** + * Tests for deleting tasks in the task view. + */ +const { mailTestUtils } = ChromeUtils.import( + "resource://testing-common/mailnews/MailTestUtils.jsm" +); +const { cal } = ChromeUtils.import("resource:///modules/calendar/calUtils.jsm"); + +let manager = cal.getCalendarManager(); +let _calendar = manager.createCalendar("memory", Services.io.newURI("moz-memory-calendar://")); +_calendar.name = "Task Delete Test"; +manager.registerCalendar(_calendar); +registerCleanupFunction(() => { + manager.unregisterCalendar(_calendar); +}); + +let calendar = cal.async.promisifyCalendar(_calendar); + +/** + * Test ensures its possible to delete a task in the task view. Creates two task + * and deletes one. + */ +add_task(async function testTaskDeletion() { + let task1 = cal.createTodo(); + task1.id = "1"; + task1.title = "Task 1"; + task1.entryDate = cal.createDateTime("20210126T000001Z"); + + let task2 = cal.createTodo(); + task2.id = "2"; + task2.title = "Task 2"; + task2.entryDate = cal.createDateTime("20210127T000001Z"); + + await calendar.addItem(task1); + await calendar.addItem(task2); + await openTasksTab(); + + let tree = window.document.querySelector("#calendar-task-tree"); + let radio = window.document.querySelector("#opt_next7days_filter"); + let waitForRefresh = BrowserTestUtils.waitForEvent(tree, "refresh"); + EventUtils.synthesizeMouseAtCenter(radio, {}); + tree.refresh(); + + await waitForRefresh; + Assert.equal(tree.view.rowCount, 2, "2 tasks are displayed"); + + mailTestUtils.treeClick(EventUtils, window, tree, 0, 1, { clickCount: 1 }); + EventUtils.synthesizeKey("VK_DELETE"); + + // Try and trigger a reflow + tree.height; + tree.invalidate(); + await new Promise(r => setTimeout(r)); + + await TestUtils.waitForCondition(() => { + tree = window.document.querySelector("#calendar-task-tree"); + return tree.view.rowCount == 1; + }, `task view displays ${tree.view.rowCount} tasks instead of 1`); + + let result = await calendar.getItem(task1.id); + Assert.equal(result.length, 0, "first task was deleted successfully"); + + result = await calendar.getItem(task2.id); + Assert.equal(result.length, 1, "second task was not deleted"); + await calendar.deleteItem(task2); + await closeTasksTab(); +}); + +/** + * Test ensures it is possible to delete a recurring task from the task view. + * See bug 1688708. + */ +add_task(async function testRecurringTaskDeletion() { + let repeatTask = cal.createTodo(); + repeatTask.id = "1"; + repeatTask.title = "Repeating Task"; + repeatTask.entryDate = cal.createDateTime("20210125T000001Z"); + repeatTask.recurrenceInfo = cal.createRecurrenceInfo(repeatTask); + repeatTask.recurrenceInfo.appendRecurrenceItem( + cal.createRecurrenceRule("RRULE:FREQ=DAILY;COUNT=3") + ); + + let nonRepeatTask = cal.createTodo(); + nonRepeatTask.id = "2"; + nonRepeatTask.title = "Non-Repeating Task"; + nonRepeatTask.entryDate = cal.createDateTime("20210126T000001Z"); + + repeatTask = await calendar.addItem(repeatTask); + nonRepeatTask = await calendar.addItem(nonRepeatTask); + + await openTasksTab(); + + let tree = window.document.querySelector("#calendar-task-tree"); + let radio = window.document.querySelector("#opt_next7days_filter"); + let waitForRefresh = BrowserTestUtils.waitForEvent(tree, "refresh"); + EventUtils.synthesizeMouseAtCenter(radio, {}); + tree.refresh(); + + await waitForRefresh; + Assert.equal(tree.view.rowCount, 4, "4 tasks are displayed"); + + // Delete a single occurrence. + let handleSingleDelete = BrowserTestUtils.promiseAlertDialog( + null, + "chrome://calendar/content/calendar-occurrence-prompt.xhtml", + async win => { + let dialog = win.document.querySelector("dialog"); + let button = dialog.querySelector("#accept-occurrence-button"); + EventUtils.synthesizeMouseAtCenter(button, {}, win); + } + ); + mailTestUtils.treeClick(EventUtils, window, tree, 1, 1, { clickCount: 1 }); + EventUtils.synthesizeKey("VK_DELETE"); + await handleSingleDelete; + + // Try and trigger a reflow + tree.height; + tree.invalidate(); + await new Promise(r => setTimeout(r)); + + await TestUtils.waitForCondition(() => { + tree = window.document.querySelector("#calendar-task-tree"); + return tree.view.rowCount == 3; + }, `task view displays ${tree.view.rowCount} tasks instead of 3`); + + repeatTask = (await calendar.getItem(repeatTask.id))[0]; + + Assert.equal( + repeatTask.recurrenceInfo.getOccurrences( + cal.createDateTime("20210126T000001Z"), + cal.createDateTime("20210126T000001Z"), + 10 + ).length, + 0, + "a single occurrence was deleted successfully" + ); + + Assert.equal( + repeatTask.recurrenceInfo.getOccurrences( + repeatTask.entryDate, + cal.createDateTime("20210131T000001Z"), + 10 + ).length, + 2, + "other occurrences were not removed" + ); + + // Delete all occurrences + let handleAllDelete = BrowserTestUtils.promiseAlertDialog( + null, + "chrome://calendar/content/calendar-occurrence-prompt.xhtml", + async win => { + let dialog = win.document.querySelector("dialog"); + let button = dialog.querySelector("#accept-parent-button"); + EventUtils.synthesizeMouseAtCenter(button, {}, win); + } + ); + + mailTestUtils.treeClick(EventUtils, window, tree, 1, 1, { clickCount: 1 }); + EventUtils.synthesizeKey("VK_DELETE"); + await handleAllDelete; + + // Try and trigger a reflow + tree.height; + tree.invalidate(); + await new Promise(r => setTimeout(r)); + + await TestUtils.waitForCondition(() => { + tree = window.document.querySelector("#calendar-task-tree"); + return tree.view.rowCount == 1; + }, `task view displays ${tree.view.rowCount} tasks instead of 1`); + + repeatTask = (await calendar.getItem(repeatTask.id))[0]; + Assert.ok(!repeatTask, "all occurrences were removed"); + + let result = await calendar.getItem(nonRepeatTask.id); + Assert.equal(result.length, 1, "non-recurring task was not deleted"); + await closeTasksTab(); +}); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,15 +1,17 @@ [default] head = head.js prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true mailnews.start_page.override_url=about:blank mailnews.start_page.url=about:blank subsuite = thunderbird +support-files = data/** [browser_alarmDialog.js] +[browser_attachMenu.js] [browser_attendeesDialog.js] [browser_eventDialog.js] [browser_eventDialogModificationPrompt.js] diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_alarmDialog.js thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_alarmDialog.js --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_alarmDialog.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_alarmDialog.js 2021-03-22 15:50:42.000000000 +0000 @@ -33,7 +33,7 @@ createCalendar(controller, CALENDARNAME); switchToView(controller, "day"); - goToDate(controller, now.getFullYear(), now.getMonth() + 1, now.getDate()); + goToDate(controller, now.getUTCFullYear(), now.getUTCMonth() + 1, now.getUTCDate()); viewForward(controller, 1); controller.click(lookupEventBox("day", ALLDAY, undefined, 1)); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_attachMenu.js thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attachMenu.js --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_attachMenu.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attachMenu.js 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,256 @@ +/* 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/. */ + +/** + * Tests for the attach menu in the event dialog window. + */ +const { CalendarTestUtils } = ChromeUtils.import( + "resource://testing-common/mozmill/CalendarTestUtils.jsm" +); + +const { cal } = ChromeUtils.import("resource:///modules/calendar/calUtils.jsm"); +const { cloudFileAccounts } = ChromeUtils.import("resource:///modules/cloudFileAccounts.jsm"); +const { MockFilePicker } = ChromeUtils.import("resource://specialpowers/MockFilePicker.jsm"); + +let manager = cal.getCalendarManager(); +let _calendar = manager.createCalendar("memory", Services.io.newURI("moz-memory-calendar://")); +_calendar.name = "Attachments"; +manager.registerCalendar(_calendar); + +registerCleanupFunction(() => { + manager.unregisterCalendar(_calendar); +}); + +let calendar = cal.async.promisifyCalendar(_calendar); + +async function getEventBox(selector) { + let itemBox; + await TestUtils.waitForCondition(() => { + itemBox = document.querySelector(selector); + return itemBox != null; + }, "calendar item did not appear in time"); + return itemBox; +} + +/** + * Tests using the "Website" menu item attaches a link to the event. + */ +add_task(async function testAttachWebPage() { + let startDate = cal.createDateTime("20200101T000001Z"); + await CalendarTestUtils.setCalendarView(window, "month"); + window.goToDate(startDate); + + let getEventWin = CalendarTestUtils.waitForEventDialog("edit"); + window.goDoCommand("calendar_new_event_command"); + + let eventWin = await getEventWin; + + // Give the new event a title. + let iframe = eventWin.document.querySelector("#lightning-item-panel-iframe"); + iframe.contentDocument.querySelector("#item-title").value = "Web Link Event"; + + // Set its date. + iframe.contentDocument.querySelector("#event-starttime").value = cal.dtz.dateTimeToJsDate( + startDate + ); + + // Attach the url. + let attachButton = eventWin.document.querySelector("#button-url"); + Assert.ok(attachButton, "attach menu button found"); + + let menu = eventWin.document.querySelector("#button-attach-menupopup"); + let menuShowing = BrowserTestUtils.waitForEvent(menu, "popupshown"); + EventUtils.synthesizeMouseAtCenter(attachButton, {}, eventWin); + await menuShowing; + + let url = "https://thunderbird.net/"; + let urlPrompt = BrowserTestUtils.promiseAlertDialogOpen( + "", + "chrome://global/content/commonDialog.xhtml", + async win => { + win.document.querySelector("#loginTextbox").value = url; + EventUtils.synthesizeKey("VK_RETURN", {}, win); + } + ); + EventUtils.synthesizeMouseAtCenter( + eventWin.document.querySelector("#button-attach-url"), + {}, + eventWin + ); + await urlPrompt; + + // Now check that the url shows in the attachments list. + EventUtils.synthesizeMouseAtCenter( + iframe.contentDocument.querySelector("#event-grid-tab-attachments"), + {} + ); + + let listBox = iframe.contentDocument.querySelector("#attachment-link"); + await BrowserTestUtils.waitForCondition( + () => listBox.itemChildren.length == 1, + "attachment list did not show in time" + ); + + Assert.equal(listBox.itemChildren[0].tooltipText, url, "url included in attachments list"); + + // Save the new event. + eventWin.document.querySelector("#button-saveandclose").click(); + + // Open the event to verify the attachment is shown in the summary dialog. + let eventBox = await getEventBox("calendar-month-day-box-item"); + Assert.equal(eventBox.item.getAttachments()[0].uri.spec, url, "event has attachment URL"); + + // Clean up. + eventBox.focus(); + EventUtils.synthesizeKey("VK_DELETE", {}); + await CalendarTestUtils.closeCalendarTab(window); +}); + +/** + * Tests selecting a provider from the attach menu works. + */ +add_task(async function testAttachProvider() { + let fileUrl = "http://path/to/mock/file.pdf"; + let iconURL = "chrome://messenger/content/extension.svg"; + let provider = { + type: "Mochitest", + displayName: "Mochitest", + iconURL, + initAccount(accountKey) { + return { + accountKey, + type: "Mochitest", + get displayName() { + return Services.prefs.getCharPref( + `mail.cloud_files.accounts.${this.accountKey}.displayName`, + "Mochitest Account" + ); + }, + iconURL, + configured: true, + managementURL: "", + uploadFile() { + return new Promise(resolve => + setTimeout(() => + resolve({ + url: fileUrl, + }) + ) + ); + }, + }; + }, + }; + + cloudFileAccounts.registerProvider("Mochitest", provider); + cloudFileAccounts.createAccount("Mochitest"); + registerCleanupFunction(() => { + cloudFileAccounts.unregisterProvider("Mochitest"); + }); + + let file = new FileUtils.File(getTestFilePath("data/guests.txt")); + MockFilePicker.init(window); + MockFilePicker.setFiles([file]); + MockFilePicker.returnValue = MockFilePicker.returnOk; + + let startDate = cal.createDateTime("20200201T000001Z"); + await CalendarTestUtils.setCalendarView(window, "month"); + window.goToDate(startDate); + + let getEventWin = CalendarTestUtils.waitForEventDialog("edit"); + window.goDoCommand("calendar_new_event_command"); + + let eventWin = await getEventWin; + + // Give the new event a title. + let iframe = eventWin.document.querySelector("#lightning-item-panel-iframe"); + iframe.contentDocument.querySelector("#item-title").value = "Provider Attachment Event"; + + // Set its date. + iframe.contentDocument.querySelector("#event-starttime").value = cal.dtz.dateTimeToJsDate( + startDate + ); + + let attachButton = eventWin.document.querySelector("#button-url"); + Assert.ok(attachButton, "attach menu button found"); + + let menu = eventWin.document.querySelector("#button-attach-menupopup"); + let menuItem; + + await BrowserTestUtils.waitForCondition(() => { + menuItem = menu.querySelector("menuitem[label='File using Mochitest Account']"); + return menuItem; + }); + + Assert.ok(menuItem, "custom provider menuitem found"); + Assert.equal(menuItem.image, iconURL, "provider image src is provider image"); + + // Click on the "Attach" menu. + let menuShowing = BrowserTestUtils.waitForEvent(menu, "popupshown"); + EventUtils.synthesizeMouseAtCenter(attachButton, {}, eventWin); + await menuShowing; + + // Click on the menuitem to attach a file using our provider. + let menuHidden = BrowserTestUtils.waitForEvent(menu, "popuphidden"); + EventUtils.synthesizeMouseAtCenter(menuItem, {}, eventWin); + await menuHidden; + + // Check if the file dialog was "shown". MockFilePicker.open() is asynchronous + // but does not return a promise. + await BrowserTestUtils.waitForCondition( + () => MockFilePicker.shown, + "file picker was not shown in time" + ); + + // Click on the attachments tab of the event dialog. + iframe = eventWin.document.querySelector("#lightning-item-panel-iframe"); + EventUtils.synthesizeMouseAtCenter( + iframe.contentDocument.querySelector("#event-grid-tab-attachments"), + {}, + iframe.contentWindow + ); + + // Wait until the file we attached appears. + let listBox = iframe.contentDocument.querySelector("#attachment-link"); + await BrowserTestUtils.waitForCondition( + () => listBox.itemChildren.length == 1, + "attachment list did not show in time" + ); + + let listItem = listBox.itemChildren[0]; + + // XXX: This property is set after an async operation. Unfortunately, that + // operation is not awaited on in its surrounding code so the assertion + // after this will occasionally fail if this is not done. + await BrowserTestUtils.waitForCondition( + () => listItem.attachCloudFileUpload, + "attachCloudFileUpload property not set on attachment listitem in time." + ); + + Assert.equal(listItem.attachCloudFileUpload.url, fileUrl, "upload attached to event"); + + let listItemImage = listItem.querySelector("image"); + Assert.equal(listItemImage.src, iconURL, "attachment image is provider image"); + + // Save the new event. + eventWin.document.querySelector("#button-saveandclose").click(); + + // Open it and verify the attachment is shown. + let eventBox = await getEventBox("calendar-month-day-box-item"); + Assert.equal(eventBox.item.getAttachments()[0].uri.spec, fileUrl, "event has attachment URL"); + + if (Services.focus.activeWindow != window) { + await BrowserTestUtils.waitForEvent(window, "focus"); + } + + // Clean up. + eventBox = await getEventBox("calendar-month-day-box-item"); + eventBox.focus(); + EventUtils.synthesizeKey("VK_DELETE", {}); + await CalendarTestUtils.closeCalendarTab(window); +}); + +registerCleanupFunction(() => { + MockFilePicker.cleanup(); +}); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_attendeesDialog.js thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attendeesDialog.js --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_attendeesDialog.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_attendeesDialog.js 2021-03-22 15:50:42.000000000 +0000 @@ -38,10 +38,18 @@ let today = new Date(); let times = { - ONE: new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 13, 0, 0), - TWO_THIRTY: new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 14, 30, 0), - THREE_THIRTY: new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 15, 30, 0), - FOUR: new Date(today.getFullYear(), today.getMonth(), today.getDate() + 1, 16, 0, 0), + ONE: new Date( + Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() + 1, 13, 0, 0) + ), + TWO_THIRTY: new Date( + Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() + 1, 14, 30, 0) + ), + THREE_THIRTY: new Date( + Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() + 1, 15, 30, 0) + ), + FOUR: new Date( + Date.UTC(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate() + 1, 16, 0, 0) + ), }; registerCleanupFunction(async () => { diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_eventDialog.js thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialog.js --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_eventDialog.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialog.js 2021-03-22 15:50:42.000000000 +0000 @@ -46,7 +46,7 @@ createCalendar(controller, CALENDARNAME); // Since from other tests we may be elsewhere, make sure we start today. switchToView(controller, "day"); - goToDate(controller, now.getFullYear(), now.getMonth() + 1, now.getDate()); + goToDate(controller, now.getUTCFullYear(), now.getUTCMonth() + 1, now.getUTCDate()); viewBack(controller, 1); // Open month view. @@ -56,7 +56,7 @@ // Setup start- & endTime. // Next full hour except last hour of the day. - let hour = now.getHours(); + let hour = now.getUTCHours(); let startHour = hour == 23 ? hour : (hour + 1) % 24; let nextHour = cal.dtz.now(); @@ -110,7 +110,7 @@ description: EVENTDESCRIPTION, categories: [category], repeat: "daily", - repeatuntil: cal.dtz.dateTimeToJsDate(untildate), + repeatuntil: untildate, reminder: "5minutes", privacy: "private", attachment: { add: EVENTURL }, diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_eventDialogModificationPrompt.js thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialogModificationPrompt.js --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/browser_eventDialogModificationPrompt.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/browser_eventDialogModificationPrompt.js 2021-03-22 15:50:42.000000000 +0000 @@ -26,7 +26,7 @@ var controller = mozmill.getMail3PaneController(); var { eid, lookupEventBox } = helpersForController(controller); -var { date1, date2, date3, data, newlines } = setupData(); +var { data, newlines } = setupData(); // Test that closing an event dialog with no changes does not prompt for save. add_task(async function testEventDialogModificationPrompt() { @@ -117,10 +117,10 @@ }); function setupData() { + let date1 = cal.createDateTime("20090101T080000Z"); + let date2 = cal.createDateTime("20090102T090000Z"); + let date3 = cal.createDateTime("20090103T100000Z"); return { - date1: new Date(2009, 0, 1, 8, 0), - date2: new Date(2009, 0, 2, 9, 0), - date3: new Date(2009, 0, 3, 10, 0), data: [ { title: "title1", diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/data/guests.txt thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/data/guests.txt --- thunderbird-78.6.0/comm/calendar/test/browser/eventDialog/data/guests.txt 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/eventDialog/data/guests.txt 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,2 @@ +Nobody +No one diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/invitations/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/invitations/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/invitations/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/invitations/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -2,7 +2,7 @@ head = ../head.js prefs = browser.tabs.remote.autostart=false # e10s - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/preferences/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/preferences/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/preferences/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/preferences/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,7 +1,7 @@ [default] head = head.js prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,7 +1,7 @@ [default] dupe-manifest = prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_annual.js thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_annual.js --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_annual.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_annual.js 2021-03-22 15:50:42.000000000 +0000 @@ -46,8 +46,8 @@ let checkYears = [STARTYEAR, STARTYEAR + 1, EPOCH - 1, EPOCH, EPOCH + 1]; for (let year of checkYears) { goToDate(controller, year, 1, 1); - let date = new Date(year, 0, 1); - let column = date.getDay() + 1; + let date = new Date(Date.UTC(year, 0, 1)); + let column = date.getUTCDay() + 1; // day view switchToView(controller, "day"); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_daily.js thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_daily.js --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_daily.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_daily.js 2021-03-22 15:50:42.000000000 +0000 @@ -21,6 +21,7 @@ viewBack, viewForward, } = ChromeUtils.import("resource://testing-common/mozmill/CalendarUtils.jsm"); +var { cal } = ChromeUtils.import("resource:///modules/calendar/calUtils.jsm"); var { setData } = ChromeUtils.import("resource://testing-common/mozmill/ItemEditingHelpers.jsm"); var controller = mozmill.getMail3PaneController(); @@ -42,7 +43,7 @@ await setData(event, iframe, { title: TITLE, repeat: "daily", - repeatuntil: new Date(2009, 2, 20), + repeatuntil: cal.createDateTime("20090320T000000Z"), }); event.click(eventid("button-saveandclose")); }); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_lastDayOfMonth.js thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_lastDayOfMonth.js --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_lastDayOfMonth.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_lastDayOfMonth.js 2021-03-22 15:50:42.000000000 +0000 @@ -72,8 +72,8 @@ ]; // Check all dates. for (let [y, m, d, correctRow] of checkingData) { - let date = new Date(y, m - 1, d); - let column = date.getDay() + 1; + let date = new Date(Date.UTC(y, m - 1, d)); + let column = date.getUTCDay() + 1; goToDate(controller, y, m, d); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_rotated.ini thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_rotated.ini --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_rotated.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_rotated.ini 2021-03-22 15:50:42.000000000 +0000 @@ -3,7 +3,7 @@ dupe-manifest = prefs = calendar.test.rotateViews=true - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_weeklyUntil.js thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyUntil.js --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_weeklyUntil.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyUntil.js 2021-03-22 15:50:42.000000000 +0000 @@ -35,7 +35,7 @@ var controller = mozmill.getMail3PaneController(); var { lookupEventBox } = helpersForController(controller); -const ENDDATE = new Date(2009, 0, 26); // Last Monday in month. +const ENDDATE = cal.createDateTime("20090126T000000Z"); // Last Monday in month. const HOUR = 8; add_task(async function testWeeklyUntilRecurrence() { @@ -151,9 +151,7 @@ recurrence.keypress(untilInput, "a", { accelKey: true }); recurrence.keypress(untilInput, "VK_DELETE", {}); - let endDateString = cal.dtz.formatter.formatDateShort( - cal.dtz.jsDateToDateTime(ENDDATE, cal.dtz.floating) - ); + let endDateString = cal.dtz.formatter.formatDateShort(ENDDATE); recsleep(SHORT_SLEEP); recurrence.type(untilInput, endDateString); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_weeklyWithException.js thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyWithException.js --- thunderbird-78.6.0/comm/calendar/test/browser/recurrence/browser_weeklyWithException.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/recurrence/browser_weeklyWithException.js 2021-03-22 15:50:42.000000000 +0000 @@ -40,7 +40,7 @@ var { lookup, lookupEventBox } = helpersForController(controller); const HOUR = 8; -const STARTDATE = new Date(2009, 0, 6); +const STARTDATE = cal.createDateTime("20090106T000000Z"); const TITLE = "Event"; add_task(async function testWeeklyWithExceptionRecurrence() { diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/timezones/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/timezones/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,6 +1,6 @@ [default] prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/timezones/browser_timezones.js thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser_timezones.js --- thunderbird-78.6.0/comm/calendar/test/browser/timezones/browser_timezones.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/timezones/browser_timezones.js 2021-03-22 15:50:42.000000000 +0000 @@ -22,6 +22,7 @@ } = ChromeUtils.import("resource://testing-common/mozmill/CalendarUtils.jsm"); var { setData } = ChromeUtils.import("resource://testing-common/mozmill/ItemEditingHelpers.jsm"); +var { cal } = ChromeUtils.import("resource:///modules/calendar/calUtils.jsm"); var { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); var controller = mozmill.getMail3PaneController(); @@ -49,10 +50,6 @@ "Australia/Adelaide", ]; -add_task(function testTimezones1_SetGMT() { - Services.prefs.setStringPref("calendar.timezone.local", "Europe/London"); -}); - add_task(async function testTimezones2_CreateEvents() { createCalendar(controller, CALENDARNAME); goToDate(controller, 2009, 1, 1); @@ -68,18 +65,18 @@ [19, 45], [1, 30], ]; - let time = new Date(); + let time = cal.createDateTime(); for (let i = 0; i < TIMEZONES.length; i++) { let eventBox = lookupEventBox("day", CANVAS_BOX, null, 1, i + 11); await invokeEventDialog(controller, eventBox, async (event, iframe) => { - time.setHours(times[i][0]); - time.setMinutes(times[i][1]); + time.hour = times[i][0]; + time.minute = times[i][1]; // Set event data. await setData(event, iframe, { title: TIMEZONES[i], repeat: "weekly", - repeatuntil: new Date(2009, 11, 31), + repeatuntil: cal.createDateTime("20091231T000000Z"), starttime: time, timezone: TIMEZONES[i], }); @@ -895,5 +892,4 @@ registerCleanupFunction(() => { deleteCalendars(controller, CALENDARNAME); - Services.prefs.clearUserPref("calendar.timezone.local"); }); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/views/browser.ini thunderbird-78.9.0/comm/calendar/test/browser/views/browser.ini --- thunderbird-78.6.0/comm/calendar/test/browser/views/browser.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/views/browser.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,7 +1,7 @@ [default] head = ../head.js prefs = - extensions.installDistroAddons=true + calendar.timezone.local=UTC mail.provider.suppress_dialog_on_startup=true mail.spotlight.firstRunDone=true mail.winsearch.firstRunDone=true diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/views/browser_monthView.js thunderbird-78.9.0/comm/calendar/test/browser/views/browser_monthView.js --- thunderbird-78.6.0/comm/calendar/test/browser/views/browser_monthView.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/views/browser_monthView.js 2021-03-22 15:50:42.000000000 +0000 @@ -44,7 +44,7 @@ // Create event. // Thursday of 2009-01-01 should be the selected box in the first row with default settings. - let hour = new Date().getHours(); // Remember time at click. + let hour = new Date().getUTCHours(); // Remember time at click. let eventBox = lookupEventBox("month", CANVAS_BOX, 1, 5); await invokeEventDialog(controller, eventBox, async (event, iframe) => { let { eid: eventid } = helpersForController(event); diff -Nru thunderbird-78.6.0/comm/calendar/test/browser/views/browser_multiweekView.js thunderbird-78.9.0/comm/calendar/test/browser/views/browser_multiweekView.js --- thunderbird-78.6.0/comm/calendar/test/browser/views/browser_multiweekView.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/browser/views/browser_multiweekView.js 2021-03-22 15:50:42.000000000 +0000 @@ -44,7 +44,7 @@ // Create event. // Thursday of 2009-01-01 should be the selected box in the first row with default settings. - let hour = new Date().getHours(); // Remember time at click. + let hour = new Date().getUTCHours(); // Remember time at click. let eventBox = lookupEventBox("multiweek", CANVAS_BOX, 1, 5); await invokeEventDialog(controller, eventBox, async (event, iframe) => { let { eid: eventid } = helpersForController(event); diff -Nru thunderbird-78.6.0/comm/calendar/test/modules/CalendarTestUtils.jsm thunderbird-78.9.0/comm/calendar/test/modules/CalendarTestUtils.jsm --- thunderbird-78.6.0/comm/calendar/test/modules/CalendarTestUtils.jsm 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/modules/CalendarTestUtils.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,155 @@ +/* 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/. */ + +"use strict"; + +const EXPORTED_SYMBOLS = ["CalendarTestUtils"]; + +const EventUtils = ChromeUtils.import("resource://testing-common/mozmill/EventUtils.jsm"); +const { BrowserTestUtils } = ChromeUtils.import("resource://testing-common/BrowserTestUtils.jsm"); +const { Assert } = ChromeUtils.import("resource://testing-common/Assert.jsm"); + +/** + * Non-mozmill calendar helper utility. + */ +const CalendarTestUtils = { + /** + * Dedent the template string tagged with this function to make indented data + * easier to read. Usage: + * + * let data = dedent` + * This is indented data it will be unindented so that the first line has + * no leading spaces and the second is indented by two spaces. + * `; + * + * @param strings The string fragments from the template string + * @param ...values The interpolated values + * @return The interpolated, dedented string + */ + dedent(strings, ...values) { + let parts = []; + // Perform variable interpolation + let minIndent = Infinity; + for (let [i, string] of strings.entries()) { + let innerparts = string.split("\n"); + if (i == 0) { + innerparts.shift(); + } + if (i == strings.length - 1) { + innerparts.pop(); + } + for (let [j, ip] of innerparts.entries()) { + let match = ip.match(/^(\s*)\S*/); + if (j != 0) { + minIndent = Math.min(minIndent, match[1].length); + } + } + parts.push(innerparts); + } + + return parts + .map((part, i) => { + return ( + part + .map((line, j) => { + return j == 0 && i > 0 ? line : line.substr(minIndent); + }) + .join("\n") + (i < values.length ? values[i] : "") + ); + }) + .join(""); + }, + + /** + * Ensures the calendar tab is open + * + * @param {Window} win + */ + async openCalendarTab(win) { + let tabmail = win.document.getElementById("tabmail"); + let calendarMode = tabmail.tabModes.calendar; + + if (calendarMode.tabs.length == 1) { + tabmail.selectedTab = calendarMode.tabs[0]; + } else { + let calendarTabButton = win.document.getElementById("calendar-tab-button"); + EventUtils.synthesizeMouseAtCenter(calendarTabButton, { clickCount: 1 }, win); + } + + Assert.equal(calendarMode.tabs.length, 1, "calendar tab is open"); + Assert.equal(tabmail.selectedTab, calendarMode.tabs[0], "calendar tab is selected"); + + await new Promise(resolve => win.setTimeout(resolve)); + }, + + /** + * Ensures the calendar view is in the specified mode. + * + * @param {Window} win + * @param {string} viewName + */ + async setCalendarView(win, viewName) { + await this.openCalendarTab(win); + + let viewTabButton = win.document.getElementById(`calendar-${viewName}-view-button`); + EventUtils.synthesizeMouseAtCenter(viewTabButton, { clickCount: 1 }, win); + + Assert.equal(win.currentView().id, `${viewName}-view`); + + await new Promise(resolve => win.setTimeout(resolve)); + }, + + /** + * Ensures the calendar tab is not open. + * + * @param {Window} win + */ + async closeCalendarTab(win) { + let tabmail = win.document.getElementById("tabmail"); + let calendarMode = tabmail.tabModes.calendar; + + if (calendarMode.tabs.length == 1) { + tabmail.closeTab(calendarMode.tabs[0]); + } + + Assert.equal(calendarMode.tabs.length, 0, "calendar tab is not open"); + + await new Promise(resolve => win.setTimeout(resolve)); + }, + + /** + * This produces a Promise for waiting on an event dialog to open. + * The mode parameter can be specified to indicate which of the dialogs to + * wait for. + * + * @param {string} [mode="view"] Determines which dialog we are waiting on, + * can be "view" for the summary or "edit" for the editing one. + * + * @returns {Promise} + */ + waitForEventDialog(mode = "view") { + if (mode == "view") { + throw new Error(`waitForEventDialog("view") is not going to work in 78`); + } + + let uri = + mode === "edit" + ? "chrome://calendar/content/calendar-event-dialog.xhtml" + : "chrome://calendar/content/calendar-summary-dialog.xhtml"; + + return BrowserTestUtils.domWindowOpened(null, async win => { + await BrowserTestUtils.waitForEvent(win, "load"); + + if (win.document.documentURI != uri) { + return false; + } + + if (mode === "edit") { + let iframe = win.document.getElementById("lightning-item-panel-iframe"); + await BrowserTestUtils.waitForEvent(iframe.contentWindow, "load"); + } + return true; + }); + }, +}; diff -Nru thunderbird-78.6.0/comm/calendar/test/modules/CalendarUtils.jsm thunderbird-78.9.0/comm/calendar/test/modules/CalendarUtils.jsm --- thunderbird-78.6.0/comm/calendar/test/modules/CalendarUtils.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/modules/CalendarUtils.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -127,8 +127,6 @@ // We are in calendarTests, so we make sure, calendar-tab with day-view is displayed. let controller = mozmill.getMail3PaneController(); - let { eid } = helpersForController(controller); - controller.click(eid("calendar-tab-button")); switchToView(controller, "day"); } setupModule(); @@ -204,9 +202,14 @@ function switchToView(controller, view) { let { eid } = helpersForController(controller); - let button = `calendar-${view}-view-button`; + let tabButton = eid("calendar-tab-button"); + controller.waitForElement(tabButton); + controller.click(tabButton); + + let button = eid(`calendar-${view}-view-button`); + controller.waitForElement(button); + controller.click(button); - controller.waitThenClick(eid(button)); ensureViewLoaded(controller); } diff -Nru thunderbird-78.6.0/comm/calendar/test/modules/ItemEditingHelpers.jsm thunderbird-78.9.0/comm/calendar/test/modules/ItemEditingHelpers.jsm --- thunderbird-78.6.0/comm/calendar/test/modules/ItemEditingHelpers.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/modules/ItemEditingHelpers.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -74,7 +74,7 @@ var REC_DLG_DAYS = ` /{"windowtype":"Calendar:EventDialog:Recurrence"}/id("calendar-event-dialog-recurrence") /id("recurrence-pattern-groupbox")/{"flex":"1"}/[1]/ - id("period-deck")/id("period-deck-weekly-box")/[2]/id("daypicker-weekday") + id("period-box")/id("period-box-weekly-box")/[2]/id("daypicker-weekday") `; var REC_DLG_UNTIL_INPUT = ` /{"windowtype":"Calendar:EventDialog:Recurrence"}/id("calendar-event-dialog-recurrence") @@ -270,10 +270,8 @@ } // startdate - if (data.startdate !== undefined && data.startdate.constructor.name == "Date") { - let startdate = dateFormatter.formatDateShort( - cal.dtz.jsDateToDateTime(data.startdate, cal.dtz.floating) - ); + if (data.startdate !== undefined && data.startdate instanceof Ci.calIDateTime) { + let startdate = dateFormatter.formatDateShort(data.startdate); if (!isEvent) { dialog.check(iframeid("todo-has-entrydate"), true); @@ -282,19 +280,15 @@ } // starttime - if (data.starttime !== undefined && data.starttime.constructor.name == "Date") { - let starttime = dateFormatter.formatTime( - cal.dtz.jsDateToDateTime(data.starttime, cal.dtz.floating) - ); + if (data.starttime !== undefined && data.starttime instanceof Ci.calIDateTime) { + let starttime = dateFormatter.formatTime(data.starttime); replaceText(starttimeInput, starttime); await sleep(iframe.window); } // enddate - if (data.enddate !== undefined && data.enddate.constructor.name == "Date") { - let enddate = dateFormatter.formatDateShort( - cal.dtz.jsDateToDateTime(data.enddate, cal.dtz.floating) - ); + if (data.enddate !== undefined && data.enddate instanceof Ci.calIDateTime) { + let enddate = dateFormatter.formatDateShort(data.enddate); if (!isEvent) { dialog.check(iframeid("todo-has-duedate"), true); } @@ -302,10 +296,8 @@ } // endtime - if (data.endtime !== undefined && data.endtime.constructor.name == "Date") { - let endtime = dateFormatter.formatTime( - cal.dtz.jsDateToDateTime(data.endtime, cal.dtz.floating) - ); + if (data.endtime !== undefined && data.endtime instanceof Ci.calIDateTime) { + let endtime = dateFormatter.formatTime(data.endtime); replaceText(endtimeInput, endtime); } @@ -313,12 +305,10 @@ if (data.repeat !== undefined) { menulistSelect(iframeid("item-repeat"), data.repeat, dialog); } - if (data.repeatuntil !== undefined && data.repeatuntil.constructor.name == "Date") { + if (data.repeatuntil !== undefined && data.repeatuntil instanceof Ci.calIDateTime) { // Only fill in date, when the Datepicker is visible. if (iframeid("repeat-deck").getNode().selectedIndex == 0) { - let untildate = dateFormatter.formatDateShort( - cal.dtz.jsDateToDateTime(data.repeatuntil, cal.dtz.floating) - ); + let untildate = dateFormatter.formatDateShort(data.repeatuntil); replaceText(untilDateInput, untildate); } } @@ -353,10 +343,8 @@ let currentStatus = iframeid("todo-status").getNode().value; // completed on - if (data.completed !== undefined && data.completed.constructor.name == "Date" && !isEvent) { - let completeddate = dateFormatter.formatDateShort( - cal.dtz.jsDateToDateTime(data.completed, cal.dtz.floating) - ); + if (data.completed !== undefined && data.completed instanceof Ci.calIDateTime && !isEvent) { + let completeddate = dateFormatter.formatDateShort(data.completed); if (currentStatus == "COMPLETED") { replaceText(completeddateInput, completeddate); } @@ -481,9 +469,13 @@ */ async function handleAddingAttachment(dialogWindow, url) { let dialogDocument = dialogWindow.document; + let attachButton = dialogDocument.querySelector("#button-url"); + let menu = dialogDocument.querySelector("#button-attach-menupopup"); + let menuShowing = BrowserTestUtils.waitForEvent(menu, "popupshown"); + synthesizeMouseAtCenter(attachButton, {}, dialogWindow); + await menuShowing; - synthesizeMouseAtCenter(dialogDocument.getElementById("button-url"), {}, dialogWindow); - await BrowserTestUtils.promiseAlertDialog(undefined, undefined, attachmentWindow => { + let urlPrompt = BrowserTestUtils.promiseAlertDialog(undefined, undefined, attachmentWindow => { let attachmentDocument = attachmentWindow.document; attachmentDocument.getElementById("loginTextbox").value = url; @@ -493,6 +485,8 @@ attachmentWindow ); }); + synthesizeMouseAtCenter(dialogDocument.querySelector("#button-attach-url"), {}, dialogWindow); + await urlPrompt; await sleep(dialogWindow); } diff -Nru thunderbird-78.6.0/comm/calendar/test/moz.build thunderbird-78.9.0/comm/calendar/test/moz.build --- thunderbird-78.6.0/comm/calendar/test/moz.build 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/moz.build 2021-03-22 15:50:42.000000000 +0000 @@ -15,6 +15,7 @@ ] TESTING_JS_MODULES.mozmill += [ + 'modules/CalendarTestUtils.jsm', 'modules/CalendarUtils.jsm', 'modules/ItemEditingHelpers.jsm', ] diff -Nru thunderbird-78.6.0/comm/calendar/test/unit/test_alarmutils.js thunderbird-78.9.0/comm/calendar/test/unit/test_alarmutils.js --- thunderbird-78.6.0/comm/calendar/test/unit/test_alarmutils.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/unit/test_alarmutils.js 2021-03-22 15:50:42.000000000 +0000 @@ -138,25 +138,25 @@ alarm = cal.createAlarm(); alarm.related = alarm.ALARM_RELATED_START; alarm.offset = cal.createDuration("-PT1H"); - equal(calculateAlarmDate(alarm).icalString, "20150815T110000"); + equal(calculateAlarmDate(alarm).icalString, "20150815T110000Z"); alarm = cal.createAlarm(); alarm.related = alarm.ALARM_RELATED_END; alarm.offset = cal.createDuration("-PT2H"); - equal(calculateAlarmDate(alarm).icalString, "20150815T110000"); + equal(calculateAlarmDate(alarm).icalString, "20150815T110000Z"); item.startDate.isDate = true; alarm = cal.createAlarm(); alarm.related = alarm.ALARM_RELATED_START; alarm.offset = cal.createDuration("-PT1H"); - equal(calculateAlarmDate(alarm).icalString, "20150814T230000"); + equal(calculateAlarmDate(alarm).icalString, "20150814T230000Z"); item.startDate.isDate = false; item.endDate.isDate = true; alarm = cal.createAlarm(); alarm.related = alarm.ALARM_RELATED_END; alarm.offset = cal.createDuration("-PT2H"); - equal(calculateAlarmDate(alarm).icalString, "20150814T220000"); + equal(calculateAlarmDate(alarm).icalString, "20150814T220000Z"); item.endDate.isDate = false; alarm = cal.createAlarm(); diff -Nru thunderbird-78.6.0/comm/calendar/test/unit/test_datetime_before_1970.js thunderbird-78.9.0/comm/calendar/test/unit/test_datetime_before_1970.js --- thunderbird-78.6.0/comm/calendar/test/unit/test_datetime_before_1970.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/unit/test_datetime_before_1970.js 2021-03-22 15:50:42.000000000 +0000 @@ -10,7 +10,7 @@ dateTime1950.year = 1950; equal(dateTime1950.year, 1950); - let dateTime1955 = cal.dtz.jsDateToDateTime(new Date(1955, 6, 15)); + let dateTime1955 = cal.dtz.jsDateToDateTime(new Date(Date.UTC(1955, 6, 15))); equal(dateTime1955.year, 1955); let dateTime1965 = cal.createDateTime(); diff -Nru thunderbird-78.6.0/comm/calendar/test/unit/test_extract.js thunderbird-78.9.0/comm/calendar/test/unit/test_extract.js --- thunderbird-78.6.0/comm/calendar/test/unit/test_extract.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/unit/test_extract.js 2021-03-22 15:50:42.000000000 +0000 @@ -2,6 +2,9 @@ * 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/. */ +// This test works with code that is not timezone-aware. +/* eslint-disable no-restricted-syntax */ + var { Extractor } = ChromeUtils.import("resource:///modules/calendar/calExtract.jsm"); var extractor = new Extractor("en-US", 8); diff -Nru thunderbird-78.6.0/comm/calendar/test/unit/test_storage_get_items.js thunderbird-78.9.0/comm/calendar/test/unit/test_storage_get_items.js --- thunderbird-78.6.0/comm/calendar/test/unit/test_storage_get_items.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/unit/test_storage_get_items.js 2021-03-22 15:50:42.000000000 +0000 @@ -0,0 +1,339 @@ +/* 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/. */ + +/** + * Tests for the CalStorageCalendar.getItems method. + */ + +do_get_profile(); + +/** + * The bug we are interested in testing requires the calendar to clear its + * caches in order to take effect. Since we can't directly access the internals + * of the calendar here, we instead provide a custom function that lets us + * create more than one calendar with the same id. + */ +function createStorageCalendar(id) { + let db = Services.dirsvc.get("TmpD", Ci.nsIFile); + db.append("test_storage.sqlite"); + let uri = Services.io.newFileURI(db); + + // Make sure timezone service is initialized + Cc["@mozilla.org/calendar/timezone-service;1"].getService(Ci.calIStartupService).startup(null); + + let calendar = Cc["@mozilla.org/calendar/calendar;1?type=storage"].createInstance( + Ci.calISyncWriteCalendar + ); + + calendar.uri = uri; + calendar.id = id; + return cal.async.promisifyCalendar(calendar); +} + +/** + * Tests that recurring event/todo exceptions have their properties properly + * loaded. See bug 1664731. + * + * @param {number} filterType - Number indicating the filter type. + * @param {calIITemBase} originalItem - The original item to add to the calendar. + * @param {object} originalProps - The initial properites of originalItem to + * expect. + * @param {object[]} changedProps - A list containing property values to update + * each occurrence with or null. The length indicates how many occurrences to + * expect. + */ +async function doPropertiesTest(filterType, originalItem, originalProps, changedPropList) { + for (let [key, value] of Object.entries(originalProps)) { + if (key == "CATEGORIES") { + originalItem.setCategories(value); + } else { + originalItem.setProperty(key, value); + } + } + + let calId = cal.getUUID(); + let calendar = createStorageCalendar(calId); + await calendar.addItem(originalItem); + + let filter = + filterType | + Ci.calICalendar.ITEM_FILTER_COMPLETED_ALL | + Ci.calICalendar.ITEM_FILTER_CLASS_OCCURRENCES; + + let savedItems = await calendar.getItems( + filter, + 0, + cal.createDateTime("20201201T000000Z"), + cal.createDateTime("20201231T000000Z") + ); + + Assert.equal( + savedItems.length, + changedPropList.length, + `created ${changedPropList.length} items successfully` + ); + + // Ensure all occurrences have the correct properties initially. + for (let item of savedItems) { + for (let [key, value] of Object.entries(originalProps)) { + if (key == "CATEGORIES") { + Assert.equal( + item.getCategories().join(), + value.join(), + `item categories are set to ${value}` + ); + } else { + Assert.equal(item.getProperty(key), value, `item property "${key}" is set to "${value}"`); + } + } + } + + // Modify the occurrences that have new properties set in changedPropList. + for (let idx = 0; idx < changedPropList.length; idx++) { + let changedProps = changedPropList[idx]; + if (changedProps) { + let targetOccurrence = savedItems[idx]; + let targetException = targetOccurrence.clone(); + + // Make the changes to the properties. + for (let [key, value] of Object.entries(changedProps)) { + if (key == "CATEGORIES") { + targetException.setCategories(value); + } else { + targetException.setProperty(key, value); + } + } + + await new Promise(resolve => { + calendar.modifyItem( + cal.itip.prepareSequence(targetException, targetOccurrence), + targetOccurrence, + { + onOperationComplete() { + resolve(); + }, + } + ); + }); + + // Refresh the saved items list after the change. + savedItems = await calendar.getItems( + filter, + 0, + cal.createDateTime("20201201T000000Z"), + cal.createDateTime("20201231T000000Z") + ); + } + } + + // Get a fresh copy of the occurrences by using a new calendar with the + // same id. + let itemsAfterUpdate = await createStorageCalendar(calId).getItems( + filter, + 0, + cal.createDateTime("20201201T000000Z"), + cal.createDateTime("20201231T000000Z") + ); + + Assert.equal( + itemsAfterUpdate.length, + changedPropList.length, + `count of occurrences retrieved after update is ${changedPropList.length}` + ); + + // Compare each property of each occurrence to ensure the changed + // occurrences have the values we expect. + for (let i = 0; i < itemsAfterUpdate.length; i++) { + let item = itemsAfterUpdate[i]; + let isException = changedPropList[i] != null; + let label = isException ? `modified occurrence ${i}` : `unmodified occurrence ${i}`; + let checkedProps = isException ? changedPropList[i] : originalProps; + + for (let [key, value] of Object.entries(checkedProps)) { + if (key == "CATEGORIES") { + Assert.equal( + item.getCategories().join(), + value.join(), + `item categories has value "${value}"` + ); + } else { + Assert.equal( + item.getProperty(key), + value, + `property "${key}" has value "${value}" for "${label}"` + ); + } + } + } +} + +/** + * Test event exceptions load their properties. + */ +add_task(async function testEventPropertiesForRecurringExceptionsLoad() { + let event = cal.createEvent(dedent` + BEGIN:VEVENT + CREATED:20201211T000000Z + LAST-MODIFIED:20201211T000000Z + DTSTAMP:20201210T080410Z + UID:c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5 + SUMMARY:Original Test Event + DTSTART:20201211T000000Z + DTEND:20201211T110000Z + RRULE:FREQ=DAILY;UNTIL=20201215T140000Z + END:VEVENT + `); + + let originalProps = { + DESCRIPTION: "This is a test event.", + CATEGORIES: ["Birthday"], + LOCATION: "Castara", + }; + + let changedProps = [ + null, + null, + { + DESCRIPTION: "This is an edited occurrence.", + CATEGORIES: ["Holiday"], + LOCATION: "Georgetown", + }, + null, + null, + ]; + + return doPropertiesTest( + Ci.calICalendar.ITEM_FILTER_TYPE_EVENT, + event, + originalProps, + changedProps + ); +}); + +/** + * Test todo exceptions load their properties. + */ +add_task(async function testTodoPropertiesForRecurringExceptionsLoad() { + let todo = cal.createTodo(dedent` + BEGIN:VTODO + CREATED:20201211T000000Z + LAST-MODIFIED:20201211T000000Z + DTSTAMP:20201210T080410Z + UID:c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5 + SUMMARY:Original Test Event + DTSTART:20201211T000000Z + DTEND:20201211T110000Z + RRULE:FREQ=DAILY;UNTIL=20201215T140000Z + END:VTODO + `); + + let originalProps = { + DESCRIPTION: "This is a test todo.", + CATEGORIES: ["Birthday"], + LOCATION: "Castara", + STATUS: "NEEDS-ACTION", + }; + + let changedProps = [ + null, + null, + { + DESCRIPTION: "This is an edited occurrence.", + CATEGORIES: ["Holiday"], + LOCATION: "Georgetown", + STATUS: "COMPLETE", + }, + null, + null, + ]; + + return doPropertiesTest(Ci.calICalendar.ITEM_FILTER_TYPE_TODO, todo, originalProps, changedProps); +}); + +/** + * Tests calling getItems() does not overwrite subsequent event occurrence + * exceptions with their parent item. See bug 1686466. + */ +add_task(async function testRecurringEventChangesAreNotHiddenByCache() { + let event = cal.createEvent(dedent` + BEGIN:VEVENT + CREATED:20201211T000000Z + LAST-MODIFIED:20201211T000000Z + DTSTAMP:20201210T080410Z + UID:c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5 + SUMMARY:Original Test Event + DTSTART:20201211T000000Z + DTEND:20201211T110000Z + RRULE:FREQ=DAILY;UNTIL=20201215T140000Z + END:VEVENT + `); + + let originalProps = { + LOCATION: "San Juan", + }; + + let changedProps = [ + null, + { + LOCATION: "Buenos Aries", + }, + { + LOCATION: "Bridgetown", + }, + { + LOCATION: "Freetown", + }, + null, + ]; + + return doPropertiesTest( + Ci.calICalendar.ITEM_FILTER_TYPE_EVENT, + event, + originalProps, + changedProps, + true + ); +}); + +/** + * Tests calling getItems() does not overwrite subsequent todo occurrence + * exceptions with their parent item. See bug 1686466. + */ +add_task(async function testRecurringTodoChangesNotHiddenByCache() { + let todo = cal.createTodo(dedent` + BEGIN:VTODO + CREATED:20201211T000000Z + LAST-MODIFIED:20201211T000000Z + DTSTAMP:20201210T080410Z + UID:c1a6cfe7-7fbb-4bfb-a00d-861e07c649a5 + SUMMARY:Original Test Event + DTSTART:20201211T000000Z + DTEND:20201211T110000Z + RRULE:FREQ=DAILY;UNTIL=20201215T140000Z + END:VTODO + `); + + let originalProps = { + DESCRIPTION: "This is a test todo.", + CATEGORIES: ["Birthday"], + LOCATION: "Castara", + STATUS: "NEEDS-ACTION", + }; + + let changedProps = [ + null, + { + STATUS: "COMPLETE", + }, + { + STATUS: "COMPLETE", + }, + { + STATUS: "COMPLETE", + }, + null, + ]; + + return doPropertiesTest(Ci.calICalendar.ITEM_FILTER_TYPE_TODO, todo, originalProps, changedProps); +}); diff -Nru thunderbird-78.6.0/comm/calendar/test/unit/xpcshell-shared.ini thunderbird-78.9.0/comm/calendar/test/unit/xpcshell-shared.ini --- thunderbird-78.6.0/comm/calendar/test/unit/xpcshell-shared.ini 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/calendar/test/unit/xpcshell-shared.ini 2021-03-22 15:50:42.000000000 +0000 @@ -1,3 +1,7 @@ +[DEFAULT] +prefs = + calendar.timezone.local=UTC + [test_alarm.js] [test_alarmservice.js] [test_alarmutils.js] @@ -47,6 +51,7 @@ [test_search_service.js] [test_startup_service.js] [test_storage.js] +[test_storage_get_items.js] [test_timezone.js] [test_timezone_changes.js] [test_timezone_definition.js] diff -Nru thunderbird-78.6.0/comm/chat/components/public/imIAccount.idl thunderbird-78.9.0/comm/chat/components/public/imIAccount.idl --- thunderbird-78.6.0/comm/chat/components/public/imIAccount.idl 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/components/public/imIAccount.idl 2021-03-22 15:50:42.000000000 +0000 @@ -144,13 +144,17 @@ /* When a connection error occurred, this value indicates the type of error */ readonly attribute short connectionErrorReason; - /* When a certificate error occurs, the host/port that caused a + /** + * When a certificate error occurs, the host/port that caused a * SSL/certificate error when connecting to it. This is only valid when - * connectionErrorReason is one of ERROR_CERT_*. */ + * connectionErrorReason is one of ERROR_CERT_* + */ readonly attribute AUTF8String connectionTarget; - /* When a certificate error occurs, the nsITransportSecurityInfo error of - * the socket. This should only be set when connectionTarget is set. */ - readonly attribute nsITransportSecurityInfo secInfo; + /** + * When a certificate error occurs, the nsITransportSecurityInfo error of + * the socket. This should only be set when connectionTarget is set. + */ + readonly attribute nsITransportSecurityInfo securityInfo; /* Possible connection error reasons: ERROR_NETWORK_ERROR and ERROR_ENCRYPTION_ERROR are not fatal and diff -Nru thunderbird-78.6.0/comm/chat/content/accounts.css thunderbird-78.9.0/comm/chat/content/accounts.css --- thunderbird-78.6.0/comm/chat/content/accounts.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/content/accounts.css 2021-03-22 15:50:42.000000000 +0000 @@ -17,7 +17,6 @@ richlistitem[selected="true"]:not([state="disconnected"]) .connectButton, richlistitem[selected="true"][state="disconnected"] .disconnectButton, richlistitem[selected="true"][state="disconnecting"] .disconnectButton, -richlistitem[selected="true"]:not([certError="true"]) .addException, richlistitem:not([selected="true"]) .addException, richlistitem:not([selected="true"]) .autoSignOn, richlistitem:not([reconnectPending="true"]) description[anonid="reconnect"] diff -Nru thunderbird-78.6.0/comm/chat/content/chat-account-richlistitem.js thunderbird-78.9.0/comm/chat/content/chat-account-richlistitem.js --- thunderbird-78.6.0/comm/chat/content/chat-account-richlistitem.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/content/chat-account-richlistitem.js 2021-03-22 15:50:42.000000000 +0000 @@ -72,8 +72,6 @@ - ) * = onBinaryDataReceived(ArrayBuffer ) @@ -116,6 +116,12 @@ "nsIScriptableUnicodeConverter" ); +/** + * @implements {nsIStreamListener} + * @implements {nsIRequestObserver} + * @implements {nsITransportEventSink} + * @implements {nsIProtocolProxyCallback} + */ var Socket = { // Use this to use binary mode for the binaryMode: false, @@ -136,7 +142,7 @@ readWriteTimeout: 0, // A nsITransportSecurityInfo instance giving details about the certificate error. - secInfo: null, + securityInfo: null, /* ***************************************************************************** @@ -156,7 +162,7 @@ aPort = aOriginPort ) { if (Services.io.offline) { - throw Components.Exception("", Cr.NS_ERROR_FAILURE); + throw Components.Exception("Offline, can't connect", Cr.NS_ERROR_FAILURE); } // This won't work for Linux due to bug 758848. @@ -519,31 +525,13 @@ let nssErrorsService = Cc["@mozilla.org/nss_errors_service;1"].getService( Ci.nsINSSErrorsService ); - if ( - (aStatus <= - nssErrorsService.getXPCOMFromNSSError( - nssErrorsService.NSS_SEC_ERROR_BASE - ) && - aStatus >= - nssErrorsService.getXPCOMFromNSSError( - nssErrorsService.NSS_SEC_ERROR_LIMIT - 1 - )) || - (aStatus <= - nssErrorsService.getXPCOMFromNSSError( - nssErrorsService.NSS_SSL_ERROR_BASE - ) && - aStatus >= - nssErrorsService.getXPCOMFromNSSError( - nssErrorsService.NSS_SSL_ERROR_LIMIT - 1 - )) - ) { - this.onBadCertificate( - nssErrorsService.getErrorClass(aStatus) == - nssErrorsService.ERROR_CLASS_SSL_PROTOCOL, - nssErrorsService.getErrorMessage(aStatus) - ); - return; - } + this.securityInfo = this.transport.securityInfo.QueryInterface( + Ci.nsITransportSecurityInfo + ); + this.onConnectionSecurityError( + aStatus, + nssErrorsService.getErrorMessage(aStatus) + ); } this.onConnectionClosed(); }, @@ -701,7 +689,7 @@ // Called when a socket request's network is reset. onConnectionReset() {}, // Called when the certificate provided by the server didn't satisfy NSS. - onBadCertificate(aNSSErrorMessage) {}, + onConnectionSecurityError(aTLSError, aNSSErrorMessage) {}, // Called when the other end has closed the connection. onConnectionClosed() {}, diff -Nru thunderbird-78.6.0/comm/chat/protocols/irc/irc.jsm thunderbird-78.9.0/comm/chat/protocols/irc/irc.jsm --- thunderbird-78.6.0/comm/chat/protocols/irc/irc.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/protocols/irc/irc.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -917,14 +917,14 @@ _("connection.error.timeOut") ); }, - onBadCertificate(aIsSslError, aNSSErrorMessage) { + onConnectionSecurityError(aTLSError, aNSSErrorMessage) { this.WARN( "Bad certificate or SSL connection for " + this._account.name + ":\n" + aNSSErrorMessage ); - let error = this._account.handleBadCertificate(this, aIsSslError); + let error = this._account.handleConnectionSecurityError(this); this._account.gotDisconnected(error, aNSSErrorMessage); }, diff -Nru thunderbird-78.6.0/comm/chat/protocols/xmpp/xmpp-base.jsm thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-base.jsm --- thunderbird-78.6.0/comm/chat/protocols/xmpp/xmpp-base.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-base.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -2680,7 +2680,7 @@ conv.supportChatStateNotifications = !!state; }, - /* Called when there is an error in the xmpp session */ + /** Called when there is an error in the XMPP session */ onError(aError, aException) { if (aError === null || aError === undefined) { aError = Ci.prplIAccount.ERROR_OTHER_ERROR; diff -Nru thunderbird-78.6.0/comm/chat/protocols/xmpp/xmpp-session.jsm thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-session.jsm --- thunderbird-78.6.0/comm/chat/protocols/xmpp/xmpp-session.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/chat/protocols/xmpp/xmpp-session.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -369,8 +369,8 @@ onConnectionClosed() { this._networkError(_("connection.error.serverClosedConnection")); }, - onBadCertificate(aIsSslError, aNSSErrorMessage) { - let error = this._account.handleBadCertificate(this, aIsSslError); + onConnectionSecurityError(aTLSError, aNSSErrorMessage) { + let error = this._account.handleConnectionSecurityError(this); this.onError(error, aNSSErrorMessage); }, onConnectionReset() { diff -Nru thunderbird-78.6.0/comm/ldap/xpcom/src/nsLDAPConnection.cpp thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPConnection.cpp --- thunderbird-78.6.0/comm/ldap/xpcom/src/nsLDAPConnection.cpp 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPConnection.cpp 2021-03-22 15:50:42.000000000 +0000 @@ -220,17 +220,24 @@ * and this leads to starvation. * We have to do a copy of pending operations. */ - nsTArray pending_operations; + nsTArray pending_operations; { MutexAutoLock lock(mPendingOperationsMutex); for (auto iter = mPendingOperations.Iter(); !iter.Done(); iter.Next()) { - pending_operations.AppendElement(iter.UserData()); + nsLDAPOperation* op = static_cast(iter.UserData()); + pending_operations.AppendElement(op); } } - for (uint32_t i = 0; i < pending_operations.Length(); i++) { - pending_operations[i]->AbandonExt(); + for (auto op : pending_operations) { + // Tell the operation to free any refcounts it can. + op->Clear(); + // Would be nice to tell the server that it can abort any operations + // it's currently processing, but we'd have to send the ABANDON from + // the thread, and we're shutting down our LDAP handle right now! + // SO. Future/aspirational: + // op->AbandonExt(); } - Close(); + Close(); // Byebye LDAP handle. } else { MOZ_ASSERT_UNREACHABLE("unexpected topic"); return NS_ERROR_UNEXPECTED; @@ -467,10 +474,9 @@ } nsPrintfCString location("%s:%d", mDNSHost.get(), mPort); nsCOMPtr tsi = do_QueryInterface(secInfo); - NS_DispatchToMainThread(NS_NewRunnableFunction( - "InvokeErrorCallback", [=]() { - listener->OnLDAPError(status, tsi, location); - })); + NS_DispatchToMainThread(NS_NewRunnableFunction("InvokeErrorCallback", [=]() { + listener->OnLDAPError(status, tsi, location); + })); } NS_IMETHODIMP diff -Nru thunderbird-78.6.0/comm/ldap/xpcom/src/nsLDAPOperation.cpp thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPOperation.cpp --- thunderbird-78.6.0/comm/ldap/xpcom/src/nsLDAPOperation.cpp 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/ldap/xpcom/src/nsLDAPOperation.cpp 2021-03-22 15:50:42.000000000 +0000 @@ -653,6 +653,9 @@ return NS_ERROR_NOT_INITIALIZED; } + MOZ_LOG(gLDAPLogModule, mozilla::LogLevel::Debug, + ("nsLDAPOperation::AbandonExt() called (msgid=%d)", mMsgID)); + // XXX handle controls here if (mServerControls || mClientControls) { return NS_ERROR_NOT_IMPLEMENTED; diff -Nru thunderbird-78.6.0/comm/mail/app/profile/all-thunderbird.js thunderbird-78.9.0/comm/mail/app/profile/all-thunderbird.js --- thunderbird-78.6.0/comm/mail/app/profile/all-thunderbird.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/app/profile/all-thunderbird.js 2021-03-22 15:50:42.000000000 +0000 @@ -104,7 +104,7 @@ #endif // Base URL for web-based support pages. -pref("app.support.baseURL", "https://support.thunderbird.net/%LOCALE%/%APP%/%APPBUILDID%/"); +pref("app.support.baseURL", "https://support.thunderbird.net/%APP%/%VERSION%/%OS%/%LOCALE%/"); // Base url for web-based feedback pages. pref("app.feedback.baseURL", "https://input.mozilla.org/%LOCALE%/feedback/%APP%/%VERSION%/"); @@ -203,6 +203,8 @@ // Don't show recommendations on the extension and theme list views. pref("extensions.htmlaboutaddons.recommendations.enabled", false); +// Don't allow content scripts on these web sites +pref("extensions.webextensions.restrictedDomains", "accounts-static.cdn.mozilla.net,accounts.firefox.com,addons.cdn.mozilla.net,addons.mozilla.org,api.accounts.firefox.com,content.cdn.mozilla.net,discovery.addons.mozilla.org,install.mozilla.org,oauth.accounts.firefox.com,profile.accounts.firefox.com,support.mozilla.org,sync.services.mozilla.com,addons.thunderbird.net"); pref("lightweightThemes.update.enabled", true); diff -Nru thunderbird-78.6.0/comm/mail/base/content/aboutAddonsExtra.css thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.css --- thunderbird-78.6.0/comm/mail/base/content/aboutAddonsExtra.css 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.css 2021-03-22 15:50:42.000000000 +0000 @@ -25,11 +25,6 @@ margin-bottom: 36px; } -/* Hide the help button */ -#help-button { - display: none; -} - /* Hide in extension details the private browsing section */ section > .addon-detail-row-private-browsing, .addon-detail-row-private-browsing + .addon-detail-row.addon-detail-help-row { diff -Nru thunderbird-78.6.0/comm/mail/base/content/aboutAddonsExtra.js thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.js --- thunderbird-78.6.0/comm/mail/base/content/aboutAddonsExtra.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/aboutAddonsExtra.js 2021-03-22 15:50:42.000000000 +0000 @@ -15,6 +15,10 @@ ], ]); +XPCOMUtils.defineLazyModuleGetters(this, { + ExtensionData: "resource://gre/modules/Extension.jsm", +}); + /* This file runs in both the outer window, which controls the categories list, search bar, etc., * and the inner window which is the list of add-ons or the detail view. */ (async function() { @@ -68,4 +72,44 @@ } return _getScreenshotUrlForAddon(addon); }; + + // Override parts of the addon-permission-list customElement to be able + // to show the usage of Experiments in the permission list. + await customElements.whenDefined("addon-permissions-list"); + AddonPermissionsList.prototype.renderExperimentOnly = function() { + let appName = brandBundle.GetStringFromName("brandShortName"); + this.textContent = ""; + + let msg = browserBundle.formatStringFromName( + "webextPerms.description.experiment", + [appName] + ); + let row = document.createElement("div"); + row.classList.add("addon-detail-row", "permission-info"); + row.textContent = msg; + this.appendChild(row); + + // Add a learn more link. + let learnMoreRow = document.createElement("div"); + learnMoreRow.classList.add("addon-detail-row"); + let learnMoreLink = document.createElement("a", { is: "support-link" }); + learnMoreLink.setAttribute("support-page", "extension-permissions"); + learnMoreLink.textContent = browserBundle.GetStringFromName( + "webextPerms.learnMore" + ); + learnMoreRow.appendChild(learnMoreLink); + this.appendChild(learnMoreRow); + }; + // We change this function from sync to async, which does not matter. + // It calls this.render() which is async without awaiting it anyway. + AddonPermissionsList.prototype.setAddon = async function(addon) { + this.addon = addon; + let data = new ExtensionData(addon.getResourceURI()); + await data.loadManifest(); + if (data.manifest.experiment_apis) { + this.renderExperimentOnly(); + } else { + this.render(); + } + }; })(); diff -Nru thunderbird-78.6.0/comm/mail/base/content/folderDisplay.js thunderbird-78.9.0/comm/mail/base/content/folderDisplay.js --- thunderbird-78.6.0/comm/mail/base/content/folderDisplay.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/folderDisplay.js 2021-03-22 15:50:42.000000000 +0000 @@ -18,6 +18,9 @@ var gFolderDisplay = null; var gMessageDisplay = null; +// An object to help collecting reading statistics of secure emails. +var gSecureMsgProbe = {}; + /** * Maintains a list of listeners for all FolderDisplayWidget instances in this * window. The assumption is that because of our multiplexed tab @@ -83,6 +86,29 @@ }; /** + * Update gSecureMsgProbe and report to telemetry if necessary. + */ +function reportMsgRead({ isNewRead = false, key = null }) { + if (isNewRead) { + gSecureMsgProbe.isNewRead = true; + } + if (key) { + gSecureMsgProbe.key = key; + } + if (gSecureMsgProbe.key && gSecureMsgProbe.isNewRead) { + Services.telemetry.keyedScalarAdd( + "tb.mails.read_secure", + gSecureMsgProbe.key, + 1 + ); + } +} + +window.addEventListener("secureMsgLoaded", event => { + reportMsgRead({ key: event.detail.key }); +}); + +/** * Abstraction for a widget that (roughly speaking) displays the contents of * folders. The widget belongs to a tab and has a lifetime as long as the tab * that contains it. This class is strictly concerned with the UI aspects of @@ -1424,6 +1450,12 @@ let msgHdr = selected.length ? selected[0] : null; this.messageDisplay.onDisplayingMessage(msgHdr); + // Reset gSecureMsgProbe. + gSecureMsgProbe = { + key: null, + isNewRead: false, + }; + // Although deletes should now be so fast that the user has no time to do // anything, treat the user explicitly choosing to display a different // message as invalidating the choice we automatically made for them when diff -Nru thunderbird-78.6.0/comm/mail/base/content/foldersummary.js thunderbird-78.9.0/comm/mail/base/content/foldersummary.js --- thunderbird-78.6.0/comm/mail/base/content/foldersummary.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/foldersummary.js 2021-03-22 15:50:42.000000000 +0000 @@ -137,6 +137,11 @@ folder.msgDatabase = null; let msgKeys = msgDatabase.getNewList(); + // NOTE: getNewlist returns all nsMsgMessageFlagType::New messages, + // while getNumNewMessages returns count of new messages since the last + // biff. Only show newly received messages since last biff in + // notification. + msgKeys = msgKeys.slice(-folder.getNumNewMessages(false)); if (!msgKeys.length) { continue; } diff -Nru thunderbird-78.6.0/comm/mail/base/content/gloda-autocomplete-input.js thunderbird-78.9.0/comm/mail/base/content/gloda-autocomplete-input.js --- thunderbird-78.6.0/comm/mail/base/content/gloda-autocomplete-input.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/gloda-autocomplete-input.js 2021-03-22 15:50:42.000000000 +0000 @@ -28,9 +28,6 @@ const { GlodaIMSearcher } = ChromeUtils.import( "resource:///modules/search_im.jsm" ); - const { XPCOMUtils } = ChromeUtils.import( - "resource://gre/modules/XPCOMUtils.jsm" - ); /** * The MozGlodaAutocompleteInput widget is used to display the autocomplete search bar. @@ -80,17 +77,6 @@ super.connectedCallback(); this.setAttribute("is", "gloda-autocomplete-input"); - - XPCOMUtils.defineLazyPreferenceGetter( - this, - "glodaEnabled", - "mailnews.database.global.indexer.enabled", - true, - (pref, oldVal, newVal) => { - this.toggleAttribute("hidden", !newVal); - } - ); - this.glodaCompleter = null; // @implements {nsIObserver} @@ -175,8 +161,6 @@ "autocomplete-did-enter-text" ); - this.toggleAttribute("hidden", !this.glodaEnabled); - // make sure we set our emptytext here from the get-go if (this.hasAttribute("placeholder")) { this.placeholder = this.getAttribute("placeholder"); diff -Nru thunderbird-78.6.0/comm/mail/base/content/mail3PaneWindowCommands.js thunderbird-78.9.0/comm/mail/base/content/mail3PaneWindowCommands.js --- thunderbird-78.6.0/comm/mail/base/content/mail3PaneWindowCommands.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/mail3PaneWindowCommands.js 2021-03-22 15:50:42.000000000 +0000 @@ -1277,6 +1277,13 @@ } function RestoreFocusAfterHdrButton() { + // Note: Some callers call this function *after* asynchronous functions like + // save-as which will trigger a save dialog. As those dialogs are typically + // slower to load, in reality this function may set focus on thread pane + // *before* the dialog is shown on screen. This does not seem to cause + // problems like dialogs being hidden behind the main window, probably because + // they're application-modal OS dialogs and will ensure having focus anyway. + // // I would love to really restore the focus to the pane that had // focus before the user clicked on the hdr button, and gLastFocusedElement // would almost do that, except that clicking on the hdr button sets diff -Nru thunderbird-78.6.0/comm/mail/base/content/mailCommands.js thunderbird-78.9.0/comm/mail/base/content/mailCommands.js --- thunderbird-78.6.0/comm/mail/base/content/mailCommands.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/mailCommands.js 2021-03-22 15:50:42.000000000 +0000 @@ -514,6 +514,9 @@ ? Ci.nsMsgViewCommandType.markMessagesRead : Ci.nsMsgViewCommandType.markMessagesUnread ); + if (markRead) { + reportMsgRead({ isNewRead: true }); + } } function MarkSelectedMessagesFlagged(markFlagged) { diff -Nru thunderbird-78.6.0/comm/mail/base/content/mailWidgets.js thunderbird-78.9.0/comm/mail/base/content/mailWidgets.js --- thunderbird-78.6.0/comm/mail/base/content/mailWidgets.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/mailWidgets.js 2021-03-22 15:50:42.000000000 +0000 @@ -2137,6 +2137,17 @@ }); input.addEventListener("keyup", event => { + // Trigger the onRecipientsChanged method for every letter typed or + // deleted in order to properly update the "Send" button and trigger + // the save as draft prompt even before the creation of any pill. + if ( + event.key.length == 1 || + (event.key.length > 1 && /[^a-zA-Z0-9]/.test(event.key)) || + ["Backspace", "Delete"].includes(event.key) + ) { + onRecipientsChanged(false); + } + // Change the min size of the input field on typing only if the // current width is smaller than 80% of its container's width or none // arrow keys were pressed to prevent overflow. diff -Nru thunderbird-78.6.0/comm/mail/base/content/mailWindowOverlay.js thunderbird-78.9.0/comm/mail/base/content/mailWindowOverlay.js --- thunderbird-78.6.0/comm/mail/base/content/mailWindowOverlay.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/mailWindowOverlay.js 2021-03-22 15:50:42.000000000 +0000 @@ -2926,6 +2926,8 @@ function TransportErrorUrlListener() {} TransportErrorUrlListener.prototype = { + OnStartRunningUrl(url) {}, + OnStopRunningUrl(url, exitCode) { let nssErrorsService = Cc["@mozilla.org/nss_errors_service;1"].getService( Ci.nsINSSErrorsService @@ -3581,6 +3583,7 @@ var headers = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray); headers.appendElement(msgHdr); msgHdr.folder.markMessagesRead(headers, true); + reportMsgRead({ isNewRead: true }); } function ClearPendingReadTimer() { diff -Nru thunderbird-78.6.0/comm/mail/base/content/mainMailToolbox.inc.xhtml thunderbird-78.9.0/comm/mail/base/content/mainMailToolbox.inc.xhtml --- thunderbird-78.6.0/comm/mail/base/content/mainMailToolbox.inc.xhtml 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/mainMailToolbox.inc.xhtml 2021-03-22 15:50:42.000000000 +0000 @@ -325,7 +325,8 @@ title="&glodaSearch.title;" align="center" flex="1" - class="chromeclass-toolbar-additional"> + class="gloda-search-widget chromeclass-toolbar-additional"> + + 0) { + attachments[0].save().then(function() { + saveAttachments(attachments.slice(1)); + }); + } + }; + + saveAttachments(attachments); + return; case "copyUrl": // Copy external http url(s) to clipboard. The menuitem is hidden unless // all selected attachment urls are http. @@ -3478,11 +3483,14 @@ let openConversation = document.getElementById( "otherActionsOpenConversation" ); - openConversation.disabled = !glodaEnabled; - if (glodaEnabled && gFolderDisplay.selectedCount > 0) { - let message = gFolderDisplay.selectedMessage; - let isMessageIndexed = Gloda.isMessageIndexed(message); - openConversation.disabled = !isMessageIndexed; + // Check because this menuitem element is not present in messageWindow.xhtml. + if (openConversation) { + openConversation.disabled = !glodaEnabled; + if (glodaEnabled && gFolderDisplay.selectedCount > 0) { + let message = gFolderDisplay.selectedMessage; + let isMessageIndexed = Gloda.isMessageIndexed(message); + openConversation.disabled = !isMessageIndexed; + } } if (SelectedMessagesAreRead()) { diff -Nru thunderbird-78.6.0/comm/mail/base/content/msgMail3PaneWindow.js thunderbird-78.9.0/comm/mail/base/content/msgMail3PaneWindow.js --- thunderbird-78.6.0/comm/mail/base/content/msgMail3PaneWindow.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/msgMail3PaneWindow.js 2021-03-22 15:50:42.000000000 +0000 @@ -682,6 +682,22 @@ document.getElementById("multimessage") ); + // Depending on the pref, hide/show the gloda toolbar search widgets. + XPCOMUtils.defineLazyPreferenceGetter( + this, + "gGlodaEnabled", + "mailnews.database.global.indexer.enabled", + true, + (pref, oldVal, newVal) => { + for (let widget of document.querySelectorAll(".gloda-search-widget")) { + widget.hidden = !newVal; + } + } + ); + for (let widget of document.querySelectorAll(".gloda-search-widget")) { + widget.hidden = !this.gGlodaEnabled; + } + window.addEventListener("AppCommand", HandleAppCommandEvent, true); // Set up the appmenus. (This has to happen after the DOM has loaded.) diff -Nru thunderbird-78.6.0/comm/mail/base/content/tabmail.js thunderbird-78.9.0/comm/mail/base/content/tabmail.js --- thunderbird-78.6.0/comm/mail/base/content/tabmail.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/content/tabmail.js 2021-03-22 15:50:42.000000000 +0000 @@ -915,12 +915,15 @@ } } + let panel = document.getElementById(firstTab.tabNode.linkedPanel); + panel.setAttribute("selected", "true"); + // Dispatch tab opening event let evt = new CustomEvent("TabOpen", { bubbles: true, detail: { tabInfo: firstTab, moving: false }, }); - document.querySelector("#tabmail-tabs tab").dispatchEvent(evt); + firstTab.tabNode.dispatchEvent(evt); } } @@ -1041,6 +1044,16 @@ p.hasAttribute("selected") ); if (oldPanel) { + // Remember what has focus for when we return to this tab. + if ( + oldPanel.compareDocumentPosition(document.activeElement) & + Node.DOCUMENT_POSITION_CONTAINED_BY + ) { + oldTab.lastActiveElement = document.activeElement; + document.activeElement.blur(); + } else { + delete oldTab.lastActiveElement; + } oldPanel.removeAttribute("selected"); } @@ -1114,6 +1127,8 @@ UpdateMailToolbar("tabmail"); } + this.panelContainer.selectedPanel.focus(); + let moving = restoreState ? restoreState.moving : null; // Dispatch tab opening event let evt = new CustomEvent("TabOpen", { @@ -1736,6 +1751,19 @@ ]); // Update the selected attribute on the current and old tab panel. if (oldPanel) { + // Remember what has focus for when we return to this tab. Check for + // anything inside tabmail-container rather than the panel because + // focus could be in the Today Pane. + let container = document.getElementById("tabmail-container"); + if ( + container.compareDocumentPosition(document.activeElement) & + Node.DOCUMENT_POSITION_CONTAINED_BY + ) { + oldTab.lastActiveElement = document.activeElement; + document.activeElement.blur(); + } else { + delete oldTab.lastActiveElement; + } oldPanel.removeAttribute("selected"); } @@ -1779,6 +1807,14 @@ // We switched tabs, so we don't need to know the last tab // opener anymore. this.mLastTabOpener = null; + + // Try to set focus where it was when the tab was last selected. + this.panelContainer.selectedPanel.focus(); + if (tab.lastActiveElement) { + tab.lastActiveElement.focus(); + delete tab.lastActiveElement; + } + let evt = new CustomEvent("TabSelect", { bubbles: true, detail: { tabInfo: tab }, @@ -1891,10 +1927,8 @@ if (typeof aThinkingState == "string") { statusFeedback.showStatusString(aThinkingState); } - gStatusBar.removeAttribute("value"); } else { statusFeedback.showProgress(0); - gStatusBar.value = 0; } } diff -Nru thunderbird-78.6.0/comm/mail/base/modules/ExtensionsUI.jsm thunderbird-78.9.0/comm/mail/base/modules/ExtensionsUI.jsm --- thunderbird-78.6.0/comm/mail/base/modules/ExtensionsUI.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/modules/ExtensionsUI.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -886,6 +886,30 @@ }); } + // Reject add-ons using the legacy API. We cannot use the general "ignore + // unknown APIs" policy, as add-ons using the Legacy API from TB68 will + // not do anything, confusing the user. + if (data.manifest.legacy) { + let subject = { + wrappedJSObject: { + browser, + originatingURI: null, + installs: [ + { + addon: info.addon, + name: info.addon.name, + error: 0, + }, + ], + install: null, + cancel: null, + }, + }; + Services.obs.notifyObservers(subject, "addon-install-failed"); + info.reject(); + return; + } + this.showPermissionsPrompt(browser, strings, info.icon, histkey).then( answer => { if (answer) { diff -Nru thunderbird-78.6.0/comm/mail/base/modules/QuickFilterManager.jsm thunderbird-78.9.0/comm/mail/base/modules/QuickFilterManager.jsm --- thunderbird-78.6.0/comm/mail/base/modules/QuickFilterManager.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/modules/QuickFilterManager.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -1152,7 +1152,7 @@ let panel = aDocument.getElementById("qfb-text-search-upsell"); if ( (Services.focus.activeWindow != aDocument.defaultView || - aDocument.commandDispatcher.focusedElement != aNode) && + aDocument.commandDispatcher.focusedElement != aNode.inputField) && panel.state == "open" ) { panel.hidePopup(); @@ -1198,15 +1198,16 @@ }, reflectInDOM(aNode, aFilterValue, aDocument, aMuxer, aFromPFP) { + let panel = aDocument.getElementById("qfb-text-search-upsell"); + if (aFromPFP == "nosale") { - let panel = aDocument.getElementById("qfb-text-search-upsell"); if (panel.state != "closed") { panel.hidePopup(); } return; } + if (aFromPFP == "upsell") { - let panel = aDocument.getElementById("qfb-text-search-upsell"); let line1 = aDocument.getElementById("qfb-upsell-line-one"); let line2 = aDocument.getElementById("qfb-upsell-line-two"); line1.value = line1.getAttribute("fmt").replace("#1", aFilterValue.text); @@ -1214,30 +1215,34 @@ if ( panel.state == "closed" && - aDocument.commandDispatcher.focusedElement == aNode + aDocument.commandDispatcher.focusedElement == aNode.inputField ) { - let filterBar = aDocument.getElementById("quick-filter-bar"); - // panel.sizeTo(filterBar.clientWidth - 20, filterBar.clientHeight - 20); - panel.openPopup(filterBar, "after_end", -7, 7, false, true); + panel.openPopup( + aDocument.getElementById("quick-filter-bar"), + "after_end", + -7, + 7, + false, + true + ); } return; } // Make sure we have no visible upsell on state change while our textbox - // retains focus. - let panel = aDocument.getElementById("qfb-text-search-upsell"); + // retains focus. if (panel.state != "closed") { panel.hidePopup(); } // Update the text if it has changed (linux does weird things with empty - // text if we're transitioning emptytext to emptytext) + // text if we're transitioning emptytext to emptytext). let desiredValue = aFilterValue.text || ""; if (aNode.value != desiredValue) { aNode.value = desiredValue; } - // Update our expando buttons + // Update our expanded filters buttons. let states = aFilterValue.states; for (let name in this.textFilterDefs) { let textFilter = this.textFilterDefs[name]; @@ -1245,7 +1250,7 @@ states[textFilter.name]; } - // Show the expando? + // Toggle the expanded filters visibility. aDocument.getElementById("quick-filter-bar-filter-text-bar").collapsed = aFilterValue.text == null; }, diff -Nru thunderbird-78.6.0/comm/mail/base/modules/ThemeVariableMap.jsm thunderbird-78.9.0/comm/mail/base/modules/ThemeVariableMap.jsm --- thunderbird-78.6.0/comm/mail/base/modules/ThemeVariableMap.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/base/modules/ThemeVariableMap.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -248,6 +248,12 @@ lwtProperty: "sidebar_border", }, ], + [ + "--sidebar-highlight-border-color", + { + lwtProperty: "sidebar_highlight_border", + }, + ], ]; const ThemeContentPropertyList = [ diff -Nru thunderbird-78.6.0/comm/mail/components/MessengerContentHandler.jsm thunderbird-78.9.0/comm/mail/components/MessengerContentHandler.jsm --- thunderbird-78.6.0/comm/mail/components/MessengerContentHandler.jsm 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/components/MessengerContentHandler.jsm 2021-03-22 15:50:42.000000000 +0000 @@ -414,9 +414,21 @@ inputStream, inputStream.available() ); + + // Try to detect the character set and decode. Only UTF-8 is + // valid from vCard 4.0, but we support older versions, so other + // charsets are possible. + let charset = Cc["@mozilla.org/messengercompose/computils;1"] + .createInstance(Ci.nsIMsgCompUtils) + .detectCharset(data); + let buffer = new Uint8Array( + Array.from(data, c => c.charCodeAt(0)) + ); + data = new TextDecoder(charset).decode(buffer); + let card = Cc["@mozilla.org/addressbook/msgvcardservice;1"] .getService(Ci.nsIMsgVCardService) - .escapedVCardToAbCard(data); + .vCardToAbCard(data); Services.ww.openWindow( null, "chrome://messenger/content/addressbook/abNewCardDialog.xhtml", diff -Nru thunderbird-78.6.0/comm/mail/components/accountcreation/content/createInBackend.js thunderbird-78.9.0/comm/mail/components/accountcreation/content/createInBackend.js --- thunderbird-78.6.0/comm/mail/components/accountcreation/content/createInBackend.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/components/accountcreation/content/createInBackend.js 2021-03-22 15:50:42.000000000 +0000 @@ -71,7 +71,7 @@ .replace(/[{}]/g, ""); } - if (config.rememberPassword && config.incoming.password.length) { + if (config.rememberPassword && config.incoming.password) { rememberPassword(inServer, config.incoming.password); } @@ -94,8 +94,14 @@ // STARTTLS inServer.socketType = Ci.nsMsgSocketType.alwaysSTARTTLS; } - // inServer.prettyName = config.displayName; - inServer.prettyName = config.identity.emailAddress; + + // If we already have an account with an identical name, generate a unique + // name for the new account to avoid duplicates. + inServer.prettyName = checkAccountNameAlreadyExists( + config.identity.emailAddress + ) + ? generateUniqueAccountName(config) + : config.identity.emailAddress; inServer.doBiff = true; inServer.biffMinutes = config.incoming.checkInterval; @@ -157,9 +163,9 @@ } if (config.outgoing.auth > 1) { outServer.username = username; - outServer.password = config.incoming.password; - if (config.rememberPassword && config.incoming.password.length) { - rememberPassword(outServer, config.incoming.password); + outServer.password = config.outgoing.password; + if (config.rememberPassword && config.outgoing.password) { + rememberPassword(outServer, config.outgoing.password); } } @@ -186,11 +192,7 @@ outServer.socketType = Ci.nsMsgSocketType.alwaysSTARTTLS; } - // API problem: outServer.description = config.displayName; - if (config.password) { - outServer.password = config.outgoing.password; - } // If this is the first SMTP server, set it as default if ( @@ -386,6 +388,46 @@ } /** + * Check whether the user's setup already has an account with the same email + * address. This might happen if the user uses the same email for different + * protocols (eg. IMAP and POP3). + * + * @param {string} name - The name or email address of the new account. + * @returns {boolean} True if an account with the same name is found. + */ +function checkAccountNameAlreadyExists(name) { + return MailServices.accounts.accounts.some( + a => a.incomingServer.prettyName == name + ); +} + +/** + * Generate a unique account name by appending the incoming protocol type, and + * a counter if necessary. + * + * @param {AccountConfig} config - The config data of the account being created. + * @returns {string} - The unique account name. + */ +function generateUniqueAccountName(config) { + // Generate a potential unique name. e.g. "foo@bar.com (POP3)". + let name = `${ + config.identity.emailAddress + } (${config.incoming.type.toUpperCase()})`; + + // If this name already exists, append a counter until we find a unique name. + if (checkAccountNameAlreadyExists(name)) { + let counter = 2; + while (checkAccountNameAlreadyExists(`${name}_${counter}`)) { + counter++; + } + // e.g. "foo@bar.com (POP3)_1". + name = `${name}_${counter}`; + } + + return name; +} + +/** * Check if there already is a "Local Folders". If not, create it. * Copied from AccountWizard.js with minor updates. */ diff -Nru thunderbird-78.6.0/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js thunderbird-78.9.0/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js --- thunderbird-78.6.0/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/components/accountcreation/content/exchangeAutoDiscover.js 2021-03-22 15:50:42.000000000 +0000 @@ -99,6 +99,7 @@ readAutoDiscoverResponse( xml, successive, + emailAddress, username, password, config => { @@ -235,6 +236,7 @@ function readAutoDiscoverResponse( autoDiscoverXML, successive, + emailAddress, username, password, successCallback, @@ -246,12 +248,12 @@ // redirect to other email address if ( - "Action" in autoDiscoverXML.Autodiscover.Response && - "Redirect" in autoDiscoverXML.Autodiscover.Response.Action + "Account" in autoDiscoverXML.Autodiscover.Response && + "RedirectAddr" in autoDiscoverXML.Autodiscover.Response.Account ) { - // + // let redirectEmailAddress = sanitize.emailAddress( - autoDiscoverXML.Autodiscover.Response.Action.Redirect + autoDiscoverXML.Autodiscover.Response.Account.RedirectAddr ); let domain = redirectEmailAddress.split("@").pop(); if (++gLoopCounter > 2) { @@ -260,11 +262,14 @@ successive.current = fetchConfigFromExchange( domain, redirectEmailAddress, - username, + // Per spec, need to authenticate with the original email address, + // not the redirected address (if not already overridden). + username || emailAddress, password, successCallback, errorCallback ); + return; } let config = readAutoDiscoverXML(autoDiscoverXML, username); diff -Nru thunderbird-78.6.0/comm/mail/components/accountcreation/content/sanitizeDatatypes.js thunderbird-78.9.0/comm/mail/components/accountcreation/content/sanitizeDatatypes.js --- thunderbird-78.6.0/comm/mail/components/accountcreation/content/sanitizeDatatypes.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/components/accountcreation/content/sanitizeDatatypes.js 2021-03-22 15:50:42.000000000 +0000 @@ -113,6 +113,19 @@ return str.toLowerCase(); }, + + /** + * A value which resembles an email address. + */ + emailAddress(unchecked) { + let str = this.nonemptystring(unchecked); + if (!/^[a-z0-9\-%+_\.\*]+@[a-z0-9\-\.]+\.[a-z]+$/i.test(str)) { + throw new MalformedException("emailaddress_syntax.error", unchecked); + } + + return str.toLowerCase(); + }, + /** * A non-chrome URL that's safe to request. */ diff -Nru thunderbird-78.6.0/comm/mail/components/activity/content/activity-widgets.js thunderbird-78.9.0/comm/mail/components/activity/content/activity-widgets.js --- thunderbird-78.6.0/comm/mail/components/activity/content/activity-widgets.js 2020-12-12 00:49:42.000000000 +0000 +++ thunderbird-78.9.0/comm/mail/components/activity/content/activity-widgets.js 2021-03-22 15:50:42.000000000 +0000 @@ -611,7 +611,7 @@