[
  {
    "interfaces": [],
    "path": "xpcom/threads/nsIDirectTaskDispatcher.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIEnvironment",
        "members": [
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aValue",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "set",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "get",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "exists",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIEnvironment.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "DispatchFlags",
            "variants": [
              {
                "name": "DISPATCH_NORMAL",
                "value": 0
              },
              {
                "name": "DISPATCH_AT_END",
                "value": 2
              },
              {
                "name": "DISPATCH_EVENT_MAY_BLOCK",
                "value": 4
              },
              {
                "name": "DISPATCH_IGNORE_BLOCK_DISPATCH",
                "value": 8
              },
              {
                "name": "DISPATCH_FALLIBLE",
                "value": 16
              }
            ]
          },
          {
            "id": "FeatureFlags",
            "variants": [
              {
                "name": "SUPPORTS_BASE",
                "value": 0
              },
              {
                "name": "SUPPORTS_SHUTDOWN_TASKS",
                "value": 1
              },
              {
                "name": "SUPPORTS_SHUTDOWN_TASK_DISPATCH",
                "value": 2
              },
              {
                "name": "SUPPORTS_PRIORITIZATION",
                "value": 4
              },
              {
                "name": "SUPPORTS_TAIL_DISPATCH",
                "value": 8
              }
            ]
          }
        ],
        "id": "nsIEventTarget",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "isOnCurrentThread",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "event",
                "optional": false,
                "type": "nsIRunnable"
              },
              {
                "name": "flags",
                "optional": false,
                "type": "nsIEventTarget.DispatchFlags"
              }
            ],
            "iid_is": null,
            "name": "dispatch",
            "type": "void"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIEventTarget.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [],
    "path": "xpcom/threads/nsIIdlePeriod.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINamed",
        "members": [
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsINamed.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProcess",
        "members": [
          {
            "args": [
              {
                "name": "executable",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "kill",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "blocking",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "args",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "count",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "run",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "args",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "count",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "observer",
                "optional": true,
                "type": "nsIObserver"
              },
              {
                "name": "holdWeak",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "runAsync",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "blocking",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "args",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "count",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "runw",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "args",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "count",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "observer",
                "optional": true,
                "type": "nsIObserver"
              },
              {
                "name": "holdWeak",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "runwAsync",
            "type": "void"
          },
          {
            "name": "startHidden",
            "readonly": false,
            "type": "boolean"
          },
          {
            "name": "noShell",
            "readonly": false,
            "type": "boolean"
          },
          {
            "name": "pid",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "exitValue",
            "readonly": true,
            "type": "i32"
          },
          {
            "name": "isRunning",
            "readonly": true,
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIProcess.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIRunnable",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "run",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "PRIORITY_IDLE",
            "value": 0
          },
          {
            "name": "PRIORITY_DEFERRED_TIMERS",
            "value": 1
          },
          {
            "name": "PRIORITY_LOW",
            "value": 2
          },
          {
            "name": "PRIORITY_NORMAL",
            "value": 4
          },
          {
            "name": "PRIORITY_MEDIUMHIGH",
            "value": 5
          },
          {
            "name": "PRIORITY_INPUT_HIGH",
            "value": 6
          },
          {
            "name": "PRIORITY_VSYNC",
            "value": 7
          },
          {
            "name": "PRIORITY_RENDER_BLOCKING",
            "value": 9
          },
          {
            "name": "PRIORITY_CONTROL",
            "value": 10
          }
        ],
        "enums": [],
        "id": "nsIRunnablePriority",
        "members": [
          {
            "name": "priority",
            "readonly": true,
            "type": "u32"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIRunnable.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsIEventTarget",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsISerialEventTarget",
        "members": []
      }
    ],
    "path": "xpcom/threads/nsISerialEventTarget.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "PRIORITY_HIGHEST",
            "value": -20
          },
          {
            "name": "PRIORITY_HIGH",
            "value": -10
          },
          {
            "name": "PRIORITY_NORMAL",
            "value": 0
          },
          {
            "name": "PRIORITY_LOW",
            "value": 10
          },
          {
            "name": "PRIORITY_LOWEST",
            "value": 20
          }
        ],
        "enums": [],
        "id": "nsISupportsPriority",
        "members": [
          {
            "name": "priority",
            "readonly": false,
            "type": "i32"
          },
          {
            "args": [
              {
                "name": "delta",
                "optional": false,
                "type": "i32"
              }
            ],
            "iid_is": null,
            "name": "adjustPriority",
            "type": "void"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsISupportsPriority.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISerialEventTarget",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "QoSPriority",
            "variants": [
              {
                "name": "QOS_PRIORITY_NORMAL",
                "value": 0
              },
              {
                "name": "QOS_PRIORITY_LOW",
                "value": 1
              }
            ]
          }
        ],
        "id": "nsIThread",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "shutdown",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "hasPendingEvents",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "hasPendingHighPriorityEvents",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "mayWait",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "processNextEvent",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "asyncShutdown",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "beginShutdown",
            "type": "nsIThreadShutdown"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIThread.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [],
    "path": "xpcom/threads/nsIThreadInternal.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsINestedEventLoopCondition",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "isDone",
            "type": "boolean"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIThreadManager",
        "members": [
          {
            "name": "mainThread",
            "readonly": true,
            "type": "nsIThread"
          },
          {
            "name": "currentThread",
            "readonly": true,
            "type": "nsIThread"
          },
          {
            "args": [
              {
                "name": "event",
                "optional": false,
                "type": "nsIRunnable"
              },
              {
                "name": "priority",
                "optional": true,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "dispatchToMainThread",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "event",
                "optional": false,
                "type": "nsIRunnable"
              },
              {
                "name": "priority",
                "optional": true,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "dispatchToMainThreadWithMicroTask",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "event",
                "optional": false,
                "type": "nsIRunnable"
              },
              {
                "name": "timeout",
                "optional": true,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "idleDispatchToMainThread",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "event",
                "optional": false,
                "type": "nsIRunnable"
              }
            ],
            "iid_is": null,
            "name": "dispatchDirectTaskToCurrentThread",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aVeryGoodReasonToDoThis",
                "optional": false,
                "type": "string"
              },
              {
                "name": "condition",
                "optional": false,
                "type": "nsINestedEventLoopCondition"
              }
            ],
            "iid_is": null,
            "name": "spinEventLoopUntil",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aVeryGoodReasonToDoThis",
                "optional": false,
                "type": "string"
              },
              {
                "name": "condition",
                "optional": false,
                "type": "nsINestedEventLoopCondition"
              }
            ],
            "iid_is": null,
            "name": "spinEventLoopUntilOrQuit",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "spinEventLoopUntilEmpty",
            "type": "void"
          },
          {
            "name": "mainThreadEventTarget",
            "readonly": true,
            "type": "nsIEventTarget"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIThreadManager.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [],
    "path": "xpcom/threads/nsIThreadPool.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIThreadShutdown",
        "members": [
          {
            "args": [
              {
                "name": "aEvent",
                "optional": false,
                "type": "nsIRunnable"
              }
            ],
            "iid_is": null,
            "name": "onCompletion",
            "type": "void"
          },
          {
            "name": "completed",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "stopWaitingAndLeakThread",
            "type": "void"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsIThreadShutdown.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsITimerCallback",
        "members": [
          {
            "args": [
              {
                "name": "timer",
                "optional": false,
                "type": "nsITimer"
              }
            ],
            "iid_is": null,
            "name": "notify",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "TYPE_ONE_SHOT",
            "value": 0
          },
          {
            "name": "TYPE_REPEATING_SLACK",
            "value": 1
          },
          {
            "name": "TYPE_REPEATING_PRECISE",
            "value": 2
          },
          {
            "name": "TYPE_REPEATING_PRECISE_CAN_SKIP",
            "value": 3
          },
          {
            "name": "TYPE_REPEATING_SLACK_LOW_PRIORITY",
            "value": 4
          },
          {
            "name": "TYPE_ONE_SHOT_LOW_PRIORITY",
            "value": 5
          }
        ],
        "enums": [],
        "id": "nsITimer",
        "members": [
          {
            "args": [
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIObserver"
              },
              {
                "name": "aDelayInMs",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "aType",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsITimerCallback"
              },
              {
                "name": "aDelayInMs",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "aType",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "initWithCallback",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "cancel",
            "type": "void"
          },
          {
            "name": "delay",
            "readonly": false,
            "type": "u32"
          },
          {
            "name": "type",
            "readonly": false,
            "type": "u32"
          },
          {
            "name": "callback",
            "readonly": true,
            "type": "nsITimerCallback"
          },
          {
            "name": "target",
            "readonly": false,
            "type": "nsIEventTarget"
          },
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsITimerManager",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "getTimers",
            "type": "nsITimer[]"
          }
        ]
      }
    ],
    "path": "xpcom/threads/nsITimer.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]