summaryrefslogtreecommitdiffstats
path: root/remote/nsIRemoteAgent.idl
diff options
context:
space:
mode:
Diffstat (limited to 'remote/nsIRemoteAgent.idl')
-rw-r--r--remote/nsIRemoteAgent.idl64
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 } }
+%}