Implemented by
[scriptable, uuid(a2d6dc70-7456-4422-a9f6-d96f46868c0b)]
interface nsIPluginHost : nsIFactory
Attributes
[noscript]
readonly attribute
unsigned long
pluginCount
Methods
To create tmp file with Content len header in, it will use by http POST
[noscript]
void
createTmpFileToPost(in string aPostDataURL, out string aTmpFileName)
Deletes plugin native window object created by NewPluginNativeWindow
[noscript]
void
deletePluginNativeWindow(in nsPluginNativeWindowPtr aPluginNativeWindow)
[noscript]
void
destroy()
Fetches a URL.
(Corresponds to NPN_GetURL and NPN_GetURLNotify.)
@param pluginInst - the plugin making the request. If NULL, the URL
is fetched in the background.
@param url - the URL to fetch
@param target - the target window into which to load the URL, or NULL if
the data should be returned to the plugin via streamListener.
@param streamListener - a stream listener to be used to return data to
the plugin. May be NULL if target is not NULL.
@param altHost - an IP-address string that will be used instead of the
host specified in the URL. This is used to prevent DNS-spoofing
attacks. Can be defaulted to NULL meaning use the host in the URL.
@param referrer - the referring URL (may be NULL)
@param forceJSEnabled - forces JavaScript to be enabled for 'javascript:'
URLs, even if the user currently has JavaScript disabled (usually
specify PR_FALSE)
@result - NS_OK if this operation was successful
Posts to a URL with post data and/or post headers.
(Corresponds to NPN_PostURL and NPN_PostURLNotify.)
@param pluginInst - the plugin making the request. If NULL, the URL
is fetched in the background.
@param url - the URL to fetch
@param postDataLength - the length of postData (if non-NULL)
@param postData - the data to POST. NULL specifies that there is not post
data
@param isFile - whether the postData specifies the name of a file to
post instead of data. The file will be deleted afterwards.
@param target - the target window into which to load the URL, or NULL if
the data should be returned to the plugin via streamListener.
@param streamListener - a stream listener to be used to return data to
the plugin. May be NULL if target is not NULL.
@param altHost - an IP-address string that will be used instead of the
host specified in the URL. This is used to prevent DNS-spoofing
attacks. Can be defaulted to NULL meaning use the host in the URL.
@param referrer - the referring URL (may be NULL)
@param forceJSEnabled - forces JavaScript to be enabled for 'javascript:'
URLs, even if the user currently has JavaScript disabled (usually
specify PR_FALSE)
@param postHeadersLength - the length of postHeaders (if non-NULL)
@param postHeaders - the headers to POST. Must be in the form of
"HeaderName: HeaderValue
". Each header, including the last,
must be followed by "
". NULL specifies that there are no
post headers
@result - NS_OK if this operation was successful
Returns the proxy info for a given URL. The caller is required to
free the resulting memory with nsIMalloc::Free. The result will be in the
following format
i) "DIRECT" -- no proxy
ii) "PROXY xxx.xxx.xxx.xxx" -- use proxy
iii) "SOCKS xxx.xxx.xxx.xxx" -- use SOCKS
iv) Mixed. e.g. "PROXY 111.111.111.111;PROXY 112.112.112.112",
"PROXY 111.111.111.111;SOCKS 112.112.112.112"....
Which proxy/SOCKS to use is determined by the plugin.
void
findProxyForURL(in string aURL, out string aResult)
[noscript]
nsIPlugin
getPluginFactory(in string aMimeType)
Get the plugin name for the plugin instance.
@param aInstance the plugin instance object
@param aPluginName returns a pointer to a shared readonly string value,
it's only valid for the lifetime of the plugin instance - you must
copy the string value if you need it longer than that.
[noscript]
void
getPluginName(in nsIPluginInstance aInstance, [shared] out string aPluginName)
[noscript]
void
getPlugins(in unsigned long aPluginCount, out nsIDOMPlugin aPluginArray)
void
getPluginTags(out unsigned long aPluginCount, [array, size_is(aPluginCount), retval] out nsIPluginTag aResults)
[noscript]
void
handleBadPlugin(in PRLibraryPtr aLibrary, in nsIPluginInstance instance)
[noscript]
void
init()
Instantiate a "dummy" java plugin if a java plugin that supports NPRuntime is installed. This plugin is used for exposing window.java and window.Packages. If the java plugin supports NPRuntime and instantiation was successful, aOwners instance will be non-null, if not, it will be null.
[noscript]
void
instantiateDummyJavaPlugin(in nsIPluginInstanceOwner aOwner)
[noscript]
void
instantiateEmbeddedPlugin(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner)
[noscript]
void
instantiateFullPagePlugin(in string aMimeType, in nsIURI aURI, in nsIStreamListenerRef aStreamListener, in nsIPluginInstanceOwner aOwner)
Instantiate an embedded plugin for an existing channel. The caller is responsible for opening the channel. It may or may not be already opened when this function is called.
[noscript]
nsIStreamListener
instantiatePluginForChannel(in nsIChannel aChannel, in nsIPluginInstanceOwner aOwner)
[noscript]
void
isPluginEnabledForExtension(in string aExtension, in constCharStarRef aMimeType)
[noscript]
void
isPluginEnabledForType(in string aMimeType)
[noscript]
void
loadPlugins()
Creates a new plugin native window object
[noscript]
void
newPluginNativeWindow(out nsPluginNativeWindowPtr aPluginNativeWindow)
This method parses post buffer to find out case insensitive "Content-length" string
and CR or LF some where after that, then it assumes there is http headers in
the input buffer and continue to search for end of headers (CRLFCRLF or LFLF).
It will *always malloc()* output buffer (caller is responsible to free it)
if input buffer starts with LF, which comes from 4.x spec
http://developer.netscape.com/docs/manuals/communicator/plugin/pgfn2.htm#1007754
"If no custom headers are required, simply add a blank
line ('
') to the beginning of the file or buffer.",
it skips that '
' and considers rest of the input buffer as data.
If "Content-length" string and end of headers is found
it substitutes single LF with CRLF in the headers, so the end of headers
always will be CRLFCRLF (single CR in headers, if any, remain untouched)
else
it puts "Content-length: "+size_of_data+CRLFCRLF at the beginning of the output buffer
and memcpy data to the output buffer
On failure outPostData and outPostDataLen will be set in 0.
@param aInPostData - the post data
@param aInPostDataLen - the length aInPostData
@param aOutPostData - the buffer
@param aOutPostDataLen - the length of aOutPostData
[noscript]
void
parsePostBufferToFixHeaders(in string aInPostData, in unsigned long aInPostDataLen, out string aOutPostData, out unsigned long aOutPostDataLen)
Causes the plugins directory to be searched again for new plugin libraries. @param reloadPages - indicates whether currently visible pages should also be reloaded
void
reloadPlugins(in boolean reloadPages)
To notify the plugin manager that the plugin created a script object
[noscript]
void
setIsScriptableInstance(in nsIPluginInstance aInstance, in boolean aScriptable)
[noscript]
void
setUpPluginInstance(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner)
[noscript]
void
stopPluginInstance(in nsIPluginInstance aInstance)
[noscript]
void
UserAgent(in nativeChar resultingAgentString)
Compare to: