mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1098074 - Part 2: Improve error handling in nsFrameMessageManager::ReceiveMessage; r=bholley
--HG-- extra : rebase_source : be00ff9778ae41310ba0ca98dfd082cc1109afa7
This commit is contained in:
parent
8b91b6a6b4
commit
3c594bd2b9
@ -1018,23 +1018,31 @@ nsFrameMessageManager::ReceiveMessage(nsISupports* aTarget,
|
||||
aMessage.Length()));
|
||||
NS_ENSURE_TRUE(jsMessage, NS_ERROR_OUT_OF_MEMORY);
|
||||
JS::Rooted<JS::Value> syncv(cx, JS::BooleanValue(aIsSync));
|
||||
JS_DefineProperty(cx, param, "target", targetv, JSPROP_ENUMERATE);
|
||||
JS_DefineProperty(cx, param, "name", jsMessage, JSPROP_ENUMERATE);
|
||||
JS_DefineProperty(cx, param, "sync", syncv, JSPROP_ENUMERATE);
|
||||
JS_DefineProperty(cx, param, "json", json, JSPROP_ENUMERATE); // deprecated
|
||||
JS_DefineProperty(cx, param, "data", json, JSPROP_ENUMERATE);
|
||||
JS_DefineProperty(cx, param, "objects", cpowsv, JSPROP_ENUMERATE);
|
||||
bool ok = JS_DefineProperty(cx, param, "target", targetv, JSPROP_ENUMERATE) &&
|
||||
JS_DefineProperty(cx, param, "name", jsMessage, JSPROP_ENUMERATE) &&
|
||||
JS_DefineProperty(cx, param, "sync", syncv, JSPROP_ENUMERATE) &&
|
||||
JS_DefineProperty(cx, param, "json", json, JSPROP_ENUMERATE) && // deprecated
|
||||
JS_DefineProperty(cx, param, "data", json, JSPROP_ENUMERATE) &&
|
||||
JS_DefineProperty(cx, param, "objects", cpowsv, JSPROP_ENUMERATE);
|
||||
NS_ENSURE_TRUE(ok, NS_ERROR_UNEXPECTED);
|
||||
|
||||
// message.principal == null
|
||||
if (!aPrincipal) {
|
||||
JS_DefineProperty(cx, param, "principal", JS::UndefinedHandleValue, JSPROP_ENUMERATE);
|
||||
bool ok = JS_DefineProperty(cx, param, "principal",
|
||||
JS::UndefinedHandleValue, JSPROP_ENUMERATE);
|
||||
NS_ENSURE_TRUE(ok, NS_ERROR_UNEXPECTED);
|
||||
}
|
||||
|
||||
// message.principal = the principal
|
||||
else {
|
||||
JS::Rooted<JS::Value> principalValue(cx);
|
||||
rv = nsContentUtils::WrapNative(cx, aPrincipal, &NS_GET_IID(nsIPrincipal), &principalValue);
|
||||
JS_DefineProperty(cx, param, "principal", principalValue, JSPROP_ENUMERATE);
|
||||
nsresult rv = nsContentUtils::WrapNative(cx, aPrincipal,
|
||||
&NS_GET_IID(nsIPrincipal),
|
||||
&principalValue);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
bool ok = JS_DefineProperty(cx, param, "principal", principalValue,
|
||||
JSPROP_ENUMERATE);
|
||||
NS_ENSURE_TRUE(ok, NS_ERROR_UNEXPECTED);
|
||||
}
|
||||
|
||||
JS::Rooted<JS::Value> thisValue(cx, JS::UndefinedValue());
|
||||
@ -1058,8 +1066,9 @@ nsFrameMessageManager::ReceiveMessage(nsISupports* aTarget,
|
||||
} else {
|
||||
// If the listener is a JS object which has receiveMessage function:
|
||||
if (!JS_GetProperty(cx, object, "receiveMessage", &funval) ||
|
||||
!funval.isObject())
|
||||
!funval.isObject()) {
|
||||
return NS_ERROR_UNEXPECTED;
|
||||
}
|
||||
|
||||
// Check if the object is even callable.
|
||||
NS_ENSURE_STATE(JS::IsCallable(&funval.toObject()));
|
||||
|
Loading…
Reference in New Issue
Block a user