MFH: r470343
www/waterfox: apply some FF61 fixes Approved by: ports-secteam blanket
This commit is contained in:
parent
9e1c431fa1
commit
076b50b01c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q2/; revision=470348
@ -3,6 +3,7 @@
|
||||
PORTNAME= waterfox
|
||||
DISTVERSION= 56.2.0-7
|
||||
DISTVERSIONSUFFIX= -g436898372f858
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= www ipv6
|
||||
|
||||
MAINTAINER= jbeich@FreeBSD.org
|
||||
|
40
www/waterfox/files/patch-bug1450448
Normal file
40
www/waterfox/files/patch-bug1450448
Normal file
@ -0,0 +1,40 @@
|
||||
commit fbba8d988c94
|
||||
Author: Johann Hofmann <jhofmann@mozilla.com>
|
||||
Date: Tue May 15 22:02:33 2018 +0200
|
||||
|
||||
Bug 1450448 - Correctly handle non-initialized appCache in site data preferences. r=Gijs, a=RyanVM
|
||||
|
||||
MozReview-Commit-ID: IhQGAWNQtR0
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : c1e902883a977c54ccafd4a1c3042d0a17660996
|
||||
extra : source : 9f41afd3012718d839033663196a746a47065007
|
||||
---
|
||||
browser/modules/SiteDataManager.jsm | 14 +++++++++++++-
|
||||
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git browser/components/preferences/SiteDataManager.jsm browser/components/preferences/SiteDataManager.jsm
|
||||
index 118a40ce38fc8..9e08e00c38c5b 100644
|
||||
--- browser/components/preferences/SiteDataManager.jsm
|
||||
+++ browser/components/preferences/SiteDataManager.jsm
|
||||
@@ -192,7 +192,19 @@ var SiteDataManager = {
|
||||
},
|
||||
|
||||
_updateAppCache() {
|
||||
- let groups = this._appCache.getGroups();
|
||||
+ let groups;
|
||||
+ try {
|
||||
+ groups = this._appCache.getGroups();
|
||||
+ } catch (e) {
|
||||
+ // NS_ERROR_NOT_AVAILABLE means that appCache is not initialized,
|
||||
+ // which probably means the user has disabled it. Otherwise, log an
|
||||
+ // error. Either way, there's nothing we can do here.
|
||||
+ if (e.result != Cr.NS_ERROR_NOT_AVAILABLE) {
|
||||
+ Cu.reportError(e);
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
for (let group of groups) {
|
||||
let cache = this._appCache.getActiveCache(group);
|
||||
if (cache.usage <= 0) {
|
122
www/waterfox/files/patch-bug1456524
Normal file
122
www/waterfox/files/patch-bug1456524
Normal file
@ -0,0 +1,122 @@
|
||||
commit 7813b28f0e98
|
||||
Author: Sean Stangl <sstangl@mozilla.com>
|
||||
Date: Thu May 17 14:06:00 2018 -0400
|
||||
|
||||
Bug 1456524 - Maintain MoveResolver invariants. r=jandem, a=RyanVM
|
||||
|
||||
The MoveResolver is a persistent data structure that requires
|
||||
state to not leak between borrowers. An early-exit optimization
|
||||
in the case of OOM allows for state to leak, leading to impossible
|
||||
move list inputs, tripping assertions.
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 38c5d7afaa4b6394ced3266b90032b8e3bdba351
|
||||
---
|
||||
js/src/jit/MacroAssembler.h | 5 +++++
|
||||
js/src/jit/MoveResolver.cpp | 7 +++++++
|
||||
js/src/jit/MoveResolver.h | 3 +++
|
||||
js/src/jit/arm/MacroAssembler-arm.cpp | 2 +-
|
||||
js/src/jit/mips32/MacroAssembler-mips32.cpp | 2 +-
|
||||
js/src/jit/mips64/MacroAssembler-mips64.cpp | 2 +-
|
||||
6 files changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git js/src/jit/MacroAssembler.h js/src/jit/MacroAssembler.h
|
||||
index b2cc464aafcc4..cef8c094b70c5 100644
|
||||
--- js/src/jit/MacroAssembler.h
|
||||
+++ js/src/jit/MacroAssembler.h
|
||||
@@ -334,6 +334,11 @@ class MacroAssembler : public MacroAssemblerSpecific
|
||||
|
||||
public:
|
||||
MoveResolver& moveResolver() {
|
||||
+ // As an optimization, the MoveResolver is a persistent data structure
|
||||
+ // shared between visitors in the CodeGenerator. This assertion
|
||||
+ // checks that state is not leaking from visitor to visitor
|
||||
+ // via an unresolved addMove().
|
||||
+ MOZ_ASSERT(moveResolver_.hasNoPendingMoves());
|
||||
return moveResolver_;
|
||||
}
|
||||
|
||||
diff --git js/src/jit/MoveResolver.cpp js/src/jit/MoveResolver.cpp
|
||||
index bd71d0acea44d..d79af5053b79c 100644
|
||||
--- js/src/jit/MoveResolver.cpp
|
||||
+++ js/src/jit/MoveResolver.cpp
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "jit/MoveResolver.h"
|
||||
|
||||
#include "mozilla/Attributes.h"
|
||||
+#include "mozilla/ScopeExit.h"
|
||||
|
||||
#include "jit/MacroAssembler.h"
|
||||
#include "jit/RegisterSets.h"
|
||||
@@ -178,12 +179,18 @@ SplitIntoUpperHalf(const MoveOperand& move)
|
||||
}
|
||||
#endif
|
||||
|
||||
+// Resolves the pending_ list to a list in orderedMoves_.
|
||||
bool
|
||||
MoveResolver::resolve()
|
||||
{
|
||||
resetState();
|
||||
orderedMoves_.clear();
|
||||
|
||||
+ // Upon return from this function, the pending_ list must be cleared.
|
||||
+ auto clearPending = mozilla::MakeScopeExit([this]() {
|
||||
+ pending_.clear();
|
||||
+ });
|
||||
+
|
||||
#ifdef JS_CODEGEN_ARM
|
||||
// Some of ARM's double registers alias two of its single registers,
|
||||
// but the algorithm below assumes that every register can participate
|
||||
diff --git js/src/jit/MoveResolver.h js/src/jit/MoveResolver.h
|
||||
index d9a9415488704..d094ee1307563 100644
|
||||
--- js/src/jit/MoveResolver.h
|
||||
+++ js/src/jit/MoveResolver.h
|
||||
@@ -333,6 +333,9 @@ class MoveResolver
|
||||
uint32_t numCycles() const {
|
||||
return numCycles_;
|
||||
}
|
||||
+ bool hasNoPendingMoves() const {
|
||||
+ return pending_.empty();
|
||||
+ }
|
||||
void setAllocator(TempAllocator& alloc) {
|
||||
movePool_.setAllocator(alloc);
|
||||
}
|
||||
diff --git js/src/jit/arm/MacroAssembler-arm.cpp js/src/jit/arm/MacroAssembler-arm.cpp
|
||||
index a3985f2c24d1f..86e86310cc129 100644
|
||||
--- js/src/jit/arm/MacroAssembler-arm.cpp
|
||||
+++ js/src/jit/arm/MacroAssembler-arm.cpp
|
||||
@@ -4593,7 +4593,7 @@ MacroAssembler::callWithABIPre(uint32_t* stackAdjust, bool callFromWasm)
|
||||
|
||||
// Position all arguments.
|
||||
{
|
||||
- enoughMemory_ = enoughMemory_ && moveResolver_.resolve();
|
||||
+ enoughMemory_ &= moveResolver_.resolve();
|
||||
if (!enoughMemory_)
|
||||
return;
|
||||
|
||||
diff --git js/src/jit/mips32/MacroAssembler-mips32.cpp js/src/jit/mips32/MacroAssembler-mips32.cpp
|
||||
index 8f2fec7948b75..ef0a9136f4e39 100644
|
||||
--- js/src/jit/mips32/MacroAssembler-mips32.cpp
|
||||
+++ js/src/jit/mips32/MacroAssembler-mips32.cpp
|
||||
@@ -2191,7 +2191,7 @@ MacroAssembler::callWithABIPre(uint32_t* stackAdjust, bool callFromWasm)
|
||||
|
||||
// Position all arguments.
|
||||
{
|
||||
- enoughMemory_ = enoughMemory_ && moveResolver_.resolve();
|
||||
+ enoughMemory_ &= moveResolver_.resolve();
|
||||
if (!enoughMemory_)
|
||||
return;
|
||||
|
||||
diff --git js/src/jit/mips64/MacroAssembler-mips64.cpp js/src/jit/mips64/MacroAssembler-mips64.cpp
|
||||
index c944b0427aaee..8eec6bac047e4 100644
|
||||
--- js/src/jit/mips64/MacroAssembler-mips64.cpp
|
||||
+++ js/src/jit/mips64/MacroAssembler-mips64.cpp
|
||||
@@ -2040,7 +2040,7 @@ MacroAssembler::callWithABIPre(uint32_t* stackAdjust, bool callFromWasm)
|
||||
|
||||
// Position all arguments.
|
||||
{
|
||||
- enoughMemory_ = enoughMemory_ && moveResolver_.resolve();
|
||||
+ enoughMemory_ &= moveResolver_.resolve();
|
||||
if (!enoughMemory_)
|
||||
return;
|
||||
|
71
www/waterfox/files/patch-bug1459162
Normal file
71
www/waterfox/files/patch-bug1459162
Normal file
@ -0,0 +1,71 @@
|
||||
commit 7588031f0792
|
||||
Author: Jonathan Kew <jkew@mozilla.com>
|
||||
Date: Thu May 17 09:49:58 2018 +0100
|
||||
|
||||
Bug 1459162 - Update dimensions early in ClearTarget. r=lsalzman a=abillings
|
||||
---
|
||||
dom/canvas/CanvasRenderingContext2D.cpp | 14 +++++++++-----
|
||||
dom/canvas/CanvasRenderingContext2D.h | 5 ++++-
|
||||
2 files changed, 13 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git dom/canvas/CanvasRenderingContext2D.cpp dom/canvas/CanvasRenderingContext2D.cpp
|
||||
index 1e057824a4675..4501ffaff2d97 100644
|
||||
--- dom/canvas/CanvasRenderingContext2D.cpp
|
||||
+++ dom/canvas/CanvasRenderingContext2D.cpp
|
||||
@@ -1928,8 +1928,6 @@ CanvasRenderingContext2D::GetHeight() const
|
||||
NS_IMETHODIMP
|
||||
CanvasRenderingContext2D::SetDimensions(int32_t aWidth, int32_t aHeight)
|
||||
{
|
||||
- ClearTarget();
|
||||
-
|
||||
// Zero sized surfaces can cause problems.
|
||||
mZero = false;
|
||||
if (aHeight == 0) {
|
||||
@@ -1940,14 +1938,14 @@ CanvasRenderingContext2D::SetDimensions(int32_t aWidth, int32_t aHeight)
|
||||
aWidth = 1;
|
||||
mZero = true;
|
||||
}
|
||||
- mWidth = aWidth;
|
||||
- mHeight = aHeight;
|
||||
+
|
||||
+ ClearTarget(aWidth, aHeight);
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
void
|
||||
-CanvasRenderingContext2D::ClearTarget()
|
||||
+CanvasRenderingContext2D::ClearTarget(int32_t aWidth, int32_t aHeight)
|
||||
{
|
||||
Reset();
|
||||
|
||||
@@ -1955,6 +1953,12 @@ CanvasRenderingContext2D::ClearTarget()
|
||||
|
||||
SetInitialState();
|
||||
|
||||
+ // Update dimensions only if new (strictly positive) values were passed.
|
||||
+ if (aWidth > 0 && aHeight > 0) {
|
||||
+ mWidth = aWidth;
|
||||
+ mHeight = aHeight;
|
||||
+ }
|
||||
+
|
||||
// For vertical writing-mode, unless text-orientation is sideways,
|
||||
// we'll modify the initial value of textBaseline to 'middle'.
|
||||
RefPtr<nsStyleContext> canvasStyle;
|
||||
diff --git dom/canvas/CanvasRenderingContext2D.h dom/canvas/CanvasRenderingContext2D.h
|
||||
index 6f0f6279e0cf5..c2ed098b053d0 100644
|
||||
--- dom/canvas/CanvasRenderingContext2D.h
|
||||
+++ dom/canvas/CanvasRenderingContext2D.h
|
||||
@@ -683,8 +683,11 @@ protected:
|
||||
|
||||
/**
|
||||
* Disposes an old target and prepares to lazily create a new target.
|
||||
+ *
|
||||
+ * Parameters are the new dimensions to be used, or if either is negative,
|
||||
+ * existing dimensions will be left unchanged.
|
||||
*/
|
||||
- void ClearTarget();
|
||||
+ void ClearTarget(int32_t aWidth = -1, int32_t aHeight = -1);
|
||||
|
||||
/*
|
||||
* Returns the target to the buffer provider. i.e. this will queue a frame for
|
Loading…
Reference in New Issue
Block a user