diff options
Diffstat (limited to 'remote/nsIRemoteAgent.idl')
-rw-r--r-- | remote/nsIRemoteAgent.idl | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/remote/nsIRemoteAgent.idl b/remote/nsIRemoteAgent.idl new file mode 100644 index 0000000000..a71275dce4 --- /dev/null +++ b/remote/nsIRemoteAgent.idl @@ -0,0 +1,64 @@ +/* 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 +{ + /** + * Address of the HTTP server under which the remote agent is reachable. + */ + readonly attribute AString debuggerAddress; + + /** + * 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 } } +%} |