gecko-dev/remote/nsIRemoteAgent.idl
Andreas Tolfsen 22560f18d6 bug 1590828: remote: return NS exceptions from nsIRemoteAgent r=remote-protocol-reviewers,whimboo,maja_zf
The nsIRemoteAgent interface introduced with bug 1543115 did
not change the exceptions thrown internally by the class. To ensure
better interaction with consumers over XPIDL we should ensure the
JS implementation throws NS exceptions.

Differential Revision: https://phabricator.services.mozilla.com/D55177

--HG--
extra : moz-landing-system : lando
2019-12-04 18:26:36 +00:00

60 lines
2.0 KiB
Plaintext

/* 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"
/**
* The Gecko remote agent is an RPC subsystem that exposes
* browser-internal interfaces and services to the surrounding
* system.
*
* Consumers, whether remote or browser-local, can interface with
* the browser through an assorted set of services ranging from
* document introspection and script evaluation, to instrumentation,
* user interaction simulation, and event subscription.
*/
[scriptable, uuid(8f685a9d-8181-46d6-a71d-869289099c6d)]
interface nsIRemoteAgent : nsISupports
{
/**
* Whether the remote agent is currently listening for new,
* incoming connections.
*/
readonly attribute boolean listening;
/**
* Asynchronously starts the remote agent, and listens for new
* connections.
*
* The address must be a fully qualified URL that uses the "http://"
* scheme, and can optionally include a desired port. If no port
* is chosen, the default port 9222 is used.
*
* If the requested port is 0, the system will atomically allocate
* a port.
*
* A "remote-listening" system observer notification with the URL
* of the main target's WebSocket will be emitted once listening.
*
* @throws NS_ERROR_NOT_AVAILABLE
* When disabled by the remote.enabled preference.
* @throws NS_ERROR_LAUNCHED_CHILD_PROCESS
* When called from a child process.
* @throws NS_ERROR_ILLEGAL_VALUE
* If requested to bind to a non-loopback device
* if remote.force-local is true.
*/
void listen(in AString aURL);
/** Stops listening and drops existing connections. */
void close();
};
%{C++
#define NS_REMOTEAGENT_CONTRACTID "@mozilla.org/remote/agent;1"
#define NS_REMOTEAGENT_CID \
{ 0x8f685a9d, 0x8181, 0x46d6, \
{ 0xa7, 0x1d, x86, x92, x89, x09, x9c, x6d } }
%}