mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-24 21:31:04 +00:00
22560f18d6
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
60 lines
2.0 KiB
Plaintext
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 } }
|
|
%}
|