Linux Mac OSX Windows

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)