Date: Mon, 5 Feb 2018 23:49:19 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-branches@freebsd.org Subject: svn commit: r461027 - in branches/2018Q1/www/waterfox: . files Message-ID: <201802052349.w15NnJd5060876@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Mon Feb 5 23:49:18 2018 New Revision: 461027 URL: https://svnweb.freebsd.org/changeset/ports/461027 Log: MFH: r461026 www/waterfox: apply more FF57 fixes Approved by: ports-secteam blanket Added: branches/2018Q1/www/waterfox/files/patch-bug1356854 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1356854 branches/2018Q1/www/waterfox/files/patch-bug1357523 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1357523 branches/2018Q1/www/waterfox/files/patch-bug1373371 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1373371 branches/2018Q1/www/waterfox/files/patch-bug1385013 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1385013 branches/2018Q1/www/waterfox/files/patch-bug1387079 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1387079 branches/2018Q1/www/waterfox/files/patch-bug1393627 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1393627 branches/2018Q1/www/waterfox/files/patch-bug1397989 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1397989 branches/2018Q1/www/waterfox/files/patch-bug1398806 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1398806 branches/2018Q1/www/waterfox/files/patch-bug1400674 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1400674 branches/2018Q1/www/waterfox/files/patch-bug1401522 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1401522 branches/2018Q1/www/waterfox/files/patch-bug1401876 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1401876 branches/2018Q1/www/waterfox/files/patch-bug1402871 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1402871 branches/2018Q1/www/waterfox/files/patch-bug1403349 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1403349 branches/2018Q1/www/waterfox/files/patch-bug1403466 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1403466 branches/2018Q1/www/waterfox/files/patch-bug1404568 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1404568 branches/2018Q1/www/waterfox/files/patch-bug1404651 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1404651 branches/2018Q1/www/waterfox/files/patch-bug1405199 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1405199 branches/2018Q1/www/waterfox/files/patch-bug1405655 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1405655 branches/2018Q1/www/waterfox/files/patch-bug1405761 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1405761 branches/2018Q1/www/waterfox/files/patch-bug1405878 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1405878 branches/2018Q1/www/waterfox/files/patch-bug1406222 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406222 branches/2018Q1/www/waterfox/files/patch-bug1406229 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406229 branches/2018Q1/www/waterfox/files/patch-bug1406254 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406254 branches/2018Q1/www/waterfox/files/patch-bug1406396 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406396 branches/2018Q1/www/waterfox/files/patch-bug1406474 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406474 branches/2018Q1/www/waterfox/files/patch-bug1406859 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1406859 branches/2018Q1/www/waterfox/files/patch-bug1407092 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407092 branches/2018Q1/www/waterfox/files/patch-bug1407243 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407243 branches/2018Q1/www/waterfox/files/patch-bug1407245 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407245 branches/2018Q1/www/waterfox/files/patch-bug1407414 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407414 branches/2018Q1/www/waterfox/files/patch-bug1407680 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407680 branches/2018Q1/www/waterfox/files/patch-bug1407936 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1407936 branches/2018Q1/www/waterfox/files/patch-bug1408397 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1408397 branches/2018Q1/www/waterfox/files/patch-bug1408672 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1408672 branches/2018Q1/www/waterfox/files/patch-bug1409101 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1409101 branches/2018Q1/www/waterfox/files/patch-bug1409277 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1409277 branches/2018Q1/www/waterfox/files/patch-bug1409496 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1409496 branches/2018Q1/www/waterfox/files/patch-bug1409649 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1409649 branches/2018Q1/www/waterfox/files/patch-bug1410146 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1410146 branches/2018Q1/www/waterfox/files/patch-bug1410420 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1410420 branches/2018Q1/www/waterfox/files/patch-bug1410457 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1410457 branches/2018Q1/www/waterfox/files/patch-bug1410634 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1410634 branches/2018Q1/www/waterfox/files/patch-bug1410808 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1410808 branches/2018Q1/www/waterfox/files/patch-bug1412011 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1412011 branches/2018Q1/www/waterfox/files/patch-bug1412741 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1412741 branches/2018Q1/www/waterfox/files/patch-bug1414292 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1414292 branches/2018Q1/www/waterfox/files/patch-bug1418152 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1418152 branches/2018Q1/www/waterfox/files/patch-bug1434580 - copied unchanged from r461026, head/www/waterfox/files/patch-bug1434580 branches/2018Q1/www/waterfox/files/patch-bug895096 - copied unchanged from r461026, head/www/waterfox/files/patch-bug895096 Modified: branches/2018Q1/www/waterfox/Makefile Directory Properties: branches/2018Q1/ (props changed) Modified: branches/2018Q1/www/waterfox/Makefile ============================================================================== --- branches/2018Q1/www/waterfox/Makefile Mon Feb 5 23:47:58 2018 (r461026) +++ branches/2018Q1/www/waterfox/Makefile Mon Feb 5 23:49:18 2018 (r461027) @@ -2,6 +2,7 @@ PORTNAME= waterfox DISTVERSION= 56.0.4 +PORTREVISION= 1 CATEGORIES= www ipv6 MAINTAINER= jbeich@FreeBSD.org Copied: branches/2018Q1/www/waterfox/files/patch-bug1356854 (from r461026, head/www/waterfox/files/patch-bug1356854) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1356854 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1356854) @@ -0,0 +1,28 @@ +commit 6435e5f65538 +Author: Thomas Nguyen <tnguyen@mozilla.com> +Date: Thu Sep 21 16:39:36 2017 +0800 + + Bug 1356854 - Check mFD is not null before PR_Write. r=mcmanus, a=ritu + + MozReview-Commit-ID: INoTUvPpPrs + + --HG-- + extra : source : 638f326530b719ce386bb5d1701fed4ae4604690 +--- + netwerk/base/nsFileStreams.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git netwerk/base/nsFileStreams.cpp netwerk/base/nsFileStreams.cpp +index ac259c1c7e94..6be501456656 100644 +--- netwerk/base/nsFileStreams.cpp ++++ netwerk/base/nsFileStreams.cpp +@@ -378,6 +378,9 @@ nsFileStreamBase::DoPendingOpen() + + case eOpened: + MOZ_ASSERT(mFD); ++ if (NS_WARN_IF(!mFD)) { ++ return NS_ERROR_FAILURE; ++ } + return NS_OK; + + case eClosed: Copied: branches/2018Q1/www/waterfox/files/patch-bug1357523 (from r461026, head/www/waterfox/files/patch-bug1357523) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1357523 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1357523) @@ -0,0 +1,96 @@ +commit ad103dfd3abe +Author: Prathiksha <prathikshaprasadsuman@gmail.com> +Date: Fri Sep 15 22:08:12 2017 +0530 + + Bug 1357523 - Make about:home and about:newtab search box search for the value in the search textbox when we use non-default search engines. r=nhnt11, a=ritu + + MozReview-Commit-ID: CdgqghkmXau + + --HG-- + extra : source : e029590936c56ac269d68610ab389ab25887b6e1 +--- + browser/base/content/contentSearchUI.js | 2 ++ + .../test/general/browser_contentSearchUI.js | 30 +++++----------------- + 2 files changed, 9 insertions(+), 23 deletions(-) + +diff --git browser/base/content/contentSearchUI.js browser/base/content/contentSearchUI.js +index bacb985fb6ee..ffada60c3571 100644 +--- browser/base/content/contentSearchUI.js ++++ browser/base/content/contentSearchUI.js +@@ -478,6 +478,8 @@ ContentSearchUIController.prototype = { + _onMousemove(event) { + let idx = this._indexOfTableItem(event.target); + if (idx >= this.numSuggestions) { ++ // Deselect any search suggestion that has been selected. ++ this.selectedIndex = -1; + this.selectedButtonIndex = idx - this.numSuggestions; + return; + } +diff --git browser/base/content/test/general/browser_contentSearchUI.js browser/base/content/test/general/browser_contentSearchUI.js +index 51538b29e27f..85b65d40bf0b 100644 +--- browser/base/content/test/general/browser_contentSearchUI.js ++++ browser/base/content/test/general/browser_contentSearchUI.js +@@ -300,13 +300,13 @@ add_task(async function mouse() { + checkState(state, "x", ["xfoo", "xbar"], 1); + + state = await msg("mousemove", 2); +- checkState(state, "x", ["xfoo", "xbar"], 1, 0); ++ checkState(state, "x", ["xfoo", "xbar"], 2, 0); + + state = await msg("mousemove", 3); +- checkState(state, "x", ["xfoo", "xbar"], 1, 1); ++ checkState(state, "x", ["xfoo", "xbar"], 3, 1); + + state = await msg("mousemove", -1); +- checkState(state, "x", ["xfoo", "xbar"], 1); ++ checkState(state, "x", ["xfoo", "xbar"], -1); + + await msg("reset"); + await setUp(); +@@ -318,10 +318,10 @@ add_task(async function mouse() { + checkState(state, "x", ["xfoo", "xbar"], 0); + + state = await msg("mousemove", 2); +- checkState(state, "x", ["xfoo", "xbar"], 0, 0); ++ checkState(state, "x", ["xfoo", "xbar"], 2, 0); + + state = await msg("mousemove", -1); +- checkState(state, "x", ["xfoo", "xbar"], 0); ++ checkState(state, "x", ["xfoo", "xbar"], -1); + + await msg("reset"); + }); +@@ -510,24 +510,7 @@ add_task(async function search() { + await setUp(); + + // Test selecting a suggestion, then clicking a one-off without deselecting the +- // suggestion. +- await msg("key", { key: "x", waitForSuggestions: true }); +- p = msg("waitForSearch"); +- await msg("mousemove", 1); +- await msg("mousemove", 3); +- await msg("click", { eltIdx: 3, modifiers }); +- mesg = await p; +- eventData.searchString = "xfoo" +- eventData.selection = { +- index: 1, +- kind: "mouse", +- }; +- SimpleTest.isDeeply(eventData, mesg, "Search event data"); +- +- await promiseTab(); +- await setUp(); +- +- // Same as above, but with the keyboard. ++ // suggestion, using the keyboard. + delete modifiers.button; + await msg("key", { key: "x", waitForSuggestions: true }); + p = msg("waitForSearch"); +@@ -536,6 +519,7 @@ add_task(async function search() { + await msg("key", "VK_TAB"); + await msg("key", { key: "VK_RETURN", modifiers }); + mesg = await p; ++ eventData.searchString = "xfoo"; + eventData.selection = { + index: 1, + kind: "key", Copied: branches/2018Q1/www/waterfox/files/patch-bug1373371 (from r461026, head/www/waterfox/files/patch-bug1373371) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1373371 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1373371) @@ -0,0 +1,44 @@ +commit 94b1df91cc7f +Author: Eric Rahm <erahm@mozilla.com> +Date: Mon Jun 19 17:09:54 2017 -0700 + + Bug 1373371 - Properly convert index in RemoveElementsAt. r=froydnj, a=ritu + + MozReview-Commit-ID: 2CRrUmOxA9B + + --HG-- + extra : source : 337103b85c025be555c107c7710ebe25d2feb6ed +--- + xpcom/ds/nsTArray.h | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +diff --git xpcom/ds/nsTArray.h xpcom/ds/nsTArray.h +index 4e9b57126bfb..e0244846aca3 100644 +--- xpcom/ds/nsTArray.h ++++ xpcom/ds/nsTArray.h +@@ -13,6 +13,7 @@ + #include "mozilla/Assertions.h" + #include "mozilla/Attributes.h" + #include "mozilla/BinarySearch.h" ++#include "mozilla/CheckedInt.h" + #include "mozilla/fallible.h" + #include "mozilla/MathAlgorithms.h" + #include "mozilla/MemoryReporting.h" +@@ -2053,9 +2054,14 @@ void + nsTArray_Impl<E, Alloc>::RemoveElementsAt(index_type aStart, size_type aCount) + { + MOZ_ASSERT(aCount == 0 || aStart < Length(), "Invalid aStart index"); +- MOZ_ASSERT(aStart + aCount <= Length(), "Invalid length"); +- // Check that the previous assert didn't overflow +- MOZ_ASSERT(aStart <= aStart + aCount, "Start index plus length overflows"); ++ ++ mozilla::CheckedInt<index_type> rangeEnd = aStart; ++ rangeEnd += aCount; ++ ++ if (MOZ_UNLIKELY(!rangeEnd.isValid() || rangeEnd.value() > Length())) { ++ InvalidArrayIndex_CRASH(aStart, Length()); ++ } ++ + DestructRange(aStart, aCount); + this->template ShiftData<InfallibleAlloc>(aStart, aCount, 0, + sizeof(elem_type), Copied: branches/2018Q1/www/waterfox/files/patch-bug1385013 (from r461026, head/www/waterfox/files/patch-bug1385013) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1385013 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1385013) @@ -0,0 +1,92 @@ +commit 09e1ad759b21 +Author: Hiroyuki Ikezoe <hikezoe@mozilla.com> +Date: Wed Oct 18 10:43:22 2017 +0900 + + Bug 1385013 - Check all vertexes for the target frame are outside of the parent frame if the target frame is empty. r=birtles, a=ritu + + We create empty rectangle (zero-height or zero-width) frame for element which + has no content inside it, e.g. '<p></p>'. And nsRect.Intersects returns false + if either of the rectangles are empty, so if we check + !transformedRect.Intersects(scrollableRect) and transformedRect is empty, we + will end up returning true from IsFrameScrolledOutOfView even though the point + represented by the empty transformedRect might be inside the + scrollableRect. + + The reftest causes timeout without this fix since the animation never updates + after the initial paint. + + MozReview-Commit-ID: FymFJfjxyGc + + --HG-- + extra : source : 69e2ab081d3d71ef131f0ce878ee7830ae881d08 +--- + layout/generic/nsFrame.cpp | 11 +++++++++- + .../animation-on-empty-height-frame.html | 25 ++++++++++++++++++++++ + layout/reftests/css-animations/reftest.list | 1 + + 3 files changed, 36 insertions(+), 1 deletion(-) + +diff --git layout/generic/nsFrame.cpp layout/generic/nsFrame.cpp +index dbfd61b7e142..991ccbceeb65 100644 +--- layout/generic/nsFrame.cpp ++++ layout/generic/nsFrame.cpp +@@ -10555,7 +10555,16 @@ IsFrameScrolledOutOfView(nsIFrame *aFrame) + scrollableParent); + + nsRect scrollableRect = scrollableParent->GetVisualOverflowRect(); +- if (!transformedRect.Intersects(scrollableRect)) { ++ if (transformedRect.IsEmpty()) { ++ // If the transformed rect is empty it represents a line or a point that we ++ // should check is outside the the scrollable rect. ++ if (transformedRect.x > scrollableRect.XMost() || ++ transformedRect.y > scrollableRect.YMost() || ++ scrollableRect.x > transformedRect.XMost() || ++ scrollableRect.y > transformedRect.YMost()) { ++ return true; ++ } ++ } else if (!transformedRect.Intersects(scrollableRect)) { + return true; + } + +diff --git layout/reftests/css-animations/animation-on-empty-height-frame.html layout/reftests/css-animations/animation-on-empty-height-frame.html +new file mode 100644 +index 000000000000..eb3f58127b16 +--- /dev/null ++++ layout/reftests/css-animations/animation-on-empty-height-frame.html +@@ -0,0 +1,25 @@ ++<!DOCTYPE html> ++<html class="reftest-wait reftest-no-flush"> ++<style> ++@keyframes anim { ++ from { background-color: white; } ++ to { background-color: red; } ++} ++</style> ++<body> ++</body> ++<script> ++window.addEventListener('load', () => { ++ const body = document.querySelector('body'); ++ body.style.animation = 'anim 100s step-end reverse'; ++ body.addEventListener('animationstart', () => { ++ // This MozAfterPaint event corresponds to the white background paint. ++ // (The animation will initially paint the background red since it is playing ++ // a step-end animation in reverse.) ++ window.addEventListener('MozAfterPaint', () => { ++ document.documentElement.classList.remove('reftest-wait'); ++ }, {once: true}); ++ }); ++}); ++</script> ++</html> +diff --git layout/reftests/css-animations/reftest.list layout/reftests/css-animations/reftest.list +index 61e3e9ea6101..ed615645f707 100644 +--- layout/reftests/css-animations/reftest.list ++++ layout/reftests/css-animations/reftest.list +@@ -4,6 +4,7 @@ skip-if(stylo) fails == print-no-animations.html print-no-animations-ref.html # + skip-if(stylo) fails != print-no-animations.html print-no-animations-notref.html # reftest harness doesn't actually make pres context non-dynamic for reftest-paged tests. Bug 1374154 for stylo + == animate-opacity.html animate-opacity-ref.html + == animate-preserves3d.html animate-preserves3d-ref.html ++== animation-on-empty-height-frame.html about:blank + == in-visibility-hidden-animation.html in-visibility-hidden-animation-ref.html + == in-visibility-hidden-animation-pseudo-element.html in-visibility-hidden-animation-pseudo-element-ref.html + == partially-out-of-view-animation.html partially-out-of-view-animation-ref.html Copied: branches/2018Q1/www/waterfox/files/patch-bug1387079 (from r461026, head/www/waterfox/files/patch-bug1387079) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1387079 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1387079) @@ -0,0 +1,42 @@ +commit 8845b3243fcd +Author: Lee Salzman <lsalzman@mozilla.com> +Date: Tue Oct 10 15:49:13 2017 -0400 + + Bug 1387079 - Only use SkRasterPipeline when SkJumper is accelerated. r=jrmuizel, a=ritu + + MozReview-Commit-ID: 13dd2Ap4sob + + --HG-- + extra : source : 32227656b09dfb5d7c5412c799c7081dbc49346c +--- + gfx/skia/skia/src/core/SkBlitter.cpp | 2 ++ + .../mozilla/mozilla-central-reftests/masking/mask-mode-d.html.ini | 4 +++- + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git gfx/skia/skia/src/core/SkBlitter.cpp gfx/skia/skia/src/core/SkBlitter.cpp +index 0e8bd2db2249..3a824bb724f7 100644 +--- gfx/skia/skia/src/core/SkBlitter.cpp ++++ gfx/skia/skia/src/core/SkBlitter.cpp +@@ -847,9 +847,11 @@ SkBlitter* SkBlitter::Choose(const SkPixmap& device, + return alloc->make<SkA8_Coverage_Blitter>(device, *paint); + } + ++#if (!defined(SK_JUMPER_USE_ASSEMBLY) || SK_JUMPER_USE_ASSEMBLY) && (defined(__aarch64__) || defined(__arm__) || defined(__x86_64__) || defined(_M_X64)) + if (SkBlitter* blitter = SkCreateRasterPipelineBlitter(device, *paint, matrix, alloc)) { + return blitter; + } ++#endif + + if (nullptr == shader) { + if (mode != SkBlendMode::kSrcOver) { +diff --git testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/masking/mask-mode-d.html.ini testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/masking/mask-mode-d.html.ini +index c1246ddb4127..a02e049c3684 100644 +--- testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/masking/mask-mode-d.html.ini ++++ testing/web-platform/meta/css/vendor-imports/mozilla/mozilla-central-reftests/masking/mask-mode-d.html.ini +@@ -1,3 +1,5 @@ + [mask-mode-d.html] + type: reftest +- expected: FAIL ++ expected: ++ if (processor == "x86") and (bits == 32): PASS ++ FAIL Copied: branches/2018Q1/www/waterfox/files/patch-bug1393627 (from r461026, head/www/waterfox/files/patch-bug1393627) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1393627 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1393627) @@ -0,0 +1,30 @@ +commit 7f3f4f7f6ad3 +Author: Francois Marier <francois@mozilla.com> +Date: Fri Nov 3 11:44:43 2017 -0700 + + Bug 1393627 - Expose the full tracking protection UI preferences. r=mossop, a=ritu + + MozReview-Commit-ID: KyDBuHyDPLP + + --HG-- + extra : source : 516690579442aecc1bea191e905f019acfad5b48 +--- + browser/app/profile/firefox.js | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git browser/app/profile/firefox.js browser/app/profile/firefox.js +index 137462dc857e..9e08a0f166f9 100644 +--- browser/app/profile/firefox.js ++++ browser/app/profile/firefox.js +@@ -1511,11 +1511,7 @@ pref("browser.ping-centre.production.endpoint", "https://tiles.services.mozilla. + // Enable GMP support in the addon manager. + pref("media.gmp-provider.enabled", true); + +-#ifdef NIGHTLY_BUILD + pref("privacy.trackingprotection.ui.enabled", true); +-#else +-pref("privacy.trackingprotection.ui.enabled", false); +-#endif + pref("privacy.trackingprotection.introCount", 0); + pref("privacy.trackingprotection.introURL", "https://www.mozilla.org/%LOCALE%/firefox/%VERSION%/tracking-protection/start/"); + Copied: branches/2018Q1/www/waterfox/files/patch-bug1397989 (from r461026, head/www/waterfox/files/patch-bug1397989) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1397989 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1397989) @@ -0,0 +1,42 @@ +commit f7c4ef799832 +Author: Mike de Boer <mdeboer@mozilla.com> +Date: Tue Oct 10 19:14:01 2017 +0200 + + Bug 1397989 - Make sure to only set non-empty values as the content-type of a document in the remote browser binding. r=mconley, a=ritu + + What happens is the following: + - browser-child.js sends a statechange up to RemoteWebProgress.jsm that contains + a `documentContentType` value of `null`, along with `requestURI` and `originalRequestURI` + _after_ other state changes that did send a valid content-type. + - The content-type is used by the WebProgressListener in browser.js to toggle the + disabled state of the 'isImage' broadcaster. + - The 'isImage' broadcaster is used by the 'cmd_find' and 'cmd_findAgain' commands to + determine whether they should be enabled. In this case: not. + The fix here is to _not_ set the documentContentType in the browser binding when + it's `null`. + + MozReview-Commit-ID: IELoCrnOH0j + + --HG-- + extra : source : 4c86b1f93b8482ea3097a4edb51bb8c0e8dc67fc +--- + toolkit/modules/RemoteWebProgress.jsm | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git toolkit/modules/RemoteWebProgress.jsm toolkit/modules/RemoteWebProgress.jsm +index 04eb37d580f5..05e3dabda941 100644 +--- toolkit/modules/RemoteWebProgress.jsm ++++ toolkit/modules/RemoteWebProgress.jsm +@@ -222,7 +222,11 @@ RemoteWebProgressManager.prototype = { + + if (isTopLevel) { + this._browser._contentWindow = objects.contentWindow; +- this._browser._documentContentType = json.documentContentType; ++ // Setting a content-type back to `null` is quite nonsensical for the ++ // frontend, especially since we're not expecting it. ++ if (json.documentContentType !== null) { ++ this._browser._documentContentType = json.documentContentType; ++ } + if (typeof json.inLoadURI != "undefined") { + this._browser.inLoadURI = json.inLoadURI; + } Copied: branches/2018Q1/www/waterfox/files/patch-bug1398806 (from r461026, head/www/waterfox/files/patch-bug1398806) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1398806 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1398806) @@ -0,0 +1,438 @@ +commit 95d5501cd96b +Author: Robert Longson <longsonr@gmail.com> +Date: Tue Oct 10 07:58:34 2017 +0100 + + Bug 1398806 - GetCtx and GetNearestViewport should return the nearest svg or symbol element which is now an SVGViewportElement rather than only returning the nearest svg element because a symbol establishes a viewport too. r=dholbert, a=ritu + + --HG-- + extra : source : 813d4e250712d296eb4b11b0b89e10ed6a94e3d4 +--- + dom/svg/SVGContentUtils.cpp | 12 ++++++---- + dom/svg/SVGContentUtils.h | 5 ++-- + dom/svg/SVGLength.cpp | 2 +- + dom/svg/SVGMarkerElement.cpp | 2 +- + dom/svg/SVGMarkerElement.h | 4 ++-- + dom/svg/SVGSVGElement.h | 9 ------- + dom/svg/SVGViewportElement.h | 9 +++++++ + dom/svg/nsSVGElement.cpp | 34 +++++++++++++-------------- + dom/svg/nsSVGElement.h | 3 ++- + layout/base/nsLayoutUtils.cpp | 4 ++-- + layout/reftests/svg/reftest.list | 1 + + layout/reftests/svg/viewBox-and-symbol-01.svg | 14 +++++++++++ + layout/svg/nsCSSClipPathInstance.cpp | 1 - + layout/svg/nsSVGImageFrame.cpp | 1 - + layout/svg/nsSVGImageFrame.h | 1 - + layout/svg/nsSVGMarkerFrame.cpp | 4 ++-- + layout/svg/nsSVGMarkerFrame.h | 4 ++-- + layout/svg/nsSVGPatternFrame.cpp | 2 +- + layout/svg/nsSVGUtils.cpp | 6 ++--- + 19 files changed, 68 insertions(+), 50 deletions(-) + +diff --git dom/svg/SVGContentUtils.cpp dom/svg/SVGContentUtils.cpp +index 0f744ffd8dd1..a6bf6245e95e 100644 +--- dom/svg/SVGContentUtils.cpp ++++ dom/svg/SVGContentUtils.cpp +@@ -374,8 +374,8 @@ SVGContentUtils::EstablishesViewport(nsIContent *aContent) + nsGkAtoms::symbol); + } + +-nsSVGElement* +-SVGContentUtils::GetNearestViewportElement(nsIContent *aContent) ++SVGViewportElement* ++SVGContentUtils::GetNearestViewportElement(const nsIContent *aContent) + { + nsIContent *element = aContent->GetFlattenedTreeParent(); + +@@ -384,7 +384,11 @@ SVGContentUtils::GetNearestViewportElement(nsIContent *aContent) + if (element->IsSVGElement(nsGkAtoms::foreignObject)) { + return nullptr; + } +- return static_cast<nsSVGElement*>(element); ++ MOZ_ASSERT(element->IsAnyOfSVGElements(nsGkAtoms::svg, ++ nsGkAtoms::symbol), ++ "upcoming static_cast is only valid for " ++ "SVGViewportElement subclasses"); ++ return static_cast<SVGViewportElement*>(element); + } + element = element->GetFlattenedTreeParent(); + } +@@ -828,7 +832,7 @@ SVGContentUtils::CoordToFloat(nsSVGElement *aContent, + return nsPresContext::AppUnitsToFloatCSSPixels(aCoord.GetCoordValue()); + + case eStyleUnit_Percent: { +- SVGSVGElement* ctx = aContent->GetCtx(); ++ SVGViewportElement* ctx = aContent->GetCtx(); + return ctx ? aCoord.GetPercentValue() * ctx->GetLength(SVGContentUtils::XY) : 0.0f; + } + default: +diff --git dom/svg/SVGContentUtils.h dom/svg/SVGContentUtils.h +index 36c74f47d75a..8ec309daf6f8 100644 +--- dom/svg/SVGContentUtils.h ++++ dom/svg/SVGContentUtils.h +@@ -32,6 +32,7 @@ class SVGPreserveAspectRatio; + namespace dom { + class Element; + class SVGSVGElement; ++class SVGViewportElement; + } // namespace dom + + } // namespace mozilla +@@ -238,8 +239,8 @@ public: + */ + static bool EstablishesViewport(nsIContent *aContent); + +- static nsSVGElement* +- GetNearestViewportElement(nsIContent *aContent); ++ static mozilla::dom::SVGViewportElement* ++ GetNearestViewportElement(const nsIContent *aContent); + + /* enum for specifying coordinate direction for ObjectSpace/UserSpace */ + enum ctxDirection { X, Y, XY }; +diff --git dom/svg/SVGLength.cpp dom/svg/SVGLength.cpp +index 6c13e2e8d1a0..cecbbc8f5b40 100644 +--- dom/svg/SVGLength.cpp ++++ dom/svg/SVGLength.cpp +@@ -177,7 +177,7 @@ SVGLength::GetUserUnitsPerUnit(const nsSVGElement *aElement, uint8_t aAxis) cons + SVGLength::GetUserUnitsPerPercent(const nsSVGElement *aElement, uint8_t aAxis) + { + if (aElement) { +- dom::SVGSVGElement *viewportElement = aElement->GetCtx(); ++ dom::SVGViewportElement *viewportElement = aElement->GetCtx(); + if (viewportElement) { + return std::max(viewportElement->GetLength(aAxis) / 100.0f, 0.0f); + } +diff --git dom/svg/SVGMarkerElement.cpp dom/svg/SVGMarkerElement.cpp +index 9b0b2fcfab1e..c4cf29ae274f 100644 +--- dom/svg/SVGMarkerElement.cpp ++++ dom/svg/SVGMarkerElement.cpp +@@ -250,7 +250,7 @@ SVGMarkerElement::UnsetAttr(int32_t aNamespaceID, nsIAtom* aName, + // nsSVGElement methods + + void +-SVGMarkerElement::SetParentCoordCtxProvider(SVGSVGElement *aContext) ++SVGMarkerElement::SetParentCoordCtxProvider(SVGViewportElement *aContext) + { + mCoordCtx = aContext; + mViewBoxToViewportTransform = nullptr; +diff --git dom/svg/SVGMarkerElement.h dom/svg/SVGMarkerElement.h +index 5d32de840b7a..ae08885c646e 100644 +--- dom/svg/SVGMarkerElement.h ++++ dom/svg/SVGMarkerElement.h +@@ -153,7 +153,7 @@ protected: + const nsAString& aValue, + nsAttrValue& aResult) override; + +- void SetParentCoordCtxProvider(SVGSVGElement *aContext); ++ void SetParentCoordCtxProvider(SVGViewportElement *aContext); + + virtual LengthAttributesInfo GetLengthInfo() override; + virtual AngleAttributesInfo GetAngleInfo() override; +@@ -180,7 +180,7 @@ protected: + // derived properties (from 'orient') handled separately + nsSVGOrientType mOrientType; + +- SVGSVGElement *mCoordCtx; ++ SVGViewportElement* mCoordCtx; + nsAutoPtr<gfx::Matrix> mViewBoxToViewportTransform; + }; + +diff --git dom/svg/SVGSVGElement.h dom/svg/SVGSVGElement.h +index fc3d7f3b55c5..431d70da2bef 100644 +--- dom/svg/SVGSVGElement.h ++++ dom/svg/SVGSVGElement.h +@@ -182,15 +182,6 @@ public: + // SVG-as-an-image documents.) + virtual void FlushImageTransformInvalidation(); + +- svgFloatSize GetViewportSize() const { +- return svgFloatSize(mViewportWidth, mViewportHeight); +- } +- +- void SetViewportSize(const svgFloatSize& aSize) { +- mViewportWidth = aSize.width; +- mViewportHeight = aSize.height; +- } +- + private: + // SVGViewportElement methods: + +diff --git dom/svg/SVGViewportElement.h dom/svg/SVGViewportElement.h +index fbc866e6a8d2..202797785131 100644 +--- dom/svg/SVGViewportElement.h ++++ dom/svg/SVGViewportElement.h +@@ -127,6 +127,15 @@ public: + + gfx::Matrix GetViewBoxTransform() const; + ++ svgFloatSize GetViewportSize() const { ++ return svgFloatSize(mViewportWidth, mViewportHeight); ++ } ++ ++ void SetViewportSize(const svgFloatSize& aSize) { ++ mViewportWidth = aSize.width; ++ mViewportHeight = aSize.height; ++ } ++ + // WebIDL + already_AddRefed<SVGAnimatedRect> ViewBox(); + already_AddRefed<DOMSVGAnimatedPreserveAspectRatio> PreserveAspectRatio(); +diff --git dom/svg/nsSVGElement.cpp dom/svg/nsSVGElement.cpp +index 8757150c5925..a8aaa2fb5274 100644 +--- dom/svg/nsSVGElement.cpp ++++ dom/svg/nsSVGElement.cpp +@@ -1107,7 +1107,20 @@ nsSVGElement::GetOwnerSVGElement(nsIDOMSVGElement * *aOwnerSVGElement) + SVGSVGElement* + nsSVGElement::GetOwnerSVGElement() + { +- return GetCtx(); // this may return nullptr ++ nsIContent* ancestor = GetFlattenedTreeParent(); ++ ++ while (ancestor && ancestor->IsSVGElement()) { ++ if (ancestor->IsSVGElement(nsGkAtoms::foreignObject)) { ++ return nullptr; ++ } ++ if (ancestor->IsSVGElement(nsGkAtoms::svg)) { ++ return static_cast<SVGSVGElement*>(ancestor); ++ } ++ ancestor = ancestor->GetFlattenedTreeParent(); ++ } ++ ++ // we don't have an ancestor <svg> element... ++ return nullptr; + } + + NS_IMETHODIMP +@@ -1543,23 +1556,10 @@ nsIAtom* nsSVGElement::GetEventNameForAttr(nsIAtom* aAttr) + return aAttr; + } + +-SVGSVGElement * ++SVGViewportElement * + nsSVGElement::GetCtx() const + { +- nsIContent* ancestor = GetFlattenedTreeParent(); +- +- while (ancestor && ancestor->IsSVGElement()) { +- if (ancestor->IsSVGElement(nsGkAtoms::foreignObject)) { +- return nullptr; +- } +- if (ancestor->IsSVGElement(nsGkAtoms::svg)) { +- return static_cast<SVGSVGElement*>(ancestor); +- } +- ancestor = ancestor->GetFlattenedTreeParent(); +- } +- +- // we don't have an ancestor <svg> element... +- return nullptr; ++ return SVGContentUtils::GetNearestViewportElement(this); + } + + /* virtual */ gfxMatrix +@@ -1658,7 +1658,7 @@ nsSVGElement::GetAnimatedLengthValues(float *aFirst, ...) + NS_ASSERTION(info.mLengthCount > 0, + "GetAnimatedLengthValues on element with no length attribs"); + +- SVGSVGElement *ctx = nullptr; ++ SVGViewportElement *ctx = nullptr; + + float *f = aFirst; + uint32_t i = 0; +diff --git dom/svg/nsSVGElement.h dom/svg/nsSVGElement.h +index 28c46188d4e4..955a327561d3 100644 +--- dom/svg/nsSVGElement.h ++++ dom/svg/nsSVGElement.h +@@ -44,6 +44,7 @@ class DeclarationBlock; + + namespace dom { + class SVGSVGElement; ++class SVGViewportElement; + + static const unsigned short SVG_UNIT_TYPE_UNKNOWN = 0; + static const unsigned short SVG_UNIT_TYPE_USERSPACEONUSE = 1; +@@ -145,7 +146,7 @@ public: + // Gets the element that establishes the rectangular viewport against which + // we should resolve percentage lengths (our "coordinate context"). Returns + // nullptr for outer <svg> or SVG without an <svg> parent (invalid SVG). +- mozilla::dom::SVGSVGElement* GetCtx() const; ++ mozilla::dom::SVGViewportElement* GetCtx() const; + + /** + * Returns aMatrix pre-multiplied by (explicit or implicit) transforms that +diff --git layout/base/nsLayoutUtils.cpp layout/base/nsLayoutUtils.cpp +index f5ca2719e333..7f3f5354befc 100644 +--- layout/base/nsLayoutUtils.cpp ++++ layout/base/nsLayoutUtils.cpp +@@ -120,7 +120,7 @@ + #include "mozilla/StyleSetHandle.h" + #include "mozilla/StyleSetHandleInlines.h" + #include "RegionBuilder.h" +-#include "SVGSVGElement.h" ++#include "SVGViewportElement.h" + #include "DisplayItemClip.h" + #include "mozilla/layers/WebRenderLayerManager.h" + #include "prenv.h" +@@ -9479,7 +9479,7 @@ ComputeSVGReferenceRect(nsIFrame* aFrame, + case StyleGeometryBox::ViewBox: { + nsIContent* content = aFrame->GetContent(); + nsSVGElement* element = static_cast<nsSVGElement*>(content); +- SVGSVGElement* svgElement = element->GetCtx(); ++ SVGViewportElement* svgElement = element->GetCtx(); + MOZ_ASSERT(svgElement); + + if (svgElement && svgElement->HasViewBoxRect()) { +diff --git layout/reftests/svg/reftest.list layout/reftests/svg/reftest.list +index 2d3981f0b65e..0b96144724bb 100644 +--- layout/reftests/svg/reftest.list ++++ layout/reftests/svg/reftest.list +@@ -532,6 +532,7 @@ fuzzy-if(skiaContent,1,100) == tspan-xy-anchor-end-01.svg tspan-xy-anchor-end-re + == viewBox-and-pattern-02.svg pass.svg + == viewBox-and-pattern-03.svg pass.svg + == viewBox-and-pattern-04.svg pass.svg ++== viewBox-and-symbol-01.svg pass.svg + == viewBox-invalid-01.svg pass.svg + == viewBox-invalid-02.svg pass.svg + == viewBox-valid-01.svg pass.svg +diff --git layout/reftests/svg/viewBox-and-symbol-01.svg layout/reftests/svg/viewBox-and-symbol-01.svg +new file mode 100644 +index 000000000000..5c8ebf7bc3ea +--- /dev/null ++++ layout/reftests/svg/viewBox-and-symbol-01.svg +@@ -0,0 +1,14 @@ ++<svg xmlns="http://www.w3.org/2000/svg"> ++ <defs> ++ <symbol id="mySymbol" viewBox="0 0 20 20"> ++ <rect fill="lime" x="50%" height="20px" width="3%"/> ++ </symbol> ++ </defs> ++ <rect width="100%" height="100%" fill="lime"/> ++ <svg viewBox="0 0 20 20"> ++ <rect fill="red" x="50%" height="20px" width="2%"/> ++ </svg> ++ <svg> ++ <use href="#mySymbol"/> ++ </svg> ++</svg> +diff --git layout/svg/nsCSSClipPathInstance.cpp layout/svg/nsCSSClipPathInstance.cpp +index 09d3530c4ef0..0c25f7a21bb8 100644 +--- layout/svg/nsCSSClipPathInstance.cpp ++++ layout/svg/nsCSSClipPathInstance.cpp +@@ -9,7 +9,6 @@ + #include "gfx2DGlue.h" + #include "gfxContext.h" + #include "gfxPlatform.h" +-#include "mozilla/dom/SVGSVGElement.h" + #include "mozilla/gfx/2D.h" + #include "mozilla/gfx/PathHelpers.h" + #include "mozilla/ShapeUtils.h" +diff --git layout/svg/nsSVGImageFrame.cpp layout/svg/nsSVGImageFrame.cpp +index 074415854667..21834954721d 100644 +--- layout/svg/nsSVGImageFrame.cpp ++++ layout/svg/nsSVGImageFrame.cpp +@@ -16,7 +16,6 @@ + #include "nsLayoutUtils.h" + #include "imgINotificationObserver.h" + #include "nsSVGEffects.h" +-#include "mozilla/dom/SVGSVGElement.h" + #include "nsSVGUtils.h" + #include "SVGContentUtils.h" + #include "SVGGeometryFrame.h" +diff --git layout/svg/nsSVGImageFrame.h layout/svg/nsSVGImageFrame.h +index b2c90fd6402d..fe0ac33ac02a 100644 +--- layout/svg/nsSVGImageFrame.h ++++ layout/svg/nsSVGImageFrame.h +@@ -17,7 +17,6 @@ + #include "nsLayoutUtils.h" + #include "imgINotificationObserver.h" + #include "nsSVGEffects.h" +-#include "mozilla/dom/SVGSVGElement.h" + #include "nsSVGUtils.h" + #include "SVGContentUtils.h" + #include "SVGGeometryFrame.h" +diff --git layout/svg/nsSVGMarkerFrame.cpp layout/svg/nsSVGMarkerFrame.cpp +index dbeb02ea5b2d..365a0aa70a26 100644 +--- layout/svg/nsSVGMarkerFrame.cpp ++++ layout/svg/nsSVGMarkerFrame.cpp +@@ -194,7 +194,7 @@ nsSVGMarkerFrame::GetMarkBBoxContribution(const Matrix& aToBBoxUserspace, + } + + void +-nsSVGMarkerFrame::SetParentCoordCtxProvider(SVGSVGElement *aContext) ++nsSVGMarkerFrame::SetParentCoordCtxProvider(SVGViewportElement *aContext) + { + SVGMarkerElement *marker = static_cast<SVGMarkerElement*>(mContent); + marker->SetParentCoordCtxProvider(aContext); +@@ -219,7 +219,7 @@ nsSVGMarkerFrame::AutoMarkerReferencer::AutoMarkerReferencer( + mFrame->mInUse = true; + mFrame->mMarkedFrame = aMarkedFrame; + +- SVGSVGElement *ctx = ++ SVGViewportElement *ctx = + static_cast<nsSVGElement*>(aMarkedFrame->GetContent())->GetCtx(); + mFrame->SetParentCoordCtxProvider(ctx); + } +diff --git layout/svg/nsSVGMarkerFrame.h layout/svg/nsSVGMarkerFrame.h +index 95415e6dcc21..03099eab9324 100644 +--- layout/svg/nsSVGMarkerFrame.h ++++ layout/svg/nsSVGMarkerFrame.h +@@ -20,7 +20,7 @@ class gfxContext; + namespace mozilla { + class SVGGeometryFrame; + namespace dom { +-class SVGSVGElement; ++class SVGViewportElement; + } // namespace dom + } // namespace mozilla + +@@ -119,7 +119,7 @@ private: + }; + + // nsSVGMarkerFrame methods: +- void SetParentCoordCtxProvider(mozilla::dom::SVGSVGElement *aContext); ++ void SetParentCoordCtxProvider(mozilla::dom::SVGViewportElement *aContext); + + // recursion prevention flag + bool mInUse; +diff --git layout/svg/nsSVGPatternFrame.cpp layout/svg/nsSVGPatternFrame.cpp +index 488ac2f5c783..5078fb1b5a31 100644 +--- layout/svg/nsSVGPatternFrame.cpp ++++ layout/svg/nsSVGPatternFrame.cpp +@@ -660,7 +660,7 @@ nsSVGPatternFrame::ConstructCTM(const nsSVGViewBox& aViewBox, + const Matrix &callerCTM, + nsIFrame *aTarget) + { +- SVGSVGElement *ctx = nullptr; ++ SVGViewportElement *ctx = nullptr; + nsIContent* targetContent = aTarget->GetContent(); + gfxFloat scaleX, scaleY; + +diff --git layout/svg/nsSVGUtils.cpp layout/svg/nsSVGUtils.cpp +index d53a3ede0be7..f21c23491285 100644 +--- layout/svg/nsSVGUtils.cpp ++++ layout/svg/nsSVGUtils.cpp +@@ -49,7 +49,7 @@ + #include "SVGGeometryElement.h" + #include "SVGGeometryFrame.h" + #include "nsSVGPaintServerFrame.h" +-#include "mozilla/dom/SVGSVGElement.h" ++#include "mozilla/dom/SVGViewportElement.h" + #include "nsTextFrame.h" + #include "SVGContentUtils.h" + #include "SVGTextFrame.h" +@@ -290,7 +290,7 @@ nsSVGUtils::GetContextSize(const nsIFrame* aFrame) + MOZ_ASSERT(aFrame->GetContent()->IsSVGElement(), "bad cast"); + const nsSVGElement* element = static_cast<nsSVGElement*>(aFrame->GetContent()); + +- SVGSVGElement* ctx = element->GetCtx(); ++ SVGViewportElement* ctx = element->GetCtx(); + if (ctx) { + size.width = ctx->GetLength(SVGContentUtils::X); + size.height = ctx->GetLength(SVGContentUtils::Y); +@@ -323,7 +323,7 @@ nsSVGUtils::ObjectSpace(const gfxRect &aRect, const nsSVGLength2 *aLength) + // Multiply first to avoid precision errors: + return axis * aLength->GetAnimValInSpecifiedUnits() / 100; + } +- return aLength->GetAnimValue(static_cast<SVGSVGElement*>(nullptr)) * axis; ++ return aLength->GetAnimValue(static_cast<SVGViewportElement*>(nullptr)) * axis; + } + + float Copied: branches/2018Q1/www/waterfox/files/patch-bug1400674 (from r461026, head/www/waterfox/files/patch-bug1400674) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1400674 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1400674) @@ -0,0 +1,70 @@ +commit c08bea16ab67 (HEAD) +Author: JW Wang <jwwang@mozilla.com> +Date: Fri Oct 13 17:24:24 2017 +0800 + + Bug 1400674 - Fix the algorithm of filling audio gaps with silence. r=jya, a=ritu + + MozReview-Commit-ID: Hjsboq6PdlN + + --HG-- + extra : source : aecaa85bb1d9d8b7d2cbd9ab84eb6dbc0ed9eee8 +--- + dom/media/mediasink/AudioSink.cpp | 37 +++++++++++++++---------------------- + 1 file changed, 15 insertions(+), 22 deletions(-) + +diff --git dom/media/mediasink/AudioSink.cpp dom/media/mediasink/AudioSink.cpp +index 0dbb53a3387a..81be7ac0bd89 100644 +--- dom/media/mediasink/AudioSink.cpp ++++ dom/media/mediasink/AudioSink.cpp +@@ -426,28 +426,21 @@ AudioSink::NotifyAudioNeeded() + missingFrames = std::min<int64_t>(INT32_MAX, missingFrames.value()); + mFramesParsed += missingFrames.value(); + +- // We need to calculate how many frames are missing at the output rate. +- missingFrames = +- SaferMultDiv(missingFrames.value(), mOutputRate, data->mRate); +- if (!missingFrames.isValid()) { +- NS_WARNING("Int overflow in AudioSink"); +- mErrored = true; +- return; +- } +- +- // We need to insert silence, first use drained frames if any. +- missingFrames -= DrainConverter(missingFrames.value()); +- // Insert silence if still needed. +- if (missingFrames.value()) { +- AlignedAudioBuffer silenceData(missingFrames.value() * mOutputChannels); +- if (!silenceData) { +- NS_WARNING("OOM in AudioSink"); +- mErrored = true; +- return; +- } +- RefPtr<AudioData> silence = CreateAudioFromBuffer(Move(silenceData), data); +- PushProcessedAudio(silence); ++ RefPtr<AudioData> silenceData; ++ AlignedAudioBuffer silenceBuffer(missingFrames.value() * data->mChannels); ++ if (!silenceBuffer) { ++ NS_WARNING("OOM in AudioSink"); ++ mErrored = true; ++ return; ++ } ++ if (mConverter->InputConfig() != mConverter->OutputConfig()) { ++ AlignedAudioBuffer convertedData = ++ mConverter->Process(AudioSampleBuffer(Move(silenceBuffer))).Forget(); ++ silenceData = CreateAudioFromBuffer(Move(convertedData), data); ++ } else { ++ silenceData = CreateAudioFromBuffer(Move(silenceBuffer), data); + } ++ PushProcessedAudio(silenceData); + } + + mLastEndTime = data->GetEndTime(); +@@ -488,7 +481,7 @@ AudioSink::PushProcessedAudio(AudioData* aData) + + already_AddRefed<AudioData> + AudioSink::CreateAudioFromBuffer(AlignedAudioBuffer&& aBuffer, +- AudioData* aReference) ++ AudioData* aReference) + { + uint32_t frames = aBuffer.Length() / mOutputChannels; + if (!frames) { Copied: branches/2018Q1/www/waterfox/files/patch-bug1401522 (from r461026, head/www/waterfox/files/patch-bug1401522) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1401522 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1401522) @@ -0,0 +1,34 @@ +commit e9d4b51968e0 +Author: Samael Wang <freesamael@gmail.com> +Date: Thu Sep 28 11:16:53 2017 +0800 + + Bug 1401522 - Don't apply statusCode sent from parent if mCanceled or mStatus has been modified in the child. r=mayhemer, a=ritu + + When a WyciwygChannel is canceled, but WyciwygChannelParent::RecvCancel happens + after WyciwygChannelParent::SendOnStartRequest, it would send statusCode=NS_OK + to WyciwygChannelChild::OnStartRequest. So we should not apply the statusCode + if mCanceled, just like how HttpChannelChild handles it. + + MozReview-Commit-ID: 5H3PUrlArIA + + --HG-- + extra : source : 8ebfa90c4ebca44ac1c3829ef54de74d3b004dfc +--- + netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp +index d14b6f925e37..85d3ebf24439 100644 +--- netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp ++++ netwerk/protocol/wyciwyg/WyciwygChannelChild.cpp +@@ -191,7 +191,9 @@ WyciwygChannelChild::OnStartRequest(const nsresult& statusCode, + + mState = WCC_ONSTART; + +- mStatus = statusCode; ++ if (!mCanceled && NS_SUCCEEDED(mStatus)) { ++ mStatus = statusCode; ++ } + mContentLength = contentLength; + mCharsetSource = source; + mCharset = charset; Copied: branches/2018Q1/www/waterfox/files/patch-bug1401876 (from r461026, head/www/waterfox/files/patch-bug1401876) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ branches/2018Q1/www/waterfox/files/patch-bug1401876 Mon Feb 5 23:49:18 2018 (r461027, copy of r461026, head/www/waterfox/files/patch-bug1401876) @@ -0,0 +1,48 @@ +commit 09ba71b3a5e9 +Author: Scott Wu <scottcwwu@gmail.com> +Date: Thu Sep 21 15:37:25 2017 +0800 + + Bug 1401876 - Part 1: Close datetime picker on popuphidden. r=mconley, a=ritu + + MozReview-Commit-ID: FUqbtAftQxh + + --HG-- + extra : source : e238860e4943cd1bb4c2c5f7175a36d494f0e91b +--- + toolkit/content/tests/browser/head.js | 1 + + toolkit/content/widgets/datetimepopup.xml | 2 +- + toolkit/modules/DateTimePickerHelper.jsm | 1 + + 3 files changed, 3 insertions(+), 1 deletion(-) + +diff --git toolkit/content/widgets/datetimepopup.xml toolkit/content/widgets/datetimepopup.xml +index 7e4e5bcfe4e8..7397e1d310d4 100644 +--- toolkit/content/widgets/datetimepopup.xml ++++ toolkit/content/widgets/datetimepopup.xml +@@ -75,7 +75,6 @@ + this.dateTimePopupFrame.removeEventListener("load", this, true); + this.dateTimePopupFrame.contentDocument.removeEventListener("message", this); + this.dateTimePopupFrame.setAttribute("src", ""); +- this.hidePopup(); + this.hidden = true; + ]]></body> + </method> +@@ -320,6 +319,7 @@ + break; + } + case "ClosePopup": { ++ this.hidePopup(); + this.closePicker(); + break; + } +diff --git toolkit/modules/DateTimePickerHelper.jsm toolkit/modules/DateTimePickerHelper.jsm +index ced4e401815b..38e89bd0d160 100644 +--- toolkit/modules/DateTimePickerHelper.jsm ++++ toolkit/modules/DateTimePickerHelper.jsm +@@ -90,6 +90,7 @@ this.DateTimePickerHelper = { *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802052349.w15NnJd5060876>