Source code

Revision control

Copy as Markdown

Other Tools

/* 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 boolean isClosed;
readonly attribute boolean isChrome;
readonly attribute boolean 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);
};