mozilla
Your Search Results

    nsIPluginHost

    This article is in need of a technical review.

    Please add a summary to this article.
    Inherits from: nsISupports Last changed in Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

    Method overview

    nsIFile createTempFileToPost(in string aPostDataURL); Native code only!
    void createTmpFileToPost(in string aPostDataURL, out string aTmpFileName); Native code only! Obsolete since Gecko 2.0
    void deletePluginNativeWindow(in nsPluginNativeWindowPtr aPluginNativeWindow); Native code only!
    void destroy(); Native code only!
    void findProxyForURL(in string aURL, out string aResult); Native code only!
    nsIPlugin getPlugin(in string aMimeType); Native code only!
    void getPluginCount(out unsigned long aPluginCount); Obsolete since Gecko 1.8
    nsIPlugin getPluginFactory(in string aMimeType); Native code only! Obsolete since Gecko 1.9.2
    void getPluginName(in nsIPluginInstance aInstance, [shared] out string aPluginName); Native code only!
    nsIPluginTag getPluginTagForInstance(in nsIPluginInstance aInstance); Native code only!
    void getPluginTags([optional] out unsigned long aPluginCount, [retval, array, size_is(aPluginCount)] out nsIPluginTag aResults);
    void handleBadPlugin(in PRLibraryPtr aLibrary, in nsIPluginInstance instance); Native code only!
    void init(); Native code only!
    void instantiateDummyJavaPlugin(in nsIPluginInstanceOwner aOwner); Native code only!
    void instantiateEmbeddedPlugin(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner); Native code only!
    void instantiateEmbededPlugin(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner); Obsolete since Gecko 1.8
    void instantiateFullPagePlugin(in string aMimeType, in nsIURI aURI, in nsIPluginInstanceOwner aOwner, out nsIStreamListener aStreamListener); Native code only!
    nsIStreamListener instantiatePluginForChannel(in nsIChannel aChannel, in nsIPluginInstanceOwner aOwner); Native code only!
    void isPluginEnabledForExtension(in string aExtension, in constCharStarRef aMimeType); Native code only!
    void isPluginEnabledForType(in string aMimeType); Native code only!
    void loadPlugins(); Native code only!
    void newPluginNativeWindow(out nsPluginNativeWindowPtr aPluginNativeWindow); Native code only!
    void parsePostBufferToFixHeaders(in string aInPostData, in unsigned long aInPostDataLen, out string aOutPostData, out unsigned long aOutPostDataLen); Native code only!
    void reloadPlugins(in boolean reloadPages);
    void setIsScriptableInstance(in nsIPluginInstance aInstance, in boolean aScriptable); Native code only! Obsolete since Gecko 2.0
    void setUpPluginInstance(in string aMimeType, in nsIURI aURL, in nsIPluginInstanceOwner aOwner); Native code only!
    void stopPluginInstance(in nsIPluginInstance aInstance); Native code only!
    void UserAgent(in nativeChar resultingAgentString); Native code only!

    Attributes

    Attribute Type Description
    pluginCount unsigned long Read only. Native code only!

    Methods

    Native code only!

    createTempFileToPost

    To create temp file with Content len header in, it will use by http POST.

    nsIFile createTempFileToPost(
      in string aPostDataURL
    );
    
    Parameters
    aPostDataURL
     
    Return value

     

    Native code only!

    createTmpFileToPost

    Obsolete since Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
    This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

    To create temp file with Content len header in, it will use by http POST.

    void createTmpFileToPost(
      in string aPostDataURL,
      out string aTmpFileName
    );
    
    Parameters
    aPostDataURL
     
    aTmpFileName
     

    Native code only!

    deletePluginNativeWindow

    Deletes plugin native window object created by NewPluginNativeWindow().

    void deletePluginNativeWindow(
      in nsPluginNativeWindowPtr aPluginNativeWindow
    );
    
    Parameters
    aPluginNativeWindow
     

    Native code only!

    destroy

    void destroy();
    
    Parameters

    None.

    Native code only!

    findProxyForURL

    Fetches a URL.

    (Corresponds to NPN_GetURL and NPN_GetURLNotify.)

    Posts to a URL with post data and/or post headers.

    (Corresponds to NPN_PostURL and NPN_PostURLNotify.)

    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.

    1. "DIRECT" -- no proxy
    2. "PROXY xxx.xxx.xxx.xxx" -- use proxy
    3. "SOCKS xxx.xxx.xxx.xxx" -- use SOCKS
    4. Mixed. for example "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
    );
    
    Parameters
    aURL
     
    aResult
     

    Native code only!

    getPlugin

    nsIPlugin getPlugin(
      in string aMimeType
    );
    
    Parameters
    aMimeType
     
    Return value

     

    Obsolete since Gecko 1.8 (Firefox 1.5 / Thunderbird 1.5 / SeaMonkey 1.0)

    getPluginCount()

    void getPluginCount(
      out unsigned long aPluginCount
    );
    
    Parameters
    aPluginCount
     

    Native code only!

    getPluginFactory

    Obsolete since Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)
    This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

    nsIPlugin getPluginFactory(
      in string aMimeType
    );
    
    Parameters
    aMimeType
     
    Return value

     

    Native code only!

    getPluginName

    Get the plugin name for the plugin instance.

    void getPluginName(
      in nsIPluginInstance aInstance,
      [shared] out string aPluginName
    );
    
    Parameters
    aInstance
    The plugin instance object.
    aPluginName
    Returns a pointer to a shared read-only 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.

    Native code only!

    getPluginTagForInstance

    Get the plugin tag associated with a given plugin instance.

    nsIPluginTag getPluginTagForInstance(
      in nsIPluginInstance aInstance
    );
    
    Parameters
    aInstance
    The plugin instance object.
    Return value

    Plugin tag object.

    Requires Gecko 1.9 (Firefox 3)

    getPluginTags()

    void getPluginTags(
      out unsigned long aPluginCount, Optional
      [retval, array, size_is(aPluginCount)] out nsIPluginTag aResults
    );
    
    Parameters
    aPluginCount Optional
     
    aResults
     

    Native code only!

    handleBadPlugin

    void handleBadPlugin(
      in PRLibraryPtr aLibrary,
      in nsIPluginInstance instance
    );
    
    Parameters
    aLibrary
     
    instance
     

    Native code only!

    init

    void init();
    
    Parameters

    None.

    Native code only!

    instantiateDummyJavaPlugin

    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.

    void instantiateDummyJavaPlugin(
      in nsIPluginInstanceOwner aOwner
    );
    
    Parameters
    aOwner
     

    Native code only!

    instantiateEmbeddedPlugin

    void instantiateEmbeddedPlugin(
      in string aMimeType,
      in nsIURI aURL,
      in nsIPluginInstanceOwner aOwner
    );
    
    Parameters
    aMimeType
     
    aURL
     
    aOwner
     

    Obsolete since Gecko 1.8 (Firefox 1.5 / Thunderbird 1.5 / SeaMonkey 1.0)

    instantiateEmbededPlugin()

    void instantiateEmbededPlugin(
      in string aMimeType,
      in nsIURI aURL,
      in nsIPluginInstanceOwner aOwner
    );
    
    Parameters
    aMimeType
     
    aURL
     
    aOwner
     

    Native code only!

    instantiateFullPagePlugin

    void instantiateFullPagePlugin(
      in string aMimeType,
      in nsIURI aURI,
      in nsIPluginInstanceOwner aOwner,
      out nsIStreamListener aStreamListener
    );
    
    Parameters
    aMimeType
     
    aURI
     
    aOwner
     
    aStreamListener
     

    Native code only!

    instantiatePluginForChannel

    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.

    nsIStreamListener instantiatePluginForChannel(
      in nsIChannel aChannel,
      in nsIPluginInstanceOwner aOwner
    );
    
    Parameters
    aChannel
     
    aOwner
     
    Return value

     

    Native code only!

    isPluginEnabledForExtension

    void isPluginEnabledForExtension(
      in string aExtension,
      in constCharStarRef aMimeType
    );
    
    Parameters
    aExtension
     
    aMimeType
     

    Native code only!

    isPluginEnabledForType

    void isPluginEnabledForType(
      in string aMimeType
    );
    
    Parameters
    aMimeType
     

    Native code only!

    loadPlugins

    void loadPlugins();
    
    Parameters

    None.

    Native code only!

    newPluginNativeWindow

    Creates a new plugin native window object.

    void newPluginNativeWindow(
      out nsPluginNativeWindowPtr aPluginNativeWindow
    );
    
    Parameters
    aPluginNativeWindow
     

    Native code only!

    parsePostBufferToFixHeaders

    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 ('\n') to the beginning of the file or buffer.", it skips that '\n' 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.

    void parsePostBufferToFixHeaders(
      in string aInPostData,
      in unsigned long aInPostDataLen,
      out string aOutPostData,
      out unsigned long aOutPostDataLen
    );
    
    Parameters
    aInPostData
    The post data.
    aInPostDataLen
    The length aInPostData.
    aOutPostData
    The buffer.
    aOutPostDataLen
    The length of aOutPostData.

    Requires Gecko 1.9.2 (Firefox 3.6 / Thunderbird 3.1 / Fennec 1.0)

    reloadPlugins()

    Causes the plugins directory to be searched again for new plugin libraries.

    void reloadPlugins(
      in boolean reloadPages
    );
    
    Parameters
    reloadPages
    Indicates whether currently visible pages should also be reloaded.

    Native code only!

    setIsScriptableInstance

    Obsolete since Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)
    This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

    To notify the plugin manager that the plugin created a script object.

    void setIsScriptableInstance(
      in nsIPluginInstance aInstance,
      in boolean aScriptable
    );
    
    Parameters
    aInstance
     
    aScriptable
     

    Native code only!

    setUpPluginInstance

    void setUpPluginInstance(
      in string aMimeType,
      in nsIURI aURL,
      in nsIPluginInstanceOwner aOwner
    );
    
    Parameters
    aMimeType
     
    aURL
     
    aOwner
     

    Native code only!

    stopPluginInstance

    void stopPluginInstance(
      in nsIPluginInstance aInstance
    );
    
    Parameters
    aInstance
     

    Native code only!

    UserAgent

    void UserAgent(
      in nativeChar resultingAgentString
    );
    
    Parameters

    Examples

    List all plug-ins and associated mime types and get handler info

    This example here logs to Browser Console all the installed plug-ins and the associated mime types. Then using nsIHandlerService it gets the handler info. A handler is, default application that should open or deal with this file.

    let pluginHost = Cc["@mozilla.org/plugin/host;1"].getService(Ci.nsIPluginHost);
    let handlerService = Cc['@mozilla.org/uriloader/handler-service;1'].getService(Ci.nsIHandlerService);
    let mimeService = Cc['@mozilla.org/mime;1'].getService(Ci.nsIMIMEService);
    
    let pluginTags = pluginHost.getPluginTags();
    
    for (let i = 0; i < pluginTags.length; ++i) {
        let pluginTag = pluginTags[i];
    
        let mimeTypes = pluginTag.getMimeTypes();
    
        console.warn('pluginTag:', pluginTag.name, 'mimeTypes:', mimeTypes);
    
        // go through all the mime types and get the handler service
        for (let j = 0; j < mimeTypes.length; ++j) {
            let type = mimeTypes[j];
    
            let wrappedHandlerInfo = mimeService.getFromTypeAndExtension(type, null);
            console.log('handler info for type', type, wrappedHandlerInfo);
        }
    
    }
    resultingAgentString
     
     

    Document Tags and Contributors

    Contributors to this page: kscarfone, Noitidart, trevorh, Sheppy
    Last updated by: Noitidart,