2019-11-22 11:03:12 +03:00
|
|
|
/* 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.
|
2019-12-04 21:26:36 +03:00
|
|
|
*
|
|
|
|
* @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.
|
2019-11-22 11:03:12 +03:00
|
|
|
*/
|
|
|
|
void listen(in AString aURL);
|
|
|
|
|
|
|
|
/** Stops listening and drops existing connections. */
|
|
|
|
void close();
|
|
|
|
};
|
2019-11-22 11:03:19 +03:00
|
|
|
|
|
|
|
%{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 } }
|
|
|
|
%}
|