mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
More nsresult -> bool fixes, and fix windows bustage from NPEvent stub impl.
This commit is contained in:
parent
fcd45719e6
commit
eb6738b7b5
@ -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);
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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*
|
||||||
|
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user