From owner-svn-ports-branches@freebsd.org Sat Jun 2 00:36:00 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 103F7F74EB3; Sat, 2 Jun 2018 00:36:00 +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 AF9BC7FA9B; Sat, 2 Jun 2018 00:35:59 +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 876E5250; Sat, 2 Jun 2018 00:35:59 +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 w520Zx7Z061119; Sat, 2 Jun 2018 00:35:59 GMT (envelope-from jbeich@FreeBSD.org) Received: (from jbeich@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w520ZwMd061115; Sat, 2 Jun 2018 00:35:58 GMT (envelope-from jbeich@FreeBSD.org) Message-Id: <201806020035.w520ZwMd061115@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jbeich set sender to jbeich@FreeBSD.org using -f From: Jan Beich Date: Sat, 2 Jun 2018 00:35:58 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r471333 - 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: 471333 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: Sat, 02 Jun 2018 00:36:00 -0000 Author: jbeich Date: Sat Jun 2 00:35:58 2018 New Revision: 471333 URL: https://svnweb.freebsd.org/changeset/ports/471333 Log: MFH: r471332 www/waterfox: apply some FF61 fixes Approved by: ports-secteam Added: branches/2018Q2/www/waterfox/files/patch-bug1452375 - copied unchanged from r471332, head/www/waterfox/files/patch-bug1452375 branches/2018Q2/www/waterfox/files/patch-bug1458264 - copied unchanged from r471332, head/www/waterfox/files/patch-bug1458264 branches/2018Q2/www/waterfox/files/patch-bug1464829 - copied unchanged from r471332, head/www/waterfox/files/patch-bug1464829 branches/2018Q2/www/waterfox/files/patch-bug1464872 - copied unchanged from r471332, head/www/waterfox/files/patch-bug1464872 Modified: branches/2018Q2/www/waterfox/Makefile Directory Properties: branches/2018Q2/ (props changed) Modified: branches/2018Q2/www/waterfox/Makefile ============================================================================== --- branches/2018Q2/www/waterfox/Makefile Sat Jun 2 00:33:44 2018 (r471332) +++ branches/2018Q2/www/waterfox/Makefile Sat Jun 2 00:35:58 2018 (r471333) @@ -3,6 +3,7 @@ PORTNAME= waterfox DISTVERSION= 56.2.0-31 DISTVERSIONSUFFIX= -gf435a827f82ac +PORTREVISION= 1 CATEGORIES= www ipv6 MAINTAINER= jbeich@FreeBSD.org Copied: branches/2018Q2/www/waterfox/files/patch-bug1452375 (from r471332, head/www/waterfox/files/patch-bug1452375) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1452375 Sat Jun 2 00:35:58 2018 (r471333, copy of r471332, head/www/waterfox/files/patch-bug1452375) @@ -0,0 +1,133 @@ +commit 73284efb9ac4 +Author: Jeff Muizelaar +Date: Thu May 31 21:19:18 2018 -0400 + + Bug 1452375 - ssse3-scaler: handle init failure. r=sotaro, a=abillings + + --HG-- + extra : amend_source : b9070901c9a52e7790db4e81ba093b08511bab6a +--- + gfx/2d/ssse3-scaler.c | 8 +++++++- + gfx/2d/ssse3-scaler.h | 4 +++- + gfx/layers/basic/BasicCompositor.cpp | 14 +++++++------- + 3 files changed, 17 insertions(+), 9 deletions(-) + +diff --git gfx/2d/ssse3-scaler.c gfx/2d/ssse3-scaler.c +index 345844b841dc5..0a571e064dc31 100644 +--- gfx/2d/ssse3-scaler.c ++++ gfx/2d/ssse3-scaler.c +@@ -37,6 +37,7 @@ + #include + #include + #include ++#include "ssse3-scaler.h" + + typedef int32_t pixman_fixed_16_16_t; + typedef pixman_fixed_16_16_t pixman_fixed_t; +@@ -505,7 +506,7 @@ fail: + /* scale the src from src_width/height to dest_width/height drawn + * into the rectangle x,y width,height + * src_stride and dst_stride are 4 byte units */ +-void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, ++bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stride, + uint32_t *dest, int dest_width, int dest_height, + int dest_stride, + int x, int y, +@@ -551,6 +552,10 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri + iter.data = NULL; + + ssse3_bilinear_cover_iter_init(&iter); ++ ++ if (!iter.fini) ++ return false; ++ + if (iter.data) { + for (int iy = 0; iy < height; iy++) { + ssse3_fetch_bilinear_cover(&iter, NULL); +@@ -558,4 +563,5 @@ void ssse3_scale_data(uint32_t *src, int src_width, int src_height, int src_stri + } + ssse3_bilinear_cover_iter_fini(&iter); + } ++ return true; + } +diff --git gfx/2d/ssse3-scaler.h gfx/2d/ssse3-scaler.h +index b3b53ed643689..ea8d8a066303a 100644 +--- gfx/2d/ssse3-scaler.h ++++ gfx/2d/ssse3-scaler.h +@@ -6,10 +6,12 @@ + #ifndef MOZILLA_GFX_2D_SSSE3_SCALER_H_ + #define MOZILLA_GFX_2D_SSSE3_SCALER_H_ + ++#include ++ + #ifdef __cplusplus + extern "C" { + #endif +-void ssse3_scale_data(uint32_t *src, int src_width, int src_height, ++bool ssse3_scale_data(uint32_t *src, int src_width, int src_height, + int src_stride, + uint32_t *dest, int dest_width, int dest_height, + int dest_rowstride, +diff --git gfx/layers/basic/BasicCompositor.cpp gfx/layers/basic/BasicCompositor.cpp +index 1ff27f7957301..634d9e3407f7b 100644 +--- gfx/layers/basic/BasicCompositor.cpp ++++ gfx/layers/basic/BasicCompositor.cpp +@@ -470,15 +470,15 @@ AttemptVideoScale(TextureSourceBasic* aSource, const SourceSurface* aSourceMask, + RefPtr srcSource = aSource->GetSurface(aDest)->GetDataSurface(); + DataSourceSurface::ScopedMap mapSrc(srcSource, DataSourceSurface::READ); + +- ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, +- mapSrc.GetStride()/4, +- ((uint32_t*)dstData) + fillRect.x + (dstStride / 4) * fillRect.y, dstRect.width, dstRect.height, +- dstStride / 4, +- offset.x, offset.y, +- fillRect.width, fillRect.height); ++ bool success = ssse3_scale_data((uint32_t*)mapSrc.GetData(), srcSource->GetSize().width, srcSource->GetSize().height, ++ mapSrc.GetStride()/4, ++ ((uint32_t*)dstData) + fillRect.x + (dstStride / 4) * fillRect.y, dstRect.width, dstRect.height, ++ dstStride / 4, ++ offset.x, offset.y, ++ fillRect.width, fillRect.height); + + aDest->ReleaseBits(dstData); +- return true; ++ return success; + } else + #endif // MOZILLA_SSE_HAVE_CPUID_DETECTION + return false; + +commit 083548141193 (origin/esr52) +Author: Jeff Muizelaar +Date: Thu May 31 21:20:05 2018 -0400 + + Bug 1452375 - ssse3-scaler: make sure iter->x/y is representable. r=sotaro, a=abillings +--- + gfx/2d/ssse3-scaler.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git gfx/2d/ssse3-scaler.c gfx/2d/ssse3-scaler.c +index 0a571e064dc31..745f58f6f8f43 100644 +--- gfx/2d/ssse3-scaler.c ++++ gfx/2d/ssse3-scaler.c +@@ -45,6 +45,8 @@ typedef pixman_fixed_16_16_t pixman_fixed_t; + #define pixman_fixed_to_int(f) ((int) ((f) >> 16)) + #define pixman_int_to_fixed(i) ((pixman_fixed_t) ((i) << 16)) + #define pixman_double_to_fixed(d) ((pixman_fixed_t) ((d) * 65536.0)) ++#define PIXMAN_FIXED_INT_MAX 32767 ++#define PIXMAN_FIXED_INT_MIN -32768 + typedef struct pixman_vector pixman_vector_t; + + typedef int pixman_bool_t; +@@ -464,6 +466,12 @@ ssse3_bilinear_cover_iter_init (pixman_iter_t *iter) + bilinear_info_t *info; + pixman_vector_t v; + ++ if (iter->x > PIXMAN_FIXED_INT_MAX || ++ iter->x < PIXMAN_FIXED_INT_MIN || ++ iter->y > PIXMAN_FIXED_INT_MAX || ++ iter->y < PIXMAN_FIXED_INT_MIN) ++ goto fail; ++ + /* Reference point is the center of the pixel */ + v.vector[0] = pixman_int_to_fixed (iter->x) + pixman_fixed_1 / 2; + v.vector[1] = pixman_int_to_fixed (iter->y) + pixman_fixed_1 / 2; Copied: branches/2018Q2/www/waterfox/files/patch-bug1458264 (from r471332, head/www/waterfox/files/patch-bug1458264) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1458264 Sat Jun 2 00:35:58 2018 (r471333, copy of r471332, head/www/waterfox/files/patch-bug1458264) @@ -0,0 +1,56 @@ +commit 6b3071113783 +Author: jgilbert@mozilla.com +Date: Thu May 24 15:45:25 2018 -0700 + + Bug 1458264 - Reset UNPACK_SKIP vars when uploading zeros. r=kvark, a=RyanVM + + MozReview-Commit-ID: ILB6MqgnrXX + + --HG-- + extra : rebase_source : 645475fd6b978b00b0b61eef42df2a771563968c + extra : source : c2f90b73e27aa5402636aee5f03891298502c416 +--- + dom/canvas/WebGLContextDraw.cpp | 21 +++++++++++++++------ + 1 file changed, 15 insertions(+), 6 deletions(-) + +diff --git dom/canvas/WebGLContextDraw.cpp dom/canvas/WebGLContextDraw.cpp +index a28d93325692b..3f179477b3bcd 100644 +--- dom/canvas/WebGLContextDraw.cpp ++++ dom/canvas/WebGLContextDraw.cpp +@@ -205,7 +205,21 @@ WebGLContext::BindFakeBlack(uint32_t texUnit, TexTarget target, FakeBlackType fa + UniquePtr& fakeBlackTex = *slot; + + if (!fakeBlackTex) { ++ gl->fPixelStorei(LOCAL_GL_UNPACK_ALIGNMENT, 1); ++ if (IsWebGL2()) { ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_PIXELS, 0); ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_ROWS, 0); ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_IMAGES, 0); ++ } ++ + fakeBlackTex = FakeBlackTexture::Create(gl, target, fakeBlack); ++ ++ gl->fPixelStorei(LOCAL_GL_UNPACK_ALIGNMENT, mPixelStore_UnpackAlignment); ++ if (IsWebGL2()) { ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_PIXELS, mPixelStore_UnpackSkipPixels); ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_ROWS, mPixelStore_UnpackSkipRows); ++ gl->fPixelStorei(LOCAL_GL_UNPACK_SKIP_IMAGES, mPixelStore_UnpackSkipImages); ++ } + if (!fakeBlackTex) { + return false; + } +@@ -995,13 +1009,8 @@ WebGLContext::FakeBlackTexture::Create(gl::GLContext* gl, TexTarget target, + gl->fTexParameteri(target.get(), LOCAL_GL_TEXTURE_MIN_FILTER, LOCAL_GL_NEAREST); + gl->fTexParameteri(target.get(), LOCAL_GL_TEXTURE_MAG_FILTER, LOCAL_GL_NEAREST); + +- // We allocate our zeros on the heap, and we overallocate (16 bytes instead of 4) to +- // minimize the risk of running into a driver bug in texImage2D, as it is a bit +- // unusual maybe to create 1x1 textures, and the stack may not have the alignment that +- // TexImage2D expects. +- + const webgl::DriverUnpackInfo dui = {texFormat, texFormat, LOCAL_GL_UNSIGNED_BYTE}; +- UniqueBuffer zeros = moz_xcalloc(1, 16); // Infallible allocation. ++ UniqueBuffer zeros = moz_xcalloc(1, 4); // Infallible allocation. + + MOZ_ASSERT(gl->IsCurrent()); + Copied: branches/2018Q2/www/waterfox/files/patch-bug1464829 (from r471332, head/www/waterfox/files/patch-bug1464829) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1464829 Sat Jun 2 00:35:58 2018 (r471333, copy of r471332, head/www/waterfox/files/patch-bug1464829) @@ -0,0 +1,55 @@ +commit 325496dfe42a +Author: Nicolas B. Pierron +Date: Thu May 31 14:22:14 2018 +0200 + + Bug 1464829 - Ensure the recover instruction vector has the expected size. r=jandem, a=jcristau + + --HG-- + extra : source : 931f3ee17589096df1e87223362051c0aec26931 + extra : intermediate-source : eab56078999a914abc3cf9ac16ca2ca7c06548d8 +--- + js/src/jit/JitFrameIterator.h | 2 -- + js/src/jit/JitFrames.cpp | 4 +--- + 2 files changed, 1 insertion(+), 5 deletions(-) + +diff --git js/src/jit/JitFrameIterator.h js/src/jit/JitFrameIterator.h +index ba5efef6a5438..3620badbda07e 100644 +--- js/src/jit/JitFrameIterator.h ++++ js/src/jit/JitFrameIterator.h +@@ -322,9 +322,7 @@ class RInstructionResults + + MOZ_MUST_USE bool init(JSContext* cx, uint32_t numResults); + bool isInitialized() const; +-#ifdef DEBUG + size_t length() const; +-#endif + + JitFrameLayout* frame() const; + +diff --git js/src/jit/JitFrames.cpp js/src/jit/JitFrames.cpp +index 646442b4c0358..dbb080e3d08d7 100644 +--- js/src/jit/JitFrames.cpp ++++ js/src/jit/JitFrames.cpp +@@ -1621,13 +1621,11 @@ RInstructionResults::isInitialized() const + return initialized_; + } + +-#ifdef DEBUG + size_t + RInstructionResults::length() const + { + return results_->length(); + } +-#endif + + JitFrameLayout* + RInstructionResults::frame() const +@@ -2083,7 +2081,7 @@ SnapshotIterator::initInstructionResults(MaybeReadFallback& fallback) + } + + MOZ_ASSERT(results->isInitialized()); +- MOZ_ASSERT(results->length() == recover_.numInstructions() - 1); ++ MOZ_RELEASE_ASSERT(results->length() == recover_.numInstructions() - 1); + instructionResults_ = results; + return true; + } Copied: branches/2018Q2/www/waterfox/files/patch-bug1464872 (from r471332, head/www/waterfox/files/patch-bug1464872) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q2/www/waterfox/files/patch-bug1464872 Sat Jun 2 00:35:58 2018 (r471333, copy of r471332, head/www/waterfox/files/patch-bug1464872) @@ -0,0 +1,96 @@ +commit c5d9b6fb8b07 +Author: Jon Coppeard +Date: Thu May 31 09:27:29 2018 +0100 + + Bug 1464872 - Add forward zone edge for debugger object when calculating sweep groups. r=sfink, a=RyanVM + + --HG-- + extra : rebase_source : 4bef781c44aec09e4e8cd13b4131f26548a9f5dc + extra : source : 2d1e3d80489de3ac0ab0fef04f20cee5b117cbac +--- + js/src/jit-test/tests/gc/bug-1464872.js | 14 ++++++++++ + js/src/vm/Debugger.cpp | 47 +++++++++++++++++++++------------ + 2 files changed, 44 insertions(+), 17 deletions(-) + +diff --git js/src/jit-test/tests/gc/bug-1464872.js js/src/jit-test/tests/gc/bug-1464872.js +new file mode 100644 +index 0000000000000..433e4a1314ce5 +--- /dev/null ++++ js/src/jit-test/tests/gc/bug-1464872.js +@@ -0,0 +1,14 @@ ++var g = newGlobal(); ++var dbg = Debugger(g); ++dbg.onEnterFrame = function(frame) {}; ++ ++var g2 = newGlobal(); ++g2[g] = g; ++g2.evaluate("grayRoot()") ++g2 = undefined; ++ ++g = undefined; ++dbg = undefined; ++ ++gc(); ++startgc(100000); +diff --git js/src/vm/Debugger.cpp js/src/vm/Debugger.cpp +index 09b82b9a60d48..26afc6e84f4b4 100644 +--- js/src/vm/Debugger.cpp ++++ js/src/vm/Debugger.cpp +@@ -3282,26 +3282,39 @@ Debugger::detachAllDebuggersFromGlobal(FreeOp* fop, GlobalObject* global) + /* static */ void + Debugger::findZoneEdges(Zone* zone, js::gc::ZoneComponentFinder& finder) + { +- /* +- * For debugger cross compartment wrappers, add edges in the opposite +- * direction to those already added by JSCompartment::findOutgoingEdges. +- * This ensure that debuggers and their debuggees are finalized in the same +- * group. +- */ + for (ZoneGroupsIter group(zone->runtimeFromActiveCooperatingThread()); !group.done(); group.next()) { + for (Debugger* dbg : group->debuggerList()) { +- Zone* w = dbg->object->zone(); +- if (w == zone || !w->isGCMarking()) +- continue; +- if (dbg->debuggeeZones.has(zone) || +- dbg->scripts.hasKeyInZone(zone) || +- dbg->sources.hasKeyInZone(zone) || +- dbg->objects.hasKeyInZone(zone) || +- dbg->environments.hasKeyInZone(zone) || +- dbg->wasmInstanceScripts.hasKeyInZone(zone) || +- dbg->wasmInstanceSources.hasKeyInZone(zone)) +- { +- finder.addEdgeTo(w); ++ Zone* debuggerZone = dbg->object->zone(); ++ if (!debuggerZone->isGCMarking()) ++ continue; ++ ++ if (debuggerZone == zone) { ++ /* ++ * Add edges to debuggee zones. These are weak references that are ++ * not in the cross compartment wrapper map. ++ */ ++ for (auto e = dbg->debuggeeZones.all(); !e.empty(); e.popFront()) { ++ Zone* debuggeeZone = e.front(); ++ if (debuggeeZone->isGCMarking()) ++ finder.addEdgeTo(debuggeeZone); ++ } ++ } else { ++ /* ++ * For debugger cross compartment wrappers, add edges in the ++ * opposite direction to those already added by ++ * JSCompartment::findOutgoingEdges and above. This ensure that ++ * debuggers and their debuggees are finalized in the same group. ++ */ ++ if (dbg->debuggeeZones.has(zone) || ++ dbg->scripts.hasKeyInZone(zone) || ++ dbg->sources.hasKeyInZone(zone) || ++ dbg->objects.hasKeyInZone(zone) || ++ dbg->environments.hasKeyInZone(zone) || ++ dbg->wasmInstanceScripts.hasKeyInZone(zone) || ++ dbg->wasmInstanceSources.hasKeyInZone(zone)) ++ { ++ finder.addEdgeTo(debuggerZone); ++ } + } + } + }