Accepting michaelp's API changes for GetValue/SetValue.

git-svn-id: svn://10.0.0.236/trunk@10033 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
warren%netscape.com
1998-09-15 03:45:38 +00:00
parent 68b263feca
commit 2bb9a8a545
19 changed files with 294 additions and 288 deletions

View File

@@ -150,12 +150,14 @@ nsPluginManager::GetValue(nsPluginManagerVariable variable, void *value)
return fromNPError[err];
}
#if 0
NS_METHOD
nsPluginManager::SetValue(nsPluginManagerVariable variable, void *value)
{
NPError err = npn_setvalue(NULL, (NPPVariable)variable, value);
return fromNPError[err];
}
#endif
NS_METHOD
nsPluginManager::ReloadPlugins(PRBool reloadPages)
@@ -493,43 +495,49 @@ DestroyGetURLEvent(PLEvent* event)
}
NS_METHOD
nsPluginManager::GetURL(nsISupports* peer, const char* url, const char* target,
nsPluginManager::GetURL(nsISupports* pinst, const char* url, const char* target,
void* notifyData, const char* altHost,
const char* referrer, PRBool forceJSEnabled)
{
NPError rslt = NPERR_INVALID_PARAM;
nsPluginInstancePeer* instPeer = NULL;
if (peer->QueryInterface(kPluginInstancePeerCID, (void**)&instPeer) == NS_OK) {
if (PR_CurrentThread() == mozilla_thread) {
NPP npp = instPeer->GetNPP();
rslt = np_geturlinternal(npp,
url,
target,
altHost,
referrer,
forceJSEnabled,
notifyData != NULL,
notifyData);
}
else {
GetURLEvent* e = PR_NEW(GetURLEvent);
if (e == NULL) {
rslt = NPERR_OUT_OF_MEMORY_ERROR;
nsIPluginInstance* inst = NULL;
if (pinst->QueryInterface(kIPluginInstanceIID, (void**)&inst) == NS_OK) {
// Warning: Casting to our implementation type of plugin instance peer here:
nsPluginInstancePeer* peer;
nsresult err = inst->GetPeer((nsIPluginInstancePeer**)&peer);
if (err == NS_OK) {
if (PR_CurrentThread() == mozilla_thread) {
NPP npp = peer->GetNPP();
rslt = np_geturlinternal(npp,
url,
target,
altHost,
referrer,
forceJSEnabled,
notifyData != NULL,
notifyData);
}
else {
PL_InitEvent(&e->event, NULL, HandleGetURLEvent, DestroyGetURLEvent);
e->peer = instPeer;
e->url = url;
e->target = target;
e->notifyData = notifyData;
e->altHost = altHost;
e->referrer = referrer;
e->forceJSEnabled = forceJSEnabled;
/*rslt = (NPError)*/PL_PostSynchronousEvent(mozilla_event_queue, &e->event);
rslt = NPERR_NO_ERROR; /* XXX irix c++ compiler doesn't like the above cast */
GetURLEvent* e = PR_NEW(GetURLEvent);
if (e == NULL) {
rslt = NPERR_OUT_OF_MEMORY_ERROR;
}
else {
PL_InitEvent(&e->event, NULL, HandleGetURLEvent, DestroyGetURLEvent);
e->peer = peer;
e->url = url;
e->target = target;
e->notifyData = notifyData;
e->altHost = altHost;
e->referrer = referrer;
e->forceJSEnabled = forceJSEnabled;
/*rslt = (NPError)*/PL_PostSynchronousEvent(mozilla_event_queue, &e->event);
rslt = NPERR_NO_ERROR; /* XXX irix c++ compiler doesn't like the above cast */
}
}
peer->Release();
}
instPeer->Release();
inst->Release();
}
return fromNPError[rslt];
}
@@ -578,7 +586,7 @@ DestroyPostURLEvent(PLEvent* event)
}
NS_METHOD
nsPluginManager::PostURL(nsISupports* peer, const char* url, const char* target,
nsPluginManager::PostURL(nsISupports* pinst, const char* url, const char* target,
PRUint32 postDataLen, const char* postData,
PRBool isFile, void* notifyData,
const char* altHost, const char* referrer,
@@ -586,47 +594,53 @@ nsPluginManager::PostURL(nsISupports* peer, const char* url, const char* target,
PRUint32 postHeadersLen, const char* postHeaders)
{
NPError rslt = NPERR_INVALID_PARAM;
nsPluginInstancePeer* instPeer = NULL;
if (peer->QueryInterface(kPluginInstancePeerCID, (void**)&instPeer) == NS_OK) {
if (PR_CurrentThread() == mozilla_thread) {
NPP npp = instPeer->GetNPP();
PR_ASSERT(postHeaders == NULL); // XXX need to deal with postHeaders
rslt = np_posturlinternal(npp,
url,
target,
altHost,
referrer,
forceJSEnabled,
postDataLen,
postData,
isFile,
notifyData != NULL,
notifyData);
}
else {
PostURLEvent* e = PR_NEW(PostURLEvent);
if (e == NULL) {
rslt = NPERR_OUT_OF_MEMORY_ERROR;
nsIPluginInstance* inst = NULL;
if (pinst->QueryInterface(kIPluginInstanceIID, (void**)&inst) == NS_OK) {
// Warning: Casting to our implementation type of plugin instance peer here:
nsPluginInstancePeer* peer;
nsresult err = inst->GetPeer((nsIPluginInstancePeer**)&peer);
if (err == NS_OK) {
if (PR_CurrentThread() == mozilla_thread) {
NPP npp = peer->GetNPP();
PR_ASSERT(postHeaders == NULL); // XXX need to deal with postHeaders
rslt = np_posturlinternal(npp,
url,
target,
altHost,
referrer,
forceJSEnabled,
postDataLen,
postData,
isFile,
notifyData != NULL,
notifyData);
}
else {
PL_InitEvent(&e->event, NULL, HandlePostURLEvent, DestroyPostURLEvent);
e->peer = instPeer;
e->url = url;
e->target = target;
e->notifyData = notifyData;
e->altHost = altHost;
e->referrer = referrer;
e->forceJSEnabled = forceJSEnabled;
e->postDataLen = postDataLen;
e->postData = postData;
e->isFile = isFile;
e->postHeadersLen = postHeadersLen;
e->postHeaders = postHeaders;
/*rslt = (NPError)*/PL_PostSynchronousEvent(mozilla_event_queue, &e->event);
rslt = NPERR_NO_ERROR; /* XXX irix c++ compiler doesn't like the above cast */
PostURLEvent* e = PR_NEW(PostURLEvent);
if (e == NULL) {
rslt = NPERR_OUT_OF_MEMORY_ERROR;
}
else {
PL_InitEvent(&e->event, NULL, HandlePostURLEvent, DestroyPostURLEvent);
e->peer = peer;
e->url = url;
e->target = target;
e->notifyData = notifyData;
e->altHost = altHost;
e->referrer = referrer;
e->forceJSEnabled = forceJSEnabled;
e->postDataLen = postDataLen;
e->postData = postData;
e->isFile = isFile;
e->postHeadersLen = postHeadersLen;
e->postHeaders = postHeaders;
/*rslt = (NPError)*/PL_PostSynchronousEvent(mozilla_event_queue, &e->event);
rslt = NPERR_NO_ERROR; /* XXX irix c++ compiler doesn't like the above cast */
}
}
peer->Release();
}
instPeer->Release();
inst->Release();
}
return fromNPError[rslt];
}
@@ -805,12 +819,14 @@ nsPluginInstancePeer::GetValue(nsPluginInstancePeerVariable variable, void *valu
return fromNPError[err];
}
#if 0
NS_METHOD
nsPluginInstancePeer::SetValue(nsPluginInstancePeerVariable variable, void *value)
{
NPError err = npn_setvalue(fNPP, (NPPVariable)variable, value);
return fromNPError[err];
}
#endif
NS_METHOD
nsPluginInstancePeer::GetMIMEType(nsMIMEType *result)
@@ -846,6 +862,17 @@ nsPluginInstancePeer::ShowStatus(const char* message)
return NS_OK;
}
NS_METHOD
nsPluginInstancePeer::SetWindowSize(PRUint32 width, PRUint32 height)
{
NPError err;
NPSize size;
size.width = width;
size.height = height;
err = npn_SetWindowSize((np_instance*)fNPP->ndata, &size);
return fromNPError[err];
}
NS_METHOD
nsPluginInstancePeer::InvalidateRect(nsPluginRect *invalidRect)
{