From owner-svn-ports-branches@freebsd.org Mon May 14 12:10:01 2018 Return-Path: Delivered-To: svn-ports-branches@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EC65FEAB4B; Mon, 14 May 2018 12:10:01 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B433A6985D; Mon, 14 May 2018 12:10:00 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9514D1BE3E; Mon, 14 May 2018 12:10:00 +0000 (UTC) (envelope-from jbeich@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w4ECA0Xu083415; Mon, 14 May 2018 12:10:00 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w4EC9wat083374; Mon, 14 May 2018 12:09:58 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201805141209.w4EC9wat083374@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Mon, 14 May 2018 12:09:58 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r469881 - in branches/2018Q2/www/waterfox: . files X-SVN-Group: ports-branches X-SVN-Commit-Author: jbeich X-SVN-Commit-Paths: in branches/2018Q2/www/waterfox: . files X-SVN-Commit-Revision: 469881 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-branches@freebsd.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: SVN commit messages for all the branches of the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 May 2018 12:10:01 -0000 Author: jbeich Date: Mon May 14 12:09:58 2018 New Revision: 469881 URL: https://svnweb.freebsd.org/changeset/ports/469881 Log: MFH: r469879 www/waterfox: update to 56.1.0.111178 - Apply some FF61 fixes Changes: https://github.com/MrAlex94/Waterfox/compare/941b28140102e...edfc016bc021c Approved by: ports-secteam blanket Added: branches/2018Q2/www/waterfox/files/patch-bug1436241 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1436241 branches/2018Q2/www/waterfox/files/patch-bug1451262 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1451262 branches/2018Q2/www/waterfox/files/patch-bug1452576 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1452576 branches/2018Q2/www/waterfox/files/patch-bug1458166 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1458166 branches/2018Q2/www/waterfox/files/patch-bug1458720 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1458720 branches/2018Q2/www/waterfox/files/patch-bug1459206 - copied unchanged from r469879, head/www/waterfox/files/patch-bug1459206 Deleted: branches/2018Q2/www/waterfox/files/patch-bug1381815 branches/2018Q2/www/waterfox/files/patch-bug1436983 branches/2018Q2/www/waterfox/files/patch-bug1444668 branches/2018Q2/www/waterfox/files/patch-bug1445234 branches/2018Q2/www/waterfox/files/patch-bug1449530 Modified: branches/2018Q2/www/waterfox/Makefile branches/2018Q2/www/waterfox/distinfo branches/2018Q2/www/waterfox/files/patch-typos Directory Properties: branches/2018Q2/ (props changed) Modified: branches/2018Q2/www/waterfox/Makefile ============================================================================== --- branches/2018Q2/www/waterfox/Makefile Mon May 14 12:09:24 2018 (r469880) +++ branches/2018Q2/www/waterfox/Makefile Mon May 14 12:09:58 2018 (r469881) @@ -1,8 +1,8 @@ # $FreeBSD$ PORTNAME= waterfox -DISTVERSION= 56.1.0-111172 -DISTVERSIONSUFFIX= -g941b28140102e +DISTVERSION= 56.1.0-111178 +DISTVERSIONSUFFIX= -gedfc016bc021c CATEGORIES= www ipv6 MAINTAINER= jbeich@FreeBSD.org Modified: branches/2018Q2/www/waterfox/distinfo ============================================================================== --- branches/2018Q2/www/waterfox/distinfo Mon May 14 12:09:24 2018 (r469880) +++ branches/2018Q2/www/waterfox/distinfo Mon May 14 12:09:58 2018 (r469881) @@ -1,3 +1,3 @@ -TIMESTAMP = 1526148821 -SHA256 (MrAlex94-Waterfox-56.1.0-111172-g941b28140102e_GH0.tar.gz) = a9cedc302e81667f75e46e971ad8e165761f3bed2e1a4a27f6fdb6bc4a812bf1 -SIZE (MrAlex94-Waterfox-56.1.0-111172-g941b28140102e_GH0.tar.gz) = 394958117 +TIMESTAMP = 1526290324 +SHA256 (MrAlex94-Waterfox-56.1.0-111178-gedfc016bc021c_GH0.tar.gz) = a34715f6954e5b557e976166b69f976f0ae3bc92b168ca26ab6d3ba62bf8e6ec +SIZE (MrAlex94-Waterfox-56.1.0-111178-gedfc016bc021c_GH0.tar.gz) = 394952776 Copied: branches/2018Q2/www/waterfox/files/patch-bug1436241 (from r469879, head/www/waterfox/files/patch-bug1436241) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1436241 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1436241) @@ -0,0 +1,54 @@ +commit 540471c8085c +Author: Kyle Machulis +Date: Mon Apr 30 12:49:15 2018 -0700 + + Bug 1436241 - Check redirect status code before forwarding to NPAPI. r=jimm, r=pauljt, a=RyanVM + + NPAPI may handle a 307 redirect across different origins, while they + should only happen on same origin requests. Have the browser check + this before forwarding to NPAPI. + + MozReview-Commit-ID: 5vxMooygI4g + + --HG-- + extra : source : 6d595a423fb52766abb5c1d10d4b9d7d6027d68a +--- + dom/plugins/base/nsPluginStreamListenerPeer.cpp | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git dom/plugins/base/nsPluginStreamListenerPeer.cpp dom/plugins/base/nsPluginStreamListenerPeer.cpp +index b780688ddd0c7..dd8e84d2df075 100644 +--- dom/plugins/base/nsPluginStreamListenerPeer.cpp ++++ dom/plugins/base/nsPluginStreamListenerPeer.cpp +@@ -668,15 +668,6 @@ nsPluginStreamListenerPeer::AsyncOnChannelRedirect(nsIChannel *oldChannel, nsICh + return NS_ERROR_FAILURE; + } + +- nsCOMPtr proxyCallback = +- new ChannelRedirectProxyCallback(this, callback, oldChannel, newChannel); +- +- // Give NPAPI a chance to control redirects. +- bool notificationHandled = mPStreamListener->HandleRedirectNotification(oldChannel, newChannel, proxyCallback); +- if (notificationHandled) { +- return NS_OK; +- } +- + // Don't allow cross-origin 307 POST redirects. + nsCOMPtr oldHttpChannel(do_QueryInterface(oldChannel)); + if (oldHttpChannel) { +@@ -700,6 +691,15 @@ nsPluginStreamListenerPeer::AsyncOnChannelRedirect(nsIChannel *oldChannel, nsICh + } + } + ++ nsCOMPtr proxyCallback = ++ new ChannelRedirectProxyCallback(this, callback, oldChannel, newChannel); ++ ++ // Give NPAPI a chance to control redirects. ++ bool notificationHandled = mPStreamListener->HandleRedirectNotification(oldChannel, newChannel, proxyCallback); ++ if (notificationHandled) { ++ return NS_OK; ++ } ++ + // Fall back to channel event sink for window. + nsCOMPtr channelEventSink; + nsresult rv = GetInterfaceGlobal(NS_GET_IID(nsIChannelEventSink), getter_AddRefs(channelEventSink)); Copied: branches/2018Q2/www/waterfox/files/patch-bug1451262 (from r469879, head/www/waterfox/files/patch-bug1451262) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1451262 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1451262) @@ -0,0 +1,62 @@ +commit 659634effe22 +Author: Valentin Gosu +Date: Wed Apr 4 13:47:46 2018 +0300 + + Bug 1451262 - Clear gSocketThread after finishing all operations so we don't trigger thread assertions r=mayhemer + + MozReview-Commit-ID: AHMPd72S2GB + + --HG-- + extra : rebase_source : fe5fb1604e771f223d78f23fcf9d37b1f85763f9 +--- + netwerk/base/nsSocketTransportService2.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git netwerk/base/nsSocketTransportService2.cpp netwerk/base/nsSocketTransportService2.cpp +index abaa8f8fb6da3..a16d888998ae9 100644 +--- netwerk/base/nsSocketTransportService2.cpp ++++ netwerk/base/nsSocketTransportService2.cpp +@@ -1067,9 +1067,8 @@ nsSocketTransportService::Run() + // socket detach handlers get processed. + NS_ProcessPendingEvents(mRawThread); + +- gSocketThread = nullptr; +- + psm::StopSSLServerCertVerificationThreads(); ++ gSocketThread = nullptr; + + SOCKET_LOG(("STS thread exit\n")); + +commit 43e3838b681b +Author: Valentin Gosu +Date: Thu May 10 10:37:24 2018 +0200 + + Bug 1451262 - Call NS_ProcessPendingEvents after StopSSLServerCertVerificationThreads. r=mayhemer, a=RyanVM + + If there are still pending events after we null out gSocketThread, OnSocketThread() will always return false, which can trigger assertions. + + MozReview-Commit-ID: CovFIU3cKL + + --HG-- + extra : source : b859a16d74500eed3b00d7e0bc1eba0d9e0c34a4 +--- + netwerk/base/nsSocketTransportService2.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git netwerk/base/nsSocketTransportService2.cpp netwerk/base/nsSocketTransportService2.cpp +index 637a7d95f748c..06cda53f52056 100644 +--- netwerk/base/nsSocketTransportService2.cpp ++++ netwerk/base/nsSocketTransportService2.cpp +@@ -1067,7 +1067,12 @@ nsSocketTransportService::Run() + // socket detach handlers get processed. + NS_ProcessPendingEvents(mRawThread); + ++ // Stopping the SLL threads can generate new events, so we need to ++ // process them before nulling out gSocketThread, otherwise we can get ++ // !onSocketThread assertions. + psm::StopSSLServerCertVerificationThreads(); ++ NS_ProcessPendingEvents(mRawThread); ++ + gSocketThread = nullptr; + + SOCKET_LOG(("STS thread exit\n")); Copied: branches/2018Q2/www/waterfox/files/patch-bug1452576 (from r469879, head/www/waterfox/files/patch-bug1452576) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1452576 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1452576) @@ -0,0 +1,92 @@ +commit fac32e857b4b +Author: Andrea Marchesini +Date: Thu May 10 09:02:16 2018 +0200 + + Bug 1452576 - Improve StructuredCloneHolder for fuzzy tests. r=decoder, a=RyanVM + + --HG-- + extra : source : c8d6bf455ae5ac9a31ff9fc5418e87a66f12e89c +--- + dom/base/StructuredCloneHolder.cpp | 34 ++++++++++++++++++---------------- + 1 file changed, 18 insertions(+), 16 deletions(-) + +diff --git dom/base/StructuredCloneHolder.cpp dom/base/StructuredCloneHolder.cpp +index 745ef7871b856..9f697fc2878e7 100644 +--- dom/base/StructuredCloneHolder.cpp ++++ dom/base/StructuredCloneHolder.cpp +@@ -1024,9 +1024,9 @@ StructuredCloneHolder::CustomReadHandler(JSContext* aCx, + return ReadFormData(aCx, aReader, aIndex, this); + } + +- if (aTag == SCTAG_DOM_IMAGEBITMAP) { +- MOZ_ASSERT(mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || +- mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread); ++ if (aTag == SCTAG_DOM_IMAGEBITMAP && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + + // Get the current global object. + // This can be null. +@@ -1040,7 +1040,9 @@ StructuredCloneHolder::CustomReadHandler(JSContext* aCx, + return StructuredCloneBlob::ReadStructuredClone(aCx, aReader, this); + } + +- if (aTag == SCTAG_DOM_WASM) { ++ if (aTag == SCTAG_DOM_WASM && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + return ReadWasmModule(aCx, aIndex, this); + } + +@@ -1175,9 +1177,9 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, + return true; + } + +- if (aTag == SCTAG_DOM_CANVAS) { +- MOZ_ASSERT(mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || +- mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread); ++ if (aTag == SCTAG_DOM_CANVAS && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + MOZ_ASSERT(aContent); + OffscreenCanvasCloneData* data = + static_cast(aContent); +@@ -1195,9 +1197,9 @@ StructuredCloneHolder::CustomReadTransferHandler(JSContext* aCx, + return true; + } + +- if (aTag == SCTAG_DOM_IMAGEBITMAP) { +- MOZ_ASSERT(mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || +- mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread); ++ if (aTag == SCTAG_DOM_IMAGEBITMAP && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + MOZ_ASSERT(aContent); + ImageBitmapCloneData* data = + static_cast(aContent); +@@ -1320,9 +1322,9 @@ StructuredCloneHolder::CustomFreeTransferHandler(uint32_t aTag, + return; + } + +- if (aTag == SCTAG_DOM_CANVAS) { +- MOZ_ASSERT(mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || +- mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread); ++ if (aTag == SCTAG_DOM_CANVAS && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + MOZ_ASSERT(aContent); + OffscreenCanvasCloneData* data = + static_cast(aContent); +@@ -1330,9 +1332,9 @@ StructuredCloneHolder::CustomFreeTransferHandler(uint32_t aTag, + return; + } + +- if (aTag == SCTAG_DOM_IMAGEBITMAP) { +- MOZ_ASSERT(mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || +- mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread); ++ if (aTag == SCTAG_DOM_IMAGEBITMAP && ++ (mStructuredCloneScope == StructuredCloneScope::SameProcessSameThread || ++ mStructuredCloneScope == StructuredCloneScope::SameProcessDifferentThread)) { + MOZ_ASSERT(aContent); + ImageBitmapCloneData* data = + static_cast(aContent); Copied: branches/2018Q2/www/waterfox/files/patch-bug1458166 (from r469879, head/www/waterfox/files/patch-bug1458166) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1458166 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1458166) @@ -0,0 +1,75 @@ +commit 64082ca923f8 +Author: Andreas Pehrson +Date: Mon May 7 11:33:07 2018 +0200 + + Bug 1458166 - Clear out tracks while destroying MediaStream. r=bryce, a=RyanVM + + MediaStream::Destroy() is part of a controlled shutdown sequence. + If there are still tracks with content beyond Destroy() they will + only get caught by the dtor, which may be on CC shutdown and too late. + + MozReview-Commit-ID: GV6XRiTCIRk + + --HG-- + extra : source : da84235630724b32d2e619c4ae6b7ae34a4c5c2d +--- + dom/media/MediaStreamGraph.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git dom/media/MediaStreamGraph.cpp dom/media/MediaStreamGraph.cpp +index 1c6683c966084..9cdb50e8abc98 100644 +--- dom/media/MediaStreamGraph.cpp ++++ dom/media/MediaStreamGraph.cpp +@@ -2054,6 +2054,7 @@ MediaStream::DestroyImpl() + for (int32_t i = mConsumers.Length() - 1; i >= 0; --i) { + mConsumers[i]->Disconnect(); + } ++ mTracks.Clear(); + mGraph = nullptr; + } + +commit d18fab7f3fa9 +Author: Andreas Pehrson +Date: Mon May 7 11:36:35 2018 +0200 + + Bug 1458166 - Remove listeners before destroying MediaStreams. r=bryce, a=RyanVM + + If listeners are still registered to a MediaStream on MediaStream::Destroy + (triggered by MediaStream::UnregisterUser below), they will catch and act + on further events from the MediaStream (such as a track ending). + + This may dispatch runnables that are unnecessary since we know we are + shutting down. + + If we first remove the listeners from the MediaStream we will never see + said events. + + MozReview-Commit-ID: IZ1kENqL2C8 + + --HG-- + extra : source : 8dc7d2696a29c0752066ebe67962b1ad323c4153 +--- + dom/media/DOMMediaStream.cpp | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git dom/media/DOMMediaStream.cpp dom/media/DOMMediaStream.cpp +index f69324d416a8f..febb527556701 100644 +--- dom/media/DOMMediaStream.cpp ++++ dom/media/DOMMediaStream.cpp +@@ -455,10 +455,16 @@ DOMMediaStream::Destroy() + { + LOG(LogLevel::Debug, ("DOMMediaStream %p Being destroyed.", this)); + if (mOwnedListener) { ++ if (mOwnedStream) { ++ mOwnedStream->RemoveListener(mOwnedListener); ++ } + mOwnedListener->Forget(); + mOwnedListener = nullptr; + } + if (mPlaybackListener) { ++ if (mPlaybackStream) { ++ mPlaybackStream->RemoveListener(mPlaybackListener); ++ } + mPlaybackListener->Forget(); + mPlaybackListener = nullptr; + } Copied: branches/2018Q2/www/waterfox/files/patch-bug1458720 (from r469879, head/www/waterfox/files/patch-bug1458720) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1458720 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1458720) @@ -0,0 +1,99 @@ +commit ba437f08694c +Author: David Keeler +Date: Wed May 2 16:42:51 2018 -0700 + + Bug 1458720 - Make RunOnAllContentParents runnable from any thread. r=Ehsan, r=jcj, a=RyanVM + + In bug 1215723 RunOnAllContentParents was added to the DataStorage + implementation so we could make more security state information available in + child processes. It uses IPC APIs, which in general are not thread-safe. We need + to make sure that these APIs are only accessed on the main thread, which means + we have to copy any necessary data, create a runnable, and send it to the main + thread to do the actual work. Note that the IPC APIs are async, so this dispatch + can be async as well. + + MozReview-Commit-ID: HwkgSX1iORU + + --HG-- + extra : source : 38e60f49b316258b72f8453387049c16d2005867 +--- + security/manager/ssl/DataStorage.cpp | 34 +++++++++++++++++++++++----------- + 1 file changed, 23 insertions(+), 11 deletions(-) + +diff --git security/manager/ssl/DataStorage.cpp security/manager/ssl/DataStorage.cpp +index e93f7f50a0b39..00e43f298aae3 100644 +--- security/manager/ssl/DataStorage.cpp ++++ security/manager/ssl/DataStorage.cpp +@@ -707,6 +707,8 @@ DataStorage::MaybeEvictOneEntry(DataStorageType aType, + } + } + ++// NB: Because this may cross a thread boundary, any variables captured by the ++// Functor must be captured by copy and not by reference. + template + static + void +@@ -716,11 +718,16 @@ RunOnAllContentParents(Functor func) + return; + } + using dom::ContentParent; +- nsTArray parents; +- ContentParent::GetAll(parents); +- for (auto& parent: parents) { +- func(parent); +- } ++ ++ nsCOMPtr r = NS_NewRunnableFunction("RunOnAllContentParents", ++ [func] () { ++ nsTArray parents; ++ ContentParent::GetAll(parents); ++ for (auto& parent: parents) { ++ func(parent); ++ } ++ }); ++ MOZ_ALWAYS_SUCCEEDS(NS_DispatchToMainThread(r)); + } + + nsresult +@@ -749,12 +756,14 @@ DataStorage::Put(const nsCString& aKey, const nsCString& aValue, + return rv; + } + +- RunOnAllContentParents([&](dom::ContentParent* aParent) { ++ nsString filename(mFilename); ++ RunOnAllContentParents( ++ [aKey, aValue, aType, filename] (dom::ContentParent* aParent) { + DataStorageItem item; + item.key() = aKey; + item.value() = aValue; + item.type() = aType; +- Unused << aParent->SendDataStoragePut(mFilename, item); ++ Unused << aParent->SendDataStoragePut(filename, item); + }); + + return NS_OK; +@@ -788,8 +797,10 @@ DataStorage::Remove(const nsCString& aKey, DataStorageType aType) + Unused << AsyncSetTimer(lock); + } + +- RunOnAllContentParents([&](dom::ContentParent* aParent) { +- Unused << aParent->SendDataStorageRemove(mFilename, aKey, aType); ++ nsString filename(mFilename); ++ RunOnAllContentParents( ++ [filename, aKey, aType] (dom::ContentParent* aParent) { ++ Unused << aParent->SendDataStorageRemove(filename, aKey, aType); + }); + } + +@@ -914,8 +925,9 @@ DataStorage::Clear() + } + } + +- RunOnAllContentParents([&](dom::ContentParent* aParent) { +- Unused << aParent->SendDataStorageClear(mFilename); ++ nsString filename(mFilename); ++ RunOnAllContentParents([filename] (dom::ContentParent* aParent) { ++ Unused << aParent->SendDataStorageClear(filename); + }); + + return NS_OK; Copied: branches/2018Q2/www/waterfox/files/patch-bug1459206 (from r469879, head/www/waterfox/files/patch-bug1459206) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1459206 Mon May 14 12:09:58 2018 (r469881, copy of r469879, head/www/waterfox/files/patch-bug1459206) @@ -0,0 +1,44 @@ +commit 4741651d3ac6 +Author: Andrea Marchesini +Date: Thu May 10 11:24:25 2018 +0200 + + Bug 1459206 - Use FileSystemSecurity in ContentParent::RecvGetFilesRequest. r=ehsan, a=RyanVM + + --HG-- + extra : source : a3ebab26f0d9e962f1f892335838ee1b51335378 +--- + dom/filesystem/tests/test_webkitdirectory.html | 1 + + dom/ipc/ContentParent.cpp | 8 ++++++++ + 2 files changed, 9 insertions(+) + +diff --git dom/filesystem/tests/test_webkitdirectory.html dom/filesystem/tests/test_webkitdirectory.html +index 3611039a5a46a..45957f9bb56d0 100644 +--- dom/filesystem/tests/test_webkitdirectory.html ++++ dom/filesystem/tests/test_webkitdirectory.html +@@ -151,6 +151,7 @@ function test_changeDataWhileWorking() { + + function test_setup() { + SpecialPowers.pushPrefEnv({"set": [["dom.input.dirpicker", true], ++ ["dom.filesystem.pathcheck.disabled", true], + ["dom.webkitBlink.dirPicker.enabled", true]]}, next); + } + +diff --git dom/ipc/ContentParent.cpp dom/ipc/ContentParent.cpp +index 9912238b27744..c55fb106690f0 100644 +--- dom/ipc/ContentParent.cpp ++++ dom/ipc/ContentParent.cpp +@@ -5241,6 +5241,14 @@ ContentParent::RecvGetFilesRequest(const nsID& aUUID, + { + MOZ_ASSERT(!mGetFilesPendingRequests.GetWeak(aUUID)); + ++ if (!mozilla::Preferences::GetBool("dom.filesystem.pathcheck.disabled", false)) { ++ RefPtr fss = FileSystemSecurity::Get(); ++ if (NS_WARN_IF(!fss || ++ !fss->ContentProcessHasAccessTo(ChildID(), aDirectoryPath))) { ++ return IPC_FAIL_NO_REASON(this); ++ } ++ } ++ + ErrorResult rv; + RefPtr helper = + GetFilesHelperParent::Create(aUUID, aDirectoryPath, aRecursiveFlag, this, Modified: branches/2018Q2/www/waterfox/files/patch-typos ============================================================================== --- branches/2018Q2/www/waterfox/files/patch-typos Mon May 14 12:09:24 2018 (r469880) +++ branches/2018Q2/www/waterfox/files/patch-typos Mon May 14 12:09:58 2018 (r469881) @@ -40,3 +40,16 @@ Mismerges found by comparing changes with Firefox 56 +#define SOFTOKEN_BETA PR_FALSE #endif /* _SOFTKVER_H_ */ +--- widget/WidgetMessageUtils.h.orig ++++ widget/WidgetMessageUtils.h +@@ -35,10 +35,6 @@ struct ParamTraits + }; + + template<> +-struct ParamTraits : public ContiguousEnumSerializerInclusive +-{ }; +- +-template<> + struct ParamTraits + : public ContiguousEnumSerializer + {