[
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "name",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "blockShutdown",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "state",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPropertyBag",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIAsyncShutdownBlocker",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "4ef43f29-6715-4b57-a750-2ff83695ddce"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "name",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isClosed",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "addBlocker",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIAsyncShutdownBlocker",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_INT32"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "removeBlocker",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIAsyncShutdownBlocker",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "jsclient",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_JSVAL"
            }
          }
        ]
      }
    ],
    "name": "nsIAsyncShutdownClient",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "d2031049-b990-43a2-95be-59f8a3ca5954"
  },
  {
    "consts": [],
    "flags": [
      "function"
    ],
    "methods": [
      {
        "flags": [],
        "name": "done",
        "params": []
      }
    ],
    "name": "nsIAsyncShutdownCompletionCallback",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "910c9309-1da0-4dd0-8bdb-a325a38c604e"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "client",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "state",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPropertyBag",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "wait",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIAsyncShutdownCompletionCallback",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIAsyncShutdownBarrier",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "50fa8a86-9c91-4256-8389-17d310adec90"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "makeBarrier",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownBarrier",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "profileBeforeChange",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "profileChangeTeardown",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "appShutdownConfirmed",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "sendTelemetry",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "webWorkersShutdown",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "xpcomWillShutdown",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIAsyncShutdownClient",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIAsyncShutdownService",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "db365c78-c860-4e64-9a63-25b73f89a016"
  }
]