Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jul 2018 00:21:56 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r473780 - in head/www/waterfox: . files
Message-ID:  <201807030021.w630LuJ3060010@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Tue Jul  3 00:21:55 2018
New Revision: 473780
URL: https://svnweb.freebsd.org/changeset/ports/473780

Log:
  www/waterfox: update to 56.2.1.55
  
  - Apply some FF61 fixes
  
  Changes:	https://github.com/MrAlex94/Waterfox/compare/7f6ff796eeda4...6395bf177f76a

Added:
  head/www/waterfox/files/patch-bug1469257   (contents, props changed)
  head/www/waterfox/files/patch-bug1470260   (contents, props changed)
Deleted:
  head/www/waterfox/files/patch-bug1456189
  head/www/waterfox/files/patch-bug1456975
  head/www/waterfox/files/patch-bug1464039
  head/www/waterfox/files/patch-bug1464063
Modified:
  head/www/waterfox/Makefile   (contents, props changed)
  head/www/waterfox/distinfo   (contents, props changed)

Modified: head/www/waterfox/Makefile
==============================================================================
--- head/www/waterfox/Makefile	Tue Jul  3 00:21:32 2018	(r473779)
+++ head/www/waterfox/Makefile	Tue Jul  3 00:21:55 2018	(r473780)
@@ -1,9 +1,8 @@
 # $FreeBSD$
 
 PORTNAME=	waterfox
-DISTVERSION=	56.2.1-48
-DISTVERSIONSUFFIX=	-g7f6ff796eeda4
-PORTREVISION=	1
+DISTVERSION=	56.2.1-55
+DISTVERSIONSUFFIX=	-g6395bf177f76a
 CATEGORIES=	www ipv6
 
 MAINTAINER=	jbeich@FreeBSD.org

Modified: head/www/waterfox/distinfo
==============================================================================
--- head/www/waterfox/distinfo	Tue Jul  3 00:21:32 2018	(r473779)
+++ head/www/waterfox/distinfo	Tue Jul  3 00:21:55 2018	(r473780)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1530292793
-SHA256 (MrAlex94-Waterfox-56.2.1-48-g7f6ff796eeda4_GH0.tar.gz) = 07b65c4e20917968ce5086ddef09dcfe37bd90135f4f37fa2d4cd6029ac38df8
-SIZE (MrAlex94-Waterfox-56.2.1-48-g7f6ff796eeda4_GH0.tar.gz) = 395133776
+TIMESTAMP = 1530543888
+SHA256 (MrAlex94-Waterfox-56.2.1-55-g6395bf177f76a_GH0.tar.gz) = 768ff4628b2f4dcf1868dfae711a10b69d2166c544a1252dd4463c2b596676ec
+SIZE (MrAlex94-Waterfox-56.2.1-55-g6395bf177f76a_GH0.tar.gz) = 395130631

Added: head/www/waterfox/files/patch-bug1469257
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/waterfox/files/patch-bug1469257	Tue Jul  3 00:21:55 2018	(r473780)
@@ -0,0 +1,50 @@
+commit 6717d9afef42
+Author: Jean-Yves Avenard <jyavenard@mozilla.com>
+Date:   Wed Jun 20 19:24:34 2018 +0000
+
+    Bug 1469257 - [H264] Only check for SPS changes on keyframe. r=bryce, a=RyanVM
+    
+    Some invalid streams contain SPS changes and those appear to only occur on non-keyframe, this cause all frames to be dropped until the next keyframe is found. This result in apparent freezes.
+    
+    While it is theoretically possible to have SPS changes inband on non-keyframe those should be very rare (I've never seen one). The content would have been invalid anyway in an non-fragmented mp4.
+    
+    So we now only check for a SPS change on keyframe. This would cause no affect on either windows, android or ffmpeg as those decoders handle format change fine. The mac decoder could however show garbled frames temporarily.
+    
+    Differential Revision: https://phabricator.services.mozilla.com/D1733
+    
+    --HG--
+    extra : source : ddde6ad6d9e6c4069632e195613bcd53a39883e4
+---
+ dom/media/platforms/wrappers/H264Converter.cpp | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git dom/media/platforms/wrappers/H264Converter.cpp dom/media/platforms/wrappers/H264Converter.cpp
+index 32b1abf179937..5c04c075664c3 100644
+--- dom/media/platforms/wrappers/H264Converter.cpp
++++ dom/media/platforms/wrappers/H264Converter.cpp
+@@ -392,7 +392,7 @@ MediaResult
+ H264Converter::CheckForSPSChange(MediaRawData* aSample)
+ {
+   RefPtr<MediaByteBuffer> extra_data =
+-    mp4_demuxer::H264::ExtractExtraData(aSample);
++    aSample->mKeyframe ? mp4_demuxer::H264::ExtractExtraData(aSample) : nullptr;
+   if (!mp4_demuxer::H264::HasSPS(extra_data)) {
+     MOZ_ASSERT(mCanRecycleDecoder.isSome());
+     if (!*mCanRecycleDecoder) {
+@@ -406,14 +406,12 @@ H264Converter::CheckForSPSChange(MediaRawData* aSample)
+     // This scenario can only occur on Android with devices that can recycle a
+     // decoder.
+     if (!mp4_demuxer::H264::HasSPS(aSample->mExtraData) ||
+-        mp4_demuxer::H264::CompareExtraData(aSample->mExtraData,
+-                                            mOriginalExtraData)) {
++        mp4_demuxer::H264::CompareExtraData(aSample->mExtraData, mOriginalExtraData)) {
+       return NS_OK;
+     }
+     extra_data = mOriginalExtraData = aSample->mExtraData;
+   }
+-  if (mp4_demuxer::H264::CompareExtraData(extra_data,
+-                                          mCurrentConfig.mExtraData)) {
++  if (mp4_demuxer::H264::CompareExtraData(extra_data, mCurrentConfig.mExtraData)) {
+     return NS_OK;
+   }
+ 

Added: head/www/waterfox/files/patch-bug1470260
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/www/waterfox/files/patch-bug1470260	Tue Jul  3 00:21:55 2018	(r473780)
@@ -0,0 +1,164 @@
+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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807030021.w630LuJ3060010>