From 721fe4a8ffcc4cc0b01314c9482ee9aa1cd49d6f Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann
Date: Wed, 3 Feb 2016 09:51:49 +0100
Subject: [PATCH 001/160] Bug 1245093: Explictly refer to |class ResponseCode|
in global namespace, r=dhylands
|VolumeResponseCallback::ResponseCode| shadows the type |ResponseCode|. This
patch changes all affected places to refer explicitly to the |ResponseCode|
type in the global namespace.
---
dom/system/gonk/VolumeCommand.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/dom/system/gonk/VolumeCommand.h b/dom/system/gonk/VolumeCommand.h
index a2e7c69b82b..022965b5e02 100644
--- a/dom/system/gonk/VolumeCommand.h
+++ b/dom/system/gonk/VolumeCommand.h
@@ -48,13 +48,13 @@ public:
// Response codes from the 200, 400, and 500 series all indicated that
// the command has completed.
- return (mResponseCode >= ResponseCode::CommandOkay)
- && (mResponseCode < ResponseCode::UnsolicitedInformational);
+ return (mResponseCode >= ::ResponseCode::CommandOkay)
+ && (mResponseCode < ::ResponseCode::UnsolicitedInformational);
}
bool WasSuccessful() const
{
- return mResponseCode == ResponseCode::CommandOkay;
+ return mResponseCode == ::ResponseCode::CommandOkay;
}
bool IsPending() const { return mPending; }
@@ -79,7 +79,7 @@ private:
#else
mResponseStr = aResponseStr;
#endif
- if (mResponseCode >= ResponseCode::CommandOkay) {
+ if (mResponseCode >= ::ResponseCode::CommandOkay) {
// This is a final response.
mPending = false;
}
From e0bb65e0d9ce49116cad6a1323758db8d6809bd4 Mon Sep 17 00:00:00 2001
From: Thomas Zimmermann
Date: Wed, 3 Feb 2016 09:52:24 +0100
Subject: [PATCH 002/160] Bug 1245100: Include missing headers in
SystemProperty.cpp, r=edgar
---
dom/system/gonk/SystemProperty.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dom/system/gonk/SystemProperty.cpp b/dom/system/gonk/SystemProperty.cpp
index 6fd1e86666c..1f874ce908b 100644
--- a/dom/system/gonk/SystemProperty.cpp
+++ b/dom/system/gonk/SystemProperty.cpp
@@ -5,8 +5,11 @@
* You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "SystemProperty.h"
-#include
+#include
+#include
+
+#include "nsDebug.h"
#include "prinit.h"
namespace mozilla {
From 1ebb17479d539067d8bb67fcb6716d6407451ef5 Mon Sep 17 00:00:00 2001
From: Jonathan Kew
Date: Wed, 3 Feb 2016 09:22:58 +0000
Subject: [PATCH 003/160] Bug 1244693 - On Beta/Release channels, allow
OpenType Layout tables (GDEF/GPOS/GSUB) to pass through OTS unchecked,
relying on harfbuzz to handle them safely. r=jdaggett
---
gfx/thebes/gfxUserFontSet.cpp | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/gfx/thebes/gfxUserFontSet.cpp b/gfx/thebes/gfxUserFontSet.cpp
index 302ffa8913c..a1acf253188 100644
--- a/gfx/thebes/gfxUserFontSet.cpp
+++ b/gfx/thebes/gfxUserFontSet.cpp
@@ -178,8 +178,15 @@ public:
: mUserFontEntry(aUserFontEntry) {}
virtual ots::TableAction GetTableAction(uint32_t aTag) override {
- // preserve Graphite, color glyph and SVG tables
- if (aTag == TRUETYPE_TAG('S', 'i', 'l', 'f') ||
+ // Preserve Graphite, color glyph and SVG tables
+ if (
+#ifdef RELEASE_BUILD // For Beta/Release, also allow OT Layout tables through
+ // unchecked, and rely on harfbuzz to handle them safely.
+ aTag == TRUETYPE_TAG('G', 'D', 'E', 'F') ||
+ aTag == TRUETYPE_TAG('G', 'P', 'O', 'S') ||
+ aTag == TRUETYPE_TAG('G', 'S', 'U', 'B') ||
+#endif
+ aTag == TRUETYPE_TAG('S', 'i', 'l', 'f') ||
aTag == TRUETYPE_TAG('S', 'i', 'l', 'l') ||
aTag == TRUETYPE_TAG('G', 'l', 'o', 'c') ||
aTag == TRUETYPE_TAG('G', 'l', 'a', 't') ||
From 1012db254c2181dba3cbe22a3cff877037e89c80 Mon Sep 17 00:00:00 2001
From: Jonathan Kew
Date: Wed, 3 Feb 2016 09:24:24 +0000
Subject: [PATCH 004/160] Bug 1243125 - patch 0 - Relax overly-harsh writing
mode assertions in nsReflowMetrics size accessors. r=dholbert
---
layout/generic/nsHTMLReflowMetrics.h | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/layout/generic/nsHTMLReflowMetrics.h b/layout/generic/nsHTMLReflowMetrics.h
index 94df2cc8fb9..a2a32f5de15 100644
--- a/layout/generic/nsHTMLReflowMetrics.h
+++ b/layout/generic/nsHTMLReflowMetrics.h
@@ -219,24 +219,29 @@ public:
// width in horizontal writing modes, height in vertical ones), and BSize is
// the size in the block-progression direction.
nscoord ISize(mozilla::WritingMode aWritingMode) const {
- CHECK_WRITING_MODE(aWritingMode);
+ NS_ASSERTION(!aWritingMode.IsOrthogonalTo(mWritingMode),
+ "mismatched writing mode");
return mISize;
}
nscoord BSize(mozilla::WritingMode aWritingMode) const {
- CHECK_WRITING_MODE(aWritingMode);
+ NS_ASSERTION(!aWritingMode.IsOrthogonalTo(mWritingMode),
+ "mismatched writing mode");
return mBSize;
}
mozilla::LogicalSize Size(mozilla::WritingMode aWritingMode) const {
- CHECK_WRITING_MODE(aWritingMode);
+ NS_ASSERTION(!aWritingMode.IsOrthogonalTo(mWritingMode),
+ "mismatched writing mode");
return mozilla::LogicalSize(aWritingMode, mISize, mBSize);
}
nscoord& ISize(mozilla::WritingMode aWritingMode) {
- CHECK_WRITING_MODE(aWritingMode);
+ NS_ASSERTION(!aWritingMode.IsOrthogonalTo(mWritingMode),
+ "mismatched writing mode");
return mISize;
}
nscoord& BSize(mozilla::WritingMode aWritingMode) {
- CHECK_WRITING_MODE(aWritingMode);
+ NS_ASSERTION(!aWritingMode.IsOrthogonalTo(mWritingMode),
+ "mismatched writing mode");
return mBSize;
}
From e128e82c8ea5763782fcce02564dfcb7b8352d54 Mon Sep 17 00:00:00 2001
From: Oriol
Date: Wed, 3 Feb 2016 09:24:26 +0000
Subject: [PATCH 005/160] Bug 1243125 - patch 1 - Check block size instead of
height when detecting truncated frames. r=jfkthame
---
layout/generic/nsHTMLReflowState.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/layout/generic/nsHTMLReflowState.cpp b/layout/generic/nsHTMLReflowState.cpp
index 801144b65d4..fd2b6888bba 100644
--- a/layout/generic/nsHTMLReflowState.cpp
+++ b/layout/generic/nsHTMLReflowState.cpp
@@ -2925,8 +2925,8 @@ void
nsHTMLReflowState::SetTruncated(const nsHTMLReflowMetrics& aMetrics,
nsReflowStatus* aStatus) const
{
- if (AvailableHeight() != NS_UNCONSTRAINEDSIZE &&
- AvailableHeight() < aMetrics.Height() &&
+ if (AvailableBSize() != NS_UNCONSTRAINEDSIZE &&
+ AvailableBSize() < aMetrics.BSize(GetWritingMode()) &&
!mFlags.mIsTopOfPage) {
*aStatus |= NS_FRAME_TRUNCATED;
} else {
From e3f9bcd043f9b4b5144c7c16569355a88859270b Mon Sep 17 00:00:00 2001
From: Jonathan Kew
Date: Wed, 3 Feb 2016 09:24:28 +0000
Subject: [PATCH 006/160] Bug 1243125 - patch 2 - Don't ever set
NS_FRAME_TRUNCATED for orthogonal flows. r=dholbert
---
layout/generic/nsHTMLReflowState.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/layout/generic/nsHTMLReflowState.cpp b/layout/generic/nsHTMLReflowState.cpp
index fd2b6888bba..d2a46cdcc0c 100644
--- a/layout/generic/nsHTMLReflowState.cpp
+++ b/layout/generic/nsHTMLReflowState.cpp
@@ -2925,9 +2925,14 @@ void
nsHTMLReflowState::SetTruncated(const nsHTMLReflowMetrics& aMetrics,
nsReflowStatus* aStatus) const
{
- if (AvailableBSize() != NS_UNCONSTRAINEDSIZE &&
- AvailableBSize() < aMetrics.BSize(GetWritingMode()) &&
- !mFlags.mIsTopOfPage) {
+ const WritingMode containerWM = aMetrics.GetWritingMode();
+ if (GetWritingMode().IsOrthogonalTo(containerWM)) {
+ // Orthogonal flows are always reflowed with an unconstrained dimension,
+ // so should never end up truncated (see nsHTMLReflowState::Init()).
+ *aStatus &= ~NS_FRAME_TRUNCATED;
+ } else if (AvailableBSize() != NS_UNCONSTRAINEDSIZE &&
+ AvailableBSize() < aMetrics.BSize(containerWM) &&
+ !mFlags.mIsTopOfPage) {
*aStatus |= NS_FRAME_TRUNCATED;
} else {
*aStatus &= ~NS_FRAME_TRUNCATED;
From 40e44079a4f649abb32cb206a8a10ada05d5f740 Mon Sep 17 00:00:00 2001
From: Oriol
Date: Wed, 3 Feb 2016 09:24:29 +0000
Subject: [PATCH 007/160] Bug 1243125 - Reftest for floats overflowing
container, with diverse writing-modes. r=jfkthame
---
.../1243125-1-floats-overflowing-ref.html | 31 ++++++++++++++
.../1243125-1-floats-overflowing.html | 40 +++++++++++++++++++
layout/reftests/writing-mode/reftest.list | 2 +
3 files changed, 73 insertions(+)
create mode 100644 layout/reftests/writing-mode/1243125-1-floats-overflowing-ref.html
create mode 100644 layout/reftests/writing-mode/1243125-1-floats-overflowing.html
diff --git a/layout/reftests/writing-mode/1243125-1-floats-overflowing-ref.html b/layout/reftests/writing-mode/1243125-1-floats-overflowing-ref.html
new file mode 100644
index 00000000000..35b2d8239a3
--- /dev/null
+++ b/layout/reftests/writing-mode/1243125-1-floats-overflowing-ref.html
@@ -0,0 +1,31 @@
+
+
+
+ Bug 1243125 testcase
+
+
+
+
+ There should be 9 green bars
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/writing-mode/1243125-1-floats-overflowing.html b/layout/reftests/writing-mode/1243125-1-floats-overflowing.html
new file mode 100644
index 00000000000..463396fbf24
--- /dev/null
+++ b/layout/reftests/writing-mode/1243125-1-floats-overflowing.html
@@ -0,0 +1,40 @@
+
+
+
+ Bug 1243125 testcase
+
+
+
+
+ There should be 9 green bars
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/layout/reftests/writing-mode/reftest.list b/layout/reftests/writing-mode/reftest.list
index 05464d7ae4c..17fa6c85202 100644
--- a/layout/reftests/writing-mode/reftest.list
+++ b/layout/reftests/writing-mode/reftest.list
@@ -167,6 +167,8 @@ fuzzy-if(gtkWidget||B2G,255,6) fuzzy-if(cocoaWidget,65,69) == 1193519-sideways-l
== 1216747-1.html 1216747-1-ref.html
!= 1216747-1.html 1216747-1-notref.html
+== 1243125-1-floats-overflowing.html 1243125-1-floats-overflowing-ref.html
+
# Suite of tests from GĂ©rard Talbot in bug 1079151
# Frequent Windows 7 load failed: timed out waiting for test to complete (waiting for onload scripts to complete), bug 1167155 and friends
skip-if(/^Windows\x20NT\x206\.1/.test(http.oscpu)) include abspos/reftest.list
From 255899bcebd9f3b31cd2f0197bf67985c8aecd28 Mon Sep 17 00:00:00 2001
From: Edwin Flores
Date: Wed, 3 Feb 2016 09:59:22 +0000
Subject: [PATCH 008/160] Bug 1227548 - Check the result of MakeCurrent in
ReadBuffer and DrawBuffer destructors - r=jgilbert
---
gfx/gl/GLScreenBuffer.cpp | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gfx/gl/GLScreenBuffer.cpp b/gfx/gl/GLScreenBuffer.cpp
index f67b283365b..1739afb324b 100755
--- a/gfx/gl/GLScreenBuffer.cpp
+++ b/gfx/gl/GLScreenBuffer.cpp
@@ -846,7 +846,8 @@ DrawBuffer::Create(GLContext* const gl,
DrawBuffer::~DrawBuffer()
{
- mGL->MakeCurrent();
+ if (!mGL->MakeCurrent())
+ return;
GLuint fb = mFB;
GLuint rbs[] = {
@@ -923,7 +924,8 @@ ReadBuffer::Create(GLContext* gl,
ReadBuffer::~ReadBuffer()
{
- mGL->MakeCurrent();
+ if (!mGL->MakeCurrent())
+ return;
GLuint fb = mFB;
GLuint rbs[] = {
From e43291b0a7e4fa39b0efda443c07e00dffaf9012 Mon Sep 17 00:00:00 2001
From: Hector Zhao
Date: Tue, 26 Jan 2016 23:10:36 +0800
Subject: [PATCH 009/160] Bug 1242973 - Make services/mobileid eslintable.
r=ferjm
---
services/mobileid/MobileIdentityManager.jsm | 298 +++++++++---------
.../MobileIdentitySmsVerificationFlow.jsm | 105 +++---
services/mobileid/moz.build | 7 +-
3 files changed, 210 insertions(+), 200 deletions(-)
diff --git a/services/mobileid/MobileIdentityManager.jsm b/services/mobileid/MobileIdentityManager.jsm
index 77d99def065..480c601fbd7 100644
--- a/services/mobileid/MobileIdentityManager.jsm
+++ b/services/mobileid/MobileIdentityManager.jsm
@@ -8,6 +8,7 @@ this.EXPORTED_SYMBOLS = ["MobileIdentityManager"];
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
+Cu.import("resource://gre/modules/AppConstants.jsm");
Cu.import("resource://gre/modules/MobileIdentityCommon.jsm");
Cu.import("resource://gre/modules/MobileIdentityUIGlueCommon.jsm");
Cu.import("resource://gre/modules/Promise.jsm");
@@ -51,19 +52,19 @@ XPCOMUtils.defineLazyServiceGetter(this, "appsService",
"@mozilla.org/AppsService;1",
"nsIAppsService");
-#ifdef MOZ_B2G_RIL
-XPCOMUtils.defineLazyServiceGetter(this, "Ril",
- "@mozilla.org/ril;1",
- "nsIRadioInterfaceLayer");
+if (AppConstants.MOZ_B2G_RIL) {
+ XPCOMUtils.defineLazyServiceGetter(this, "Ril",
+ "@mozilla.org/ril;1",
+ "nsIRadioInterfaceLayer");
-XPCOMUtils.defineLazyServiceGetter(this, "IccService",
- "@mozilla.org/icc/iccservice;1",
- "nsIIccService");
+ XPCOMUtils.defineLazyServiceGetter(this, "IccService",
+ "@mozilla.org/icc/iccservice;1",
+ "nsIIccService");
-XPCOMUtils.defineLazyServiceGetter(this, "MobileConnectionService",
- "@mozilla.org/mobileconnection/mobileconnectionservice;1",
- "nsIMobileConnectionService");
-#endif
+ XPCOMUtils.defineLazyServiceGetter(this, "MobileConnectionService",
+ "@mozilla.org/mobileconnection/mobileconnectionservice;1",
+ "nsIMobileConnectionService");
+}
this.MobileIdentityManager = {
@@ -107,156 +108,132 @@ this.MobileIdentityManager = {
/*********************************************************
* Getters
********************************************************/
-#ifdef MOZ_B2G_RIL
- // We have these getters to allow mocking RIL stuff from the tests.
- get ril() {
- if (this._ril) {
- return this._ril;
- }
- return Ril;
- },
-
- get iccService() {
- if (this._iccService) {
- return this._iccService;
- }
- return IccService;
- },
-
- get mobileConnectionService() {
- if (this._mobileConnectionService) {
- return this._mobileConnectionService;
- }
- return MobileConnectionService;
- },
-#endif
-
get iccInfo() {
if (this._iccInfo) {
return this._iccInfo;
}
-#ifdef MOZ_B2G_RIL
- let self = this;
- let iccListener = {
- notifyStkCommand: function() {},
+ if (AppConstants.MOZ_B2G_RIL) {
+ let self = this;
+ let iccListener = {
+ notifyStkCommand: function() {},
- notifyStkSessionEnd: function() {},
+ notifyStkSessionEnd: function() {},
- notifyCardStateChanged: function() {},
+ notifyCardStateChanged: function() {},
- notifyIccInfoChanged: function() {
- // If we receive a notification about an ICC info change, we clear
- // the ICC related caches so they can be rebuilt with the new changes.
+ notifyIccInfoChanged: function() {
+ // If we receive a notification about an ICC info change, we clear
+ // the ICC related caches so they can be rebuilt with the new changes.
- log.debug("ICC info changed observed. Clearing caches");
+ log.debug("ICC info changed observed. Clearing caches");
- // We don't need to keep listening for changes until we rebuild the
- // cache again.
- for (let i = 0; i < self._iccInfo.length; i++) {
- let icc = self.iccService.getIccByServiceId(i);
- if (icc) {
- icc.unregisterListener(iccListener);
+ // We don't need to keep listening for changes until we rebuild the
+ // cache again.
+ for (let i = 0; i < self._iccInfo.length; i++) {
+ let icc = self.iccService.getIccByServiceId(i);
+ if (icc) {
+ icc.unregisterListener(iccListener);
+ }
}
+
+ self._iccInfo = null;
+ self._iccIds = null;
+ }
+ };
+
+ // _iccInfo is a local cache containing the information about the SIM cards
+ // that is interesting for the Mobile ID flow.
+ // The index of this array does not necesarily need to match the real
+ // identifier of the SIM card ("clientId" or "serviceId" in RIL language).
+ this._iccInfo = [];
+
+ for (let i = 0; i < this.ril.numRadioInterfaces; i++) {
+ let icc = this.iccService.getIccByServiceId(i);
+ if (!icc) {
+ log.warn("Tried to get the Icc instance for an invalid service ID " + i);
+ continue;
}
- self._iccInfo = null;
- self._iccIds = null;
- }
- };
-
- // _iccInfo is a local cache containing the information about the SIM cards
- // that is interesting for the Mobile ID flow.
- // The index of this array does not necesarily need to match the real
- // identifier of the SIM card ("clientId" or "serviceId" in RIL language).
- this._iccInfo = [];
-
- for (let i = 0; i < this.ril.numRadioInterfaces; i++) {
- let icc = this.iccService.getIccByServiceId(i);
- if (!icc) {
- log.warn("Tried to get the Icc instance for an invalid service ID " + i);
- continue;
- }
-
- let info = icc.iccInfo;
- if (!info || !info.iccid ||
- !info.mcc || !info.mcc.length ||
- !info.mnc || !info.mnc.length) {
- log.warn("Absent or invalid ICC info");
- continue;
- }
-
- // GSM SIMs may have MSISDN while CDMA SIMs may have MDN
- let phoneNumber = null;
- try {
- if (info.iccType === "sim" || info.iccType === "usim") {
- let gsmInfo = info.QueryInterface(Ci.nsIGsmIccInfo);
- phoneNumber = gsmInfo.msisdn;
- } else if (info.iccType === "ruim" || info.iccType === "csim") {
- let cdmaInfo = info.QueryInterface(Ci.nsICdmaIccInfo);
- phoneNumber = cdmaInfo.mdn;
+ let info = icc.iccInfo;
+ if (!info || !info.iccid ||
+ !info.mcc || !info.mcc.length ||
+ !info.mnc || !info.mnc.length) {
+ log.warn("Absent or invalid ICC info");
+ continue;
}
- } catch (e) {
- log.error("Failed to retrieve phoneNumber: " + e);
+
+ // GSM SIMs may have MSISDN while CDMA SIMs may have MDN
+ let phoneNumber = null;
+ try {
+ if (info.iccType === "sim" || info.iccType === "usim") {
+ let gsmInfo = info.QueryInterface(Ci.nsIGsmIccInfo);
+ phoneNumber = gsmInfo.msisdn;
+ } else if (info.iccType === "ruim" || info.iccType === "csim") {
+ let cdmaInfo = info.QueryInterface(Ci.nsICdmaIccInfo);
+ phoneNumber = cdmaInfo.mdn;
+ }
+ } catch (e) {
+ log.error("Failed to retrieve phoneNumber: " + e);
+ }
+
+ let connection = this.mobileConnectionService.getItemByServiceId(i);
+ let voice = connection && connection.voice;
+ let data = connection && connection.data;
+ let operator = null;
+ if (voice &&
+ voice.network &&
+ voice.network.shortName &&
+ voice.network.shortName.length) {
+ operator = voice.network.shortName;
+ } else if (data &&
+ data.network &&
+ data.network.shortName &&
+ data.network.shortName.length) {
+ operator = data.network.shortName;
+ }
+
+ this._iccInfo.push({
+ // Because it is possible that the _iccInfo array index doesn't match
+ // the real client ID, we need to store this value for later usage.
+ clientId: i,
+ iccId: info.iccid,
+ mcc: info.mcc,
+ mnc: info.mnc,
+ msisdn: phoneNumber,
+ operator: operator,
+ roaming: voice && voice.roaming
+ });
+
+ // We need to subscribe to ICC change notifications so we can refresh
+ // the cache if any change is observed.
+ icc.registerListener(iccListener);
}
- let connection = this.mobileConnectionService.getItemByServiceId(i);
- let voice = connection && connection.voice;
- let data = connection && connection.data;
- let operator = null;
- if (voice &&
- voice.network &&
- voice.network.shortName &&
- voice.network.shortName.length) {
- operator = voice.network.shortName;
- } else if (data &&
- data.network &&
- data.network.shortName &&
- data.network.shortName.length) {
- operator = data.network.shortName;
- }
-
- this._iccInfo.push({
- // Because it is possible that the _iccInfo array index doesn't match
- // the real client ID, we need to store this value for later usage.
- clientId: i,
- iccId: info.iccid,
- mcc: info.mcc,
- mnc: info.mnc,
- msisdn: phoneNumber,
- operator: operator,
- roaming: voice && voice.roaming
- });
-
- // We need to subscribe to ICC change notifications so we can refresh
- // the cache if any change is observed.
- icc.registerListener(iccListener);
+ return this._iccInfo;
+ } else {
+ return null;
}
-
- return this._iccInfo;
-#else
- return null;
-#endif
},
get iccIds() {
-#ifdef MOZ_B2G_RIL
- if (this._iccIds) {
+ if (AppConstants.MOZ_B2G_RIL) {
+ if (this._iccIds) {
+ return this._iccIds;
+ }
+
+ this._iccIds = [];
+ if (!this.iccInfo) {
+ return this._iccIds;
+ }
+
+ for (let i = 0; i < this.iccInfo.length; i++) {
+ this._iccIds.push(this.iccInfo[i].iccId);
+ }
+
return this._iccIds;
+ } else {
+ return null;
}
-
- this._iccIds = [];
- if (!this.iccInfo) {
- return this._iccIds;
- }
-
- for (let i = 0; i < this.iccInfo.length; i++) {
- this._iccIds.push(this.iccInfo[i].iccId);
- }
-
- return this._iccIds;
-#else
- return null;
-#endif
},
get credStore() {
@@ -551,8 +528,8 @@ this.MobileIdentityManager = {
this.ui,
this.client
);
-#ifdef MOZ_B2G_RIL
- } else if (aToVerify.verificationMethod.indexOf(SMS_MO_MT) != -1 &&
+ } else if (AppConstants.MOZ_B2G_RIL &&
+ aToVerify.verificationMethod.indexOf(SMS_MO_MT) != -1 &&
aToVerify.serviceId &&
aToVerify.verificationDetails &&
aToVerify.verificationDetails.moVerifier &&
@@ -567,7 +544,6 @@ this.MobileIdentityManager = {
this.ui,
this.client
);
-#endif
} else {
return Promise.reject(ERROR_INTERNAL_CANNOT_VERIFY_SELECTION);
}
@@ -1068,4 +1044,40 @@ this.MobileIdentityManager = {
};
+if (AppConstants.MOZ_B2G_RIL) {
+ // We have these getters to allow mocking RIL stuff from the tests.
+ Object.defineProperties(MobileIdentityManager, {
+ "ril": {
+ configurable: true,
+ enumerable: true,
+ get() {
+ if (this._ril) {
+ return this._ril;
+ }
+ return Ril;
+ }
+ },
+ "iccService": {
+ configurable: true,
+ enumerable: true,
+ get() {
+ if (this._iccService) {
+ return this._iccService;
+ }
+ return IccService;
+ }
+ },
+ "mobileConnectionService": {
+ configurable: true,
+ enumerable: true,
+ get() {
+ if (this._mobileConnectionService) {
+ return this._mobileConnectionService;
+ }
+ return MobileConnectionService;
+ }
+ }
+ });
+}
+
MobileIdentityManager.init();
diff --git a/services/mobileid/MobileIdentitySmsVerificationFlow.jsm b/services/mobileid/MobileIdentitySmsVerificationFlow.jsm
index 2e1826a56d9..99f90706562 100644
--- a/services/mobileid/MobileIdentitySmsVerificationFlow.jsm
+++ b/services/mobileid/MobileIdentitySmsVerificationFlow.jsm
@@ -8,16 +8,17 @@ this.EXPORTED_SYMBOLS = ["MobileIdentitySmsVerificationFlow"];
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
+Cu.import("resource://gre/modules/AppConstants.jsm");
Cu.import("resource://gre/modules/MobileIdentityCommon.jsm");
Cu.import("resource://gre/modules/MobileIdentityVerificationFlow.jsm");
Cu.import("resource://gre/modules/Promise.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
-#ifdef MOZ_B2G_RIL
-XPCOMUtils.defineLazyServiceGetter(this, "smsService",
- "@mozilla.org/sms/smsservice;1",
- "nsISmsService");
-#endif
+if (AppConstants.MOZ_B2G_RIL) {
+ XPCOMUtils.defineLazyServiceGetter(this, "smsService",
+ "@mozilla.org/sms/smsservice;1",
+ "nsISmsService");
+}
this.MobileIdentitySmsVerificationFlow = function(aVerificationOptions,
aUI,
@@ -51,58 +52,58 @@ this.MobileIdentitySmsVerificationFlow.prototype = {
// is unknown for us, so we always observe for incoming messages coming
// from the given mtSender.
-#ifdef MOZ_B2G_RIL
- this.observedSilentNumber = this.verificationOptions.mtSender;
- try {
- smsService.addSilentNumber(this.observedSilentNumber);
- } catch (e) {
- log.warn("We are already listening for that number");
+ if (AppConstants.MOZ_B2G_RIL) {
+ this.observedSilentNumber = this.verificationOptions.mtSender;
+ try {
+ smsService.addSilentNumber(this.observedSilentNumber);
+ } catch (e) {
+ log.warn("We are already listening for that number");
+ }
+
+ this.onSilentSms = (function(aSubject, aTopic, aData) {
+ log.debug("Got silent message " + aSubject.sender + " - " + aSubject.body);
+ // We might have observed a notification of an incoming silent message
+ // for other number. In that case, we just bail out.
+ if (aSubject.sender != this.observedSilentNumber) {
+ return;
+ }
+
+ // We got the SMS containing the verification code.
+
+ // If the phone number we are trying to verify is or can be an external
+ // phone number (meaning that it doesn't belong to any of the inserted
+ // SIMs) we will be receiving an human readable SMS containing a short
+ // verification code. In this case we need to parse the SMS body to
+ // extract the verification code.
+ // Otherwise, we just use the whole SMS body as it should contain a long
+ // verification code.
+ let verificationCode = aSubject.body;
+ if (this.verificationOptions.external) {
+ // We just take the numerical characters from the body.
+ verificationCode = aSubject.body.replace(/[^0-9]/g,'');
+ }
+
+ log.debug("Verification code: " + verificationCode);
+
+ this.verificationCodeDeferred.resolve(verificationCode);
+ }).bind(this);
+
+ Services.obs.addObserver(this.onSilentSms,
+ SILENT_SMS_RECEIVED_TOPIC,
+ false);
+ log.debug("Observing messages from " + this.observedSilentNumber);
}
- this.onSilentSms = (function(aSubject, aTopic, aData) {
- log.debug("Got silent message " + aSubject.sender + " - " + aSubject.body);
- // We might have observed a notification of an incoming silent message
- // for other number. In that case, we just bail out.
- if (aSubject.sender != this.observedSilentNumber) {
- return;
- }
-
- // We got the SMS containing the verification code.
-
- // If the phone number we are trying to verify is or can be an external
- // phone number (meaning that it doesn't belong to any of the inserted
- // SIMs) we will be receiving an human readable SMS containing a short
- // verification code. In this case we need to parse the SMS body to
- // extract the verification code.
- // Otherwise, we just use the whole SMS body as it should contain a long
- // verification code.
- let verificationCode = aSubject.body;
- if (this.verificationOptions.external) {
- // We just take the numerical characters from the body.
- verificationCode = aSubject.body.replace(/[^0-9]/g,'');
- }
-
- log.debug("Verification code: " + verificationCode);
-
- this.verificationCodeDeferred.resolve(verificationCode);
- }).bind(this);
-
- Services.obs.addObserver(this.onSilentSms,
- SILENT_SMS_RECEIVED_TOPIC,
- false);
- log.debug("Observing messages from " + this.observedSilentNumber);
-#endif
-
return this.smsVerifyStrategy();
},
_cleanupStrategy: function() {
-#ifdef MOZ_B2G_RIL
- smsService.removeSilentNumber(this.observedSilentNumber);
- Services.obs.removeObserver(this.onSilentSms,
- SILENT_SMS_RECEIVED_TOPIC);
- this.observedSilentNumber = null;
- this.onSilentSms = null;
-#endif
+ if (AppConstants.MOZ_B2G_RIL) {
+ smsService.removeSilentNumber(this.observedSilentNumber);
+ Services.obs.removeObserver(this.onSilentSms,
+ SILENT_SMS_RECEIVED_TOPIC);
+ this.observedSilentNumber = null;
+ this.onSilentSms = null;
+ }
}
};
diff --git a/services/mobileid/moz.build b/services/mobileid/moz.build
index e18d282b11b..908e3f852e0 100644
--- a/services/mobileid/moz.build
+++ b/services/mobileid/moz.build
@@ -12,13 +12,10 @@ EXTRA_JS_MODULES += [
'MobileIdentityClient.jsm',
'MobileIdentityCommon.jsm',
'MobileIdentityCredentialsStore.jsm',
+ 'MobileIdentityManager.jsm',
'MobileIdentitySmsMoMtVerificationFlow.jsm',
'MobileIdentitySmsMtVerificationFlow.jsm',
+ 'MobileIdentitySmsVerificationFlow.jsm',
'MobileIdentityUIGlueCommon.jsm',
'MobileIdentityVerificationFlow.jsm'
]
-
-EXTRA_PP_JS_MODULES += [
- 'MobileIdentityManager.jsm',
- 'MobileIdentitySmsVerificationFlow.jsm'
-]
From 969da3f3c87d099754f5066a2e580531e5d8f9a8 Mon Sep 17 00:00:00 2001
From: Hector Zhao
Date: Tue, 2 Feb 2016 10:37:50 +0800
Subject: [PATCH 010/160] Bug 1242977 - Make services eslintable. r=markh
---
.eslintignore | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/.eslintignore b/.eslintignore
index 86e31991e58..545843dd9ae 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -39,7 +39,6 @@ parser/**
probes/**
python/**
rdf/**
-services/**
startupcache/**
testing/**
tools/**
@@ -170,6 +169,11 @@ mobile/android/components/Snippets.js
# Bug 1178739: Ignore this file as a quick fix for "Illegal yield expression"
mobile/android/modules/HomeProvider.jsm
+# services/ exclusions
+
+# Uses `#filter substitution`
+services/sync/modules/constants.js
+
# toolkit/ exclusions
# Not part of the default build
From 47ff04b9c58e13ae92b7263cf7037725a4c32757 Mon Sep 17 00:00:00 2001
From: Honza Bambas
Date: Tue, 2 Feb 2016 07:21:00 +0100
Subject: [PATCH 011/160] Bug 885952 - Add thread name to MozLogging, r=froydnj
---
xpcom/base/Logging.cpp | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/xpcom/base/Logging.cpp b/xpcom/base/Logging.cpp
index 2679b9378a0..2223f1b4bfb 100644
--- a/xpcom/base/Logging.cpp
+++ b/xpcom/base/Logging.cpp
@@ -86,6 +86,7 @@ public:
: mModulesLock("logmodules")
, mModules(kInitialModuleCount)
, mOutFile(nullptr)
+ , mMainThread(PR_GetCurrentThread())
, mAddTimestamp(false)
, mIsSync(false)
{
@@ -176,20 +177,31 @@ public:
//
// Additionally we prefix the output with the abbreviated log level
// and the module name.
+ PRThread *currentThread = PR_GetCurrentThread();
+ const char *currentThreadName = (mMainThread == currentThread)
+ ? "Main Thread"
+ : PR_GetThreadName(currentThread);
+
+ char noNameThread[40];
+ if (!currentThreadName) {
+ snprintf_literal(noNameThread, "Unnamed thread %p", currentThread);
+ currentThreadName = noNameThread;
+ }
+
if (!mAddTimestamp) {
fprintf_stderr(out,
- "[%p]: %s/%s %s%s",
- PR_GetCurrentThread(), ToLogStr(aLevel),
+ "[%s]: %s/%s %s%s",
+ currentThreadName, ToLogStr(aLevel),
aName, buffToWrite, newline);
} else {
PRExplodedTime now;
PR_ExplodeTime(PR_Now(), PR_GMTParameters, &now);
fprintf_stderr(
out,
- "%04d-%02d-%02d %02d:%02d:%02d.%06d UTC - [%p]: %s/%s %s%s",
+ "%04d-%02d-%02d %02d:%02d:%02d.%06d UTC - [%s]: %s/%s %s%s",
now.tm_year, now.tm_month + 1, now.tm_mday,
now.tm_hour, now.tm_min, now.tm_sec, now.tm_usec,
- PR_GetCurrentThread(), ToLogStr(aLevel),
+ currentThreadName, ToLogStr(aLevel),
aName, buffToWrite, newline);
}
@@ -206,6 +218,7 @@ private:
OffTheBooksMutex mModulesLock;
nsClassHashtable mModules;
ScopedCloseFile mOutFile;
+ PRThread *mMainThread;
bool mAddTimestamp;
bool mIsSync;
};
From 119e5681dbf43ef2f2ce511030f1900d73d0ac9c Mon Sep 17 00:00:00 2001
From: Honza Bambas
Date: Tue, 2 Feb 2016 06:43:00 +0100
Subject: [PATCH 012/160] Bug 1136857 - Make DOMStorageCache::mLoaded flag
atomic to prevent potential races, r=nfroyd
---
dom/storage/DOMStorageCache.cpp | 11 +++++++++--
dom/storage/DOMStorageCache.h | 6 ++++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/dom/storage/DOMStorageCache.cpp b/dom/storage/DOMStorageCache.cpp
index c2f049569b2..4c84ac0dcbb 100644
--- a/dom/storage/DOMStorageCache.cpp
+++ b/dom/storage/DOMStorageCache.cpp
@@ -564,9 +564,16 @@ DOMStorageCache::Clear(const DOMStorage* aStorage)
void
DOMStorageCache::CloneFrom(const DOMStorageCache* aThat)
{
- mLoaded = aThat->mLoaded;
+ // This will never be called on anything else than SessionStorage.
+ // This means mData will never be touched on any other thread than
+ // the main thread and it never went through the loading process.
+ MOZ_ASSERT(NS_IsMainThread());
+ MOZ_ASSERT(!mPersistent);
+ MOZ_ASSERT(!(bool)aThat->mLoaded);
+
+ mLoaded = false;
mInitialized = aThat->mInitialized;
- mPersistent = aThat->mPersistent;
+ mPersistent = false;
mSessionOnlyDataSetActive = aThat->mSessionOnlyDataSetActive;
for (uint32_t i = 0; i < kDataSetCount; ++i) {
diff --git a/dom/storage/DOMStorageCache.h b/dom/storage/DOMStorageCache.h
index 3ee3ce1e5c7..2bd4737f45b 100644
--- a/dom/storage/DOMStorageCache.h
+++ b/dom/storage/DOMStorageCache.h
@@ -15,6 +15,7 @@
#include "nsHashKeys.h"
#include "mozilla/Monitor.h"
#include "mozilla/Telemetry.h"
+#include "mozilla/Atomics.h"
#include "nsAutoPtr.h"
namespace mozilla {
@@ -220,8 +221,9 @@ private:
// Flag that is initially false. When the cache is about to work with
// the database (i.e. it is persistent) this flags is set to true after
// all keys and coresponding values are loaded from the database.
- // This flag never goes from true back to false.
- bool mLoaded;
+ // This flag never goes from true back to false. Since this flag is
+ // critical for mData hashtable synchronization, it's made atomic.
+ Atomic mLoaded;
// Result of load from the database. Valid after mLoaded flag has been set.
nsresult mLoadResult;
From 2413ec54fb62ccdefac8c1449b9a9b7efcd60621 Mon Sep 17 00:00:00 2001
From: Milan Sreckovic
Date: Tue, 2 Feb 2016 11:05:00 +0100
Subject: [PATCH 013/160] Bug 1187464 - Part 1. We can get the wrong texture
source type, so deal with it. r=mstange
---
gfx/2d/Logging.h | 1 +
gfx/layers/basic/BasicCompositor.cpp | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/gfx/2d/Logging.h b/gfx/2d/Logging.h
index 11c3390f46e..ad5c3c6892a 100644
--- a/gfx/2d/Logging.h
+++ b/gfx/2d/Logging.h
@@ -131,6 +131,7 @@ enum class LogReason : int {
GlyphAllocFailedCG,
InvalidRect,
CannotDraw3D, // 20
+ IncompatibleBasicTexturedEffect,
// End
MustBeLessThanThis = 101,
};
diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
index 8191d7190d4..05b92a614ea 100644
--- a/gfx/layers/basic/BasicCompositor.cpp
+++ b/gfx/layers/basic/BasicCompositor.cpp
@@ -430,14 +430,14 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
static_cast(aEffectChain.mPrimaryEffect.get());
TextureSourceBasic* source = texturedEffect->mTexture->AsSourceBasic();
- if (texturedEffect->mPremultiplied) {
+ if (source && texturedEffect->mPremultiplied) {
DrawSurfaceWithTextureCoords(dest, aRect,
source->GetSurface(dest),
texturedEffect->mTextureCoords,
texturedEffect->mFilter,
DrawOptions(aOpacity, blendMode),
sourceMask, &maskTransform);
- } else {
+ } else if (source) {
RefPtr srcData = source->GetSurface(dest)->GetDataSurface();
// Yes, we re-create the premultiplied data every time.
@@ -450,7 +450,10 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
texturedEffect->mFilter,
DrawOptions(aOpacity, blendMode),
sourceMask, &maskTransform);
+ } else {
+ gfxDevCrash(LogReason::IncompatibleBasicTexturedEffect) << "Bad for basic";
}
+
break;
}
case EffectTypes::YCBCR: {
From e324817371fc74578bece9369a38a5f8c06102f4 Mon Sep 17 00:00:00 2001
From: Milan Sreckovic
Date: Tue, 2 Feb 2016 11:06:00 +0100
Subject: [PATCH 014/160] Bug 1187464 - Part 2. RTTI for TextureSource debug
purposes. r=botond
---
gfx/layers/basic/BasicCompositor.cpp | 3 ++-
gfx/layers/basic/BasicCompositor.h | 2 ++
gfx/layers/basic/MacIOSurfaceTextureHostBasic.h | 2 ++
gfx/layers/basic/X11BasicCompositor.h | 2 ++
gfx/layers/basic/X11TextureSourceBasic.h | 2 ++
gfx/layers/composite/TextureHost.cpp | 7 +++++++
gfx/layers/composite/TextureHost.h | 6 ++++++
gfx/layers/composite/X11TextureHost.h | 2 ++
gfx/layers/d3d11/TextureD3D11.h | 3 +++
gfx/layers/d3d9/TextureD3D9.h | 4 ++++
gfx/layers/opengl/CompositingRenderTargetOGL.h | 2 ++
gfx/layers/opengl/MacIOSurfaceTextureHostOGL.h | 2 ++
gfx/layers/opengl/TextureHostOGL.h | 7 +++++++
13 files changed, 43 insertions(+), 1 deletion(-)
diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
index 05b92a614ea..7c3a992a356 100644
--- a/gfx/layers/basic/BasicCompositor.cpp
+++ b/gfx/layers/basic/BasicCompositor.cpp
@@ -34,6 +34,7 @@ class DataTextureSourceBasic : public DataTextureSource
, public TextureSourceBasic
{
public:
+ virtual const char* Name() const override { return "DataTextureSourceBasic"; }
virtual TextureSourceBasic* AsSourceBasic() override { return this; }
@@ -451,7 +452,7 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
DrawOptions(aOpacity, blendMode),
sourceMask, &maskTransform);
} else {
- gfxDevCrash(LogReason::IncompatibleBasicTexturedEffect) << "Bad for basic";
+ gfxDevCrash(LogReason::IncompatibleBasicTexturedEffect) << "Bad for basic with " << texturedEffect->mTexture->Name();
}
break;
diff --git a/gfx/layers/basic/BasicCompositor.h b/gfx/layers/basic/BasicCompositor.h
index 05e64e2fcb1..dfc7d8491fc 100644
--- a/gfx/layers/basic/BasicCompositor.h
+++ b/gfx/layers/basic/BasicCompositor.h
@@ -23,6 +23,8 @@ public:
, mSize(aRect.Size())
{ }
+ virtual const char* Name() const override { return "BasicCompositingRenderTarget"; }
+
virtual gfx::IntSize GetSize() const override { return mSize; }
void BindRenderTarget();
diff --git a/gfx/layers/basic/MacIOSurfaceTextureHostBasic.h b/gfx/layers/basic/MacIOSurfaceTextureHostBasic.h
index 19a8a707805..3dd6afb468f 100644
--- a/gfx/layers/basic/MacIOSurfaceTextureHostBasic.h
+++ b/gfx/layers/basic/MacIOSurfaceTextureHostBasic.h
@@ -31,6 +31,8 @@ public:
MacIOSurface* aSurface);
virtual ~MacIOSurfaceTextureSourceBasic();
+ virtual const char* Name() const override { return "MacIOSurfaceTextureSourceBasic"; }
+
virtual TextureSourceBasic* AsSourceBasic() override { return this; }
virtual gfx::IntSize GetSize() const override;
diff --git a/gfx/layers/basic/X11BasicCompositor.h b/gfx/layers/basic/X11BasicCompositor.h
index 4e3cf037d8f..48d2f8e81cb 100644
--- a/gfx/layers/basic/X11BasicCompositor.h
+++ b/gfx/layers/basic/X11BasicCompositor.h
@@ -22,6 +22,8 @@ class X11DataTextureSourceBasic : public DataTextureSource
public:
X11DataTextureSourceBasic() {};
+ virtual const char* Name() const override { return "X11DataTextureSourceBasic"; }
+
virtual bool Update(gfx::DataSourceSurface* aSurface,
nsIntRegion* aDestRegion = nullptr,
gfx::IntPoint* aSrcOffset = nullptr) override;
diff --git a/gfx/layers/basic/X11TextureSourceBasic.h b/gfx/layers/basic/X11TextureSourceBasic.h
index 92c9f6c63d0..f813560e04e 100644
--- a/gfx/layers/basic/X11TextureSourceBasic.h
+++ b/gfx/layers/basic/X11TextureSourceBasic.h
@@ -24,6 +24,8 @@ class X11TextureSourceBasic
public:
X11TextureSourceBasic(BasicCompositor* aCompositor, gfxXlibSurface* aSurface);
+ virtual const char* Name() const override { return "X11TextureSourceBasic"; }
+
virtual X11TextureSourceBasic* AsSourceBasic() override { return this; }
virtual gfx::IntSize GetSize() const override;
diff --git a/gfx/layers/composite/TextureHost.cpp b/gfx/layers/composite/TextureHost.cpp
index dcf9278717c..75aa85b30fa 100644
--- a/gfx/layers/composite/TextureHost.cpp
+++ b/gfx/layers/composite/TextureHost.cpp
@@ -374,6 +374,13 @@ TextureSource::~TextureSource()
MOZ_COUNT_DTOR(TextureSource);
}
+const char*
+TextureSource::Name() const
+{
+ MOZ_CRASH("TextureSource without class name");
+ return "TextureSource";
+}
+
BufferTextureHost::BufferTextureHost(const BufferDescriptor& aDesc,
TextureFlags aFlags)
: TextureHost(aFlags)
diff --git a/gfx/layers/composite/TextureHost.h b/gfx/layers/composite/TextureHost.h
index 4de69a787ab..4c4a882246a 100644
--- a/gfx/layers/composite/TextureHost.h
+++ b/gfx/layers/composite/TextureHost.h
@@ -88,6 +88,8 @@ public:
virtual ~TextureSource();
+ virtual const char* Name() const = 0;
+
/**
* Should be overridden in order to deallocate the data that is associated
* with the rendering backend, such as GL textures.
@@ -233,6 +235,8 @@ public:
: mUpdateSerial(0)
{}
+ virtual const char* Name() const override { return "DataTextureSource"; }
+
virtual DataTextureSource* AsDataTextureSource() override { return this; }
/**
@@ -724,6 +728,8 @@ public:
{}
virtual ~CompositingRenderTarget() {}
+ virtual const char* Name() const override { return "CompositingRenderTarget"; }
+
#ifdef MOZ_DUMP_PAINTING
virtual already_AddRefed Dump(Compositor* aCompositor) { return nullptr; }
#endif
diff --git a/gfx/layers/composite/X11TextureHost.h b/gfx/layers/composite/X11TextureHost.h
index 4ac586f01b1..7c6cc7d72bb 100644
--- a/gfx/layers/composite/X11TextureHost.h
+++ b/gfx/layers/composite/X11TextureHost.h
@@ -21,6 +21,8 @@ public:
// Called when the underlying X surface has been changed.
// Useful for determining whether to rebind a GLXPixmap to a texture.
virtual void Updated() = 0;
+
+ virtual const char* Name() const override { return "X11TextureSource"; }
};
// TextureHost for Xlib-backed TextureSources.
diff --git a/gfx/layers/d3d11/TextureD3D11.h b/gfx/layers/d3d11/TextureD3D11.h
index f4bc9f69582..1c91a3c06e4 100644
--- a/gfx/layers/d3d11/TextureD3D11.h
+++ b/gfx/layers/d3d11/TextureD3D11.h
@@ -253,6 +253,7 @@ public:
virtual ~DataTextureSourceD3D11();
+ virtual const char* Name() const override { return "DataTextureSourceD3D11"; }
// DataTextureSource
@@ -408,6 +409,8 @@ public:
const gfx::IntPoint& aOrigin,
DXGI_FORMAT aFormatOverride = DXGI_FORMAT_UNKNOWN);
+ virtual const char* Name() const override { return "CompositingRenderTargetD3D11"; }
+
virtual TextureSourceD3D11* AsSourceD3D11() override { return this; }
void BindRenderTarget(ID3D11DeviceContext* aContext);
diff --git a/gfx/layers/d3d9/TextureD3D9.h b/gfx/layers/d3d9/TextureD3D9.h
index 83a1b0b0a45..4e341463a1f 100644
--- a/gfx/layers/d3d9/TextureD3D9.h
+++ b/gfx/layers/d3d9/TextureD3D9.h
@@ -112,6 +112,8 @@ public:
virtual ~DataTextureSourceD3D9();
+ virtual const char* Name() const override { return "DataTextureSourceD3D9"; }
+
// DataTextureSource
virtual bool Update(gfx::DataSourceSurface* aSurface,
@@ -398,6 +400,8 @@ public:
const gfx::IntRect& aRect);
virtual ~CompositingRenderTargetD3D9();
+ virtual const char* Name() const override { return "CompositingRenderTargetD3D9"; }
+
virtual TextureSourceD3D9* AsSourceD3D9() override
{
MOZ_ASSERT(mTexture,
diff --git a/gfx/layers/opengl/CompositingRenderTargetOGL.h b/gfx/layers/opengl/CompositingRenderTargetOGL.h
index 3b6b055c522..cca94410a06 100644
--- a/gfx/layers/opengl/CompositingRenderTargetOGL.h
+++ b/gfx/layers/opengl/CompositingRenderTargetOGL.h
@@ -77,6 +77,8 @@ public:
~CompositingRenderTargetOGL();
+ virtual const char* Name() const override { return "CompositingRenderTargetOGL"; }
+
/**
* Create a render target around the default FBO, for rendering straight to
* the window.
diff --git a/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.h b/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.h
index f408244acc4..48250e1a9df 100644
--- a/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.h
+++ b/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.h
@@ -28,6 +28,8 @@ public:
MacIOSurface* aSurface);
virtual ~MacIOSurfaceTextureSourceOGL();
+ virtual const char* Name() const override { return "MacIOSurfaceTextureSourceOGL"; }
+
virtual TextureSourceOGL* AsSourceOGL() override { return this; }
virtual void BindTexture(GLenum activetex, gfx::Filter aFilter) override;
diff --git a/gfx/layers/opengl/TextureHostOGL.h b/gfx/layers/opengl/TextureHostOGL.h
index efdc19a7ce3..5d6334a1fbe 100644
--- a/gfx/layers/opengl/TextureHostOGL.h
+++ b/gfx/layers/opengl/TextureHostOGL.h
@@ -142,6 +142,7 @@ public:
, mIterating(false)
{}
+ virtual const char* Name() const override { return "TextureImageTextureSourceOGL"; }
// DataTextureSource
virtual bool Update(gfx::DataSourceSurface* aSurface,
@@ -237,6 +238,8 @@ public:
~GLTextureSource();
+ virtual const char* Name() const override { return "GLTextureSource"; }
+
virtual GLTextureSource* AsGLTextureSource() override { return this; }
virtual TextureSourceOGL* AsSourceOGL() override { return this; }
@@ -344,6 +347,8 @@ public:
GLenum aWrapMode,
gfx::IntSize aSize);
+ virtual const char* Name() const override { return "SurfaceTextureSource"; }
+
virtual TextureSourceOGL* AsSourceOGL() { return this; }
virtual void BindTexture(GLenum activetex, gfx::Filter aFilter) override;
@@ -436,6 +441,8 @@ public:
GLenum aWrapMode,
gfx::IntSize aSize);
+ virtual const char* Name() const override { return "EGLImageTextureSource"; }
+
virtual TextureSourceOGL* AsSourceOGL() override { return this; }
virtual void BindTexture(GLenum activetex, gfx::Filter aFilter) override;
From 920f065175ee8a16bec1ab8a8bc899d2dcc2a9a0 Mon Sep 17 00:00:00 2001
From: Milan Sreckovic
Date: Tue, 2 Feb 2016 11:07:00 +0100
Subject: [PATCH 015/160] Bug 1187464 - Part 3. Check if GetSurface returned
null. r=mstange
---
gfx/layers/basic/BasicCompositor.cpp | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/gfx/layers/basic/BasicCompositor.cpp b/gfx/layers/basic/BasicCompositor.cpp
index 7c3a992a356..8febcc215ad 100644
--- a/gfx/layers/basic/BasicCompositor.cpp
+++ b/gfx/layers/basic/BasicCompositor.cpp
@@ -176,6 +176,11 @@ DrawSurfaceWithTextureCoords(DrawTarget *aDest,
SourceSurface *aMask,
const Matrix* aMaskTransform)
{
+ if (!aSource || !aMask) {
+ gfxWarning() << "DrawSurfaceWithTextureCoords problem " << gfx::hexa(aSource) << " and " << gfx::hexa(aMask);
+ return;
+ }
+
// Convert aTextureCoords into aSource's coordinate space
gfxRect sourceRect(aTextureCoords.x * aSource->GetSize().width,
aTextureCoords.y * aSource->GetSize().height,
@@ -397,6 +402,9 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
if (aEffectChain.mSecondaryEffects[EffectTypes::MASK]) {
EffectMask *effectMask = static_cast(aEffectChain.mSecondaryEffects[EffectTypes::MASK].get());
sourceMask = effectMask->mMaskTexture->AsSourceBasic()->GetSurface(dest);
+ if (!sourceMask) {
+ gfxWarning() << "Invalid sourceMask effect";
+ }
MOZ_ASSERT(effectMask->mMaskTransform.Is2D(), "How did we end up with a 3D transform here?!");
MOZ_ASSERT(!effectMask->mIs3D);
maskTransform = effectMask->mMaskTransform.As2D();
@@ -439,7 +447,9 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
DrawOptions(aOpacity, blendMode),
sourceMask, &maskTransform);
} else if (source) {
- RefPtr srcData = source->GetSurface(dest)->GetDataSurface();
+ SourceSurface* srcSurf = source->GetSurface(dest);
+ if (srcSurf) {
+ RefPtr srcData = srcSurf->GetDataSurface();
// Yes, we re-create the premultiplied data every time.
// This might be better with a cache, eventually.
@@ -451,8 +461,9 @@ BasicCompositor::DrawQuad(const gfx::Rect& aRect,
texturedEffect->mFilter,
DrawOptions(aOpacity, blendMode),
sourceMask, &maskTransform);
+ }
} else {
- gfxDevCrash(LogReason::IncompatibleBasicTexturedEffect) << "Bad for basic with " << texturedEffect->mTexture->Name();
+ gfxDevCrash(LogReason::IncompatibleBasicTexturedEffect) << "Bad for basic with " << texturedEffect->mTexture->Name() << " and " << gfx::hexa(sourceMask);
}
break;
From a57552183104b6fc81336aae8e6345c2884809d5 Mon Sep 17 00:00:00 2001
From: James Graham
Date: Tue, 2 Feb 2016 22:04:13 +0000
Subject: [PATCH 016/160] Bug 1245460 - Update web-platform-tests to revision
af65262f5f3400024279c526117489f1f11d3233, a=testonly
---
testing/web-platform/meta/MANIFEST.json | 66 +++-
testing/web-platform/meta/mozilla-sync | 2 +-
testing/web-platform/tests/DOMEvents/OWNERS | 3 +
testing/web-platform/tests/FileAPI/OWNERS | 6 +
testing/web-platform/tests/IndexedDB/OWNERS | 8 +
.../web-platform/tests/WebCryptoAPI/OWNERS | 2 +
.../web-platform/tests/XMLHttpRequest/OWNERS | 13 +
.../responsexml-document-properties.htm | 2 +-
.../web-platform/tests/ambient-light/OWNERS | 3 +
testing/web-platform/tests/app-uri/OWNERS | 1 +
testing/web-platform/tests/common/OWNERS | 4 +
.../tests/conformance-checkers/OWNERS | 1 +
.../tests/content-security-policy/OWNERS | 2 +
testing/web-platform/tests/cors/OWNERS | 5 +
testing/web-platform/tests/cssom-view/OWNERS | 1 +
.../web-platform/tests/custom-elements/OWNERS | 3 +
testing/web-platform/tests/docs/OWNERS | 4 +
testing/web-platform/tests/dom/OWNERS | 6 +
testing/web-platform/tests/domparsing/OWNERS | 5 +
testing/web-platform/tests/domxpath/OWNERS | 3 +
testing/web-platform/tests/editing/OWNERS | 1 +
testing/web-platform/tests/encoding/OWNERS | 2 +
testing/web-platform/tests/eventsource/OWNERS | 5 +
testing/web-platform/tests/fetch/OWNERS | 2 +
testing/web-platform/tests/gamepad/OWNERS | 1 +
.../web-platform/tests/geolocation-API/OWNERS | 2 +
testing/web-platform/tests/hr-time/OWNERS | 2 +
.../web-platform/tests/html-imports/OWNERS | 1 +
.../web-platform/tests/html-longdesc/OWNERS | 2 +
.../tests/html-media-capture/OWNERS | 2 +
testing/web-platform/tests/html/OWNERS | 1 +
.../resources/blank1.html | 8 +
.../resources/blank2.html | 8 +
.../resources/page-with-fragment.html | 20 ++
.../scroll-restoration-basic.html | 34 +++
...ation-fragment-scrolling-cross-origin.html | 67 ++++
...estoration-fragment-scrolling-samedoc.html | 54 ++++
...l-restoration-navigation-cross-origin.html | 71 +++++
...scroll-restoration-navigation-samedoc.html | 81 +++++
.../tests/html/dom/interfaces.html | 3 +
.../lists/li-type-supported-ref.html | 6 +-
.../lists/li-type-supported.html | 6 +-
.../lists/li-type-supported.xhtml | 6 +-
.../the-embed-element/embed-document.html | 10 +-
.../the-button-element/button-events.html | 16 +-
.../forms/the-input-element/checkbox.html | 60 +++-
.../forms/the-input-element/file-manual.html | 4 +-
.../forms/the-input-element/radio.html | 58 ++--
.../events/event-handler-onresize.html | 38 +++
testing/web-platform/tests/images/OWNERS | 2 +
.../web-platform/tests/media-source/OWNERS | 4 +
testing/web-platform/tests/media/OWNERS | 2 +
.../tests/mediacapture-streams/OWNERS | 3 +
.../web-platform/tests/mixed-content/OWNERS | 1 +
.../tests/navigation-timing/OWNERS | 2 +
.../web-platform/tests/notifications/OWNERS | 4 +
.../web-platform/tests/page-visibility/OWNERS | 2 +
.../tests/performance-timeline/OWNERS | 1 +
.../web-platform/tests/pointerevents/OWNERS | 7 +
testing/web-platform/tests/pointerlock/OWNERS | 1 +
testing/web-platform/tests/proximity/OWNERS | 2 +
testing/web-platform/tests/quirks-mode/OWNERS | 1 +
.../web-platform/tests/referrer-policy/OWNERS | 1 +
.../web-platform/tests/resource-timing/OWNERS | 3 +
.../tests/screen-orientation/OWNERS | 1 +
testing/web-platform/tests/selection/OWNERS | 1 +
.../web-platform/tests/service-workers/OWNERS | 1 +
.../service-workers/cache-storage/OWNERS | 2 +
.../cache-storage/resources/test-helpers.js | 200 ++++++++++++
.../resources/testharness-helpers.js | 67 ----
.../cache-storage/script-tests/cache-add.js | 138 ++++++++-
.../cache-storage/script-tests/cache-match.js | 289 ++----------------
.../script-tests/cache-matchAll.js | 154 ++++++++++
.../cache-storage/script-tests/cache-put.js | 22 +-
.../script-tests/cache-storage.js | 3 +-
.../serviceworker/cache-match.https.html | 2 +-
.../serviceworker/cache-matchAll.https.html | 10 +
.../window/cache-match.https.html | 2 +-
.../window/cache-matchAll.https.html | 9 +
.../worker/cache-match.https.html | 2 +-
.../worker/cache-matchAll.https.html | 9 +
testing/web-platform/tests/shadow-dom/OWNERS | 5 +
.../tests/subresource-integrity/OWNERS | 6 +
testing/web-platform/tests/svg/OWNERS | 2 +
.../web-platform/tests/touch-events/OWNERS | 3 +
testing/web-platform/tests/typedarrays/OWNERS | 4 +
testing/web-platform/tests/url/OWNERS | 8 +
testing/web-platform/tests/user-timing/OWNERS | 1 +
testing/web-platform/tests/vibration/OWNERS | 3 +
.../web-platform/tests/web-animations/OWNERS | 1 +
testing/web-platform/tests/webaudio/OWNERS | 1 +
testing/web-platform/tests/webdriver/OWNERS | 4 +
.../conformance/programs/program-test.html | 6 +-
.../web-platform/tests/webmessaging/OWNERS | 6 +
testing/web-platform/tests/webrtc/OWNERS | 4 +
...Secure-valid-url-protocol-setCorrectly.htm | 2 +-
testing/web-platform/tests/websockets/OWNERS | 9 +
.../tests/websockets/websocket.js | 72 ++---
testing/web-platform/tests/webstorage/OWNERS | 9 +
testing/web-platform/tests/workers/OWNERS | 6 +
.../WorkerUtils/importScripts/001.html | 26 --
.../WorkerUtils/importScripts/001.worker.js | 7 +
.../WorkerUtils/importScripts/002.html | 32 --
.../WorkerUtils/importScripts/002.worker.js | 11 +
104 files changed, 1348 insertions(+), 539 deletions(-)
create mode 100644 testing/web-platform/tests/DOMEvents/OWNERS
create mode 100644 testing/web-platform/tests/FileAPI/OWNERS
create mode 100644 testing/web-platform/tests/IndexedDB/OWNERS
create mode 100644 testing/web-platform/tests/WebCryptoAPI/OWNERS
create mode 100644 testing/web-platform/tests/XMLHttpRequest/OWNERS
create mode 100644 testing/web-platform/tests/ambient-light/OWNERS
create mode 100644 testing/web-platform/tests/app-uri/OWNERS
create mode 100644 testing/web-platform/tests/common/OWNERS
create mode 100644 testing/web-platform/tests/conformance-checkers/OWNERS
create mode 100644 testing/web-platform/tests/content-security-policy/OWNERS
create mode 100644 testing/web-platform/tests/cors/OWNERS
create mode 100644 testing/web-platform/tests/cssom-view/OWNERS
create mode 100644 testing/web-platform/tests/custom-elements/OWNERS
create mode 100644 testing/web-platform/tests/docs/OWNERS
create mode 100644 testing/web-platform/tests/dom/OWNERS
create mode 100644 testing/web-platform/tests/domparsing/OWNERS
create mode 100644 testing/web-platform/tests/domxpath/OWNERS
create mode 100644 testing/web-platform/tests/editing/OWNERS
create mode 100644 testing/web-platform/tests/encoding/OWNERS
create mode 100644 testing/web-platform/tests/eventsource/OWNERS
create mode 100644 testing/web-platform/tests/fetch/OWNERS
create mode 100644 testing/web-platform/tests/gamepad/OWNERS
create mode 100644 testing/web-platform/tests/geolocation-API/OWNERS
create mode 100644 testing/web-platform/tests/hr-time/OWNERS
create mode 100644 testing/web-platform/tests/html-imports/OWNERS
create mode 100644 testing/web-platform/tests/html-longdesc/OWNERS
create mode 100644 testing/web-platform/tests/html-media-capture/OWNERS
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank2.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/page-with-fragment.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
create mode 100644 testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html
create mode 100644 testing/web-platform/tests/html/webappapis/scripting/events/event-handler-onresize.html
create mode 100644 testing/web-platform/tests/images/OWNERS
create mode 100644 testing/web-platform/tests/media-source/OWNERS
create mode 100644 testing/web-platform/tests/media/OWNERS
create mode 100644 testing/web-platform/tests/mediacapture-streams/OWNERS
create mode 100644 testing/web-platform/tests/mixed-content/OWNERS
create mode 100644 testing/web-platform/tests/navigation-timing/OWNERS
create mode 100644 testing/web-platform/tests/notifications/OWNERS
create mode 100644 testing/web-platform/tests/page-visibility/OWNERS
create mode 100644 testing/web-platform/tests/performance-timeline/OWNERS
create mode 100644 testing/web-platform/tests/pointerevents/OWNERS
create mode 100644 testing/web-platform/tests/pointerlock/OWNERS
create mode 100644 testing/web-platform/tests/proximity/OWNERS
create mode 100644 testing/web-platform/tests/quirks-mode/OWNERS
create mode 100644 testing/web-platform/tests/referrer-policy/OWNERS
create mode 100644 testing/web-platform/tests/resource-timing/OWNERS
create mode 100644 testing/web-platform/tests/screen-orientation/OWNERS
create mode 100644 testing/web-platform/tests/selection/OWNERS
create mode 100644 testing/web-platform/tests/service-workers/OWNERS
create mode 100644 testing/web-platform/tests/service-workers/cache-storage/OWNERS
create mode 100644 testing/web-platform/tests/service-workers/cache-storage/script-tests/cache-matchAll.js
create mode 100644 testing/web-platform/tests/service-workers/cache-storage/serviceworker/cache-matchAll.https.html
create mode 100644 testing/web-platform/tests/service-workers/cache-storage/window/cache-matchAll.https.html
create mode 100644 testing/web-platform/tests/service-workers/cache-storage/worker/cache-matchAll.https.html
create mode 100644 testing/web-platform/tests/shadow-dom/OWNERS
create mode 100644 testing/web-platform/tests/subresource-integrity/OWNERS
create mode 100644 testing/web-platform/tests/svg/OWNERS
create mode 100644 testing/web-platform/tests/touch-events/OWNERS
create mode 100644 testing/web-platform/tests/typedarrays/OWNERS
create mode 100644 testing/web-platform/tests/url/OWNERS
create mode 100644 testing/web-platform/tests/user-timing/OWNERS
create mode 100644 testing/web-platform/tests/vibration/OWNERS
create mode 100644 testing/web-platform/tests/web-animations/OWNERS
create mode 100644 testing/web-platform/tests/webaudio/OWNERS
create mode 100644 testing/web-platform/tests/webdriver/OWNERS
create mode 100644 testing/web-platform/tests/webmessaging/OWNERS
create mode 100644 testing/web-platform/tests/webrtc/OWNERS
create mode 100644 testing/web-platform/tests/websockets/OWNERS
create mode 100644 testing/web-platform/tests/webstorage/OWNERS
create mode 100644 testing/web-platform/tests/workers/OWNERS
delete mode 100644 testing/web-platform/tests/workers/interfaces/WorkerUtils/importScripts/001.html
create mode 100644 testing/web-platform/tests/workers/interfaces/WorkerUtils/importScripts/001.worker.js
delete mode 100644 testing/web-platform/tests/workers/interfaces/WorkerUtils/importScripts/002.html
create mode 100644 testing/web-platform/tests/workers/interfaces/WorkerUtils/importScripts/002.worker.js
diff --git a/testing/web-platform/meta/MANIFEST.json b/testing/web-platform/meta/MANIFEST.json
index c7c06998045..427edc6a089 100644
--- a/testing/web-platform/meta/MANIFEST.json
+++ b/testing/web-platform/meta/MANIFEST.json
@@ -13583,6 +13583,10 @@
"path": "cssom-view/elementsFromPoint.html",
"url": "/cssom-view/elementsFromPoint.html"
},
+ {
+ "path": "cssom-view/negativeMargins.html",
+ "url": "/cssom-view/negativeMargins.html"
+ },
{
"path": "cssom-view/scrollingElement.html",
"url": "/cssom-view/scrollingElement.html"
@@ -15627,6 +15631,18 @@
"path": "html/browsers/browsing-the-web/history-traversal/hashchange_event.html",
"url": "/html/browsers/browsing-the-web/history-traversal/hashchange_event.html"
},
+ {
+ "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html",
+ "url": "/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html"
+ },
+ {
+ "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html",
+ "url": "/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html"
+ },
+ {
+ "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html",
+ "url": "/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html"
+ },
{
"path": "html/browsers/browsing-the-web/history-traversal/popstate_event.html",
"url": "/html/browsers/browsing-the-web/history-traversal/popstate_event.html"
@@ -19515,6 +19531,10 @@
"path": "html/webappapis/scripting/events/event-handler-javascript.html",
"url": "/html/webappapis/scripting/events/event-handler-javascript.html"
},
+ {
+ "path": "html/webappapis/scripting/events/event-handler-onresize.html",
+ "url": "/html/webappapis/scripting/events/event-handler-onresize.html"
+ },
{
"path": "html/webappapis/scripting/events/event-handler-spec-example.html",
"url": "/html/webappapis/scripting/events/event-handler-spec-example.html"
@@ -31964,12 +31984,12 @@
"url": "/workers/interfaces/WorkerUtils/WindowTimers/004.html"
},
{
- "path": "workers/interfaces/WorkerUtils/importScripts/001.html",
- "url": "/workers/interfaces/WorkerUtils/importScripts/001.html"
+ "path": "workers/interfaces/WorkerUtils/importScripts/001.worker.js",
+ "url": "/workers/interfaces/WorkerUtils/importScripts/001.worker"
},
{
- "path": "workers/interfaces/WorkerUtils/importScripts/002.html",
- "url": "/workers/interfaces/WorkerUtils/importScripts/002.html"
+ "path": "workers/interfaces/WorkerUtils/importScripts/002.worker.js",
+ "url": "/workers/interfaces/WorkerUtils/importScripts/002.worker"
},
{
"path": "workers/interfaces/WorkerUtils/importScripts/003.html",
@@ -32498,6 +32518,16 @@
"timeout": "long",
"url": "/eventsource/shared-worker/eventsource-constructor-non-same-origin.htm"
},
+ {
+ "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html",
+ "timeout": "long",
+ "url": "/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html"
+ },
+ {
+ "path": "html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html",
+ "timeout": "long",
+ "url": "/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html"
+ },
{
"path": "html/browsers/browsing-the-web/scroll-to-fragid/007.html",
"timeout": "long",
@@ -33428,6 +33458,11 @@
"timeout": "long",
"url": "/service-workers/cache-storage/serviceworker/cache-match.https.html"
},
+ {
+ "path": "service-workers/cache-storage/serviceworker/cache-matchAll.https.html",
+ "timeout": "long",
+ "url": "/service-workers/cache-storage/serviceworker/cache-matchAll.https.html"
+ },
{
"path": "service-workers/cache-storage/serviceworker/cache-put.https.html",
"timeout": "long",
@@ -33463,6 +33498,11 @@
"timeout": "long",
"url": "/service-workers/cache-storage/window/cache-match.https.html"
},
+ {
+ "path": "service-workers/cache-storage/window/cache-matchAll.https.html",
+ "timeout": "long",
+ "url": "/service-workers/cache-storage/window/cache-matchAll.https.html"
+ },
{
"path": "service-workers/cache-storage/window/cache-put.https.html",
"timeout": "long",
@@ -33503,6 +33543,11 @@
"timeout": "long",
"url": "/service-workers/cache-storage/worker/cache-match.https.html"
},
+ {
+ "path": "service-workers/cache-storage/worker/cache-matchAll.https.html",
+ "timeout": "long",
+ "url": "/service-workers/cache-storage/worker/cache-matchAll.https.html"
+ },
{
"path": "service-workers/cache-storage/worker/cache-put.https.html",
"timeout": "long",
@@ -33713,16 +33758,7 @@
},
"local_changes": {
"deleted": [],
- "items": {
- "testharness": {
- "cssom-view/negativeMargins.html": [
- {
- "path": "cssom-view/negativeMargins.html",
- "url": "/cssom-view/negativeMargins.html"
- }
- ]
- }
- },
+ "items": {},
"reftest_nodes": {}
},
"reftest_nodes": {
@@ -39835,7 +39871,7 @@
}
]
},
- "rev": "f3f87e1a2cc3845819038a8a6fe435bb6092e213",
+ "rev": "af65262f5f3400024279c526117489f1f11d3233",
"url_base": "/",
"version": 2
}
diff --git a/testing/web-platform/meta/mozilla-sync b/testing/web-platform/meta/mozilla-sync
index 269ca479cd1..5f5462944ea 100644
--- a/testing/web-platform/meta/mozilla-sync
+++ b/testing/web-platform/meta/mozilla-sync
@@ -1 +1 @@
-a035c3724da7e8235c26a3b6ea567365efda3b15
\ No newline at end of file
+fa876a5774a3178efb42d6ebd8c8df045e03a80b
\ No newline at end of file
diff --git a/testing/web-platform/tests/DOMEvents/OWNERS b/testing/web-platform/tests/DOMEvents/OWNERS
new file mode 100644
index 00000000000..50802902fb8
--- /dev/null
+++ b/testing/web-platform/tests/DOMEvents/OWNERS
@@ -0,0 +1,3 @@
+@jdm
+@zqzhang
+@Ms2ger
diff --git a/testing/web-platform/tests/FileAPI/OWNERS b/testing/web-platform/tests/FileAPI/OWNERS
new file mode 100644
index 00000000000..03bb9336574
--- /dev/null
+++ b/testing/web-platform/tests/FileAPI/OWNERS
@@ -0,0 +1,6 @@
+@inexorabletash
+@plehegar
+@zqzhang
+@zcorpan
+@jdm
+@Ms2ger
diff --git a/testing/web-platform/tests/IndexedDB/OWNERS b/testing/web-platform/tests/IndexedDB/OWNERS
new file mode 100644
index 00000000000..711894a54b3
--- /dev/null
+++ b/testing/web-platform/tests/IndexedDB/OWNERS
@@ -0,0 +1,8 @@
+@Velmont
+@inexorabletash
+@chunywang
+@dumbmatter
+@zqzhang
+@yunxiaoxie
+@zhaozihao
+@foolip
diff --git a/testing/web-platform/tests/WebCryptoAPI/OWNERS b/testing/web-platform/tests/WebCryptoAPI/OWNERS
new file mode 100644
index 00000000000..70190999b7c
--- /dev/null
+++ b/testing/web-platform/tests/WebCryptoAPI/OWNERS
@@ -0,0 +1,2 @@
+@Wafflespeanut
+@Ms2ger
diff --git a/testing/web-platform/tests/XMLHttpRequest/OWNERS b/testing/web-platform/tests/XMLHttpRequest/OWNERS
new file mode 100644
index 00000000000..7a809e70f6c
--- /dev/null
+++ b/testing/web-platform/tests/XMLHttpRequest/OWNERS
@@ -0,0 +1,13 @@
+@ecoal95
+@hallvors
+@kangxu
+@caitp
+@Manishearth
+@plehegar
+@foolip
+@jungkees
+@ibelem
+@mathiasbynens
+@ronkorving
+@jdm
+@Ms2ger
diff --git a/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm
index ed53996dcec..a1bdc8e97db 100644
--- a/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm
+++ b/testing/web-platform/tests/XMLHttpRequest/responsexml-document-properties.htm
@@ -43,7 +43,7 @@
}
test(function() {
- assert_true((new Date(client.getResponseHeader('Last-Modified'))).getTime() == (new Date(client.responseXML.lastModified)).getTime(), 'responseXML.lastModified time shoud be equal to time in response Last-Modified header')
+ assert_true((new Date(client.getResponseHeader('Last-Modified'))).getTime() == (new Date(client.responseXML.lastModified)).getTime(), 'responseXML.lastModified time should be equal to time in response Last-Modified header')
}, 'lastModified set according to HTTP header')
test(function() {
diff --git a/testing/web-platform/tests/ambient-light/OWNERS b/testing/web-platform/tests/ambient-light/OWNERS
new file mode 100644
index 00000000000..548c25a14da
--- /dev/null
+++ b/testing/web-platform/tests/ambient-light/OWNERS
@@ -0,0 +1,3 @@
+@zqzhang
+@Volker-E
+@dontcallmedom
diff --git a/testing/web-platform/tests/app-uri/OWNERS b/testing/web-platform/tests/app-uri/OWNERS
new file mode 100644
index 00000000000..261dea7df72
--- /dev/null
+++ b/testing/web-platform/tests/app-uri/OWNERS
@@ -0,0 +1 @@
+@happyoungj
diff --git a/testing/web-platform/tests/common/OWNERS b/testing/web-platform/tests/common/OWNERS
new file mode 100644
index 00000000000..1da08cf4983
--- /dev/null
+++ b/testing/web-platform/tests/common/OWNERS
@@ -0,0 +1,4 @@
+@zqzhang
+@foolip
+@dontcallmedom
+@deniak
diff --git a/testing/web-platform/tests/conformance-checkers/OWNERS b/testing/web-platform/tests/conformance-checkers/OWNERS
new file mode 100644
index 00000000000..2ac6145caa8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/OWNERS
@@ -0,0 +1 @@
+@sideshowbarker
diff --git a/testing/web-platform/tests/content-security-policy/OWNERS b/testing/web-platform/tests/content-security-policy/OWNERS
new file mode 100644
index 00000000000..27348607493
--- /dev/null
+++ b/testing/web-platform/tests/content-security-policy/OWNERS
@@ -0,0 +1,2 @@
+@sideshowbarker
+@hillbrad
diff --git a/testing/web-platform/tests/cors/OWNERS b/testing/web-platform/tests/cors/OWNERS
new file mode 100644
index 00000000000..c8979792445
--- /dev/null
+++ b/testing/web-platform/tests/cors/OWNERS
@@ -0,0 +1,5 @@
+@sideshowbarker
+@zqzhang
+@Velmont
+@hillbrad
+@jdm
diff --git a/testing/web-platform/tests/cssom-view/OWNERS b/testing/web-platform/tests/cssom-view/OWNERS
new file mode 100644
index 00000000000..cd9ff2eee4b
--- /dev/null
+++ b/testing/web-platform/tests/cssom-view/OWNERS
@@ -0,0 +1 @@
+@AutomatedTester
diff --git a/testing/web-platform/tests/custom-elements/OWNERS b/testing/web-platform/tests/custom-elements/OWNERS
new file mode 100644
index 00000000000..4671167903f
--- /dev/null
+++ b/testing/web-platform/tests/custom-elements/OWNERS
@@ -0,0 +1,3 @@
+@deepak-sa
+@sgrekhov
+@alsemenov
diff --git a/testing/web-platform/tests/docs/OWNERS b/testing/web-platform/tests/docs/OWNERS
new file mode 100644
index 00000000000..af3e0845c35
--- /dev/null
+++ b/testing/web-platform/tests/docs/OWNERS
@@ -0,0 +1,4 @@
+@sideshowbarker
+@dontcallmedom
+@zcorpan
+@Ms2ger
diff --git a/testing/web-platform/tests/dom/OWNERS b/testing/web-platform/tests/dom/OWNERS
new file mode 100644
index 00000000000..fad498154e4
--- /dev/null
+++ b/testing/web-platform/tests/dom/OWNERS
@@ -0,0 +1,6 @@
+@ayg
+@jdm
+@Ms2ger
+@plehegar
+@zcorpan
+@zqzhang
diff --git a/testing/web-platform/tests/domparsing/OWNERS b/testing/web-platform/tests/domparsing/OWNERS
new file mode 100644
index 00000000000..113c79d205d
--- /dev/null
+++ b/testing/web-platform/tests/domparsing/OWNERS
@@ -0,0 +1,5 @@
+@sideshowbarker
+@ChrisParis
+@deniak
+@jdm
+@Ms2ger
diff --git a/testing/web-platform/tests/domxpath/OWNERS b/testing/web-platform/tests/domxpath/OWNERS
new file mode 100644
index 00000000000..7c764a42450
--- /dev/null
+++ b/testing/web-platform/tests/domxpath/OWNERS
@@ -0,0 +1,3 @@
+@gsnedders
+@zqzhang
+@deniak
diff --git a/testing/web-platform/tests/editing/OWNERS b/testing/web-platform/tests/editing/OWNERS
new file mode 100644
index 00000000000..ce908c45b4a
--- /dev/null
+++ b/testing/web-platform/tests/editing/OWNERS
@@ -0,0 +1 @@
+@ayg
diff --git a/testing/web-platform/tests/encoding/OWNERS b/testing/web-platform/tests/encoding/OWNERS
new file mode 100644
index 00000000000..4917e26650a
--- /dev/null
+++ b/testing/web-platform/tests/encoding/OWNERS
@@ -0,0 +1,2 @@
+@inexorabletash
+@sideshowbarker
diff --git a/testing/web-platform/tests/eventsource/OWNERS b/testing/web-platform/tests/eventsource/OWNERS
new file mode 100644
index 00000000000..4f8d605d71c
--- /dev/null
+++ b/testing/web-platform/tests/eventsource/OWNERS
@@ -0,0 +1,5 @@
+@zqzhang
+@sideshowbarker
+@deniak
+@Velmont
+@Yaffle
diff --git a/testing/web-platform/tests/fetch/OWNERS b/testing/web-platform/tests/fetch/OWNERS
new file mode 100644
index 00000000000..fbeac366e3c
--- /dev/null
+++ b/testing/web-platform/tests/fetch/OWNERS
@@ -0,0 +1,2 @@
+@jdm
+@youennf
diff --git a/testing/web-platform/tests/gamepad/OWNERS b/testing/web-platform/tests/gamepad/OWNERS
new file mode 100644
index 00000000000..d7fbc2625bd
--- /dev/null
+++ b/testing/web-platform/tests/gamepad/OWNERS
@@ -0,0 +1 @@
+@luser
diff --git a/testing/web-platform/tests/geolocation-API/OWNERS b/testing/web-platform/tests/geolocation-API/OWNERS
new file mode 100644
index 00000000000..64e2488b4ba
--- /dev/null
+++ b/testing/web-platform/tests/geolocation-API/OWNERS
@@ -0,0 +1,2 @@
+@zqzhang
+@jdm
diff --git a/testing/web-platform/tests/hr-time/OWNERS b/testing/web-platform/tests/hr-time/OWNERS
new file mode 100644
index 00000000000..ffa09d9ade9
--- /dev/null
+++ b/testing/web-platform/tests/hr-time/OWNERS
@@ -0,0 +1,2 @@
+@plehegar
+@foolip
diff --git a/testing/web-platform/tests/html-imports/OWNERS b/testing/web-platform/tests/html-imports/OWNERS
new file mode 100644
index 00000000000..edda46755d6
--- /dev/null
+++ b/testing/web-platform/tests/html-imports/OWNERS
@@ -0,0 +1 @@
+@omo
diff --git a/testing/web-platform/tests/html-longdesc/OWNERS b/testing/web-platform/tests/html-longdesc/OWNERS
new file mode 100644
index 00000000000..91527fa2ac9
--- /dev/null
+++ b/testing/web-platform/tests/html-longdesc/OWNERS
@@ -0,0 +1,2 @@
+@chaals
+@cptvitamin
diff --git a/testing/web-platform/tests/html-media-capture/OWNERS b/testing/web-platform/tests/html-media-capture/OWNERS
new file mode 100644
index 00000000000..b45f53558b6
--- /dev/null
+++ b/testing/web-platform/tests/html-media-capture/OWNERS
@@ -0,0 +1,2 @@
+@haoxli
+@zqzhang
diff --git a/testing/web-platform/tests/html/OWNERS b/testing/web-platform/tests/html/OWNERS
index 210a621c919..ef22027135b 100644
--- a/testing/web-platform/tests/html/OWNERS
+++ b/testing/web-platform/tests/html/OWNERS
@@ -1,5 +1,6 @@
@Ms2ger
@gsnedders
+@jdm
@jgraham
@plehegar
@sideshowbarker
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html
new file mode 100644
index 00000000000..6b4df1ef2fc
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank1.html
@@ -0,0 +1,8 @@
+
+
+ Blank 1
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank2.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank2.html
new file mode 100644
index 00000000000..def21396675
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/blank2.html
@@ -0,0 +1,8 @@
+
+
+ Blank 2
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/page-with-fragment.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/page-with-fragment.html
new file mode 100644
index 00000000000..11737661d0f
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/resources/page-with-fragment.html
@@ -0,0 +1,20 @@
+
+
+
+Page with fragment
+
+
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html
new file mode 100644
index 00000000000..e47cd9c3833
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-basic.html
@@ -0,0 +1,34 @@
+
+Verify existence and basic read/write function of history.scrollRestoration
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html
new file mode 100644
index 00000000000..e3da59e3900
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-cross-origin.html
@@ -0,0 +1,67 @@
+
+
+Precedence of scroll restoration mode over fragment scrolling in cross-origin history traversal
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html
new file mode 100644
index 00000000000..d837b8f63f0
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc.html
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
new file mode 100644
index 00000000000..87a337b2da3
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-cross-origin.html
@@ -0,0 +1,71 @@
+
+
+Correct behaviour of scroll restoration mode is cross origin history traversal
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html
new file mode 100644
index 00000000000..46d40eedc62
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-navigation-samedoc.html
@@ -0,0 +1,81 @@
+
+Correct behaviour of scroll restoration mode in same document history traversals
+
+
+
+
+
+
+
diff --git a/testing/web-platform/tests/html/dom/interfaces.html b/testing/web-platform/tests/html/dom/interfaces.html
index 8eb7df805fb..d55aca60516 100644
--- a/testing/web-platform/tests/html/dom/interfaces.html
+++ b/testing/web-platform/tests/html/dom/interfaces.html
@@ -2309,8 +2309,11 @@ interface BarProp {
attribute boolean visible;
};
+enum ScrollRestoration { "auto", "manual" };
interface History {
+
readonly attribute long length;
+ attribute ScrollRestoration scrollRestoration;
readonly attribute any state;
void go(optional long delta);
void back();
diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported-ref.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported-ref.html
index 3e76576f76c..0de7ff329c2 100644
--- a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported-ref.html
+++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported-ref.html
@@ -19,7 +19,7 @@
fifth item
sixth item
seventh item
-eigth item
+eighth item
ninth item
- first ordered item
@@ -29,7 +29,7 @@
- fifth ordered item
- sixth ordered item
- seventh ordered item
- - eigth ordered item
+ - eighth ordered item
- ninth ordered item
@@ -40,6 +40,6 @@
- fifth unordered item
- sixth unordered item
- seventh unordered item
- - eigth unordered item
+ - eighth unordered item
- ninth unordered item
diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.html
index 0fe85bd0492..ddd9024c117 100644
--- a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.html
+++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.html
@@ -9,7 +9,7 @@
fifth item
sixth item
seventh item
-eigth item
+eighth item
ninth item
- first ordered item
@@ -19,7 +19,7 @@
- fifth ordered item
- sixth ordered item
- seventh ordered item
- - eigth ordered item
+ - eighth ordered item
- ninth ordered item
@@ -30,6 +30,6 @@
- fifth unordered item
- sixth unordered item
- seventh unordered item
- - eigth unordered item
+ - eighth unordered item
- ninth unordered item
diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.xhtml b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.xhtml
index 69f96e894bf..7a7640e03f0 100644
--- a/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.xhtml
+++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/lists/li-type-supported.xhtml
@@ -12,7 +12,7 @@
fifth item
sixth item
seventh item
-eigth item
+eighth item
ninth item
- first ordered item
@@ -22,7 +22,7 @@
- fifth ordered item
- sixth ordered item
- seventh ordered item
- - eigth ordered item
+ - eighth ordered item
- ninth ordered item
@@ -33,7 +33,7 @@
- fifth unordered item
- sixth unordered item
- seventh unordered item
- - eigth unordered item
+ - eighth unordered item
- ninth unordered item