nsISupports
Last changed in Gecko 1.9 (Firefox 3)You can ask the external protocol service if it has an external handler for a given protocol scheme. And you can ask it to load the url using the default handler.
boolean externalProtocolHandlerExists(in string aProtocolScheme); |
AString getApplicationDescription(in AUTF8String aScheme); |
nsIHandlerInfo getProtocolHandlerInfo(in ACString aProtocolScheme); |
nsIHandlerInfo getProtocolHandlerInfoFromOS(in ACString aProtocolScheme, out boolean aFound); |
boolean isExposedProtocol(in string aProtocolScheme); |
void loadURI(in nsIURI aURI, [optional] in nsIInterfaceRequestor aWindowContext); |
void loadUrl(in nsIURI aURL); |
void setProtocolHandlerDefaults(in nsIHandlerInfo aHandlerInfo, in boolean aOSHandlerExists); |
Check whether a handler for a specific protocol exists. Specifically, this looks to see whether there are any known possible application handlers in either the nsIHandlerService datastore or registered with the OS.
boolean externalProtocolHandlerExists( in string aProtocolScheme );
aProtocolSchemetrue if we have a handler and false otherwise.
Gets a human-readable description for the application responsible for handling a specific protocol.
AString getApplicationDescription( in AUTF8String aScheme );
aSchemeThis code makes little sense and needs to be cleaned up. -Nickolay <pre> // first construct an nsIURI object using the ioservice var ioservice = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService); var uriToOpen = ioservice.newURI("http://www.example.com/", null, null); var extps = Components.classes["@mozilla.org/uriloader/external-protocol-service;1"] .getService(Components.interfaces.nsIExternalProtocolService); if (extps.externalProtocolHandlerExists("tlcxp")) { // Handler for http:// URLs exists } else { // suppress external-load warning for standard browser schemes pref("network.protocol-handler.external.tlcxp", True); pref("network.protocol-handler.app.tlcxp, "LZX"); } </pre>
Retrieve the handler for the given protocol. If neither the application nor the OS knows about a handler for the protocol, the object this method returns will represent a default handler for unknown content.
nsIHandlerInfo getProtocolHandlerInfo( in ACString aProtocolScheme );
aProtocolSchemeThe handler, if any; otherwise a default handler.
Given a scheme, looks up the protocol info from the OS. This should be overridden by each OS's implementation.
nsIHandlerInfo getProtocolHandlerInfoFromOS( in ACString aProtocolScheme, out boolean aFound );
aProtocolSchemeaFoundAn nsIHanderInfo for the protocol.
Check whether a handler for a specific protocol is "exposed" as a visible feature of the current application. An exposed protocol handler is one that can be used in all contexts. A non-exposed protocol handler is one that can only be used internally by the application. For example, a non-exposed protocol would not be loaded by the application in response to a link click or a X-remote openURL command. Instead, it would be deferred to the system's external protocol handler.
boolean isExposedProtocol( in string aProtocolScheme );
aProtocolSchemetrue if the protocol is exposed, false otherwise.
Used to load a URI via an external application. Might prompt the user for permission to load the external application.
void loadURI( in nsIURI aURI, [optional] in nsIInterfaceRequestor aWindowContext );
aURIaWindowContextnsIURILoader.openURI() in the case of a web handler, and aWindowContext is null or not present, web handlers will fail.Used to load a url via an external protocol handler (if one exists).
void loadUrl( in nsIURI aURL );
aURLSet some sane defaults for a protocol handler object.
void setProtocolHandlerDefaults( in nsIHandlerInfo aHandlerInfo, in boolean aOSHandlerExists );
aHandlerInfonsIHandlerInfo object, as returned by getProtocolHandlerInfoFromOS().aOSHandlerExistsgetProtocolHandlerInfoFromOS().