dom/workers/nsIWorkerDebugger.idl
author Dave Townsend <dtownsend@oxymoronical.com>
Wed, 06 Feb 2019 11:09:06 -0800
changeset 520643 fbef638149b4426032f58903a9abf480341a3ff8
parent 519513 7ba97389b18333d03d4c07e101d1b156ec9b692f
child 528783 6bc5500525be805f00d6ad8f7d9c6b54f02c13aa
permissions -rw-r--r--
Bug 1518639: Add boilerplate support for a windows remote client and server. r=jimm,froydnj Adds build config and stubs for a windows implementation of the remote client and server. Differential Revision: https://phabricator.services.mozilla.com/D19074

#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;

  readonly attribute mozIDOMWindow window;

  readonly attribute nsIPrincipal principal;

  readonly attribute unsigned long serviceWorkerID;

  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);
};