aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2018-09-15 08:50:01 +0000
committerJan Beich <jbeich@FreeBSD.org>2018-09-15 08:50:01 +0000
commitd77a64deca6ffba8d2ff209f0ee4a5798d6164d2 (patch)
treeaf1ffb1560def7162db31c4c06c4b556d6d750b2
parentffb513f63d4cce0429a4297539f9f8654d91666b (diff)
downloadports-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/Makefile2
-rw-r--r--www/waterfox/distinfo6
-rw-r--r--www/waterfox/files/patch-bug142593066
-rw-r--r--www/waterfox/files/patch-bug146930972
-rw-r--r--www/waterfox/files/patch-bug1469914118
-rw-r--r--www/waterfox/files/patch-bug1470260164
-rw-r--r--www/waterfox/files/patch-bug147292583
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;
- }
-