MFH: r466271

www/waterfox: apply some FF60 fixes

Approved by:	ports-secteam blanket
This commit is contained in:
Jan Beich 2018-04-03 00:51:09 +00:00
parent 70b37b7a07
commit 5865e24e27
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q2/; revision=466274
5 changed files with 298 additions and 1 deletions

View File

@ -2,7 +2,7 @@
PORTNAME= waterfox
DISTVERSION= 56.1.0
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= www ipv6
MAINTAINER= jbeich@FreeBSD.org

View File

@ -0,0 +1,82 @@
commit 4224928879ee
Author: Michael Kaply <mozilla@kaply.com>
Date: Wed Mar 14 13:30:53 2018 -0500
Bug 1372107 - Allow browser to be started despite Autoconfig errors. r=florian, a=ritu
MozReview-Commit-ID: of8cdUMedC
--HG--
extra : rebase_source : d58039b1f2e268c7a0af77e9a0680f759f203d99
extra : source : dad020b0bb45903972c2856cc3a2968f39a27635
---
extensions/pref/autoconfig/src/nsReadConfig.cpp | 27 +++++++++++++------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git extensions/pref/autoconfig/src/nsReadConfig.cpp extensions/pref/autoconfig/src/nsReadConfig.cpp
index a87b5b2c1bd4..8939fdc268eb 100644
--- extensions/pref/autoconfig/src/nsReadConfig.cpp
+++ extensions/pref/autoconfig/src/nsReadConfig.cpp
@@ -36,35 +36,35 @@ extern nsresult CentralizedAdminPrefManagerInit();
extern nsresult CentralizedAdminPrefManagerFinish();
-static void DisplayError(void)
+static nsresult DisplayError(void)
{
nsresult rv;
nsCOMPtr<nsIPromptService> promptService = do_GetService("@mozilla.org/embedcomp/prompt-service;1");
if (!promptService)
- return;
+ return NS_ERROR_FAILURE;
nsCOMPtr<nsIStringBundleService> bundleService = do_GetService(NS_STRINGBUNDLE_CONTRACTID);
if (!bundleService)
- return;
+ return NS_ERROR_FAILURE;
nsCOMPtr<nsIStringBundle> bundle;
bundleService->CreateBundle("chrome://autoconfig/locale/autoconfig.properties",
getter_AddRefs(bundle));
if (!bundle)
- return;
+ return NS_ERROR_FAILURE;
nsXPIDLString title;
rv = bundle->GetStringFromName("readConfigTitle", getter_Copies(title));
if (NS_FAILED(rv))
- return;
+ return rv;
nsXPIDLString err;
rv = bundle->GetStringFromName("readConfigMsg", getter_Copies(err));
if (NS_FAILED(rv))
- return;
+ return rv;
- promptService->Alert(nullptr, title.get(), err.get());
+ return promptService->Alert(nullptr, title.get(), err.get());
}
// nsISupports Implementation
@@ -101,12 +101,13 @@ NS_IMETHODIMP nsReadConfig::Observe(nsISupports *aSubj
if (!nsCRT::strcmp(aTopic, NS_PREFSERVICE_READ_TOPIC_ID)) {
rv = readConfigFile();
if (NS_FAILED(rv)) {
- DisplayError();
-
- nsCOMPtr<nsIAppStartup> appStartup =
- do_GetService(NS_APPSTARTUP_CONTRACTID);
- if (appStartup)
- appStartup->Quit(nsIAppStartup::eAttemptQuit);
+ rv = DisplayError();
+ if (NS_FAILED(rv)) {
+ nsCOMPtr<nsIAppStartup> appStartup =
+ do_GetService(NS_APPSTARTUP_CONTRACTID);
+ if (appStartup)
+ appStartup->Quit(nsIAppStartup::eAttemptQuit);
+ }
}
}
return rv;

View File

@ -0,0 +1,28 @@
commit 068a8c4feb56
Author: Oriol Brufau <oriol-bugzilla@hotmail.com>
Date: Fri Mar 16 16:58:36 2018 +0100
Bug 1418009 - Avoid speculative connections on prematurely inserted lazy tabs. r=dao, a=RyanVM
MozReview-Commit-ID: 3T8PLBLEGNt
--HG--
extra : rebase_source : 5839f1ede2a3d939e8bad02520979a8911f69553
extra : source : 6d67283033868a54d89a936ba5e336d9bad5c79c
---
browser/components/sessionstore/SessionStore.jsm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git browser/components/sessionstore/SessionStore.jsm browser/components/sessionstore/SessionStore.jsm
index dee998cbe7eb..88de8a64f0fc 100644
--- browser/components/sessionstore/SessionStore.jsm
+++ browser/components/sessionstore/SessionStore.jsm
@@ -3547,7 +3547,7 @@ var SessionStoreInternal = {
* a tab to speculatively connect on mouse hover.
*/
speculativeConnectOnTabHover(tab) {
- if (this._restore_on_demand && !tab.__SS_connectionPrepared && tab.hasAttribute("pending")) {
+ if (tab.__SS_lazyData && !tab.__SS_connectionPrepared) {
let url = this.getLazyTabValue(tab, "url");
let prepared = this.prepareConnectionToHost(url);
// This is used to test if a connection has been made beforehand.

View File

@ -0,0 +1,27 @@
commit 91f4336a7ddc
Author: Michal Novotny <michal.novotny@gmail.com>
Date: Mon Apr 2 12:59:18 2018 -0400
Bug 1436809 - Check that stream message was converted to string correctly. r=valentin, a=abillings
--HG--
extra : rebase_source : c81e8000cd7e41d8928e6ee0c6eb6ee823debc23
extra : source : b229809d17ff18263becfad6f9777c9ab0165279
---
netwerk/protocol/websocket/WebSocketChannel.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git netwerk/protocol/websocket/WebSocketChannel.cpp netwerk/protocol/websocket/WebSocketChannel.cpp
index a08655f95d8c..a17b2f382d23 100644
--- netwerk/protocol/websocket/WebSocketChannel.cpp
+++ netwerk/protocol/websocket/WebSocketChannel.cpp
@@ -1052,6 +1052,9 @@ public:
nsresult rv = NS_ReadInputStreamToString(mMsg.pStream, *temp, mLength);
NS_ENSURE_SUCCESS(rv, rv);
+ if (temp->Length() != mLength) {
+ return NS_ERROR_UNEXPECTED;
+ }
mMsg.pStream->Close();
mMsg.pStream->Release();

View File

@ -0,0 +1,160 @@
commit c6116093dd45
Author: Botond Ballo <botond@mozilla.com>
Date: Wed Mar 28 14:22:30 2018 -0400
Bug 1447131 - Handle backface-visibility:hidden in compositor hit testing. r=kats a=RyanVM
MozReview-Commit-ID: EZhhSk3EZAL
--HG--
extra : source : e4b8a1682e6c4587649bcfbf5dab4b2ccdf4c741
---
gfx/layers/LayerMetricsWrapper.h | 7 +++++++
gfx/layers/apz/src/APZCTreeManager.cpp | 9 ++++++---
gfx/layers/apz/src/HitTestingTreeNode.cpp | 12 +++++++++++-
gfx/layers/apz/src/HitTestingTreeNode.h | 11 ++++++++++-
gfx/layers/wr/WebRenderScrollDataWrapper.h | 7 +++++++
5 files changed, 41 insertions(+), 5 deletions(-)
diff --git gfx/layers/LayerMetricsWrapper.h gfx/layers/LayerMetricsWrapper.h
index baffde611220..dcf9fdc02b21 100644
--- gfx/layers/LayerMetricsWrapper.h
+++ gfx/layers/LayerMetricsWrapper.h
@@ -446,6 +446,13 @@ public:
return mLayer->GetFixedPositionScrollContainerId();
}
+ bool IsBackfaceHidden() const
+ {
+ MOZ_ASSERT(IsValid());
+
+ return mLayer->IsBackfaceHidden();
+ }
+
// Expose an opaque pointer to the layer. Mostly used for printf
// purposes. This is not intended to be a general-purpose accessor
// for the underlying layer.
diff --git gfx/layers/apz/src/APZCTreeManager.cpp gfx/layers/apz/src/APZCTreeManager.cpp
index 9c66d22a41fe..7f82c3cee0a8 100644
--- gfx/layers/apz/src/APZCTreeManager.cpp
+++ gfx/layers/apz/src/APZCTreeManager.cpp
@@ -835,7 +835,8 @@ APZCTreeManager::PrepareNodeForLayer(const ScrollNode& aLayer,
(!parentHasPerspective && aLayer.GetClipRect())
? Some(ParentLayerIntRegion(*aLayer.GetClipRect()))
: Nothing(),
- GetEventRegionsOverride(aParent, aLayer));
+ GetEventRegionsOverride(aParent, aLayer),
+ aLayer.IsBackfaceHidden());
node->SetScrollbarData(aLayer.GetScrollbarTargetContainerId(),
aLayer.GetScrollbarAnimationId(),
aLayer.GetScrollThumbData(),
@@ -948,7 +949,8 @@ APZCTreeManager::PrepareNodeForLayer(const ScrollNode& aLayer,
aLayer.GetVisibleRegion(),
aLayer.GetTransformTyped(),
clipRegion,
- GetEventRegionsOverride(aParent, aLayer));
+ GetEventRegionsOverride(aParent, aLayer),
+ aLayer.IsBackfaceHidden());
apzc->SetAncestorTransform(aAncestorTransform);
PrintAPZCInfo(aLayer, apzc);
@@ -1047,7 +1049,8 @@ APZCTreeManager::PrepareNodeForLayer(const ScrollNode& aLayer,
aLayer.GetVisibleRegion(),
aLayer.GetTransformTyped(),
clipRegion,
- GetEventRegionsOverride(aParent, aLayer));
+ GetEventRegionsOverride(aParent, aLayer),
+ aLayer.IsBackfaceHidden());
}
// Note: if layer properties must be propagated to nodes, RecvUpdate in
diff --git gfx/layers/apz/src/HitTestingTreeNode.cpp gfx/layers/apz/src/HitTestingTreeNode.cpp
index f16758e72ec6..ee1fce927c0d 100644
--- gfx/layers/apz/src/HitTestingTreeNode.cpp
+++ gfx/layers/apz/src/HitTestingTreeNode.cpp
@@ -31,6 +31,7 @@ HitTestingTreeNode::HitTestingTreeNode(AsyncPanZoomController* aApzc,
, mScrollViewId(FrameMetrics::NULL_SCROLL_ID)
, mScrollbarAnimationId(0)
, mFixedPosTarget(FrameMetrics::NULL_SCROLL_ID)
+ , mIsBackfaceHidden(false)
, mOverride(EventRegionsOverride::NoOverride)
{
if (mIsPrimaryApzcHolder) {
@@ -263,13 +264,15 @@ HitTestingTreeNode::SetHitTestData(const EventRegions& aRegions,
const LayerIntRegion& aVisibleRegion,
const CSSTransformMatrix& aTransform,
const Maybe<ParentLayerIntRegion>& aClipRegion,
- const EventRegionsOverride& aOverride)
+ const EventRegionsOverride& aOverride,
+ bool aIsBackfaceHidden)
{
mEventRegions = aRegions;
mVisibleRegion = aVisibleRegion;
mTransform = aTransform;
mClipRegion = aClipRegion;
mOverride = aOverride;
+ mIsBackfaceHidden = aIsBackfaceHidden;
}
bool
@@ -287,6 +290,13 @@ HitTestingTreeNode::HitTest(const LayerPoint& aPoint) const
}
auto point = LayerIntPoint::Round(aPoint);
+
+ // If the layer's backface is showing and it's hidden, don't hit it.
+ // This matches the behavior of main-thread hit testing in
+ // nsDisplayTransform::HitTest().
+ if (mIsBackfaceHidden) {
+ return HitTestResult::HitNothing;
+ }
// test against event regions in Layer coordinate space
if (!mEventRegions.mHitRegion.Contains(point.x, point.y)) {
diff --git gfx/layers/apz/src/HitTestingTreeNode.h gfx/layers/apz/src/HitTestingTreeNode.h
index 50e04e515652..aef703fd23b5 100644
--- gfx/layers/apz/src/HitTestingTreeNode.h
+++ gfx/layers/apz/src/HitTestingTreeNode.h
@@ -89,7 +89,8 @@ public:
const LayerIntRegion& aVisibleRegion,
const CSSTransformMatrix& aTransform,
const Maybe<ParentLayerIntRegion>& aClipRegion,
- const EventRegionsOverride& aOverride);
+ const EventRegionsOverride& aOverride,
+ bool aIsBackfaceHidden);
bool IsOutsideClip(const ParentLayerPoint& aPoint) const;
/* Scrollbar info */
@@ -172,6 +173,14 @@ private:
* transforms. */
CSSTransformMatrix mTransform;
+ /* Whether layer L is backface-visibility:hidden, and its backface is
+ * currently visible. It's true that the latter depends on the layer's
+ * shadow transform, but the sorts of changes APZ makes to the shadow
+ * transform shouldn't change the backface from hidden to visible or
+ * vice versa, so it's sufficient to record this at hit test tree
+ * building time. */
+ bool mIsBackfaceHidden;
+
/* This is clip rect for L that we wish to use for hit-testing purposes. Note
* that this may not be exactly the same as the clip rect on layer L because
* of the touch-sensitive region provided by the GeckoContentController, or
diff --git gfx/layers/wr/WebRenderScrollDataWrapper.h gfx/layers/wr/WebRenderScrollDataWrapper.h
index 2e20bbdcdb8f..64d5319e10ff 100644
--- gfx/layers/wr/WebRenderScrollDataWrapper.h
+++ gfx/layers/wr/WebRenderScrollDataWrapper.h
@@ -315,6 +315,13 @@ public:
return mLayer->GetFixedPositionScrollContainerId();
}
+ bool IsBackfaceHidden() const
+ {
+ // This is only used by APZCTM hit testing, and WR does its own
+ // hit testing, so no need to implement this.
+ return false;
+ }
+
const void* GetLayer() const
{
MOZ_ASSERT(IsValid());