зеркало из https://github.com/mozilla/gecko-dev.git
Accepting michaelp's API changes for GetValue/SetValue.
This commit is contained in:
Родитель
ffa719807f
Коммит
5619102737
|
@ -213,12 +213,9 @@ public:
|
|||
NS_IMETHOD
|
||||
ShowStatus(const char* message);
|
||||
|
||||
// XXX - Where did this go?
|
||||
NS_IMETHOD
|
||||
Version(int* plugin_major, int* plugin_minor,
|
||||
int* netscape_major, int* netscape_minor);
|
||||
SetWindowSize(PRUint32 width, PRUint32 height);
|
||||
|
||||
|
||||
nsIPluginInstance* GetInstance(void) { return mInstance; }
|
||||
NPP GetNPPInstance(void) { return npp; }
|
||||
|
||||
|
@ -1273,22 +1270,6 @@ CPluginInstancePeer::GetAttribute(const char* name, const char* *result)
|
|||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// Version:
|
||||
//
|
||||
// XXX - Where did this go in the new API?
|
||||
//
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
NS_METHOD
|
||||
CPluginInstancePeer::Version(int* plugin_major, int* plugin_minor,
|
||||
int* netscape_major, int* netscape_minor)
|
||||
{
|
||||
NPN_Version(plugin_major, plugin_minor, netscape_major, netscape_minor);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// NewStream:
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
@ -1329,6 +1310,16 @@ CPluginInstancePeer::ShowStatus(const char* message)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
CPluginInstancePeer::SetWindowSize(PRUint32 width, PRUint32 height)
|
||||
{
|
||||
NPError err;
|
||||
NPSize size;
|
||||
size.width = width;
|
||||
size.height = height;
|
||||
err = NPN_SetValue(npp, NPPVpluginWindowSize, &size);
|
||||
return fromNPError[err];
|
||||
}
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// nsISupports functions
|
||||
|
|
|
@ -106,19 +106,6 @@ public:
|
|||
*/
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin.
|
||||
*
|
||||
* (Corresponds to NPP_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginVariable variable, void *value) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGIN_IID \
|
||||
|
|
|
@ -167,6 +167,16 @@ public:
|
|||
URLNotify(const char* url, const char* target,
|
||||
nsPluginReason reason, void* notifyData) = 0;
|
||||
|
||||
/**
|
||||
* Returns the value of a variable associated with the plugin instance.
|
||||
*
|
||||
* @param variable - the plugin instance variable to get
|
||||
* @param value - the address of where to store the resulting value
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginInstanceVariable variable, void *value) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGININSTANCE_IID \
|
||||
|
|
|
@ -66,18 +66,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginInstancePeerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin manager.
|
||||
*
|
||||
* (Corresponds to NPN_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin manager variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginInstancePeerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Returns the MIME type of the plugin instance.
|
||||
*
|
||||
|
@ -129,6 +117,16 @@ public:
|
|||
NS_IMETHOD
|
||||
ShowStatus(const char* message) = 0;
|
||||
|
||||
/**
|
||||
* Set the desired size of the window in which the plugin instance lives.
|
||||
*
|
||||
* @param width - new window width
|
||||
* @param height - new window height
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetWindowSize(PRUint32 width, PRUint32 height) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGININSTANCEPEER_IID \
|
||||
|
|
|
@ -58,18 +58,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginManagerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin manager.
|
||||
*
|
||||
* (Corresponds to NPN_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin manager variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginManagerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Causes the plugins directory to be searched again for new plugin
|
||||
* libraries.
|
||||
|
|
|
@ -168,23 +168,24 @@ struct nsPluginPrintCallbackStruct {
|
|||
|
||||
// List of variables which should be implmented by the plugin
|
||||
enum nsPluginVariable {
|
||||
nsPluginVariable_NameString = 1,
|
||||
nsPluginVariable_DescriptionString = 2
|
||||
nsPluginVariable_NameString = 1,
|
||||
nsPluginVariable_DescriptionString = 2
|
||||
};
|
||||
|
||||
// List of variables which are implemented by the browser
|
||||
enum nsPluginManagerVariable {
|
||||
nsPluginManagerVariable_XDisplay = 1,
|
||||
nsPluginManagerVariable_XtAppContext = 2,
|
||||
nsPluginManagerVariable_NetscapeWindow = 3
|
||||
nsPluginManagerVariable_XDisplay = 1,
|
||||
nsPluginManagerVariable_XtAppContext = 2
|
||||
};
|
||||
|
||||
enum nsPluginInstancePeerVariable {
|
||||
nsPluginInstancePeerVariable_WindowBool = 3,
|
||||
nsPluginInstancePeerVariable_TransparentBool = 4,
|
||||
nsPluginInstancePeerVariable_JavaClass = 5,
|
||||
nsPluginInstancePeerVariable_WindowSize = 6,
|
||||
nsPluginInstancePeerVariable_TimerInterval = 7
|
||||
nsPluginInstancePeerVariable_NetscapeWindow = 3
|
||||
// nsPluginInstancePeerVariable_JavaClass = 5,
|
||||
// nsPluginInstancePeerVariable_TimerInterval = 7
|
||||
};
|
||||
|
||||
enum nsPluginInstanceVariable {
|
||||
nsPluginInstanceVariable_WindowlessBool = 3,
|
||||
nsPluginInstanceVariable_TransparentBool = 4
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -106,19 +106,6 @@ public:
|
|||
*/
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin.
|
||||
*
|
||||
* (Corresponds to NPP_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginVariable variable, void *value) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGIN_IID \
|
||||
|
|
|
@ -167,6 +167,16 @@ public:
|
|||
URLNotify(const char* url, const char* target,
|
||||
nsPluginReason reason, void* notifyData) = 0;
|
||||
|
||||
/**
|
||||
* Returns the value of a variable associated with the plugin instance.
|
||||
*
|
||||
* @param variable - the plugin instance variable to get
|
||||
* @param value - the address of where to store the resulting value
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginInstanceVariable variable, void *value) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGININSTANCE_IID \
|
||||
|
|
|
@ -66,18 +66,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginInstancePeerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin manager.
|
||||
*
|
||||
* (Corresponds to NPN_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin manager variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginInstancePeerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Returns the MIME type of the plugin instance.
|
||||
*
|
||||
|
@ -129,6 +117,16 @@ public:
|
|||
NS_IMETHOD
|
||||
ShowStatus(const char* message) = 0;
|
||||
|
||||
/**
|
||||
* Set the desired size of the window in which the plugin instance lives.
|
||||
*
|
||||
* @param width - new window width
|
||||
* @param height - new window height
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetWindowSize(PRUint32 width, PRUint32 height) = 0;
|
||||
|
||||
};
|
||||
|
||||
#define NS_IPLUGININSTANCEPEER_IID \
|
||||
|
|
|
@ -58,18 +58,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginManagerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Sets the value of a variable associated with the plugin manager.
|
||||
*
|
||||
* (Corresponds to NPN_SetValue.)
|
||||
*
|
||||
* @param variable - the plugin manager variable to get
|
||||
* @param value - the address of the value to store
|
||||
* @result - NS_OK if this operation was successful
|
||||
*/
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginManagerVariable variable, void *value) = 0;
|
||||
|
||||
/**
|
||||
* Causes the plugins directory to be searched again for new plugin
|
||||
* libraries.
|
||||
|
|
|
@ -168,23 +168,24 @@ struct nsPluginPrintCallbackStruct {
|
|||
|
||||
// List of variables which should be implmented by the plugin
|
||||
enum nsPluginVariable {
|
||||
nsPluginVariable_NameString = 1,
|
||||
nsPluginVariable_DescriptionString = 2
|
||||
nsPluginVariable_NameString = 1,
|
||||
nsPluginVariable_DescriptionString = 2
|
||||
};
|
||||
|
||||
// List of variables which are implemented by the browser
|
||||
enum nsPluginManagerVariable {
|
||||
nsPluginManagerVariable_XDisplay = 1,
|
||||
nsPluginManagerVariable_XtAppContext = 2,
|
||||
nsPluginManagerVariable_NetscapeWindow = 3
|
||||
nsPluginManagerVariable_XDisplay = 1,
|
||||
nsPluginManagerVariable_XtAppContext = 2
|
||||
};
|
||||
|
||||
enum nsPluginInstancePeerVariable {
|
||||
nsPluginInstancePeerVariable_WindowBool = 3,
|
||||
nsPluginInstancePeerVariable_TransparentBool = 4,
|
||||
nsPluginInstancePeerVariable_JavaClass = 5,
|
||||
nsPluginInstancePeerVariable_WindowSize = 6,
|
||||
nsPluginInstancePeerVariable_TimerInterval = 7
|
||||
nsPluginInstancePeerVariable_NetscapeWindow = 3
|
||||
// nsPluginInstancePeerVariable_JavaClass = 5,
|
||||
// nsPluginInstancePeerVariable_TimerInterval = 7
|
||||
};
|
||||
|
||||
enum nsPluginInstanceVariable {
|
||||
nsPluginInstanceVariable_WindowlessBool = 3,
|
||||
nsPluginInstanceVariable_TransparentBool = 4
|
||||
};
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -213,12 +213,9 @@ public:
|
|||
NS_IMETHOD
|
||||
ShowStatus(const char* message);
|
||||
|
||||
// XXX - Where did this go?
|
||||
NS_IMETHOD
|
||||
Version(int* plugin_major, int* plugin_minor,
|
||||
int* netscape_major, int* netscape_minor);
|
||||
SetWindowSize(PRUint32 width, PRUint32 height);
|
||||
|
||||
|
||||
nsIPluginInstance* GetInstance(void) { return mInstance; }
|
||||
NPP GetNPPInstance(void) { return npp; }
|
||||
|
||||
|
@ -1273,22 +1270,6 @@ CPluginInstancePeer::GetAttribute(const char* name, const char* *result)
|
|||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// Version:
|
||||
//
|
||||
// XXX - Where did this go in the new API?
|
||||
//
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
||||
NS_METHOD
|
||||
CPluginInstancePeer::Version(int* plugin_major, int* plugin_minor,
|
||||
int* netscape_major, int* netscape_minor)
|
||||
{
|
||||
NPN_Version(plugin_major, plugin_minor, netscape_major, netscape_minor);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// NewStream:
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
|
@ -1329,6 +1310,16 @@ CPluginInstancePeer::ShowStatus(const char* message)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
CPluginInstancePeer::SetWindowSize(PRUint32 width, PRUint32 height)
|
||||
{
|
||||
NPError err;
|
||||
NPSize size;
|
||||
size.width = width;
|
||||
size.height = height;
|
||||
err = NPN_SetValue(npp, NPPVpluginWindowSize, &size);
|
||||
return fromNPError[err];
|
||||
}
|
||||
|
||||
//+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
// nsISupports functions
|
||||
|
|
|
@ -31,7 +31,7 @@ OBJS = .\$(OBJDIR)\npsimple.obj \
|
|||
|
||||
JDIRS = .
|
||||
|
||||
JRI_GEN = \
|
||||
xJRI_GEN = \
|
||||
Simple \
|
||||
java.lang.Object \
|
||||
netscape.plugin.Plugin \
|
||||
|
@ -76,7 +76,7 @@ GARBAGE = $(GARBAGE) _gen
|
|||
#//------------------------------------------------------------------------
|
||||
include <$(DEPTH)/config/rules.mak>
|
||||
|
||||
LINCS=$(LINCS) -I$(PUBLIC)\plugin -I$(PUBLIC)\xpcom -I$(PUBLIC)\java -I$(PUBLIC)\plugimpl -I$(PUBLIC)\raptor
|
||||
LINCS=$(LINCS) -I$(PUBLIC)\plugin -I$(PUBLIC)\xpcom -I$(PUBLIC)\java -I$(PUBLIC)\plugimpl -I$(PUBLIC)\raptor -I_jri
|
||||
|
||||
install:: $(DLL)
|
||||
$(MAKE_INSTALL) $(XPDIST)\classes11\Simple.class $(DEPTH)\cmd\winfe\mkfiles32\x86dbg\plugins\simple
|
||||
|
|
|
@ -163,10 +163,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginVariable variable, void *value);
|
||||
|
||||
// (Corresponds to NPP_SetValue.)
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginVariable variable, void *value);
|
||||
|
||||
// The old NPP_New call has been factored into two plugin instance methods:
|
||||
//
|
||||
// CreateInstance -- called once, after the plugin instance is created. This
|
||||
|
@ -266,6 +262,9 @@ public:
|
|||
URLNotify(const char* url, const char* target,
|
||||
nsPluginReason reason, void* notifyData);
|
||||
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginInstanceVariable variable, void *value);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// SimplePluginInstance specific methods:
|
||||
|
||||
|
@ -504,12 +503,6 @@ SimplePlugin::GetValue(nsPluginVariable variable, void *value)
|
|||
return err;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
SimplePlugin::SetValue(nsPluginVariable variable, void *value)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
* GetJavaClass:
|
||||
*
|
||||
|
@ -788,6 +781,12 @@ SimplePluginInstance::URLNotify(const char* url, const char* target,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
SimplePluginInstance::GetValue(nsPluginInstanceVariable variable, void *value)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SimplePluginStream Methods
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -1602,6 +1602,67 @@ npn_getvalue(NPP npp, NPNVariable variable, void *r_value)
|
|||
return(ret);
|
||||
}
|
||||
|
||||
NPError
|
||||
npn_SetWindowless(np_instance* instance, PRBool windowed)
|
||||
{
|
||||
/*
|
||||
* XXX On the Mac, a window has already been allocated by the time NPP_New
|
||||
* has been called - which is fine, since we'll still use the window.
|
||||
* Unfortunately, we can't use the window's presence to determine whether
|
||||
* it's too late to set the windowed property.
|
||||
*/
|
||||
#ifndef XP_MAC
|
||||
/*
|
||||
* If the window has already been allocated, it's too late
|
||||
* to tell us.
|
||||
*/
|
||||
if (!instance->app->wdata->window)
|
||||
instance->windowed = windowed;
|
||||
else
|
||||
return NPERR_INVALID_PARAM;
|
||||
#else
|
||||
instance->windowed = windowed;
|
||||
#endif
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
npn_SetTransparent(np_instance* instance, PRBool transparent)
|
||||
{
|
||||
instance->transparent = transparent;
|
||||
#ifdef LAYERS
|
||||
if (instance->layer &&
|
||||
(instance->transparent != !(CL_GetLayerFlags(instance->layer) & CL_OPAQUE)))
|
||||
{
|
||||
XP_Rect bbox;
|
||||
|
||||
/* Get the bbox and convert it into its own coordinate space */
|
||||
CL_GetLayerBbox(instance->layer, &bbox);
|
||||
|
||||
CL_ChangeLayerFlag(instance->layer, CL_OPAQUE, (PRBool)!instance->transparent);
|
||||
CL_ChangeLayerFlag(instance->layer,
|
||||
CL_PREFER_DRAW_OFFSCREEN,
|
||||
(PRBool)instance->transparent);
|
||||
|
||||
/* Force drawing of the entire transparent plug-in. */
|
||||
CL_UpdateLayerRect(CL_GetLayerCompositor(instance->layer),
|
||||
instance->layer, &bbox, PR_FALSE);
|
||||
}
|
||||
#endif /* LAYERS */
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError
|
||||
npn_SetWindowSize(np_instance* instance, NPSize* pnpsz)
|
||||
{
|
||||
np_data * ndata = (np_data *)instance->app->np_data;
|
||||
LO_EmbedStruct * pes = ndata->lo_struct;
|
||||
|
||||
LO_SetEmbedSize(instance->cx, pes, pnpsz->width, pnpsz->height);
|
||||
LO_RelayoutFromElement(instance->cx, (LO_Element *)pes);
|
||||
return NPERR_NO_ERROR;
|
||||
}
|
||||
|
||||
NPError NP_EXPORT
|
||||
npn_setvalue(NPP npp, NPPVariable variable, void *r_value)
|
||||
{
|
||||
|
@ -1616,65 +1677,24 @@ npn_setvalue(NPP npp, NPPVariable variable, void *r_value)
|
|||
return NPERR_INVALID_INSTANCE_ERROR;
|
||||
|
||||
switch(variable) {
|
||||
case NPPVpluginWindowBool:
|
||||
/*
|
||||
* XXX On the Mac, a window has already been allocated by the time NPP_New
|
||||
* has been called - which is fine, since we'll still use the window.
|
||||
* Unfortunately, we can't use the window's presence to determine whether
|
||||
* it's too late to set the windowed property.
|
||||
*/
|
||||
#ifndef XP_MAC
|
||||
/*
|
||||
* If the window has already been allocated, it's too late
|
||||
* to tell us.
|
||||
*/
|
||||
if (!instance->app->wdata->window)
|
||||
instance->windowed = (0 != r_value);
|
||||
else
|
||||
ret = NPERR_INVALID_PARAM;
|
||||
#else
|
||||
instance->windowed = (0 != r_value);
|
||||
#endif
|
||||
break;
|
||||
case NPPVpluginTransparentBool:
|
||||
instance->transparent = (0 != r_value);
|
||||
#ifdef LAYERS
|
||||
if (instance->layer &&
|
||||
(instance->transparent != !(CL_GetLayerFlags(instance->layer) & CL_OPAQUE)))
|
||||
{
|
||||
XP_Rect bbox;
|
||||
|
||||
/* Get the bbox and convert it into its own coordinate space */
|
||||
CL_GetLayerBbox(instance->layer, &bbox);
|
||||
|
||||
CL_ChangeLayerFlag(instance->layer, CL_OPAQUE, (PRBool)!instance->transparent);
|
||||
CL_ChangeLayerFlag(instance->layer,
|
||||
CL_PREFER_DRAW_OFFSCREEN,
|
||||
(PRBool)instance->transparent);
|
||||
case NPPVpluginWindowBool:
|
||||
ret = npn_SetWindowless(instance, (PRBool)(0 != r_value));
|
||||
break;
|
||||
|
||||
/* Force drawing of the entire transparent plug-in. */
|
||||
CL_UpdateLayerRect(CL_GetLayerCompositor(instance->layer),
|
||||
instance->layer, &bbox, PR_FALSE);
|
||||
}
|
||||
#endif /* LAYERS */
|
||||
break;
|
||||
case NPPVpluginTransparentBool:
|
||||
ret = npn_SetTransparent(instance, (PRBool)(0 != r_value));
|
||||
break;
|
||||
|
||||
case NPPVpluginTimerInterval:
|
||||
np_SetTimerInterval(npp, *(uint32*)r_value);
|
||||
break;
|
||||
case NPPVpluginTimerInterval:
|
||||
np_SetTimerInterval(npp, *(uint32*)r_value);
|
||||
break;
|
||||
|
||||
case NPPVpluginWindowSize:
|
||||
{
|
||||
NPSize * pnpsz = (NPSize *)r_value;
|
||||
np_data * ndata = (np_data *)instance->app->np_data;
|
||||
LO_EmbedStruct * pes = ndata->lo_struct;
|
||||
case NPPVpluginWindowSize:
|
||||
ret = npn_SetWindowSize(instance, (NPSize *)r_value);
|
||||
break;
|
||||
|
||||
LO_SetEmbedSize(instance->cx, pes, pnpsz->width, pnpsz->height);
|
||||
LO_RelayoutFromElement(instance->cx, (LO_Element *)pes);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return(ret);
|
||||
|
@ -2807,6 +2827,18 @@ np_newinstance(np_handle *handle, MWContext *cx, NPEmbeddedApp *app,
|
|||
npp->pdata = peerInst;
|
||||
ndata->sdata = (NPSavedData*)pluginInst;
|
||||
err = NPERR_NO_ERROR;
|
||||
|
||||
// This used to be done by the NPN_SetValue call. The user was required
|
||||
// to call them during NPP_New:
|
||||
extern nsresult fromNPError[];
|
||||
void* value;
|
||||
// It's an abomination that we don't pass the address of value here:
|
||||
err3 = pluginInst->GetValue(nsPluginInstanceVariable_WindowlessBool, value);
|
||||
if (err3 == NS_OK)
|
||||
(void)npn_SetWindowless(instance, (PRBool)value);
|
||||
err3 = pluginInst->GetValue(nsPluginInstanceVariable_TransparentBool, value);
|
||||
if (err3 == NS_OK)
|
||||
(void)npn_SetTransparent(instance, (PRBool)value);
|
||||
}
|
||||
else {
|
||||
// this will release the plugin instance.
|
||||
|
|
|
@ -272,6 +272,8 @@ npn_getJavaPeer(NPP npp);
|
|||
#pragma pointers_in_A0
|
||||
#endif
|
||||
|
||||
extern NPError
|
||||
npn_SetWindowSize(np_instance* instance, NPSize* pnpsz);
|
||||
|
||||
/* End of function prototypes */
|
||||
|
||||
|
@ -291,9 +293,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginManagerVariable variable, void *value);
|
||||
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginManagerVariable variable, void *value);
|
||||
|
||||
// (Corresponds to NPN_ReloadPlugins.)
|
||||
NS_IMETHOD
|
||||
ReloadPlugins(PRBool reloadPages);
|
||||
|
@ -446,9 +445,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginInstancePeerVariable variable, void *value);
|
||||
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginInstancePeerVariable variable, void *value);
|
||||
|
||||
// (Corresponds to NPP_New's MIMEType argument.)
|
||||
NS_IMETHOD
|
||||
GetMIMEType(nsMIMEType *result);
|
||||
|
@ -465,6 +461,9 @@ public:
|
|||
NS_IMETHOD
|
||||
ShowStatus(const char* message);
|
||||
|
||||
NS_IMETHOD
|
||||
SetWindowSize(PRUint32 width, PRUint32 height);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// from nsIJRILiveConnectPluginInstancePeer:
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -31,7 +31,7 @@ OBJS = .\$(OBJDIR)\npsimple.obj \
|
|||
|
||||
JDIRS = .
|
||||
|
||||
JRI_GEN = \
|
||||
xJRI_GEN = \
|
||||
Simple \
|
||||
java.lang.Object \
|
||||
netscape.plugin.Plugin \
|
||||
|
@ -76,7 +76,7 @@ GARBAGE = $(GARBAGE) _gen
|
|||
#//------------------------------------------------------------------------
|
||||
include <$(DEPTH)/config/rules.mak>
|
||||
|
||||
LINCS=$(LINCS) -I$(PUBLIC)\plugin -I$(PUBLIC)\xpcom -I$(PUBLIC)\java -I$(PUBLIC)\plugimpl -I$(PUBLIC)\raptor
|
||||
LINCS=$(LINCS) -I$(PUBLIC)\plugin -I$(PUBLIC)\xpcom -I$(PUBLIC)\java -I$(PUBLIC)\plugimpl -I$(PUBLIC)\raptor -I_jri
|
||||
|
||||
install:: $(DLL)
|
||||
$(MAKE_INSTALL) $(XPDIST)\classes11\Simple.class $(DEPTH)\cmd\winfe\mkfiles32\x86dbg\plugins\simple
|
||||
|
|
|
@ -163,10 +163,6 @@ public:
|
|||
NS_IMETHOD
|
||||
GetValue(nsPluginVariable variable, void *value);
|
||||
|
||||
// (Corresponds to NPP_SetValue.)
|
||||
NS_IMETHOD
|
||||
SetValue(nsPluginVariable variable, void *value);
|
||||
|
||||
// The old NPP_New call has been factored into two plugin instance methods:
|
||||
//
|
||||
// CreateInstance -- called once, after the plugin instance is created. This
|
||||
|
@ -266,6 +262,9 @@ public:
|
|||
URLNotify(const char* url, const char* target,
|
||||
nsPluginReason reason, void* notifyData);
|
||||
|
||||
NS_IMETHOD
|
||||
GetValue(nsPluginInstanceVariable variable, void *value);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
// SimplePluginInstance specific methods:
|
||||
|
||||
|
@ -504,12 +503,6 @@ SimplePlugin::GetValue(nsPluginVariable variable, void *value)
|
|||
return err;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
SimplePlugin::SetValue(nsPluginVariable variable, void *value)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
/*+++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
* GetJavaClass:
|
||||
*
|
||||
|
@ -788,6 +781,12 @@ SimplePluginInstance::URLNotify(const char* url, const char* target,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_METHOD
|
||||
SimplePluginInstance::GetValue(nsPluginInstanceVariable variable, void *value)
|
||||
{
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SimplePluginStream Methods
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
Загрузка…
Ссылка в новой задаче