Linux Mac OSX Windows
 Plugin Manager 2 Interface
 These extensions to nsIPluginManager are only available in Communicator 5.0.
[uuid(d2962dc0-4eb6-11d2-8164-006008119d7a)]
interface nsIPluginManager2 : nsIPluginManager

Methods

 Allocates a new menu ID (for the Mac).

 @param aHandler   - the event handler for the window
 @param aIsSubmenu - whether this is a sub-menu ID or not
 @param aResult    - the resulting menu ID
 @result           - NS_OK if this operation was successful
void allocateMenuID(in nsIEventHandler aHandler, in boolean aIsSubmenu, out short aResult)
 Puts up a wait cursor.

 @result - NS_OK if this operation was successful
void beginWaitCursor()
 Deallocates a menu ID (for the Mac).

 @param aHandler - the event handler for the window
 @param aMenuID  - the menu ID
 @result         - NS_OK if this operation was successful
void deallocateMenuID(in nsIEventHandler aHandler, in short aMenuID)
 Restores the previous (non-wait) cursor.

 @result - NS_OK if this operation was successful
void endWaitCursor()
 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)
 Indicates whether this event handler has allocated the given menu ID.

 @param aHandler - the event handler for the window
 @param aMenuID  - the menu ID
 @param aResult  - returns PR_TRUE if the menu ID is allocated
 @result         - NS_OK if this operation was successful
void hasAllocatedMenuID(in nsIEventHandler aHandler, in short aMenuID, out boolean aResult)
 This method may be called by the plugin to indicate that an error 
 has occurred, e.g. that the plugin has failed or is shutting down 
 spontaneously. This allows the browser to clean up any plugin-specific 
 state.

 @param aPlugin - the plugin whose status is changing
 @param aStatus - the error status value
 @result        - NS_OK if this operation was successful
void notifyStatusChange(in nsIPlugin aPlugin, in nsresult aStatus)
 Registers a top-level window with the browser. Events received by that
 window will be dispatched to the event handler specified.
 
 @param aHandler - the event handler for the window
 @param aWindow  - the platform window reference
 @result         - NS_OK if this operation was successful
void registerWindow(in nsIEventHandler aHandler, in nsPluginPlatformWindowRef aWindow)
 Returns true if a URL protocol (e.g. "http") is supported.

 @param aProtocol - the protocol name
 @param aResult   - true if the protocol is supported
 @result          - NS_OK if this operation was successful
void supportsURLProtocol(in string aProtocol, out boolean aResult)
 Unregisters a top-level window with the browser. The handler and window pair
 should be the same as that specified to RegisterWindow.

 @param aHandler - the event handler for the window
 @param aWindow  - the platform window reference
 @result         - NS_OK if this operation was successful
void unregisterWindow(in nsIEventHandler aHandler, in nsPluginPlatformWindowRef aWindow)