uriloader/exthandler/nsIContentDispatchChooser.idl
author Gijs Kruitbosch <gijskruitbosch@gmail.com>
Mon, 11 May 2020 13:13:03 +0000
changeset 529624 d6c5410fc2859ce35774009947841ce7a68f1711
parent 94475 f4157e8c410708d76703f19e4dfb61859bfe32d8
child 533586 ecef5e9404859e6b86dd530a9aba31c0722d5738
permissions -rw-r--r--
Bug 1196151 - use BrowsingContext for external helper app handling of protocols, r=mattwoodrow Differential Revision: https://phabricator.services.mozilla.com/D74434

/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIHandlerInfo;
interface nsIHelperAppLauncher;
interface nsIURI;
interface nsIInterfaceRequestor;
webidl BrowsingContext;

/**
 * This is used to ask a user what they would like to do with a given piece of
 * content.
 */
[scriptable, uuid(456ca3b2-02be-4f97-89a2-08c08d3ad88f)]
interface nsIContentDispatchChooser : nsISupports {
 /**
  * This request is passed to the helper app dialog because Gecko can not
  * handle content of this type.
  */
  const unsigned long REASON_CANNOT_HANDLE = 0;

 /**
  * Asks the user what to do with the content.
  *
  * @param aHander
  *        The interface describing the details of how this content should or
  *        can be handled.
  * @param aBrowsingContext
  *        The browsing context that's the parent for this chooser.
  * @param aURI
  *        The URI of the resource that we are asking about.
  * @param aReason
  *        The reason why we are asking (see above).
  */
  void ask(in nsIHandlerInfo aHandler,
           in BrowsingContext aBrowsingContext,
           in nsIURI aURI,
           in unsigned long aReason);
};