diff options
Diffstat (limited to 'dom/workers/nsIWorkerDebugger.idl')
-rw-r--r-- | dom/workers/nsIWorkerDebugger.idl | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/dom/workers/nsIWorkerDebugger.idl b/dom/workers/nsIWorkerDebugger.idl new file mode 100644 index 0000000000..931d01a4ac --- /dev/null +++ b/dom/workers/nsIWorkerDebugger.idl @@ -0,0 +1,73 @@ +/* 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 https://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface mozIDOMWindow; +interface nsIPrincipal; + +[scriptable, uuid(9cf3b48e-361d-486a-8917-55cf8d00bb41)] +interface nsIWorkerDebuggerListener : nsISupports +{ + void onClose(); + + void onError(in AString filename, in unsigned long lineno, + in AString message); + + void onMessage(in AString message); +}; + +[scriptable, builtinclass, uuid(22f93aa3-8a05-46be-87e0-fa93bf8a8eff)] +interface nsIWorkerDebugger : nsISupports +{ + const unsigned long TYPE_DEDICATED = 0; + const unsigned long TYPE_SHARED = 1; + const unsigned long TYPE_SERVICE = 2; + + readonly attribute bool isClosed; + + readonly attribute bool isChrome; + + readonly attribute bool isInitialized; + + readonly attribute nsIWorkerDebugger parent; + + readonly attribute unsigned long type; + + readonly attribute AString url; + + // If this is a dedicated worker, the window this worker or (in the case of + // nested workers) its top-level ancestral worker is associated with. + readonly attribute mozIDOMWindow window; + + readonly attribute Array<uint64_t> windowIDs; + + readonly attribute nsIPrincipal principal; + + readonly attribute unsigned long serviceWorkerID; + + readonly attribute AString id; + + void initialize(in AString url); + + [binaryname(PostMessageMoz)] + void postMessage(in AString message); + + void addListener(in nsIWorkerDebuggerListener listener); + + void removeListener(in nsIWorkerDebuggerListener listener); + + // Indicate whether the debugger has finished initializing. By default the + // debugger will be considered initialized when the onRegister hooks in all + // nsIWorkerDebuggerManagerListener have been called. + // + // setDebuggerReady(false) can be called during an onRegister hook to mark + // the debugger as not being ready yet. This will prevent all content from + // running in the worker, including the worker's main script and any messages + // posted to it. Other runnables will still execute in the worker as normal. + // + // When the debugger is ready, setDebuggerReady(true) should then be called + // to allow the worker to begin executing content. + void setDebuggerReady(in boolean ready); +}; |