diff options
author | Jan Beich <jbeich@FreeBSD.org> | 2018-09-15 08:50:01 +0000 |
---|---|---|
committer | Jan Beich <jbeich@FreeBSD.org> | 2018-09-15 08:50:01 +0000 |
commit | d77a64deca6ffba8d2ff209f0ee4a5798d6164d2 (patch) | |
tree | af1ffb1560def7162db31c4c06c4b556d6d750b2 | |
parent | ffb513f63d4cce0429a4297539f9f8654d91666b (diff) | |
download | ports-d77a64deca6ffba8d2ff209f0ee4a5798d6164d2.tar.gz ports-d77a64deca6ffba8d2ff209f0ee4a5798d6164d2.zip |
MFH: r479823
www/waterfox: update to 56.2.3
Changes: https://blog.waterfoxproject.org/waterfox-56.2.3-release-download
Changes: https://github.com/MrAlex94/Waterfox/compare/56.2.2...56.2.3
Approved by: ports-secteam blanket
Notes
Notes:
svn path=/branches/2018Q3/; revision=479824
-rw-r--r-- | www/waterfox/Makefile | 2 | ||||
-rw-r--r-- | www/waterfox/distinfo | 6 | ||||
-rw-r--r-- | www/waterfox/files/patch-bug1425930 | 66 | ||||
-rw-r--r-- | www/waterfox/files/patch-bug1469309 | 72 | ||||
-rw-r--r-- | www/waterfox/files/patch-bug1469914 | 118 | ||||
-rw-r--r-- | www/waterfox/files/patch-bug1470260 | 164 | ||||
-rw-r--r-- | www/waterfox/files/patch-bug1472925 | 83 |
7 files changed, 4 insertions, 507 deletions
diff --git a/www/waterfox/Makefile b/www/waterfox/Makefile index f2007e9ddb47..a4794a669a1d 100644 --- a/www/waterfox/Makefile +++ b/www/waterfox/Makefile @@ -1,7 +1,7 @@ # $FreeBSD$ PORTNAME= waterfox -DISTVERSION= 56.2.2 +DISTVERSION= 56.2.3 CATEGORIES= www ipv6 MAINTAINER= jbeich@FreeBSD.org diff --git a/www/waterfox/distinfo b/www/waterfox/distinfo index a05bd77538b0..fc8b4ed55cf6 100644 --- a/www/waterfox/distinfo +++ b/www/waterfox/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1531411206 -SHA256 (MrAlex94-Waterfox-56.2.2_GH0.tar.gz) = cdca42bb619f0a4dedf216c78fe965775fd5e6cb14c8b5e677fe264b1f5667b2 -SIZE (MrAlex94-Waterfox-56.2.2_GH0.tar.gz) = 395130444 +TIMESTAMP = 1536644593 +SHA256 (MrAlex94-Waterfox-56.2.3_GH0.tar.gz) = 6134501bf3325d3bcd9632405a46f1f1278988e57bf4ca88b61926eb49ef1465 +SIZE (MrAlex94-Waterfox-56.2.3_GH0.tar.gz) = 395126627 diff --git a/www/waterfox/files/patch-bug1425930 b/www/waterfox/files/patch-bug1425930 deleted file mode 100644 index ca6d6af5e015..000000000000 --- a/www/waterfox/files/patch-bug1425930 +++ /dev/null @@ -1,66 +0,0 @@ -commit dc0965023fb7 -Author: Randell Jesup <rjesup@jesup.org> -Date: Mon May 21 15:30:35 2018 -0400 - - Bug 1425930 - Handle Broadcast()->Notify() calling RemoveObserver(). r=froydnj, a=abillings - - --HG-- - extra : source : a314710b0acd38afc7de74f0306f514b50d84463 ---- - xpcom/ds/Observer.h | 28 ++++++++++++++++++++++++---- - 1 file changed, 24 insertions(+), 4 deletions(-) - -diff --git xpcom/ds/Observer.h xpcom/ds/Observer.h -index 958e5e4a9694e..83d650a936ccc 100644 ---- xpcom/ds/Observer.h -+++ xpcom/ds/Observer.h -@@ -57,7 +57,17 @@ public: - */ - bool RemoveObserver(Observer<T>* aObserver) - { -- return mObservers.RemoveElement(aObserver); -+ if (mObservers.RemoveElement(aObserver)) { -+ if (!mBroadcastCopy.IsEmpty()) { -+ // Annoyingly, someone could RemoveObserver() an item on the list -+ // while we're in a Broadcast()'s Notify() call. -+ auto i = mBroadcastCopy.IndexOf(aObserver); -+ MOZ_ASSERT(i != mBroadcastCopy.NoIndex); -+ mBroadcastCopy[i] = nullptr; -+ } -+ return true; -+ } -+ return false; - } - - uint32_t Length() -@@ -65,17 +75,27 @@ public: - return mObservers.Length(); - } - -+ /** -+ * Call Notify() on each item in the list. -+ * Handles the case of Notify() calling RemoveObserver() -+ */ - void Broadcast(const T& aParam) - { -- nsTArray<Observer<T>*> observersCopy(mObservers); -- uint32_t size = observersCopy.Length(); -+ MOZ_ASSERT(mBroadcastCopy.IsEmpty()); -+ mBroadcastCopy = mObservers; -+ uint32_t size = mBroadcastCopy.Length(); - for (uint32_t i = 0; i < size; ++i) { -- observersCopy[i]->Notify(aParam); -+ // nulled if Removed during Broadcast -+ if (mBroadcastCopy[i]) { -+ mBroadcastCopy[i]->Notify(aParam); -+ } - } -+ mBroadcastCopy.Clear(); - } - - protected: - nsTArray<Observer<T>*> mObservers; -+ nsTArray<Observer<T>*> mBroadcastCopy; - }; - - } // namespace mozilla diff --git a/www/waterfox/files/patch-bug1469309 b/www/waterfox/files/patch-bug1469309 deleted file mode 100644 index 3af6a1b8708b..000000000000 --- a/www/waterfox/files/patch-bug1469309 +++ /dev/null @@ -1,72 +0,0 @@ -commit ff627ab4afeb -Author: Gabriele Svelto <gsvelto@mozilla.com> -Date: Tue Jun 19 09:18:09 2018 +0200 - - Bug 1469309 - Remove an unused sensor type; r=agaynor a=lizzard - - --HG-- - extra : source : 12d7dd36b8ccb80e866d0da7fcb7e44fcb690b0b - extra : intermediate-source : 3dd88f4a8884fe4327fc08588dce1fe221c45bcb ---- - hal/Hal.cpp | 1 + - hal/HalSensor.h | 3 +-- - hal/sandbox/SandboxHal.cpp | 6 +++--- - 3 files changed, 5 insertions(+), 5 deletions(-) - -diff --git hal/Hal.cpp hal/Hal.cpp -index e03b7fdfab2f6..7845d5072ee53 100644 ---- hal/Hal.cpp -+++ hal/Hal.cpp -@@ -426,6 +426,7 @@ UnregisterSensorObserver(SensorType aSensor, ISensorObserver *aObserver) { - AssertMainThread(); - - if (!gSensorObservers) { -+ HAL_ERR("Un-registering a sensor when none have been registered"); - return; - } - -diff --git hal/HalSensor.h hal/HalSensor.h -index 551c4271d5395..5175629c9ab33 100644 ---- hal/HalSensor.h -+++ hal/HalSensor.h -@@ -18,7 +18,6 @@ namespace hal { - * If you add or change any here, do the same in GeckoHalDefines.java. - */ - enum SensorType { -- SENSOR_UNKNOWN = -1, - SENSOR_ORIENTATION = 0, - SENSOR_ACCELERATION = 1, - SENSOR_PROXIMITY = 2, -@@ -63,7 +62,7 @@ namespace IPC { - struct ParamTraits<mozilla::hal::SensorType>: - public ContiguousEnumSerializer< - mozilla::hal::SensorType, -- mozilla::hal::SENSOR_UNKNOWN, -+ mozilla::hal::SENSOR_ORIENTATION, - mozilla::hal::NUM_SENSOR_TYPE> { - }; - -diff --git hal/sandbox/SandboxHal.cpp hal/sandbox/SandboxHal.cpp -index 73b106da73d0a..cf0ccb483ed57 100644 ---- hal/sandbox/SandboxHal.cpp -+++ hal/sandbox/SandboxHal.cpp -@@ -16,6 +16,7 @@ - #include "mozilla/dom/network/Types.h" - #include "mozilla/dom/ScreenOrientation.h" - #include "mozilla/fallback/FallbackScreenConfiguration.h" -+#include "mozilla/EnumeratedRange.h" - #include "mozilla/Observer.h" - #include "mozilla/Unused.h" - #include "nsAutoPtr.h" -@@ -232,9 +233,8 @@ public: - hal::UnregisterBatteryObserver(this); - hal::UnregisterNetworkObserver(this); - hal::UnregisterScreenConfigurationObserver(this); -- for (int32_t sensor = SENSOR_UNKNOWN + 1; -- sensor < NUM_SENSOR_TYPE; ++sensor) { -- hal::UnregisterSensorObserver(SensorType(sensor), this); -+ for (auto sensor : MakeEnumeratedRange(NUM_SENSOR_TYPE)) { -+ hal::UnregisterSensorObserver(sensor, this); - } - hal::UnregisterWakeLockObserver(this); - } diff --git a/www/waterfox/files/patch-bug1469914 b/www/waterfox/files/patch-bug1469914 deleted file mode 100644 index 21ab8382d221..000000000000 --- a/www/waterfox/files/patch-bug1469914 +++ /dev/null @@ -1,118 +0,0 @@ -commit 051d1b6a48a7 -Author: Gabriele Svelto <gsvelto@mozilla.com> -Date: Fri Jun 22 00:35:08 2018 +0200 - - Bug 1469914 - Prevent the HAL from registering duplicate observers; r=froydnj a=lizzard - - This also replaces the custom logic in ObserverList with an nsTObserverArray - which has all the necessary logic for stable iteration over a potentially - changing list of items. Unused dependencies were also removed. - - --HG-- - extra : source : 303478f7f248470a1c747f42dad9cb85c3129f0a - extra : intermediate-source : 8e6dea408b0ee63ec1c675b8b0293c0ee2d100dd ---- - hal/Hal.cpp | 3 --- - hal/Hal.h | 1 - - xpcom/ds/Observer.h | 33 ++++++++------------------------- - 3 files changed, 8 insertions(+), 29 deletions(-) - -diff --git hal/Hal.cpp hal/Hal.cpp -index 1b32db73e2508..e03b7fdfab2f6 100644 ---- hal/Hal.cpp -+++ hal/Hal.cpp -@@ -20,10 +20,7 @@ - #include "nsJSUtils.h" - #include "mozilla/ClearOnShutdown.h" - #include "mozilla/Observer.h" --#include "mozilla/Services.h" --#include "mozilla/StaticPtr.h" - #include "mozilla/dom/ContentChild.h" --#include "mozilla/dom/ContentParent.h" - #include "mozilla/dom/ScreenOrientation.h" - #include "WindowIdentifier.h" - -diff --git hal/Hal.h hal/Hal.h -index 787b7ed5f3890..311c5c8b50118 100644 ---- hal/Hal.h -+++ hal/Hal.h -@@ -17,7 +17,6 @@ - #include "mozilla/hal_sandbox/PHal.h" - #include "mozilla/HalScreenConfiguration.h" - #include "mozilla/HalTypes.h" --#include "mozilla/Observer.h" - #include "mozilla/Types.h" - - /* -diff --git xpcom/ds/Observer.h xpcom/ds/Observer.h -index 83d650a936ccc..9e782949c8e5e 100644 ---- xpcom/ds/Observer.h -+++ xpcom/ds/Observer.h -@@ -7,7 +7,7 @@ - #ifndef mozilla_Observer_h - #define mozilla_Observer_h - --#include "nsTArray.h" -+#include "nsTObserverArray.h" - - namespace mozilla { - -@@ -48,7 +48,7 @@ public: - */ - void AddObserver(Observer<T>* aObserver) - { -- mObservers.AppendElement(aObserver); -+ mObservers.AppendElementUnlessExists(aObserver); - } - - /** -@@ -57,17 +57,7 @@ public: - */ - bool RemoveObserver(Observer<T>* aObserver) - { -- if (mObservers.RemoveElement(aObserver)) { -- if (!mBroadcastCopy.IsEmpty()) { -- // Annoyingly, someone could RemoveObserver() an item on the list -- // while we're in a Broadcast()'s Notify() call. -- auto i = mBroadcastCopy.IndexOf(aObserver); -- MOZ_ASSERT(i != mBroadcastCopy.NoIndex); -- mBroadcastCopy[i] = nullptr; -- } -- return true; -- } -- return false; -+ return mObservers.RemoveElement(aObserver); - } - - uint32_t Length() -@@ -77,25 +67,18 @@ public: - - /** - * Call Notify() on each item in the list. -- * Handles the case of Notify() calling RemoveObserver() - */ - void Broadcast(const T& aParam) - { -- MOZ_ASSERT(mBroadcastCopy.IsEmpty()); -- mBroadcastCopy = mObservers; -- uint32_t size = mBroadcastCopy.Length(); -- for (uint32_t i = 0; i < size; ++i) { -- // nulled if Removed during Broadcast -- if (mBroadcastCopy[i]) { -- mBroadcastCopy[i]->Notify(aParam); -- } -+ typename nsTObserverArray<Observer<T>*>::ForwardIterator iter(mObservers); -+ while (iter.HasMore()) { -+ Observer<T>* obs = iter.GetNext(); -+ obs->Notify(aParam); - } -- mBroadcastCopy.Clear(); - } - - protected: -- nsTArray<Observer<T>*> mObservers; -- nsTArray<Observer<T>*> mBroadcastCopy; -+ nsTObserverArray<Observer<T>*> mObservers; - }; - - } // namespace mozilla diff --git a/www/waterfox/files/patch-bug1470260 b/www/waterfox/files/patch-bug1470260 deleted file mode 100644 index ed3fb35f10fe..000000000000 --- a/www/waterfox/files/patch-bug1470260 +++ /dev/null @@ -1,164 +0,0 @@ -commit bb90f9b13b2d -Author: Mats Palmgren <mats@mozilla.com> -Date: Sat Jun 30 01:08:54 2018 +0200 - - Bug 1470260 part 1 - Ensure that 'this' stays alive for the duration of the TickRefreshDriver call. r=emilio a=lizzard - - --HG-- - extra : source : 89db79608a7565ead4ceca4db9e2417b1373e41d ---- - layout/base/nsRefreshDriver.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git layout/base/nsRefreshDriver.cpp layout/base/nsRefreshDriver.cpp -index 3e468c17ad300..446fcf3f243a8 100644 ---- layout/base/nsRefreshDriver.cpp -+++ layout/base/nsRefreshDriver.cpp -@@ -537,6 +537,9 @@ private: - - bool NotifyVsync(TimeStamp aVsyncTimestamp) override - { -+ // IMPORTANT: All paths through this method MUST hold a strong ref on -+ // |this| for the duration of the TickRefreshDriver callback. -+ - if (!NS_IsMainThread()) { - MOZ_ASSERT(XRE_IsParentProcess()); - // Compress vsync notifications such that only 1 may run at a time -@@ -571,6 +574,7 @@ private: - return true; - } - -+ RefPtr<RefreshDriverVsyncObserver> kungFuDeathGrip(this); - TickRefreshDriver(aVsyncTimestamp); - } - - -commit 06c64e041c90 -Author: Mats Palmgren <mats@mozilla.com> -Date: Mon Jul 2 19:19:29 2018 +0300 - - Bug 1470260 part 2 - Make RefreshDriverTimer ref-counted and hold a strong ref on it on the stack when nsRefreshDriver::Tick can be reached. r=emilio a=lizzard - - --HG-- - extra : rebase_source : 817d92ed5dc53ff45d6d2818ccf8b08538cf397b ---- - layout/base/nsRefreshDriver.cpp | 42 ++++++++++++++++++++--------------------- - 1 file changed, 21 insertions(+), 21 deletions(-) - -diff --git layout/base/nsRefreshDriver.cpp layout/base/nsRefreshDriver.cpp -index 446fcf3f243a8..fd7b268d90d07 100644 ---- layout/base/nsRefreshDriver.cpp -+++ layout/base/nsRefreshDriver.cpp -@@ -148,11 +148,7 @@ public: - { - } - -- virtual ~RefreshDriverTimer() -- { -- MOZ_ASSERT(mContentRefreshDrivers.Length() == 0, "Should have removed all content refresh drivers from here by now!"); -- MOZ_ASSERT(mRootRefreshDrivers.Length() == 0, "Should have removed all root refresh drivers from here by now!"); -- } -+ NS_INLINE_DECL_REFCOUNTING(RefreshDriverTimer) - - virtual void AddRefreshDriver(nsRefreshDriver* aDriver) - { -@@ -259,6 +255,12 @@ public: - } - - protected: -+ virtual ~RefreshDriverTimer() -+ { -+ MOZ_ASSERT(mContentRefreshDrivers.Length() == 0, "Should have removed all content refresh drivers from here by now!"); -+ MOZ_ASSERT(mRootRefreshDrivers.Length() == 0, "Should have removed all root refresh drivers from here by now!"); -+ } -+ - virtual void StartTimer() = 0; - virtual void StopTimer() = 0; - virtual void ScheduleNextTick(TimeStamp aNowTime) = 0; -@@ -336,10 +338,11 @@ protected: - nsTArray<RefPtr<nsRefreshDriver>> mRootRefreshDrivers; - - // useful callback for nsITimer-based derived classes, here -- // bacause of c++ protected shenanigans -+ // because of c++ protected shenanigans - static void TimerTick(nsITimer* aTimer, void* aClosure) - { -- RefreshDriverTimer *timer = static_cast<RefreshDriverTimer*>(aClosure); -+ RefPtr<RefreshDriverTimer> timer = -+ static_cast<RefreshDriverTimer*>(aClosure); - timer->Tick(); - } - }; -@@ -471,9 +474,7 @@ public: - private: - // Since VsyncObservers are refCounted, but the RefreshDriverTimer are - // explicitly shutdown. We create an inner class that has the VsyncObserver -- // and is shutdown when the RefreshDriverTimer is deleted. The alternative is -- // to (a) make all RefreshDriverTimer RefCounted or (b) use different -- // VsyncObserver types. -+ // and is shutdown when the RefreshDriverTimer is deleted. - class RefreshDriverVsyncObserver final : public VsyncObserver - { - public: -@@ -674,7 +675,9 @@ private: - // the scheduled TickRefreshDriver() runs. Check mVsyncRefreshDriverTimer - // before use. - if (mVsyncRefreshDriverTimer) { -- mVsyncRefreshDriverTimer->RunRefreshDrivers(aVsyncTimestamp); -+ RefPtr<VsyncRefreshDriverTimer> timer = mVsyncRefreshDriverTimer; -+ timer->RunRefreshDrivers(aVsyncTimestamp); -+ // Note: mVsyncRefreshDriverTimer might be null now. - } - - if (!XRE_IsParentProcess()) { -@@ -956,7 +959,8 @@ protected: - - static void TimerTickOne(nsITimer* aTimer, void* aClosure) - { -- InactiveRefreshDriverTimer *timer = static_cast<InactiveRefreshDriverTimer*>(aClosure); -+ RefPtr<InactiveRefreshDriverTimer> timer = -+ static_cast<InactiveRefreshDriverTimer*>(aClosure); - timer->TickOne(); - } - -@@ -967,8 +971,8 @@ protected: - - } // namespace mozilla - --static RefreshDriverTimer* sRegularRateTimer; --static InactiveRefreshDriverTimer* sThrottledRateTimer; -+static StaticRefPtr<RefreshDriverTimer> sRegularRateTimer; -+static StaticRefPtr<InactiveRefreshDriverTimer> sThrottledRateTimer; - - static void - CreateContentVsyncRefreshTimer(void*) -@@ -1042,9 +1046,6 @@ GetFirstFrameDelay(imgIRequest* req) - nsRefreshDriver::Shutdown() - { - // clean up our timers -- delete sRegularRateTimer; -- delete sThrottledRateTimer; -- - sRegularRateTimer = nullptr; - sThrottledRateTimer = nullptr; - } -@@ -2292,16 +2293,15 @@ nsRefreshDriver::PVsyncActorCreated(VsyncChild* aVsyncChild) - { - MOZ_ASSERT(NS_IsMainThread()); - MOZ_ASSERT(!XRE_IsParentProcess()); -- auto* vsyncRefreshDriverTimer = -- new VsyncRefreshDriverTimer(aVsyncChild); -+ RefPtr<RefreshDriverTimer> vsyncRefreshDriverTimer = -+ new VsyncRefreshDriverTimer(aVsyncChild); - - // If we are using software timer, swap current timer to - // VsyncRefreshDriverTimer. - if (sRegularRateTimer) { - sRegularRateTimer->SwapRefreshDrivers(vsyncRefreshDriverTimer); -- delete sRegularRateTimer; - } -- sRegularRateTimer = vsyncRefreshDriverTimer; -+ sRegularRateTimer = vsyncRefreshDriverTimer.forget(); - } - - void diff --git a/www/waterfox/files/patch-bug1472925 b/www/waterfox/files/patch-bug1472925 deleted file mode 100644 index 50c446a71c32..000000000000 --- a/www/waterfox/files/patch-bug1472925 +++ /dev/null @@ -1,83 +0,0 @@ -commit 8ffab3ae0ea3 -Author: Karl Tomlinson <karlt+@karlt.net> -Date: Tue Jul 3 17:23:09 2018 +1200 - - Bug 1472925 - Keep a strong reference to MediaStreamGraph from GraphDriver. r=padenot, a=lizzard ---- - dom/media/GraphDriver.cpp | 7 ++++--- - dom/media/GraphDriver.h | 6 ++---- - dom/media/MediaStreamGraph.cpp | 3 ++- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git dom/media/GraphDriver.cpp dom/media/GraphDriver.cpp -index fd003ac9dbc6a..197debf299582 100644 ---- dom/media/GraphDriver.cpp -+++ dom/media/GraphDriver.cpp -@@ -179,7 +179,8 @@ class MediaStreamGraphInitThreadRunnable : public Runn - NS_IMETHOD Run() override - { - LOG(LogLevel::Debug, -- ("Starting a new system driver for graph %p", mDriver->mGraphImpl)); -+ ("Starting a new system driver for graph %p", -+ mDriver->mGraphImpl.get())); - - RefPtr<GraphDriver> previousDriver; - { -@@ -217,7 +218,7 @@ void - ThreadedDriver::Start() - { - LOG(LogLevel::Debug, -- ("Starting thread for a SystemClockDriver %p", mGraphImpl)); -+ ("Starting thread for a SystemClockDriver %p", mGraphImpl.get())); - Unused << NS_WARN_IF(mThread); - if (!mThread) { // Ensure we haven't already started it - nsCOMPtr<nsIRunnable> event = new MediaStreamGraphInitThreadRunnable(this); -@@ -784,7 +785,7 @@ void - AudioCallbackDriver::Resume() - { - LOG(LogLevel::Debug, -- ("Resuming audio threads for MediaStreamGraph %p", mGraphImpl)); -+ ("Resuming audio threads for MediaStreamGraph %p", mGraphImpl.get())); - if (cubeb_stream_start(mAudioStream) != CUBEB_OK) { - NS_WARNING("Could not start cubeb stream for MSG."); - } -@@ -859,7 +860,7 @@ AudioCallbackDriver::Revive() - } else { - LOG(LogLevel::Debug, - ("Starting audio threads for MediaStreamGraph %p from a new thread.", -- mGraphImpl)); -+ mGraphImpl.get())); - RefPtr<AsyncCubebTask> initEvent = - new AsyncCubebTask(this, AsyncCubebOperation::INIT); - initEvent->Dispatch(); -diff --git dom/media/GraphDriver.h dom/media/GraphDriver.h -index 5c085dc36bff5..ca77b5752569f 100644 ---- dom/media/GraphDriver.h -+++ dom/media/GraphDriver.h -@@ -211,10 +211,8 @@ protected: - // Time of the end of this graph iteration. This must be accessed while having - // the monitor. - GraphTime mIterationEnd; -- // The MediaStreamGraphImpl that owns this driver. This has a lifetime longer -- // than the driver, and will never be null. Hence, it can be accesed without -- // monitor. -- MediaStreamGraphImpl* mGraphImpl; -+ // The MediaStreamGraphImpl associated with this driver. -+ const RefPtr<MediaStreamGraphImpl> mGraphImpl; - - // This is used on the main thread (during initialization), and the graph - // thread. No monitor needed because we know the graph thread does not run -diff --git dom/media/MediaStreamGraph.cpp dom/media/MediaStreamGraph.cpp -index a3c8b26c2663d..4e6175e0d9fed 100644 ---- dom/media/MediaStreamGraph.cpp -+++ dom/media/MediaStreamGraph.cpp -@@ -3661,7 +3661,8 @@ MediaStreamGraphImpl::Destroy() - // First unregister from memory reporting. - UnregisterWeakMemoryReporter(this); - -- // Clear the self reference which will destroy this instance. -+ // Clear the self reference which will destroy this instance if all -+ // associated GraphDrivers are destroyed. - mSelfRef = nullptr; - } - |