mirror of
https://github.com/roytam1/palemoon26.git
synced 2026-05-26 05:44:31 +00:00
ported mozilla patches:
- Bug 848294 - Update MessageEvent to be compatible with the spec, r=bz - Bug 913761 - Something is wrong when transferring MessagePort object via MessageChannel. r=smaug - Bug 917254 - Only enable MessageEvent.ports when MessagePort is enabled; r=smaug
This commit is contained in:
@@ -110,7 +110,8 @@ PostMessageReadStructuredClone(JSContext* cx,
|
||||
uint32_t data,
|
||||
void* closure)
|
||||
{
|
||||
NS_ASSERTION(closure, "Must have closure!");
|
||||
StructuredCloneInfo* scInfo = static_cast<StructuredCloneInfo*>(closure);
|
||||
NS_ASSERTION(scInfo, "Must have scInfo!");
|
||||
|
||||
if (tag == SCTAG_DOM_BLOB || tag == SCTAG_DOM_FILELIST) {
|
||||
NS_ASSERTION(!data, "Data should be empty");
|
||||
@@ -139,6 +140,7 @@ PostMessageReadStructuredClone(JSContext* cx,
|
||||
if (global) {
|
||||
JS::Rooted<JSObject*> obj(cx, port->WrapObject(cx, global));
|
||||
if (JS_WrapObject(cx, obj.address())) {
|
||||
port->BindToOwner(scInfo->mPort->GetOwner());
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
@@ -191,7 +193,7 @@ PostMessageWriteStructuredClone(JSContext* cx,
|
||||
MessagePort* port = nullptr;
|
||||
nsresult rv = mozilla::dom::UnwrapObject<MessagePort>(cx, obj, port);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsRefPtr<MessagePort> newPort = port->Clone(scInfo->mPort->GetOwner());
|
||||
nsRefPtr<MessagePort> newPort = port->Clone();
|
||||
|
||||
return JS_WriteUint32Pair(writer, SCTAG_DOM_MESSAGEPORT, 0) &&
|
||||
JS_WriteBytes(writer, &newPort, sizeof(newPort)) &&
|
||||
@@ -455,9 +457,9 @@ MessagePort::Entangle(MessagePort* aMessagePort)
|
||||
}
|
||||
|
||||
already_AddRefed<MessagePort>
|
||||
MessagePort::Clone(nsPIDOMWindow* aWindow)
|
||||
MessagePort::Clone()
|
||||
{
|
||||
nsRefPtr<MessagePort> newPort = new MessagePort(aWindow->GetCurrentInnerWindow());
|
||||
nsRefPtr<MessagePort> newPort = new MessagePort(nullptr);
|
||||
|
||||
// Move all the events in the port message queue of original port.
|
||||
newPort->mMessageQueue.SwapElements(mMessageQueue);
|
||||
|
||||
Reference in New Issue
Block a user