mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-05-26 13:23:07 +00:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user