[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "extIWebNavigation",
        "members": [
          {
            "args": [
              {
                "name": "bc",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "transitionData",
                "optional": false,
                "type": "any"
              },
              {
                "name": "location",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "onDocumentChange",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "bc",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "transitionData",
                "optional": false,
                "type": "any"
              },
              {
                "name": "location",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "isHistoryStateUpdated",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "isReferenceFragmentUpdated",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "onHistoryChange",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "bc",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "requestURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "status",
                "optional": false,
                "type": "nsresult"
              },
              {
                "name": "stateFlags",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "onStateChange",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "bc",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "sourceBC",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "url",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onCreatedNavigationTarget",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "bc",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "documentURI",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "onDOMContentLoaded",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/extensions/extIWebNavigation.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "mozIExtensionServiceWorkerInfo",
        "members": [
          {
            "name": "principal",
            "readonly": true,
            "type": "nsIPrincipal"
          },
          {
            "name": "scriptURL",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "clientInfoId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "descriptorId",
            "readonly": true,
            "type": "u64"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "APIObjectType",
            "variants": [
              {
                "name": "NONE",
                "value": 0
              },
              {
                "name": "RUNTIME_PORT",
                "value": 1
              }
            ]
          },
          {
            "id": "CallbackType",
            "variants": [
              {
                "name": "CALLBACK_NONE",
                "value": 0
              },
              {
                "name": "CALLBACK_SEND_RESPONSE",
                "value": 1
              }
            ]
          }
        ],
        "id": "mozIExtensionListenerCallOptions",
        "members": [
          {
            "name": "apiObjectType",
            "readonly": true,
            "type": "mozIExtensionListenerCallOptions.APIObjectType"
          },
          {
            "name": "apiObjectDescriptor",
            "readonly": true,
            "type": "any"
          },
          {
            "name": "apiObjectPrepended",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "callbackType",
            "readonly": false,
            "type": "mozIExtensionListenerCallOptions.CallbackType"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "mozIExtensionEventListener",
        "members": [
          {
            "args": [
              {
                "name": "args",
                "optional": false,
                "type": "any[]"
              },
              {
                "name": "listenerCallOptions",
                "optional": true,
                "type": "mozIExtensionListenerCallOptions"
              }
            ],
            "iid_is": null,
            "name": "callListener",
            "type": "Promise<any>"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "RequestType",
            "variants": [
              {
                "name": "CALL_FUNCTION",
                "value": 0
              },
              {
                "name": "CALL_FUNCTION_NO_RETURN",
                "value": 1
              },
              {
                "name": "CALL_FUNCTION_ASYNC",
                "value": 2
              },
              {
                "name": "ADD_LISTENER",
                "value": 3
              },
              {
                "name": "REMOVE_LISTENER",
                "value": 4
              },
              {
                "name": "GET_PROPERTY",
                "value": 5
              }
            ]
          }
        ],
        "id": "mozIExtensionAPIRequest",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "toString",
            "type": "string"
          },
          {
            "name": "requestType",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "apiNamespace",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "apiName",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "apiObjectType",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "apiObjectId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "args",
            "readonly": true,
            "type": "any"
          },
          {
            "name": "normalizedArgs",
            "readonly": false,
            "type": "any"
          },
          {
            "name": "callerSavedFrame",
            "readonly": true,
            "type": "any"
          },
          {
            "name": "serviceWorkerInfo",
            "readonly": true,
            "type": "mozIExtensionServiceWorkerInfo"
          },
          {
            "name": "eventListener",
            "readonly": true,
            "type": "mozIExtensionEventListener"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "ResultType",
            "variants": [
              {
                "name": "RETURN_VALUE",
                "value": 0
              },
              {
                "name": "EXTENSION_ERROR",
                "value": 1
              }
            ]
          }
        ],
        "id": "mozIExtensionAPIRequestResult",
        "members": [
          {
            "name": "type",
            "readonly": true,
            "type": "mozIExtensionAPIRequestResult.ResultType"
          },
          {
            "name": "value",
            "readonly": true,
            "type": "any"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "mozIExtensionAPIRequestHandler",
        "members": [
          {
            "args": [
              {
                "name": "extension",
                "optional": false,
                "type": "nsISupports"
              },
              {
                "name": "apiRequest",
                "optional": false,
                "type": "mozIExtensionAPIRequest"
              }
            ],
            "iid_is": null,
            "name": "handleAPIRequest",
            "type": "mozIExtensionAPIRequestResult"
          },
          {
            "args": [
              {
                "name": "extension",
                "optional": false,
                "type": "nsISupports"
              },
              {
                "name": "serviceWorkerInfo",
                "optional": false,
                "type": "mozIExtensionServiceWorkerInfo"
              }
            ],
            "iid_is": null,
            "name": "initExtensionWorker",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "extension",
                "optional": false,
                "type": "nsISupports"
              },
              {
                "name": "serviceWorkerDescriptorId",
                "optional": false,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "onExtensionWorkerLoaded",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "extension",
                "optional": false,
                "type": "nsISupports"
              },
              {
                "name": "serviceWorkerDescriptorId",
                "optional": false,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "onExtensionWorkerDestroyed",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/extensions/mozIExtensionAPIRequestHandling.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "mozIExtensionProcessScript",
        "members": [
          {
            "args": [
              {
                "name": "contentScript",
                "optional": false,
                "type": "nsISupports"
              }
            ],
            "iid_is": null,
            "name": "preloadContentScript",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "contentScript",
                "optional": false,
                "type": "WebExtensionContentScript"
              },
              {
                "name": "window",
                "optional": false,
                "type": "mozIDOMWindow"
              }
            ],
            "iid_is": null,
            "name": "loadContentScript",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "extension",
                "optional": false,
                "type": "nsISupports"
              },
              {
                "name": "doc",
                "optional": false,
                "type": "Document"
              },
              {
                "name": "privileged",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "initExtensionDocument",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/extensions/mozIExtensionProcessScript.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINativeMessagingPortal",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "shouldUse",
            "type": "boolean"
          },
          {
            "name": "available",
            "readonly": true,
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aApplication",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "createSession",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aHandle",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "closeSession",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aHandle",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aExtension",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getManifest",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aHandle",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aExtension",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "start",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "toolkit/components/extensions/nsINativeMessagingPortal.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsINativeMessagingProxy",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "shouldUse",
            "type": "boolean"
          },
          {
            "name": "available",
            "readonly": true,
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aHandle",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "closeSession",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aExtension",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getManifest",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aExtension",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "start",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "toolkit/components/extensions/nsINativeMessagingProxy.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]