Version in base suite: 68.4.1esr-1~deb10u1 Version in overlay suite: 68.6.0esr-1~deb10u1 Base version: firefox-esr_68.6.0esr-1~deb10u1 Target version: firefox-esr_68.6.1esr-1~deb10u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/f/firefox-esr/firefox-esr_68.6.0esr-1~deb10u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/f/firefox-esr/firefox-esr_68.6.1esr-1~deb10u1.dsc /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpFvBpfS.o |binary /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpa8gLcn.o |binary /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpsda7Tq.o |binary /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmptxv1XD.o |binary firefox-esr-68.6.1esr/browser/base/content/tabbrowser.js | 13 - firefox-esr-68.6.1esr/browser/config/version.txt | 2 firefox-esr-68.6.1esr/browser/config/version_display.txt | 2 firefox-esr-68.6.1esr/browser/modules/FormValidationHandler.jsm | 2 firefox-esr-68.6.1esr/config/milestone.txt | 2 firefox-esr-68.6.1esr/debian/changelog | 7 firefox-esr-68.6.1esr/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch | 2 firefox-esr-68.6.1esr/docshell/base/nsDocShell.cpp | 6 firefox-esr-68.6.1esr/dom/base/nsFocusManager.cpp | 42 +-- firefox-esr-68.6.1esr/dom/cache/StreamList.cpp | 10 firefox-esr-68.6.1esr/editor/spellchecker/EditorSpellCheck.cpp | 12 - firefox-esr-68.6.1esr/extensions/spellcheck/src/mozInlineSpellChecker.cpp | 8 firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version.txt | 2 firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version_display.txt | 2 firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/pip-9.0.3.dist-info/RECORD | 42 +-- firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/setuptools-39.0.1.dist-info/RECORD | 48 ++-- firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/wheel-0.30.0.dist-info/RECORD | 2 firefox-esr-68.6.1esr/security/manager/ssl/SecretDecoderRing.cpp | 120 ++++++++++ firefox-esr-68.6.1esr/security/manager/ssl/nsNSSComponent.cpp | 88 ------- firefox-esr-68.6.1esr/security/manager/ssl/tests/unit/test_sdr_upgraded_with_password.js | 10 firefox-esr-68.6.1esr/sourcestamp.txt | 4 firefox-esr-68.6.1esr/taskcluster/ci/test/kind.yml | 1 firefox-esr-68.6.1esr/taskcluster/scripts/misc/wrench-deps-vendoring.sh | 3 firefox-esr-68.6.1esr/taskcluster/taskgraph/morph.py | 1 firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/coalesce.py | 36 --- firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/job/__init__.py | 1 firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/openh264.py | 9 firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/task.py | 55 ---- firefox-esr-68.6.1esr/taskcluster/taskgraph/util/scriptworker.py | 1 firefox-esr-68.6.1esr/toolkit/components/passwordmgr/content/passwordManager.xul | 2 firefox-esr-68.6.1esr/toolkit/components/viewconfig/content/config.xul | 2 firefox-esr-68.6.1esr/toolkit/content/contentAreaUtils.js | 4 firefox-esr-68.6.1esr/toolkit/content/license.html | 22 + firefox-esr-68.6.1esr/toolkit/content/tests/browser/browser_saveImageURL.js | 30 -- firefox-esr-68.6.1esr/toolkit/content/widgets/browser-custom-element.js | 24 ++ firefox-esr-68.6.1esr/toolkit/content/widgets/tree.js | 10 firefox-esr-68.6.1esr/toolkit/modules/DateTimePickerParent.jsm | 10 firefox-esr-68.6.1esr/toolkit/profile/nsToolkitProfileService.cpp | 49 +++- firefox-esr-68.6.1esr/toolkit/themes/shared/global.inc.css | 1 firefox-esr-68.6.1esr/toolkit/xre/nsXREDirProvider.cpp | 25 ++ firefox-esr-68.6.1esr/xpcom/ds/StaticAtoms.py | 3 45 files changed, 376 insertions(+), 339 deletions(-) diff: /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/bin: No such file or directory diff: /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/bin: No such file or directory diff: /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/lib: No such file or directory diff: /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/local/lib: No such file or directory diff -Nru firefox-esr-68.6.0esr/browser/base/content/tabbrowser.js firefox-esr-68.6.1esr/browser/base/content/tabbrowser.js --- firefox-esr-68.6.0esr/browser/base/content/tabbrowser.js 2020-03-05 20:56:39.000000000 +0000 +++ firefox-esr-68.6.1esr/browser/base/content/tabbrowser.js 2020-04-03 11:07:08.000000000 +0000 @@ -308,19 +308,6 @@ return i; }, - get popupAnchor() { - if (this.selectedTab._popupAnchor) { - return this.selectedTab._popupAnchor; - } - let stack = this.selectedBrowser.parentNode; - // Create an anchor for the popup - let popupAnchor = document.createXULElement("hbox"); - popupAnchor.className = "popup-anchor"; - popupAnchor.hidden = true; - stack.appendChild(popupAnchor); - return (this.selectedTab._popupAnchor = popupAnchor); - }, - set selectedTab(val) { if (gNavToolbox.collapsed && !this._allowTabChange) { return this.tabbox.selectedTab; diff -Nru firefox-esr-68.6.0esr/browser/config/version.txt firefox-esr-68.6.1esr/browser/config/version.txt --- firefox-esr-68.6.0esr/browser/config/version.txt 2020-03-05 20:56:39.000000000 +0000 +++ firefox-esr-68.6.1esr/browser/config/version.txt 2020-04-03 11:07:08.000000000 +0000 @@ -1 +1 @@ -68.6.0 +68.6.1 diff -Nru firefox-esr-68.6.0esr/browser/config/version_display.txt firefox-esr-68.6.1esr/browser/config/version_display.txt --- firefox-esr-68.6.0esr/browser/config/version_display.txt 2020-03-05 20:56:39.000000000 +0000 +++ firefox-esr-68.6.1esr/browser/config/version_display.txt 2020-04-03 11:07:08.000000000 +0000 @@ -1 +1 @@ -68.6.0esr +68.6.1esr diff -Nru firefox-esr-68.6.0esr/browser/modules/FormValidationHandler.jsm firefox-esr-68.6.1esr/browser/modules/FormValidationHandler.jsm --- firefox-esr-68.6.0esr/browser/modules/FormValidationHandler.jsm 2020-03-05 20:56:39.000000000 +0000 +++ firefox-esr-68.6.1esr/browser/modules/FormValidationHandler.jsm 2020-04-03 11:07:08.000000000 +0000 @@ -110,7 +110,7 @@ this._panel.hidden = false; let tabBrowser = aWindow.gBrowser; - this._anchor = tabBrowser.popupAnchor; + this._anchor = tabBrowser.selectedBrowser.popupAnchor; this._anchor.left = aPanelData.contentRect.left; this._anchor.top = aPanelData.contentRect.top; this._anchor.width = aPanelData.contentRect.width; diff -Nru firefox-esr-68.6.0esr/config/milestone.txt firefox-esr-68.6.1esr/config/milestone.txt --- firefox-esr-68.6.0esr/config/milestone.txt 2020-03-05 20:56:40.000000000 +0000 +++ firefox-esr-68.6.1esr/config/milestone.txt 2020-04-03 11:07:09.000000000 +0000 @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -68.6.0 +68.6.1 diff -Nru firefox-esr-68.6.0esr/debian/changelog firefox-esr-68.6.1esr/debian/changelog --- firefox-esr-68.6.0esr/debian/changelog 2020-03-10 21:59:57.000000000 +0000 +++ firefox-esr-68.6.1esr/debian/changelog 2020-04-03 21:41:17.000000000 +0000 @@ -1,3 +1,10 @@ +firefox-esr (68.6.1esr-1~deb10u1) buster-security; urgency=medium + + * New upstream release + * Fixes for mfsa2020-11, also known as: CVE-2020-6819, CVE-2020-6820. + + -- Mike Hommey Sat, 04 Apr 2020 06:41:17 +0900 + firefox-esr (68.6.0esr-1~deb10u1) buster-security; urgency=medium * New upstream release diff -Nru firefox-esr-68.6.0esr/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch firefox-esr-68.6.1esr/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch --- firefox-esr-68.6.0esr/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch 2020-03-10 21:59:57.000000000 +0000 +++ firefox-esr-68.6.1esr/debian/patches/debian-hacks/Add-another-preferences-directory-for-applications-p.patch 2020-04-03 21:41:17.000000000 +0000 @@ -13,7 +13,7 @@ 1 file changed, 2 insertions(+) diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp -index 4fd58c7585f..c065b6fdc9d 100644 +index 44d998fd427..cec3af70681 100644 --- a/toolkit/xre/nsXREDirProvider.cpp +++ b/toolkit/xre/nsXREDirProvider.cpp @@ -848,6 +848,7 @@ static nsresult DeleteDirIfExists(nsIFile* dir) { diff -Nru firefox-esr-68.6.0esr/docshell/base/nsDocShell.cpp firefox-esr-68.6.1esr/docshell/base/nsDocShell.cpp --- firefox-esr-68.6.0esr/docshell/base/nsDocShell.cpp 2020-03-05 20:56:40.000000000 +0000 +++ firefox-esr-68.6.1esr/docshell/base/nsDocShell.cpp 2020-04-03 11:07:09.000000000 +0000 @@ -432,6 +432,12 @@ mSessionHistory->LegacySHistory()->ClearRootDocShell(); } + if (mContentViewer) { + mContentViewer->Close(nullptr); + mContentViewer->Destroy(); + mContentViewer = nullptr; + } + if (--gDocShellCount == 0) { NS_IF_RELEASE(sURIFixup); } diff -Nru firefox-esr-68.6.0esr/dom/base/nsFocusManager.cpp firefox-esr-68.6.1esr/dom/base/nsFocusManager.cpp --- firefox-esr-68.6.0esr/dom/base/nsFocusManager.cpp 2020-03-05 20:56:45.000000000 +0000 +++ firefox-esr-68.6.1esr/dom/base/nsFocusManager.cpp 2020-04-03 11:07:09.000000000 +0000 @@ -3372,22 +3372,20 @@ } else { currentTopLevelScopeOwner = currentContent; } - if (currentTopLevelScopeOwner) { - if (currentTopLevelScopeOwner == oldTopLevelScopeOwner) { - // We're within non-document scope, continue. - do { - if (aForward) { - frameTraversal->Next(); - } else { - frameTraversal->Prev(); - } - frame = static_cast(frameTraversal->CurrentItem()); - // For the usage of GetPrevContinuation, see the comment - // at the end of while (frame) loop. - } while (frame && frame->GetPrevContinuation()); - continue; - } - currentContent = currentTopLevelScopeOwner; + if (currentTopLevelScopeOwner && + currentTopLevelScopeOwner == oldTopLevelScopeOwner) { + // We're within non-document scope, continue. + do { + if (aForward) { + frameTraversal->Next(); + } else { + frameTraversal->Prev(); + } + frame = static_cast(frameTraversal->CurrentItem()); + // For the usage of GetPrevContinuation, see the comment + // at the end of while (frame) loop. + } while (frame && frame->GetPrevContinuation()); + continue; } // For document navigation, check if this element is an open panel. Since @@ -3439,18 +3437,18 @@ // append ELEMENT to NAVIGATION-ORDER." // and later in "For each element ELEMENT in NAVIGATION-ORDER: " // hosts and slots are handled before other elements. - if (IsHostOrSlot(currentContent)) { + if (IsHostOrSlot(currentTopLevelScopeOwner)) { bool focusableHostSlot; - int32_t tabIndex = - HostOrSlotTabIndexValue(currentContent, &focusableHostSlot); + int32_t tabIndex = HostOrSlotTabIndexValue(currentTopLevelScopeOwner, + &focusableHostSlot); // Host or slot itself isn't focusable or going backwards, enter its // scope. if ((!aForward || !focusableHostSlot) && tabIndex >= 0 && (aIgnoreTabIndex || aCurrentTabIndex == tabIndex)) { nsIContent* contentToFocus = GetNextTabbableContentInScope( - currentContent, currentContent, aOriginalStartContent, aForward, - aForward ? 1 : 0, aIgnoreTabIndex, aForDocumentNavigation, - true /* aSkipOwner */); + currentTopLevelScopeOwner, currentTopLevelScopeOwner, + aOriginalStartContent, aForward, aForward ? 1 : 0, + aIgnoreTabIndex, aForDocumentNavigation, true /* aSkipOwner */); if (contentToFocus) { NS_ADDREF(*aResultContent = contentToFocus); return NS_OK; diff -Nru firefox-esr-68.6.0esr/dom/cache/StreamList.cpp firefox-esr-68.6.1esr/dom/cache/StreamList.cpp --- firefox-esr-68.6.0esr/dom/cache/StreamList.cpp 2020-03-05 20:56:45.000000000 +0000 +++ firefox-esr-68.6.1esr/dom/cache/StreamList.cpp 2020-04-03 11:07:09.000000000 +0000 @@ -133,7 +133,15 @@ void StreamList::CloseAll() { NS_ASSERT_OWNINGTHREAD(StreamList); if (mStreamControl) { - mStreamControl->CloseAll(); + auto streamControl = mStreamControl; + mStreamControl = nullptr; + + streamControl->CloseAll(); + + mStreamControl = streamControl; + streamControl = nullptr; + + mStreamControl->Shutdown(); } } diff -Nru firefox-esr-68.6.0esr/editor/spellchecker/EditorSpellCheck.cpp firefox-esr-68.6.1esr/editor/spellchecker/EditorSpellCheck.cpp --- firefox-esr-68.6.0esr/editor/spellchecker/EditorSpellCheck.cpp 2020-03-05 20:56:46.000000000 +0000 +++ firefox-esr-68.6.1esr/editor/spellchecker/EditorSpellCheck.cpp 2020-04-03 11:07:11.000000000 +0000 @@ -646,12 +646,20 @@ nsresult rv; RefPtr kungFuDeathGrip = this; + uint32_t flags = 0; + mEditor->GetFlags(&flags); // Get language with html5 algorithm nsCOMPtr rootContent; HTMLEditor* htmlEditor = mEditor->AsHTMLEditor(); if (htmlEditor) { - rootContent = htmlEditor->GetFocusedContent(); + if (flags & nsIPlaintextEditor::eEditorMailMask) { + // Always determine the root content for a mail editor, + // even if not focused, to enable further processing below. + rootContent = htmlEditor->GetActiveEditingHost(); + } else { + rootContent = htmlEditor->GetFocusedContent(); + } } else { rootContent = mEditor->GetRoot(); } @@ -661,8 +669,6 @@ } // Try to get topmost document's document element for embedded mail editor. - uint32_t flags = 0; - mEditor->GetFlags(&flags); if (flags & nsIPlaintextEditor::eEditorMailMask) { RefPtr ownerDoc = rootContent->OwnerDoc(); Document* parentDoc = ownerDoc->GetParentDocument(); diff -Nru firefox-esr-68.6.0esr/extensions/spellcheck/src/mozInlineSpellChecker.cpp firefox-esr-68.6.1esr/extensions/spellcheck/src/mozInlineSpellChecker.cpp --- firefox-esr-68.6.0esr/extensions/spellcheck/src/mozInlineSpellChecker.cpp 2020-03-05 20:56:46.000000000 +0000 +++ firefox-esr-68.6.1esr/extensions/spellcheck/src/mozInlineSpellChecker.cpp 2020-04-03 11:07:11.000000000 +0000 @@ -1064,12 +1064,18 @@ nsGkAtoms::cite, eIgnoreCase)) { return false; } - if (parent->IsHTMLElement(nsGkAtoms::pre) && + if (parent->IsAnyOfHTMLElements(nsGkAtoms::pre, nsGkAtoms::div) && parent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::_class, nsGkAtoms::mozsignature, eIgnoreCase)) { return false; } + if (parent->IsHTMLElement(nsGkAtoms::div) && + parent->AsElement()->AttrValueIs(kNameSpaceID_None, nsGkAtoms::_class, + nsGkAtoms::mozfwcontainer, + eIgnoreCase)) { + return false; + } parent = parent->GetParent(); } diff -Nru firefox-esr-68.6.0esr/mobile/android/config/version-files/release/version.txt firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version.txt --- firefox-esr-68.6.0esr/mobile/android/config/version-files/release/version.txt 2020-03-05 20:57:15.000000000 +0000 +++ firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version.txt 2020-04-03 11:07:26.000000000 +0000 @@ -1 +1 @@ -68.6.0 +68.6.1 diff -Nru firefox-esr-68.6.0esr/mobile/android/config/version-files/release/version_display.txt firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version_display.txt --- firefox-esr-68.6.0esr/mobile/android/config/version-files/release/version_display.txt 2020-03-05 20:57:16.000000000 +0000 +++ firefox-esr-68.6.1esr/mobile/android/config/version-files/release/version_display.txt 2020-04-03 11:07:26.000000000 +0000 @@ -1 +1 @@ -68.6.0 +68.6.1 diff -Nru firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/pip-9.0.3.dist-info/RECORD firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/pip-9.0.3.dist-info/RECORD --- firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/pip-9.0.3.dist-info/RECORD 2020-03-05 20:58:06.000000000 +0000 +++ firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/pip-9.0.3.dist-info/RECORD 2020-04-03 11:07:49.000000000 +0000 @@ -285,6 +285,7 @@ pip-9.0.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 pip/_vendor/chardet/version.pyc,, pip/_vendor/requests/compat.pyc,, +pip/_vendor/cachecontrol/cache.pyc,, pip/_vendor/requests/certs.pyc,, pip/_vendor/requests/adapters.pyc,, pip/_vendor/progress/spinner.pyc,, @@ -292,7 +293,6 @@ pip/__init__.pyc,, pip/_vendor/chardet/euckrprober.pyc,, pip/req/req_file.pyc,, -pip/_vendor/cachecontrol/cache.pyc,, pip/_vendor/distlib/_backport/__init__.pyc,, pip/vcs/bazaar.pyc,, pip/_vendor/distlib/metadata.pyc,, @@ -300,7 +300,7 @@ pip/_vendor/webencodings/tests.pyc,, pip/_vendor/html5lib/treebuilders/__init__.pyc,, pip/compat/dictconfig.pyc,, -pip/_vendor/html5lib/filters/alphabeticalattributes.pyc,, +pip/_vendor/html5lib/_trie/datrie.pyc,, pip/_vendor/distlib/util.pyc,, pip/_vendor/chardet/euctwprober.pyc,, pip/_vendor/packaging/version.pyc,, @@ -311,6 +311,7 @@ pip/_vendor/packaging/__init__.pyc,, pip/_vendor/lockfile/linklockfile.pyc,, pip/_vendor/packaging/utils.pyc,, +pip/_vendor/html5lib/treewalkers/etree.pyc,, pip/_vendor/html5lib/filters/whitespace.pyc,, pip/_vendor/html5lib/treebuilders/etree_lxml.pyc,, pip/_vendor/idna/codec.pyc,, @@ -339,27 +340,30 @@ pip/_vendor/html5lib/_trie/_base.pyc,, pip/_vendor/chardet/big5freq.pyc,, pip/_vendor/html5lib/filters/base.pyc,, -pip/_vendor/certifi/core.pyc,, +pip/_vendor/chardet/langhungarianmodel.pyc,, pip/req/req_set.pyc,, pip/req/__init__.pyc,, pip/_vendor/ordereddict.pyc,, pip/_vendor/colorama/win32.pyc,, pip/_vendor/distlib/resources.pyc,, -pip/_vendor/requests/cookies.pyc,, +pip/utils/__init__.pyc,, pip/_vendor/lockfile/__init__.pyc,, pip/_vendor/chardet/langgreekmodel.pyc,, pip/_vendor/progress/helpers.pyc,, pip/_vendor/ipaddress.pyc,, pip/_vendor/pyparsing.pyc,, +pip/_vendor/chardet/hebrewprober.pyc,, pip/_vendor/html5lib/__init__.pyc,, pip/_vendor/urllib3/response.pyc,, pip/_vendor/cachecontrol/serialize.pyc,, pip/_vendor/urllib3/contrib/securetransport.pyc,, pip/_vendor/distlib/_backport/misc.pyc,, +pip/_vendor/chardet/universaldetector.pyc,, pip/_vendor/chardet/jpcntx.pyc,, pip/_vendor/chardet/mbcssm.pyc,, pip/operations/__init__.pyc,, pip/_vendor/chardet/enums.pyc,, +pip/_vendor/urllib3/util/response.pyc,, pip/_vendor/urllib3/__init__.pyc,, pip/_vendor/chardet/big5prober.pyc,, pip/_vendor/cachecontrol/controller.pyc,, @@ -368,13 +372,14 @@ pip/commands/show.pyc,, pip/_vendor/urllib3/packages/six.pyc,, pip/_vendor/html5lib/_utils.pyc,, -pip/_vendor/html5lib/_trie/datrie.pyc,, +pip/_vendor/html5lib/filters/alphabeticalattributes.pyc,, pip/_vendor/chardet/langthaimodel.pyc,, pip/_vendor/chardet/latin1prober.pyc,, pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.pyc,, pip/_vendor/html5lib/treeadapters/genshi.pyc,, pip/commands/help.pyc,, pip/_vendor/idna/__init__.pyc,, +pip/_vendor/urllib3/util/url.pyc,, pip/_vendor/lockfile/mkdirlockfile.pyc,, pip/_vendor/requests/utils.pyc,, pip/_vendor/requests/__version__.pyc,, @@ -385,7 +390,6 @@ pip/_vendor/distlib/version.pyc,, pip/utils/ui.pyc,, pip/commands/uninstall.pyc,, -pip/_vendor/urllib3/util/url.pyc,, pip/_vendor/idna/uts46data.pyc,, pip/_vendor/distlib/index.pyc,, pip/_vendor/cachecontrol/heuristics.pyc,, @@ -398,7 +402,6 @@ pip/_vendor/distlib/_backport/tarfile.pyc,, pip/_vendor/idna/package_data.pyc,, pip/_vendor/html5lib/treewalkers/etree_lxml.pyc,, -pip/_vendor/chardet/hebrewprober.pyc,, pip/_vendor/html5lib/treebuilders/dom.pyc,, pip/_vendor/idna/core.pyc,, pip/baseparser.pyc,, @@ -411,9 +414,9 @@ pip/_vendor/urllib3/fields.pyc,, pip/_vendor/pkg_resources/__init__.pyc,, pip/commands/search.pyc,, +pip/_vendor/html5lib/_ihatexml.pyc,, pip/_vendor/urllib3/_collections.pyc,, pip/_vendor/urllib3/contrib/pyopenssl.pyc,, -pip/_vendor/chardet/universaldetector.pyc,, pip/_vendor/chardet/cp949prober.pyc,, pip/_vendor/requests/structures.pyc,, pip/_vendor/urllib3/contrib/_securetransport/bindings.pyc,, @@ -423,6 +426,7 @@ pip/models/__init__.pyc,, pip/_vendor/packaging/specifiers.pyc,, pip/_vendor/html5lib/treewalkers/genshi.pyc,, +pip/_vendor/packaging/_structures.pyc,, pip/_vendor/urllib3/connectionpool.pyc,, pip/_vendor/html5lib/treebuilders/base.pyc,, pip/_vendor/distlib/compat.pyc,, @@ -459,6 +463,7 @@ pip/utils/encoding.pyc,, pip/__main__.pyc,, pip/_vendor/cachecontrol/compat.pyc,, +pip/download.pyc,, pip/operations/freeze.pyc,, pip/_vendor/chardet/charsetprober.pyc,, pip/_vendor/urllib3/packages/__init__.pyc,, @@ -466,34 +471,32 @@ pip/_vendor/lockfile/sqlitelockfile.pyc,, pip/_vendor/progress/counter.pyc,, pip/commands/install.pyc,, -pip/_vendor/urllib3/util/response.pyc,, pip/_vendor/chardet/cli/__init__.pyc,, pip/utils/filesystem.pyc,, pip/_vendor/urllib3/util/selectors.pyc,, pip/_vendor/six.pyc,, pip/_vendor/colorama/initialise.pyc,, +pip/_vendor/distro.pyc,, pip/_vendor/urllib3/packages/backports/makefile.pyc,, pip/_vendor/chardet/utf8prober.pyc,, pip/_vendor/retrying.pyc,, -pip/_vendor/html5lib/treewalkers/etree.pyc,, pip/_vendor/cachecontrol/wrapper.pyc,, pip/_vendor/urllib3/connection.pyc,, pip/_vendor/requests/hooks.pyc,, pip/_vendor/idna/idnadata.pyc,, -pip/_vendor/packaging/_structures.pyc,, pip/_vendor/chardet/langbulgarianmodel.pyc,, pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.pyc,, pip/_vendor/requests/packages.pyc,, pip/locations.pyc,, pip/wheel.pyc,, +pip/_vendor/idna/intranges.pyc,, pip/utils/setuptools_build.pyc,, pip/vcs/subversion.pyc,, pip/exceptions.pyc,, -pip/_vendor/lockfile/pidlockfile.pyc,, +pip/_vendor/chardet/compat.pyc,, pip/basecommand.pyc,, pip/_vendor/chardet/sbcsgroupprober.pyc,, pip/_vendor/html5lib/_trie/py.pyc,, -pip/_vendor/idna/intranges.pyc,, pip/_vendor/distlib/locators.pyc,, pip/_vendor/re-vendor.pyc,, pip/_vendor/html5lib/treewalkers/dom.pyc,, @@ -514,9 +517,8 @@ pip/_vendor/chardet/euckrfreq.pyc,, pip/_vendor/html5lib/_trie/__init__.pyc,, pip/_vendor/urllib3/contrib/ntlmpool.pyc,, -pip/_vendor/chardet/langhungarianmodel.pyc,, -pip/utils/__init__.pyc,, -pip/_vendor/requests/__init__.pyc,, +pip/_vendor/certifi/core.pyc,, +pip/_vendor/requests/cookies.pyc,, pip/_vendor/webencodings/mklabels.pyc,, pip/_vendor/certifi/__init__.pyc,, pip/_vendor/html5lib/treewalkers/base.pyc,, @@ -529,24 +531,22 @@ pip/_vendor/cachecontrol/__init__.pyc,, pip/_vendor/urllib3/contrib/appengine.pyc,, pip/_vendor/chardet/chardistribution.pyc,, -pip/_vendor/html5lib/_ihatexml.pyc,, pip/_vendor/urllib3/contrib/__init__.pyc,, pip/_vendor/__init__.pyc,, pip/_vendor/html5lib/constants.pyc,, -pip/_vendor/colorama/winterm.pyc,, pip/_vendor/chardet/gb2312freq.pyc,, pip/_vendor/urllib3/packages/backports/__init__.pyc,, -pip/download.pyc,, pip/_vendor/colorama/ansi.pyc,, pip/_vendor/packaging/markers.pyc,, pip/_vendor/urllib3/packages/ordered_dict.pyc,, pip/_vendor/chardet/mbcsgroupprober.pyc,, -pip/_vendor/distro.pyc,, pip/_vendor/chardet/escsm.pyc,, pip/_vendor/progress/bar.pyc,, -pip/_vendor/chardet/compat.pyc,, +pip/_vendor/lockfile/pidlockfile.pyc,, +pip/_vendor/requests/__init__.pyc,, pip/_vendor/urllib3/util/ssl_.pyc,, pip/_vendor/html5lib/filters/optionaltags.pyc,, pip/utils/appdirs.pyc,, +pip/_vendor/colorama/winterm.pyc,, pip/_vendor/chardet/jisfreq.pyc,, pip/operations/check.pyc,, diff -Nru firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/setuptools-39.0.1.dist-info/RECORD firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/setuptools-39.0.1.dist-info/RECORD --- firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/setuptools-39.0.1.dist-info/RECORD 2020-03-05 20:58:05.000000000 +0000 +++ firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/setuptools-39.0.1.dist-info/RECORD 2020-04-03 11:07:49.000000000 +0000 @@ -104,85 +104,85 @@ ../../../bin/easy_install-2.7,sha256=oxBgZufZUdnjq4KK4cmMK-Zto6ZoUJMg4o9Q6w5NK9I,308 setuptools-39.0.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 setuptools/ssl_support.pyc,, +setuptools/dist.pyc,, setuptools/extern/__init__.pyc,, setuptools/command/install_scripts.pyc,, -setuptools/extension.pyc,, +setuptools/unicode_utils.pyc,, setuptools/_vendor/packaging/_structures.pyc,, pkg_resources/_vendor/packaging/_compat.pyc,, -setuptools/msvc.pyc,, +setuptools/archive_util.pyc,, setuptools/command/dist_info.pyc,, setuptools/_vendor/packaging/__init__.pyc,, -setuptools/command/setopt.pyc,, setuptools/command/bdist_wininst.pyc,, setuptools/_vendor/packaging/_compat.pyc,, setuptools/command/upload.pyc,, +setuptools/glob.pyc,, setuptools/_vendor/packaging/markers.pyc,, setuptools/_vendor/packaging/utils.pyc,, pkg_resources/py31compat.pyc,, pkg_resources/_vendor/packaging/_structures.pyc,, setuptools/wheel.pyc,, -setuptools/namespaces.pyc,, +setuptools/command/develop.pyc,, setuptools/_vendor/packaging/version.pyc,, pkg_resources/_vendor/six.pyc,, setuptools/_vendor/packaging/requirements.pyc,, easy_install.pyc,, setuptools/_vendor/__init__.pyc,, setuptools/command/install_egg_info.pyc,, +pkg_resources/_vendor/packaging/markers.pyc,, setuptools/site-patch.pyc,, -setuptools/py36compat.pyc,, +setuptools/namespaces.pyc,, setuptools/windows_support.pyc,, -setuptools/unicode_utils.pyc,, +setuptools/extension.pyc,, setuptools/command/bdist_egg.pyc,, setuptools/py31compat.pyc,, setuptools/dep_util.pyc,, setuptools/command/sdist.pyc,, setuptools/command/saveopts.pyc,, -pkg_resources/_vendor/packaging/version.pyc,, setuptools/command/egg_info.pyc,, pkg_resources/_vendor/packaging/__init__.pyc,, setuptools/pep425tags.pyc,, setuptools/command/install.pyc,, -setuptools/command/alias.pyc,, +setuptools/version.pyc,, setuptools/__init__.pyc,, setuptools/command/easy_install.pyc,, +setuptools/depends.pyc,, setuptools/py27compat.pyc,, pkg_resources/extern/__init__.pyc,, setuptools/command/build_py.pyc,, setuptools/command/test.pyc,, setuptools/command/build_ext.pyc,, -setuptools/version.pyc,, +setuptools/command/alias.pyc,, setuptools/command/py36compat.pyc,, setuptools/glibc.pyc,, -setuptools/dist.pyc,, setuptools/command/bdist_rpm.pyc,, -pkg_resources/__init__.pyc,, +setuptools/_vendor/six.pyc,, +pkg_resources/_vendor/packaging/version.pyc,, +pkg_resources/_vendor/packaging/utils.pyc,, setuptools/command/__init__.pyc,, -setuptools/_vendor/packaging/specifiers.pyc,, setuptools/py33compat.pyc,, -pkg_resources/_vendor/appdirs.pyc,, +setuptools/msvc.pyc,, pkg_resources/_vendor/packaging/__about__.pyc,, -setuptools/_vendor/six.pyc,, -setuptools/command/upload_docs.pyc,, -setuptools/build_meta.pyc,, -pkg_resources/_vendor/packaging/markers.pyc,, +pkg_resources/__init__.pyc,, +setuptools/py36compat.pyc,, +setuptools/command/setopt.pyc,, +pkg_resources/_vendor/__init__.pyc,, setuptools/_vendor/pyparsing.pyc,, setuptools/command/install_lib.pyc,, -pkg_resources/_vendor/packaging/specifiers.pyc,, +pkg_resources/_vendor/appdirs.pyc,, +setuptools/_vendor/packaging/specifiers.pyc,, setuptools/lib2to3_ex.pyc,, setuptools/sandbox.pyc,, -setuptools/command/develop.pyc,, pkg_resources/_vendor/packaging/requirements.pyc,, pkg_resources/_vendor/pyparsing.pyc,, setuptools/_vendor/packaging/__about__.pyc,, -setuptools/glob.pyc,, +setuptools/command/upload_docs.pyc,, +pkg_resources/_vendor/packaging/specifiers.pyc,, setuptools/command/rotate.pyc,, -setuptools/archive_util.pyc,, setuptools/config.pyc,, setuptools/command/build_clib.pyc,, -setuptools/depends.pyc,, +setuptools/build_meta.pyc,, setuptools/package_index.pyc,, -pkg_resources/_vendor/packaging/utils.pyc,, -pkg_resources/_vendor/__init__.pyc,, setuptools/monkey.pyc,, setuptools/launch.pyc,, setuptools/command/register.pyc,, diff -Nru firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/wheel-0.30.0.dist-info/RECORD firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/wheel-0.30.0.dist-info/RECORD --- firefox-esr-68.6.0esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/wheel-0.30.0.dist-info/RECORD 2020-03-05 20:58:06.000000000 +0000 +++ firefox-esr-68.6.1esr/obj-x86_64-pc-linux-gnu/_virtualenvs/init/lib/python2.7/site-packages/wheel-0.30.0.dist-info/RECORD 2020-04-03 11:07:49.000000000 +0000 @@ -30,6 +30,7 @@ wheel/egg2wheel.pyc,, wheel/util.pyc,, wheel/install.pyc,, +wheel/paths.pyc,, wheel/wininst2wheel.pyc,, wheel/__init__.pyc,, wheel/signatures/djbec.pyc,, @@ -37,7 +38,6 @@ wheel/metadata.pyc,, wheel/pkginfo.pyc,, wheel/__main__.pyc,, -wheel/paths.pyc,, wheel/pep425tags.pyc,, wheel/signatures/ed25519py.pyc,, wheel/signatures/keys.pyc,, diff -Nru firefox-esr-68.6.0esr/security/manager/ssl/SecretDecoderRing.cpp firefox-esr-68.6.1esr/security/manager/ssl/SecretDecoderRing.cpp --- firefox-esr-68.6.0esr/security/manager/ssl/SecretDecoderRing.cpp 2020-03-05 20:57:16.000000000 +0000 +++ firefox-esr-68.6.1esr/security/manager/ssl/SecretDecoderRing.cpp 2020-04-03 11:07:26.000000000 +0000 @@ -22,9 +22,18 @@ #include "nsNSSHelper.h" #include "nsPK11TokenDB.h" #include "pk11func.h" + +// temporary includes for key3.db cleanup +#include "nsAppDirectoryServiceDefs.h" +#include "pk11pub.h" + #include "pk11sdr.h" // For PK11SDR_Encrypt, PK11SDR_Decrypt #include "ssl.h" // For SSL_ClearSessionCache +#ifdef XP_WIN +# include "nsILocalFileWin.h" +#endif + using namespace mozilla; using dom::Promise; @@ -181,6 +190,109 @@ return NS_OK; } +//// Function TEMPORARILY copied from nsNSSComponent.cpp +// Helper function to take a path and a file name and create a handle for the +// file in that location, if it exists. |path| is encoded in UTF-8. +static nsresult GetFileIfExists(const nsACString& path, + const nsACString& filename, + /* out */ nsIFile** result) { + MOZ_ASSERT(result); + if (!result) { + return NS_ERROR_INVALID_ARG; + } + *result = nullptr; + nsCOMPtr file = do_CreateInstance("@mozilla.org/file/local;1"); + if (!file) { + return NS_ERROR_FAILURE; + } +# ifdef XP_WIN + // |path| is encoded in UTF-8 because SQLite always takes UTF-8 file paths + // regardless of the current system code page. + nsresult rv = file->InitWithPath(NS_ConvertUTF8toUTF16(path)); +# else + nsresult rv = file->InitWithNativePath(path); +# endif + if (NS_FAILED(rv)) { + return rv; + } + rv = file->AppendNative(filename); + if (NS_FAILED(rv)) { + return rv; + } + bool exists; + rv = file->Exists(&exists); + if (NS_FAILED(rv)) { + return rv; + } + if (exists) { + file.forget(result); + } + return NS_OK; +} + +//// Function TEMPORARILY copied from nsNSSComponent.cpp +static nsresult GetNSSProfilePath(nsAutoCString& aProfilePath) { + aProfilePath.Truncate(); + nsCOMPtr profileFile; + nsresult rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILE_50_DIR, + getter_AddRefs(profileFile)); + if (NS_FAILED(rv)) { + return rv; + } + +#if defined(XP_WIN) + // SQLite always takes UTF-8 file paths regardless of the current system + // code page. + nsCOMPtr profileFileWin(do_QueryInterface(profileFile)); + if (!profileFileWin) { + return NS_ERROR_FAILURE; + } + nsAutoString u16ProfilePath; + rv = profileFileWin->GetCanonicalPath(u16ProfilePath); + CopyUTF16toUTF8(u16ProfilePath, aProfilePath); +#else + rv = profileFile->GetNativePath(aProfilePath); +#endif + if (NS_FAILED(rv)) { + return rv; + } + return NS_OK; +} + +static void CleanupKey3DB() +{ + UniquePK11SlotInfo slot(PK11_GetInternalKeySlot()); + + if (PK11_IsReadOnly(slot.get()) || !PK11_IsLoggedIn(slot.get(), nullptr)) + return; + + nsAutoCString profileStr; + nsresult rv = GetNSSProfilePath(profileStr); + if (NS_FAILED(rv)) + return; + + NS_NAMED_LITERAL_CSTRING(newKeyDBFilename, "key4.db"); + nsCOMPtr newDBFile; + rv = GetFileIfExists(profileStr, newKeyDBFilename, + getter_AddRefs(newDBFile)); + if (NS_FAILED(rv) || !newDBFile) { + // If we don't have key4, then we shouldn't delete key3. + // Potentially we're a patched application that doesn't use sql: + return; + } + + NS_NAMED_LITERAL_CSTRING(oldKeyDBFilename, "key3.db"); + nsCOMPtr oldDBFile; + rv = GetFileIfExists(profileStr, oldKeyDBFilename, + getter_AddRefs(oldDBFile)); + if (!oldDBFile) { + return; + } + // Since this isn't a directory, the `recursive` argument to `Remove` is + // irrelevant. + Unused << oldDBFile->Remove(false); +} + NS_IMETHODIMP SecretDecoderRing::DecryptString(const nsACString& encryptedBase64Text, /*out*/ nsACString& decryptedText) { @@ -195,6 +307,14 @@ return rv; } + // This is a good time to perform a necessary key3.db cleanup, + // see bug 1606619. Only do it once per session. + static bool alreadyCheckedKey3Cleanup = false; + if (!alreadyCheckedKey3Cleanup) { + alreadyCheckedKey3Cleanup = true; + CleanupKey3DB(); + } + return NS_OK; } diff -Nru firefox-esr-68.6.0esr/security/manager/ssl/nsNSSComponent.cpp firefox-esr-68.6.1esr/security/manager/ssl/nsNSSComponent.cpp --- firefox-esr-68.6.0esr/security/manager/ssl/nsNSSComponent.cpp 2020-03-05 20:57:20.000000000 +0000 +++ firefox-esr-68.6.1esr/security/manager/ssl/nsNSSComponent.cpp 2020-04-03 11:07:27.000000000 +0000 @@ -1473,91 +1473,6 @@ return AttemptToRenamePKCS11ModuleDB(profilePath, sqlModuleDBFilename); } -// Helper function to take a path and a file name and create a handle for the -// file in that location, if it exists. -static nsresult GetFileIfExists(const nsACString& path, - const nsACString& filename, - /* out */ nsIFile** result) { - MOZ_ASSERT(result); - if (!result) { - return NS_ERROR_INVALID_ARG; - } - *result = nullptr; - nsCOMPtr file = do_CreateInstance("@mozilla.org/file/local;1"); - if (!file) { - return NS_ERROR_FAILURE; - } - nsresult rv = file->InitWithNativePath(path); - if (NS_FAILED(rv)) { - return rv; - } - rv = file->AppendNative(filename); - if (NS_FAILED(rv)) { - return rv; - } - bool exists; - rv = file->Exists(&exists); - if (NS_FAILED(rv)) { - return rv; - } - if (exists) { - file.forget(result); - } - return NS_OK; -} - -// When we changed from the old dbm database format to the newer sqlite -// implementation, the upgrade process left behind the existing files. Suppose a -// user had not set a password for the old key3.db (which is about 99% of -// users). After upgrading, both the old database and the new database are -// unprotected. If the user then sets a password for the new database, the old -// one will not be protected. In this scenario, we should probably just remove -// the old database (it would only be relevant if the user downgraded to a -// version of Firefox before 58, but we have to trade this off against the -// user's old private keys being unexpectedly unprotected after setting a -// password). -// This was never an issue on Android because we always used the new -// implementation. -static void MaybeCleanUpOldNSSFiles(const nsACString& profilePath) { - UniquePK11SlotInfo slot(PK11_GetInternalKeySlot()); - if (!slot) { - return; - } - // Unfortunately we can't now tell the difference between "there already was a - // password when the upgrade happened" and "there was not a password but then - // the user added one after upgrading". - bool hasPassword = - PK11_NeedLogin(slot.get()) && !PK11_NeedUserInit(slot.get()); - if (!hasPassword) { - return; - } - NS_NAMED_LITERAL_CSTRING(newKeyDBFilename, "key4.db"); - nsCOMPtr newDBFile; - nsresult rv = - GetFileIfExists(profilePath, newKeyDBFilename, getter_AddRefs(newDBFile)); - if (NS_FAILED(rv)) { - return; - } - // If the new key DB file doesn't exist, we don't want to remove the old DB - // file. This can happen if the system is configured to use the old DB format - // even though we're a version of Firefox that expects to use the new format. - if (!newDBFile) { - return; - } - NS_NAMED_LITERAL_CSTRING(oldKeyDBFilename, "key3.db"); - nsCOMPtr oldDBFile; - rv = - GetFileIfExists(profilePath, oldKeyDBFilename, getter_AddRefs(oldDBFile)); - if (NS_FAILED(rv)) { - return; - } - if (!oldDBFile) { - return; - } - // Since this isn't a directory, the `recursive` argument to `Remove` is - // irrelevant. - Unused << oldDBFile->Remove(false); -} #endif // ifndef ANDROID // Given a profile directory, attempt to initialize NSS. If nocertdb is true, @@ -1592,9 +1507,6 @@ SECStatus srv = ::mozilla::psm::InitializeNSS(profilePath, false, !safeMode); if (srv == SECSuccess) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("initialized NSS in r/w mode")); -#ifndef ANDROID - MaybeCleanUpOldNSSFiles(profilePath); -#endif // ifndef ANDROID return NS_OK; } #ifndef ANDROID diff -Nru firefox-esr-68.6.0esr/security/manager/ssl/tests/unit/test_sdr_upgraded_with_password.js firefox-esr-68.6.1esr/security/manager/ssl/tests/unit/test_sdr_upgraded_with_password.js --- firefox-esr-68.6.0esr/security/manager/ssl/tests/unit/test_sdr_upgraded_with_password.js 2020-03-05 20:57:16.000000000 +0000 +++ firefox-esr-68.6.1esr/security/manager/ssl/tests/unit/test_sdr_upgraded_with_password.js 2020-04-03 11:07:26.000000000 +0000 @@ -136,14 +136,4 @@ 1, "Should have been prompted for a password once" ); - - // NSS does not close the old database when performing an upgrade. Thus, on - // Windows, we can't delete the old database file on the run that we perform - // an upgrade. However, we can delete it on subsequent runs. - let key3DBInProfile = do_get_profile(); - key3DBInProfile.append("key3.db"); - ok( - !key3DBInProfile.exists(), - "key3.db should not exist after running with key4.db with a password" - ); } diff -Nru firefox-esr-68.6.0esr/sourcestamp.txt firefox-esr-68.6.1esr/sourcestamp.txt --- firefox-esr-68.6.0esr/sourcestamp.txt 2020-03-05 20:58:24.000000000 +0000 +++ firefox-esr-68.6.1esr/sourcestamp.txt 2020-04-03 11:08:02.000000000 +0000 @@ -1,2 +1,2 @@ -20200305175243 -https://hg.mozilla.org/releases/mozilla-esr68/rev/d5bc259574e77a27496e5bbbc56f635ff669e24f +20200403065309 +https://hg.mozilla.org/releases/mozilla-esr68/rev/34be991778717f46f759eed8f85233bfa8032a8b diff -Nru firefox-esr-68.6.0esr/taskcluster/ci/test/kind.yml firefox-esr-68.6.1esr/taskcluster/ci/test/kind.yml --- firefox-esr-68.6.0esr/taskcluster/ci/test/kind.yml 2020-03-05 20:57:20.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/ci/test/kind.yml 2020-04-03 11:07:26.000000000 +0000 @@ -13,7 +13,6 @@ transforms: - taskgraph.transforms.tests:transforms - taskgraph.transforms.job:transforms - - taskgraph.transforms.coalesce:transforms - taskgraph.transforms.task:transforms # Each stanza in a file pointed to by 'jobs-from' describes a particular test diff -Nru firefox-esr-68.6.0esr/taskcluster/scripts/misc/wrench-deps-vendoring.sh firefox-esr-68.6.1esr/taskcluster/scripts/misc/wrench-deps-vendoring.sh --- firefox-esr-68.6.0esr/taskcluster/scripts/misc/wrench-deps-vendoring.sh 2020-03-05 20:57:20.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/scripts/misc/wrench-deps-vendoring.sh 2020-04-03 11:07:26.000000000 +0000 @@ -13,10 +13,9 @@ cd $WORKSPACE . $SRCDIR/taskcluster/scripts/misc/tooltool-download.sh export PATH=$PATH:$SRCDIR/rustc/bin -cargo install --version 0.1.23 cargo-vendor cd $SRCDIR/gfx/wr/ mkdir .cargo -cargo vendor --relative-path --sync ./Cargo.lock > .cargo/config +cargo vendor --sync ./Cargo.toml > .cargo/config mkdir wrench-deps mv vendor .cargo wrench-deps/ mkdir wrench-deps/cargo-apk diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/morph.py firefox-esr-68.6.1esr/taskcluster/taskgraph/morph.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/morph.py 2020-03-05 20:57:20.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/morph.py 2020-04-03 11:07:22.000000000 +0000 @@ -106,6 +106,7 @@ SCOPE_SUMMARY_REGEXPS = [ re.compile(r'(index:insert-task:docker\.images\.v1\.[^.]*\.).*'), re.compile(r'(index:insert-task:gecko\.v2\.[^.]*\.).*'), + re.compile(r'(index:insert-task:comm\.v2\.[^.]*\.).*'), ] diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/coalesce.py firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/coalesce.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/coalesce.py 2020-03-05 20:57:20.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/coalesce.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,36 +0,0 @@ -# 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/. -""" -This transform enables coalescing for tasks with scm level > 1, by defining -values for the coalesce settings of the job. -""" - -from __future__ import absolute_import - -from taskgraph.transforms.base import TransformSequence -from hashlib import sha256 - -transforms = TransformSequence() - - -@transforms.add -def enable_coalescing(config, jobs): - """ - This transform enables coalescing for tasks with scm level > 1, setting the - name to be equal to the the first 20 chars of the sha256 of the task name - (label). The hashing is simply used to keep the name short, unique, and - alphanumeric, since it is used in AMQP routing keys. - - Note, the coalescing keys themselves are not intended to be readable - strings or embed information. The tasks they represent contain all relevant - metadata. - """ - for job in jobs: - if int(config.params['level']) > 1: - job['coalesce'] = { - 'job-identifier': sha256(job["label"]).hexdigest()[:20], - 'age': 3600, - 'size': 5, - } - yield job diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/job/__init__.py firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/job/__init__.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/job/__init__.py 2020-03-05 20:57:25.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/job/__init__.py 2020-04-03 11:07:28.000000000 +0000 @@ -60,7 +60,6 @@ Optional('run-on-projects'): task_description_schema['run-on-projects'], Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], - Optional('coalesce'): task_description_schema['coalesce'], Optional('always-target'): task_description_schema['always-target'], Exclusive('optimization', 'optimization'): task_description_schema['optimization'], Optional('needs-sccache'): task_description_schema['needs-sccache'], diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/openh264.py firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/openh264.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/openh264.py 2020-03-05 20:57:25.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/openh264.py 2020-04-03 11:07:27.000000000 +0000 @@ -15,14 +15,7 @@ @transforms.add def set_mh_options(config, jobs): """ - This transform enables coalescing for tasks with scm level > 1, setting the - name to be equal to the the first 20 chars of the sha256 of the task name - (label). The hashing is simply used to keep the name short, unique, and - alphanumeric, since it is used in AMQP routing keys. - - Note, the coalescing keys themselves are not intended to be readable - strings or embed information. The tasks they represent contain all relevant - metadata. + This transform sets the 'openh264_rev' attribute. """ for job in jobs: repo = job.pop('repo') diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/task.py firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/task.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/transforms/task.py 2020-03-05 20:57:25.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/transforms/task.py 2020-04-03 11:07:27.000000000 +0000 @@ -185,27 +185,6 @@ basestring ), - # Coalescing provides the facility for tasks to be superseded by the same - # task in a subsequent commit, if the current task backlog reaches an - # explicit threshold. Both age and size thresholds need to be met in order - # for coalescing to be triggered. - Optional('coalesce'): { - # A unique identifier per job (typically a hash of the job label) in - # order to partition tasks into appropriate sets for coalescing. This - # is combined with the project in order to generate a unique coalescing - # key for the coalescing service. - 'job-identifier': basestring, - - # The minimum amount of time in seconds between two pending tasks with - # the same coalescing key, before the coalescing service will return - # tasks. - 'age': int, - - # The minimum number of backlogged tasks with the same coalescing key, - # before the coalescing service will return tasks. - 'size': int, - }, - # The `always-target` attribute will cause the task to be included in the # target_task_graph regardless of filtering. Tasks included in this manner # will be candidates for optimization even when `optimize_target_tasks` is @@ -313,10 +292,6 @@ )] -COALESCE_KEY = '{project}.{job-identifier}' -SUPERSEDER_URL = 'https://coalesce.mozilla-releng.net/v1/list/{age}/{size}/{key}' - - @memoize def get_default_priority(graph_config, project): return evaluate_keyed_by( @@ -351,24 +326,6 @@ return wrap -def coalesce_key(config, task): - return COALESCE_KEY.format(**{ - 'project': config.params['project'], - 'job-identifier': task['coalesce']['job-identifier'], - }) - - -def superseder_url(config, task): - key = coalesce_key(config, task) - age = task['coalesce']['age'] - size = task['coalesce']['size'] - return SUPERSEDER_URL.format( - age=age, - size=size, - key=key - ) - - UNSUPPORTED_INDEX_PRODUCT_ERROR = """\ The gecko-v2 product {product} is not in the list of configured products in `taskcluster/ci/config.yml'. @@ -670,10 +627,6 @@ if capabilities: payload['capabilities'] = capabilities - # coalesce / superseding - if 'coalesce' in task: - payload['supersederUrl'] = superseder_url(config, task) - check_caches_are_volumes(task) @@ -859,10 +812,6 @@ if features: task_def['payload']['features'] = features - # coalesce / superseding - if 'coalesce' in task: - task_def['payload']['supersederUrl'] = superseder_url(config, task) - @payload_builder('scriptworker-signing', schema={ # the maximum time to run, in seconds @@ -1850,10 +1799,6 @@ if 'deadline-after' not in task: task['deadline-after'] = '1 day' - if 'coalesce' in task: - key = coalesce_key(config, task) - routes.append('coalesce.v1.' + key) - if 'priority' not in task: task['priority'] = get_default_priority(config.graph_config, config.params['project']) diff -Nru firefox-esr-68.6.0esr/taskcluster/taskgraph/util/scriptworker.py firefox-esr-68.6.1esr/taskcluster/taskgraph/util/scriptworker.py --- firefox-esr-68.6.0esr/taskcluster/taskgraph/util/scriptworker.py 2020-03-05 20:57:25.000000000 +0000 +++ firefox-esr-68.6.1esr/taskcluster/taskgraph/util/scriptworker.py 2020-04-03 11:07:28.000000000 +0000 @@ -61,6 +61,7 @@ 'mozilla-esr68', 'comm-beta', 'comm-esr60', + 'comm-esr68', ]) ]] Binary files /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/third_party/python/psutil/tmp/tmpFvBpfS.o and /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpFvBpfS.o differ Binary files /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/third_party/python/psutil/tmp/tmpa8gLcn.o and /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpa8gLcn.o differ Binary files /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/third_party/python/psutil/tmp/tmpsda7Tq.o and /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmpsda7Tq.o differ Binary files /srv/release.debian.org/tmp/98SPIExbxE/firefox-esr-68.6.0esr/third_party/python/psutil/tmp/tmptxv1XD.o and /srv/release.debian.org/tmp/nEoIf0Cjjf/firefox-esr-68.6.1esr/third_party/python/psutil/tmp/tmptxv1XD.o differ diff -Nru firefox-esr-68.6.0esr/toolkit/components/passwordmgr/content/passwordManager.xul firefox-esr-68.6.1esr/toolkit/components/passwordmgr/content/passwordManager.xul --- firefox-esr-68.6.0esr/toolkit/components/passwordmgr/content/passwordManager.xul 2020-03-05 20:57:55.000000000 +0000 +++ firefox-esr-68.6.1esr/toolkit/components/passwordmgr/content/passwordManager.xul 2020-04-03 11:07:39.000000000 +0000 @@ -22,6 +22,8 @@ #if defined(MOZ_BUILD_APP_IS_BROWSER)