import changes from `dev' branch of rmottola/Arctic-Fox:

- Bug 1185997 - Split referrer tests to avoid intermittent timeouts. r=RyanVM (976fb981a)
- Bug 1175736 - Add iframe referrer attribute tests. r=ckerschb, r=baku (f22da1340)
- Bug 1184781 - additional referrer tests - redirect. r=christophkerschbaumer (49f1aaea0)
- Bug 1186544 - A better test suite for StructuredCloneAlgorithm, r=smaug (d94f76a45)
- Bug 1167690 - Part 5: Add tests for plugin audio channel integration; r=baku (26931ea9d)
- Bug 1144631 - Make FTP with auth prompts work in e10s. r=billm/dragana (e69f9f5e0)
- Bug 1179255 - (fatal) Assertion failure: aRequest == mCancelable, at netwerk/protocol/websocket/WebSocketChannel.cpp:2766, r=mcmanus (e1e3d6799)
- Bug 1024056 - Simple ASCII lexical analyzer. r=nfroyd (dc67ec784)
This commit is contained in:
2021-08-23 09:29:23 +08:00
parent 520d6b7062
commit ac77268e0b
27 changed files with 1950 additions and 240 deletions
+34 -13
View File
@@ -2495,7 +2495,13 @@ NS_DOMReadStructuredClone(JSContext* cx,
{
if (tag == SCTAG_DOM_IMAGEDATA) {
return ReadStructuredCloneImageData(cx, reader);
} else if (tag == SCTAG_DOM_WEBCRYPTO_KEY) {
}
if (tag == SCTAG_DOM_WEBCRYPTO_KEY) {
if (!NS_IsMainThread()) {
return nullptr;
}
nsIGlobalObject *global = xpc::NativeGlobal(JS::CurrentGlobalOrNull(cx));
if (!global) {
return nullptr;
@@ -2512,9 +2518,15 @@ NS_DOMReadStructuredClone(JSContext* cx,
}
}
return result;
} else if (tag == SCTAG_DOM_NULL_PRINCIPAL ||
tag == SCTAG_DOM_SYSTEM_PRINCIPAL ||
tag == SCTAG_DOM_CONTENT_PRINCIPAL) {
}
if (tag == SCTAG_DOM_NULL_PRINCIPAL ||
tag == SCTAG_DOM_SYSTEM_PRINCIPAL ||
tag == SCTAG_DOM_CONTENT_PRINCIPAL) {
if (!NS_IsMainThread()) {
return nullptr;
}
mozilla::ipc::PrincipalInfo info;
if (tag == SCTAG_DOM_SYSTEM_PRINCIPAL) {
info = mozilla::ipc::SystemPrincipalInfo();
@@ -2552,8 +2564,14 @@ NS_DOMReadStructuredClone(JSContext* cx,
}
return result.toObjectOrNull();
} else if (tag == SCTAG_DOM_NFC_NDEF) {
}
#ifdef MOZ_NFC
if (tag == SCTAG_DOM_NFC_NDEF) {
if (!NS_IsMainThread()) {
return nullptr;
}
nsIGlobalObject *global = xpc::NativeGlobal(JS::CurrentGlobalOrNull(cx));
if (!global) {
return nullptr;
@@ -2567,13 +2585,15 @@ NS_DOMReadStructuredClone(JSContext* cx,
ndefRecord->WrapObject(cx, nullptr) : nullptr;
}
return result;
#else
return nullptr;
#endif
}
#endif
if (tag == SCTAG_DOM_RTC_CERTIFICATE) {
#ifdef MOZ_WEBRTC
if (tag == SCTAG_DOM_RTC_CERTIFICATE) {
if (!NS_IsMainThread()) {
return nullptr;
}
nsIGlobalObject *global = xpc::NativeGlobal(JS::CurrentGlobalOrNull(cx));
if (!global) {
return nullptr;
@@ -2590,10 +2610,8 @@ NS_DOMReadStructuredClone(JSContext* cx,
}
}
return result;
#else
return nullptr;
#endif
}
#endif
// Don't know what this is. Bail.
xpc::Throw(cx, NS_ERROR_DOM_DATA_CLONE_ERR);
@@ -2615,6 +2633,7 @@ NS_DOMWriteStructuredClone(JSContext* cx,
// Handle Key cloning
CryptoKey* key;
if (NS_SUCCEEDED(UNWRAP_OBJECT(CryptoKey, obj, key))) {
MOZ_ASSERT(NS_IsMainThread(), "This object should not be exposed outside the main-thread.");
return JS_WriteUint32Pair(writer, SCTAG_DOM_WEBCRYPTO_KEY, 0) &&
key->WriteStructuredClone(writer);
}
@@ -2623,12 +2642,13 @@ NS_DOMWriteStructuredClone(JSContext* cx,
// Handle WebRTC Certificate cloning
RTCCertificate* cert;
if (NS_SUCCEEDED(UNWRAP_OBJECT(RTCCertificate, obj, cert))) {
MOZ_ASSERT(NS_IsMainThread(), "This object should not be exposed outside the main-thread.");
return JS_WriteUint32Pair(writer, SCTAG_DOM_RTC_CERTIFICATE, 0) &&
cert->WriteStructuredClone(writer);
}
#endif
if (xpc::IsReflector(obj)) {
if (NS_IsMainThread() && xpc::IsReflector(obj)) {
nsCOMPtr<nsISupports> base = xpc::UnwrapReflectorToISupports(obj);
nsCOMPtr<nsIPrincipal> principal = do_QueryInterface(base);
if (principal) {
@@ -2656,6 +2676,7 @@ NS_DOMWriteStructuredClone(JSContext* cx,
#ifdef MOZ_NFC
MozNDEFRecord* ndefRecord;
if (NS_SUCCEEDED(UNWRAP_OBJECT(MozNDEFRecord, obj, ndefRecord))) {
MOZ_ASSERT(NS_IsMainThread(), "This object should not be exposed outside the main-thread.");
return JS_WriteUint32Pair(writer, SCTAG_DOM_NFC_NDEF, 0) &&
ndefRecord->WriteStructuredClone(cx, writer);
}