More nsresult -> bool fixes, and fix windows bustage from NPEvent stub impl.

This commit is contained in:
Ben Turner 2009-09-19 12:24:24 -07:00
parent fcd45719e6
commit eb6738b7b5
7 changed files with 175 additions and 130 deletions

View File

@ -23,7 +23,7 @@ BrowserStreamParent::AnswerNPN_RequestRead(const IPCByteRanges& ranges,
if (ranges.size() > PR_INT32_MAX) { if (ranges.size() > PR_INT32_MAX) {
// TODO: abort all processing! // TODO: abort all processing!
return NS_ERROR_INVALID_ARG; return false;
} }
nsAutoArrayPtr<NPByteRange> rp(new NPByteRange[ranges.size()]); nsAutoArrayPtr<NPByteRange> rp(new NPByteRange[ranges.size()]);
@ -41,9 +41,10 @@ int32_t
BrowserStreamParent::WriteReady() BrowserStreamParent::WriteReady()
{ {
int32_t result; int32_t result;
nsresult rv = CallNPP_WriteReady(mStream->end, &result); if (!CallNPP_WriteReady(mStream->end, &result)) {
if (NS_FAILED(rv)) {
mNPP->mNPNIface->destroystream(mNPP->mNPP, mStream, NPRES_NETWORK_ERR); mNPP->mNPNIface->destroystream(mNPP->mNPP, mStream, NPRES_NETWORK_ERR);
// XXX is this right?
return -1;
} }
return result; return result;
} }
@ -54,11 +55,11 @@ BrowserStreamParent::Write(int32_t offset,
void* buffer) void* buffer)
{ {
int32_t result; int32_t result;
nsresult rv = CallNPP_Write(offset, if (!CallNPP_Write(offset,
nsDependentCString(static_cast<char*>(buffer), len), nsDependentCString(static_cast<char*>(buffer), len),
&result); &result)) {
if (NS_FAILED(rv))
return -1; return -1;
}
if (result == -1) if (result == -1)
mNPP->CallPBrowserStreamDestructor(this, NPRES_USER_BREAK, true); mNPP->CallPBrowserStreamDestructor(this, NPRES_USER_BREAK, true);

View File

@ -42,7 +42,9 @@
#include "npapi.h" #include "npapi.h"
#warning This is only a stub implementation IMPLEMENT ME #pragma message(__FILE__ ": This is only a stub implementation IMPLEMENT ME")
namespace IPC {
template <> template <>
struct ParamTraits<NPEvent> struct ParamTraits<NPEvent>
@ -63,5 +65,6 @@ struct ParamTraits<NPEvent>
} }
}; };
} // namespace IPC
#endif // ifndef mozilla_dom_plugins_NPEventWindows_h #endif // ifndef mozilla_dom_plugins_NPEventWindows_h

View File

