/* -*- Mode: C++; tab-width: 3; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * The contents of this file are subject to the Mozilla Public * License Version 1.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * The Original Code is the Mozilla browser. * * The Initial Developer of the Original Code is Netscape * Communications, Inc. Portions created by Netscape are * Copyright (C) 1999, Mozilla. All Rights Reserved. * * Contributor(s): * Scott MacGregor */ #include "nsISupports.idl" interface nsIURI; interface nsIFile; /** * The external protocol service is used for finding and launching * platform specific applications for particular protocols. * * 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. */ [scriptable, uuid(100FD4B3-4557-11d4-98D0-001083010E9B)] interface nsIExternalProtocolService : nsISupports { /** * Check whether a handler for a specific protocol exists. * @param aProtocolScheme The scheme from a url: http, ftp, mailto, etc. * @return true if we have a handler and false otherwise. */ boolean externalProtocolHandlerExists(in string aProtocolScheme); /** * 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); /** * Used to load a url via an external protocol handler (if one exists) * @param aURL The url to load */ void loadUrl (in nsIURI aURL); };