38 #include "nspluginroot.idl"
39 #include "nsISupports.idl"
40 #include "nsIPluginInstanceOwner.idl"
41 #include "nsIStreamListener.idl"
42 #include "nsIStringStream.idl"
43 #include "nsIPluginTag.idl"
46 #include "nsPluginNativeWindow.h"
47 #include "nsplugindefs.h"
48 #ifdef MOZILLA_INTERNAL_API
50 #include "nsNetUtil.h"
54 #define MOZ_PLUGIN_HOST_CONTRACTID \
55 "@mozilla.org/plugin/host;1"
60 interface nsIDOMPlugin;
64 [ptr] native PRLibraryPtr(PRLibrary);
65 [ref] native nsIStreamListenerRef(nsIStreamListener *);
68 [scriptable, uuid(30C7C529-B05C-4950-B5B8-9AF673E46521)]
71 [noscript]
void init();
73 [noscript]
void destroy();
75 [noscript]
void loadPlugins();
86 [noscript]
nsIPlugin getPlugin(in
string aMimeType);
88 [noscript]
void instantiateEmbeddedPlugin(in
string aMimeType, in nsIURI aURL, in
nsIPluginInstanceOwner aOwner);
90 [noscript]
void instantiateFullPagePlugin(in
string aMimeType, in nsIURI aURI, in nsIStreamListenerRef aStreamListener, in
nsIPluginInstanceOwner aOwner);
99 [noscript]
void setUpPluginInstance(in
string aMimeType, in nsIURI aURL, in
nsIPluginInstanceOwner aOwner);
104 [noscript]
void isPluginEnabledForType(in
string aMimeType);
108 [noscript]
void isPluginEnabledForExtension(in
string aExtension, in constCharStarRef aMimeType);
110 [noscript] readonly attribute
unsigned long pluginCount;
112 [noscript]
void getPlugins(in
unsigned long aPluginCount, out nsIDOMPlugin aPluginArray);
114 void getPluginTags(out
unsigned long aPluginCount,
115 [retval, array, size_is(aPluginCount)] out
nsIPluginTag aResults);
119 [noscript]
void handleBadPlugin(in PRLibraryPtr aLibrary, in
nsIPluginInstance instance);
144 GetURL(nsISupports* pluginInst,
146 const char* target = NULL,
148 const char* altHost = NULL,
149 const char* referrer = NULL,
150 PRBool forceJSEnabled = PR_FALSE) = 0;
186 PostURL(nsISupports* pluginInst,
188 PRUint32 postDataLen,
189 const char* postData,
190 PRBool isFile = PR_FALSE,
191 const char* target = NULL,
193 const char* altHost = NULL,
194 const char* referrer = NULL,
195 PRBool forceJSEnabled = PR_FALSE,
196 PRUint32 postHeadersLength = 0,
197 const char* postHeaders = NULL) = 0;
215 [noscript]
void UserAgent(in nativeChar resultingAgentString);
246 in
unsigned long aInPostDataLen,
247 out
string aOutPostData,
248 out
unsigned long aOutPostDataLen);
292 #ifdef MOZILLA_INTERNAL_API
304 NS_NewPluginPostDataStream(nsIInputStream **result,
306 PRUint32 contentLength,
307 PRBool isFile = PR_FALSE,
308 PRBool headers = PR_FALSE)
310 nsresult rv = NS_ERROR_UNEXPECTED;
315 if (contentLength < 1)
318 char *buf = (
char*) data;
321 if (!(buf = (
char*)nsMemory::Alloc(contentLength)))
322 return NS_ERROR_OUT_OF_MEMORY;
323 memcpy(buf, data, contentLength);
325 nsCOMPtr<nsIStringInputStream> sis = do_CreateInstance(
"@mozilla.org/io/string-input-stream;1",&rv);
326 if (NS_SUCCEEDED(rv)) {
327 sis->AdoptData(buf, contentLength);
328 rv = CallQueryInterface(sis, result);
334 nsCOMPtr<nsILocalFile> file;
335 nsCOMPtr<nsIInputStream> fileStream;
336 if (NS_SUCCEEDED(rv = NS_NewNativeLocalFile(nsDependentCString(data), PR_FALSE, getter_AddRefs(file))) &&
337 NS_SUCCEEDED(rv = NS_NewLocalFileInputStream(getter_AddRefs(fileStream),
341 nsIFileInputStream::DELETE_ON_CLOSE |
342 nsIFileInputStream::CLOSE_ON_EOF))) {
344 return NS_NewBufferedInputStream(result, fileStream, 8192);
void createTmpFileToPost(in string aPostDataURL, out string aTmpFileName)
To create tmp file with Content len header in, it will use by http POST.
void newPluginNativeWindow(out nsPluginNativeWindowPtr aPluginNativeWindow)
Creates a new plugin native window object.
void findProxyForURL(in string aURL, out string aResult)
Returns the proxy info for a given URL.
nsIPluginTag getPluginTagForInstance(in nsIPluginInstance aInstance)
Get the plugin tag associated with a given plugin instance.
nsIStreamListener instantiatePluginForChannel(in nsIChannel aChannel, in nsIPluginInstanceOwner aOwner)
Instantiate an embedded plugin for an existing channel.
void setIsScriptableInstance(in nsIPluginInstance aInstance, in boolean aScriptable)
To notify the plugin manager that the plugin created a script object.
void instantiateDummyJavaPlugin(in nsIPluginInstanceOwner aOwner)
Instantiate a "dummy" java plugin if a java plugin that supports NPRuntime is installed.
NS_IMETHOD GetURL(nsISupports *pluginInst, const char *url, const char *target=NULL, nsIPluginStreamListener *streamListener=NULL, const char *altHost=NULL, const char *referrer=NULL, PRBool forceJSEnabled=PR_FALSE)=0
Fetches a URL.
void reloadPlugins(in boolean reloadPages)
Causes the plugins directory to be searched again for new plugin libraries.
void getPluginName(in nsIPluginInstance aInstance, [shared] out string aPluginName)
Get the plugin name for the plugin instance.
void parsePostBufferToFixHeaders(in string aInPostData, in unsigned long aInPostDataLen, out string aOutPostData, out unsigned long aOutPostDataLen)
This method parses post buffer to find out case insensitive "Content-length" string and CR or LF some...
void deletePluginNativeWindow(in nsPluginNativeWindowPtr aPluginNativeWindow)
Deletes plugin native window object created by NewPluginNativeWindow.
NS_IMETHOD PostURL(nsISupports *pluginInst, const char *url, PRUint32 postDataLen, const char *postData, PRBool isFile=PR_FALSE, const char *target=NULL, nsIPluginStreamListener *streamListener=NULL, const char *altHost=NULL, const char *referrer=NULL, PRBool forceJSEnabled=PR_FALSE, PRUint32 postHeadersLength=0, const char *postHeaders=NULL)=0
Posts to a URL with post data and/or post headers.
base class for native plugin window implementations