@ -130,7 +130,9 @@ PluginInstanceChild::NPN_GetValue(NPNVariable aVar,
case NPNVjavascriptEnabledBool: { case NPNVjavascriptEnabledBool: {
bool v = false; bool v = false;
NPError result; NPError result;
CallNPN_GetValue_NPNVjavascriptEnabledBool(&v, &result); if (!CallNPN_GetValue_NPNVjavascriptEnabledBool(&v, &result)) {
return NPERR_GENERIC_ERROR;
}
*static_cast<NPBool*>(aValue) = v; *static_cast<NPBool*>(aValue) = v;
return result; return result;
} }
@ -138,7 +140,9 @@ PluginInstanceChild::NPN_GetValue(NPNVariable aVar,
case NPNVisOfflineBool: { case NPNVisOfflineBool: {
bool v = false; bool v = false;
NPError result; NPError result;
CallNPN_GetValue_NPNVisOfflineBool(&v, &result); if (!CallNPN_GetValue_NPNVisOfflineBool(&v, &result)) {
return NPERR_GENERIC_ERROR;
}
*static_cast<NPBool*>(aValue) = v; *static_cast<NPBool*>(aValue) = v;
return result; return result;
} }
@ -146,7 +150,9 @@ PluginInstanceChild::NPN_GetValue(NPNVariable aVar,
case NPNVprivateModeBool: { case NPNVprivateModeBool: {
bool v = false; bool v = false;
NPError result; NPError result;
CallNPN_GetValue_NPNVprivateModeBool(&v, &result); if (!CallNPN_GetValue_NPNVprivateModeBool(&v, &result)) {
return NPERR_GENERIC_ERROR;
}
*static_cast<NPBool*>(aValue) = v; *static_cast<NPBool*>(aValue) = v;
return result; return result;
} }

View File

@ -203,20 +203,19 @@ PluginInstanceParent::NPP_GetValue(NPPVariable variable, void *ret_value)
// FIXME/cjones: HACK ALERT! should forward to child // FIXME/cjones: HACK ALERT! should forward to child
switch(variable) { switch(variable) {
#ifdef OS_LINUX #ifdef OS_LINUX
case NPPVpluginNeedsXEmbed: case NPPVpluginNeedsXEmbed:
(*(PRBool*)ret_value) = PR_TRUE; (*(PRBool*)ret_value) = PR_TRUE;
return NPERR_NO_ERROR; return NPERR_NO_ERROR;
#endif #endif
#if 0 //Coming soon! case NPPVpluginScriptableNPObject: {
case NPPVpluginScriptableNPObject: PPluginScriptableObjectParent* actor;
PPluginScriptableObjectParent* actor; NPError rv;
NPError rv; if (!CallNPP_GetValue_NPPVpluginScriptableNPObject(&actor, &rv)) {
CallNPP_GetValue_NPPVpluginScriptableNPObject(&actor, &rv); return NPERR_GENERIC_ERROR;
break; }
#endif return rv;
default: }
return NPERR_GENERIC_ERROR;
} }
NS_NOTREACHED("Don't get here!"); NS_NOTREACHED("Don't get here!");
@ -244,25 +243,31 @@ PluginInstanceParent::NPP_NewStream(NPMIMEType type, NPStream* stream,
_MOZ_LOG(__FUNCTION__); _MOZ_LOG(__FUNCTION__);
NPError err; NPError err;
CallPBrowserStreamConstructor(new BrowserStreamParent(this, stream), if (!CallPBrowserStreamConstructor(new BrowserStreamParent(this, stream),
nsCString(stream->url), nsCString(stream->url),
stream->end, stream->end,
stream->lastmodified, stream->lastmodified,
static_cast<PStreamNotifyParent*>(stream->notifyData), static_cast<PStreamNotifyParent*>(stream->notifyData),
nsCString(stream->headers), nsCString(stream->headers),
nsCString(type), seekable, &err, stype); nsCString(type), seekable, &err, stype)) {
return NPERR_GENERIC_ERROR;
}
return err; return err;
} }
NPError NPError
PluginInstanceParent::NPP_DestroyStream(NPStream* stream, NPReason reason) PluginInstanceParent::NPP_DestroyStream(NPStream* stream, NPReason reason)
{ {
BrowserStreamParent* sp = BrowserStreamParent* sp =
static_cast<BrowserStreamParent*>(stream->pdata); static_cast<BrowserStreamParent*>(stream->pdata);
if (sp->mNPP != this) if (sp->mNPP != this) {
NS_RUNTIMEABORT("Mismatched plugin data"); NS_RUNTIMEABORT("Mismatched plugin data");
}
return CallPBrowserStreamDestructor(sp, reason, false); if (!CallPBrowserStreamDestructor(sp, reason, false)) {
return NPERR_GENERIC_ERROR;
}
return NPERR_NO_ERROR;
} }
PPluginScriptableObjectParent* PPluginScriptableObjectParent*

View File

@ -647,9 +647,11 @@ _getstringidentifier(const NPUTF8* aName)
_MOZ_LOG(__FUNCTION__); _MOZ_LOG(__FUNCTION__);
NPRemoteIdentifier ident; NPRemoteIdentifier ident;
nsresult rv = PluginModuleChild::current()-> if (!PluginModuleChild::current()->
SendNPN_GetStringIdentifier(nsDependentCString(aName), &ident); SendNPN_GetStringIdentifier(nsDependentCString(aName), &ident)) {
NS_ENSURE_SUCCESS(rv, 0); NS_WARNING("Failed to send message!");
ident = 0;
}
return (NPIdentifier)ident; return (NPIdentifier)ident;
} }
@ -668,20 +670,14 @@ _getstringidentifiers(const NPUTF8** aNames,
nsAutoTArray<nsCString, 10> names; nsAutoTArray<nsCString, 10> names;
nsAutoTArray<NPRemoteIdentifier, 10> ids; nsAutoTArray<NPRemoteIdentifier, 10> ids;
PRBool ok = names.SetCapacity(aNameCount); if (names.SetCapacity(aNameCount)) {
NS_WARN_IF_FALSE(ok, "Out of memory!");
if (ok) {
for (int32_t index = 0; index < aNameCount; index++) { for (int32_t index = 0; index < aNameCount; index++) {
names.AppendElement(nsDependentCString(aNames[index])); names.AppendElement(nsDependentCString(aNames[index]));
} }
NS_ASSERTION(names.Length() == aNameCount, "Should equal here!"); NS_ASSERTION(names.Length() == aNameCount, "Should equal here!");
nsresult rv = PluginModuleChild::current()-> if (PluginModuleChild::current()->
SendNPN_GetStringIdentifiers(names, &ids); SendNPN_GetStringIdentifiers(names, &ids)) {
NS_WARN_IF_FALSE(NS_SUCCEEDED(rv), "Failed to send message!");
if (NS_SUCCEEDED(rv)) {
NS_ASSERTION(ids.Length() == aNameCount, "Bad length!"); NS_ASSERTION(ids.Length() == aNameCount, "Bad length!");
for (int32_t index = 0; index < aNameCount; index++) { for (int32_t index = 0; index < aNameCount; index++) {
@ -689,6 +685,7 @@ _getstringidentifiers(const NPUTF8** aNames,
} }
return; return;
} }
NS_WARNING("Failed to send message!");
} }
// Something must have failed above. // Something must have failed above.
@ -703,9 +700,12 @@ _identifierisstring(NPIdentifier aIdentifier)
_MOZ_LOG(__FUNCTION__); _MOZ_LOG(__FUNCTION__);
bool isString; bool isString;
nsresult rv = PluginModuleChild::current()-> if (!PluginModuleChild::current()->
SendNPN_IdentifierIsString((NPRemoteIdentifier)aIdentifier, &isString); SendNPN_IdentifierIsString((NPRemoteIdentifier)aIdentifier,
NS_ENSURE_SUCCESS(rv, false); &isString)) {
NS_WARNING("Failed to send message!");
isString = false;
}
return isString; return isString;
} }
@ -716,9 +716,11 @@ _getintidentifier(int32_t aIntId)
_MOZ_LOG(__FUNCTION__); _MOZ_LOG(__FUNCTION__);
NPRemoteIdentifier ident; NPRemoteIdentifier ident;
nsresult rv = PluginModuleChild::current()-> if (!PluginModuleChild::current()->
SendNPN_GetIntIdentifier(aIntId, &ident); SendNPN_GetIntIdentifier(aIntId, &ident)) {
NS_ENSURE_SUCCESS(rv, 0); NS_WARNING("Failed to send message!");
ident = 0;
}
return (NPIdentifier)ident; return (NPIdentifier)ident;
} }
@ -730,10 +732,12 @@ _utf8fromidentifier(NPIdentifier aIdentifier)
NPError err; NPError err;
nsCAutoString val; nsCAutoString val;
nsresult rv = PluginModuleChild::current()-> if (!PluginModuleChild::current()->
SendNPN_UTF8FromIdentifier((NPRemoteIdentifier)aIdentifier, SendNPN_UTF8FromIdentifier((NPRemoteIdentifier)aIdentifier,
&err, &val); &err, &val)) {
NS_ENSURE_SUCCESS(rv, 0); NS_WARNING("Failed to send message!");
return 0;
}
return (NPERR_NO_ERROR == err) ? strdup(val.get()) : 0; return (NPERR_NO_ERROR == err) ? strdup(val.get()) : 0;
} }
@ -745,10 +749,12 @@ _intfromidentifier(NPIdentifier aIdentifier)
NPError err; NPError err;
int32_t val; int32_t val;
nsresult rv = PluginModuleChild::current()-> if (!PluginModuleChild::current()->
SendNPN_IntFromIdentifier((NPRemoteIdentifier)aIdentifier, SendNPN_IntFromIdentifier((NPRemoteIdentifier)aIdentifier,
&err, &val); &err, &val)) {
NS_ENSURE_SUCCESS(rv, 0); NS_WARNING("Failed to send message!");
return -1;
}
// -1 for consistency // -1 for consistency
return (NPERR_NO_ERROR == err) ? val : -1; return (NPERR_NO_ERROR == err) ? val : -1;

View File

@ -131,7 +131,7 @@ PluginModuleParent::SetPluginFuncs(NPPluginFuncs* aFuncs)
#ifdef OS_LINUX #ifdef OS_LINUX
NPError NPError
PluginModuleParent::NP_Initialize(const NPNetscapeFuncs* npnIface, PluginModuleParent::NP_Initialize(const NPNetscapeFuncs* npnIface,
NPPluginFuncs* nppIface) NPPluginFuncs* nppIface)
{ {
_MOZ_LOG(__FUNCTION__); _MOZ_LOG(__FUNCTION__);
@ -152,7 +152,7 @@ PluginModuleParent::NP_Initialize(const NPNetscapeFuncs* npnIface)
NPError prv; NPError prv;
if (!CallNP_Initialize(&prv)) if (!CallNP_Initialize(&prv))
return NP_ERR_GENERIC_ERROR; return NPERR_GENERIC_ERROR;
return prv; return prv;
} }
@ -325,8 +325,10 @@ bool
PluginModuleParent::RecvNPN_GetStringIdentifier(const nsCString& aString, PluginModuleParent::RecvNPN_GetStringIdentifier(const nsCString& aString,
NPRemoteIdentifier* aId) NPRemoteIdentifier* aId)
{ {
if (aString.IsVoid()) if (aString.IsVoid()) {
NS_ERROR("Someone sent over a void string?!");
return false; return false;
}
NPIdentifier ident = _getstringidentifier(aString.BeginReading()); NPIdentifier ident = _getstringidentifier(aString.BeginReading());
if (!ident) { if (!ident) {
@ -335,8 +337,10 @@ PluginModuleParent::RecvNPN_GetStringIdentifier(const nsCString& aString,
} }
nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(ident); nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(ident);
if (!newEntry) if (!newEntry) {
NS_ERROR("Out of memory?");
return false; return false;
}
*aId = (NPRemoteIdentifier)ident; *aId = (NPRemoteIdentifier)ident;
return true; return true;
@ -353,8 +357,10 @@ PluginModuleParent::RecvNPN_GetIntIdentifier(const int32_t& aInt,
} }
nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(ident); nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(ident);
if (!newEntry) if (!newEntry) {
NS_ERROR("Out of memory?");
return false; return false;
}
*aId = (NPRemoteIdentifier)ident; *aId = (NPRemoteIdentifier)ident;
return true; return true;
@ -419,18 +425,20 @@ PluginModuleParent::RecvNPN_GetStringIdentifiers(const nsTArray<nsCString>& aNam
NS_ASSERTION(aIds->IsEmpty(), "Non-empty array!"); NS_ASSERTION(aIds->IsEmpty(), "Non-empty array!");
PRUint32 count = aNames.Length(); PRUint32 count = aNames.Length();
NS_ENSURE_ARG_MIN(count, 1); if (!count) {
NS_ERROR("No names to get!");
return false;
}
nsAutoTArray<NPUTF8*, 10> buffers; nsAutoTArray<NPUTF8*, 10> buffers;
PRBool ok = buffers.SetLength(count);
NS_ENSURE_TRUE(ok, NS_ERROR_OUT_OF_MEMORY);
nsAutoTArray<NPIdentifier, 10> ids; nsAutoTArray<NPIdentifier, 10> ids;
ok = ids.SetLength(count);
NS_ENSURE_TRUE(ok, NS_ERROR_OUT_OF_MEMORY);
ok = aIds->SetCapacity(count); if (!(buffers.SetLength(count) &&
NS_ENSURE_TRUE(ok, NS_ERROR_OUT_OF_MEMORY); ids.SetLength(count) &&
aIds->SetCapacity(count))) {
NS_ERROR("Out of memory?");
return false;
}
for (PRUint32 index = 0; index < count; index++) { for (PRUint32 index = 0; index < count; index++) {
buffers[index] = const_cast<NPUTF8*>(aNames[index].BeginReading()); buffers[index] = const_cast<NPUTF8*>(aNames[index].BeginReading());
@ -442,12 +450,13 @@ PluginModuleParent::RecvNPN_GetStringIdentifiers(const nsTArray<nsCString>& aNam
for (PRUint32 index = 0; index < count; index++) { for (PRUint32 index = 0; index < count; index++) {
NPIdentifier& id = ids[index]; NPIdentifier& id = ids[index];
if (id) { if (id) {
nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(id); nsVoidPtrHashKey* newEntry = mValidIdentifiers.PutEntry(id);
NS_ENSURE_TRUE(ok, NS_ERROR_OUT_OF_MEMORY); if (!newEntry) {
NS_ERROR("Out of memory?");
return false;
}
} }
aIds->AppendElement((NPRemoteIdentifier)id); aIds->AppendElement((NPRemoteIdentifier)id);
} }

View File

@ -41,7 +41,6 @@
#include "npapi.h" #include "npapi.h"
#include "npruntime.h" #include "npruntime.h"
#include "nsDebug.h" #include "nsDebug.h"
#include "nsThreadUtils.h"
#include "PluginModuleChild.h" #include "PluginModuleChild.h"
#include "PluginInstanceChild.h" #include "PluginInstanceChild.h"
@ -83,27 +82,27 @@ ConvertToVariant(const NPRemoteVariant& aRemoteVariant,
switch (aRemoteVariant.type()) { switch (aRemoteVariant.type()) {
case NPRemoteVariant::Tvoid_t: { case NPRemoteVariant::Tvoid_t: {
VOID_TO_NPVARIANT(aVariant); VOID_TO_NPVARIANT(aVariant);
return true; break;
} }
case NPRemoteVariant::Tnull_t: { case NPRemoteVariant::Tnull_t: {
NULL_TO_NPVARIANT(aVariant); NULL_TO_NPVARIANT(aVariant);
return true; break;
} }
case NPRemoteVariant::Tbool: { case NPRemoteVariant::Tbool: {
BOOLEAN_TO_NPVARIANT(aRemoteVariant.get_bool(), aVariant); BOOLEAN_TO_NPVARIANT(aRemoteVariant.get_bool(), aVariant);
return true; break;
} }
case NPRemoteVariant::Tint: { case NPRemoteVariant::Tint: {
INT32_TO_NPVARIANT(aRemoteVariant.get_int(), aVariant); INT32_TO_NPVARIANT(aRemoteVariant.get_int(), aVariant);
return true; break;
} }
case NPRemoteVariant::Tdouble: { case NPRemoteVariant::Tdouble: {
DOUBLE_TO_NPVARIANT(aRemoteVariant.get_double(), aVariant); DOUBLE_TO_NPVARIANT(aRemoteVariant.get_double(), aVariant);
return true; break;
} }
case NPRemoteVariant::TnsCString: { case NPRemoteVariant::TnsCString: {
@ -114,24 +113,25 @@ ConvertToVariant(const NPRemoteVariant& aRemoteVariant,
return false; return false;
} }
STRINGN_TO_NPVARIANT(buffer, string.Length(), aVariant); STRINGN_TO_NPVARIANT(buffer, string.Length(), aVariant);
return true; break;
} }
case NPRemoteVariant::TPPluginScriptableObjectChild: { case NPRemoteVariant::TPPluginScriptableObjectChild: {
NPObject* object = NPObjectFromVariant(aRemoteVariant); NPObject* object = NPObjectFromVariant(aRemoteVariant);
if (!object) { if (!object) {
NS_ERROR("Er, this shouldn't fail!");
return false; return false;
} }
OBJECT_TO_NPVARIANT(object, aVariant); OBJECT_TO_NPVARIANT(object, aVariant);
return true; break;
} }
default: default:
break; // break to NOTREACHED NS_NOTREACHED("Shouldn't get here!");
return false;
} }
NS_NOTREACHED("Shouldn't get here!"); return true;
return false;
} }
bool bool
@ -141,49 +141,40 @@ ConvertToRemoteVariant(const NPVariant& aVariant,
{ {
if (NPVARIANT_IS_VOID(aVariant)) { if (NPVARIANT_IS_VOID(aVariant)) {
aRemoteVariant = mozilla::void_t(); aRemoteVariant = mozilla::void_t();
return true;
} }
else if (NPVARIANT_IS_NULL(aVariant)) {
if (NPVARIANT_IS_NULL(aVariant)) {
aRemoteVariant = mozilla::null_t(); aRemoteVariant = mozilla::null_t();
return true;
} }
else if (NPVARIANT_IS_BOOLEAN(aVariant)) {
if (NPVARIANT_IS_BOOLEAN(aVariant)) {
aRemoteVariant = NPVARIANT_TO_BOOLEAN(aVariant); aRemoteVariant = NPVARIANT_TO_BOOLEAN(aVariant);
return true;
} }
else if (NPVARIANT_IS_INT32(aVariant)) {
if (NPVARIANT_IS_INT32(aVariant)) {
aRemoteVariant = NPVARIANT_TO_INT32(aVariant); aRemoteVariant = NPVARIANT_TO_INT32(aVariant);
return true;
} }
else if (NPVARIANT_IS_DOUBLE(aVariant)) {
if (NPVARIANT_IS_DOUBLE(aVariant)) {
aRemoteVariant = NPVARIANT_TO_DOUBLE(aVariant); aRemoteVariant = NPVARIANT_TO_DOUBLE(aVariant);
return true;
} }
else if (NPVARIANT_IS_STRING(aVariant)) {
if (NPVARIANT_IS_STRING(aVariant)) {
NPString str = NPVARIANT_TO_STRING(aVariant); NPString str = NPVARIANT_TO_STRING(aVariant);
nsCString string(str.UTF8Characters, str.UTF8Length); nsCString string(str.UTF8Characters, str.UTF8Length);
aRemoteVariant = string; aRemoteVariant = string;
return true;
} }
else if (NPVARIANT_IS_OBJECT(aVariant)) {
if (NPVARIANT_IS_OBJECT(aVariant)) {
NS_ASSERTION(aInstance, "Must have an instance to wrap!"); NS_ASSERTION(aInstance, "Must have an instance to wrap!");
PluginScriptableObjectChild* actor = PluginScriptableObjectChild* actor =
CreateActorForNPObject(aInstance, NPVARIANT_TO_OBJECT(aVariant)); CreateActorForNPObject(aInstance, NPVARIANT_TO_OBJECT(aVariant));
if (!actor) { if (!actor) {
NS_ERROR("Failed to create actor!");
return false; return false;
} }
aRemoteVariant = actor; aRemoteVariant = actor;
return true; }
else {
NS_NOTREACHED("Shouldn't get here!");
return false;
} }
NS_NOTREACHED("Shouldn't get here!"); return true;
return false;
} }
} // anonymous namespace } // anonymous namespace
@ -205,7 +196,6 @@ void
PluginScriptableObjectChild::Initialize(PluginInstanceChild* aInstance, PluginScriptableObjectChild::Initialize(PluginInstanceChild* aInstance,
NPObject* aObject) NPObject* aObject)
{ {
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
NS_ASSERTION(!(mInstance && mObject), "Calling Initialize class twice!"); NS_ASSERTION(!(mInstance && mObject), "Calling Initialize class twice!");
mInstance = aInstance; mInstance = aInstance;
mObject = PluginModuleChild::sBrowserFuncs.retainobject(aObject); mObject = PluginModuleChild::sBrowserFuncs.retainobject(aObject);
@ -214,21 +204,22 @@ PluginScriptableObjectChild::Initialize(PluginInstanceChild* aInstance,
bool bool
PluginScriptableObjectChild::AnswerInvalidate() PluginScriptableObjectChild::AnswerInvalidate()
{ {
NS_ENSURE_STATE(NS_IsMainThread());
if (mObject) { if (mObject) {
PluginModuleChild::sBrowserFuncs.releaseobject(mObject); PluginModuleChild::sBrowserFuncs.releaseobject(mObject);
mObject = nsnull; mObject = nsnull;
return true;
} }
return NS_ERROR_UNEXPECTED; return true;
} }
bool bool
PluginScriptableObjectChild::AnswerHasMethod(const NPRemoteIdentifier& aId, PluginScriptableObjectChild::AnswerHasMethod(const NPRemoteIdentifier& aId,
bool* aHasMethod) bool* aHasMethod)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aHasMethod = false;
return true;
}
if (!(mObject->_class && mObject->_class->hasMethod)) { if (!(mObject->_class && mObject->_class->hasMethod)) {
*aHasMethod = false; *aHasMethod = false;
@ -245,8 +236,11 @@ PluginScriptableObjectChild::AnswerInvoke(const NPRemoteIdentifier& aId,
NPRemoteVariant* aResult, NPRemoteVariant* aResult,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->invoke)) { if (!(mObject->_class && mObject->_class->invoke)) {
*aSuccess = false; *aSuccess = false;
@ -293,8 +287,11 @@ PluginScriptableObjectChild::AnswerInvokeDefault(const nsTArray<NPRemoteVariant>
NPRemoteVariant* aResult, NPRemoteVariant* aResult,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->invokeDefault)) { if (!(mObject->_class && mObject->_class->invokeDefault)) {
*aSuccess = false; *aSuccess = false;
@ -340,8 +337,11 @@ bool
PluginScriptableObjectChild::AnswerHasProperty(const NPRemoteIdentifier& aId, PluginScriptableObjectChild::AnswerHasProperty(const NPRemoteIdentifier& aId,
bool* aHasProperty) bool* aHasProperty)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aHasProperty = false;
return true;
}
if (!(mObject->_class && mObject->_class->hasProperty)) { if (!(mObject->_class && mObject->_class->hasProperty)) {
*aHasProperty = false; *aHasProperty = false;
@ -357,8 +357,11 @@ PluginScriptableObjectChild::AnswerGetProperty(const NPRemoteIdentifier& aId,
NPRemoteVariant* aResult, NPRemoteVariant* aResult,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->getProperty)) { if (!(mObject->_class && mObject->_class->getProperty)) {
*aSuccess = false; *aSuccess = false;
@ -383,8 +386,11 @@ PluginScriptableObjectChild::AnswerSetProperty(const NPRemoteIdentifier& aId,
const NPRemoteVariant& aValue, const NPRemoteVariant& aValue,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->setProperty)) { if (!(mObject->_class && mObject->_class->setProperty)) {
*aSuccess = false; *aSuccess = false;
@ -406,8 +412,11 @@ bool
PluginScriptableObjectChild::AnswerRemoveProperty(const NPRemoteIdentifier& aId, PluginScriptableObjectChild::AnswerRemoveProperty(const NPRemoteIdentifier& aId,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->removeProperty)) { if (!(mObject->_class && mObject->_class->removeProperty)) {
*aSuccess = false; *aSuccess = false;
@ -422,8 +431,11 @@ bool
PluginScriptableObjectChild::AnswerEnumerate(nsTArray<NPRemoteIdentifier>* aProperties, PluginScriptableObjectChild::AnswerEnumerate(nsTArray<NPRemoteIdentifier>* aProperties,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->enumerate)) { if (!(mObject->_class && mObject->_class->enumerate)) {
*aSuccess = false; *aSuccess = false;
@ -461,8 +473,11 @@ PluginScriptableObjectChild::AnswerConstruct(const nsTArray<NPRemoteVariant>& aA
NPRemoteVariant* aResult, NPRemoteVariant* aResult,
bool* aSuccess) bool* aSuccess)
{ {
NS_ENSURE_STATE(NS_IsMainThread()); if (!mObject) {
NS_ENSURE_STATE(mObject); NS_WARNING("Calling " __FUNCTION__ "with an invalidated object!");
*aSuccess = false;
return true;
}
if (!(mObject->_class && mObject->_class->construct)) { if (!(mObject->_class && mObject->_class->construct)) {
*aSuccess = false; *aSuccess = false;