[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIAddonPolicyService",
        "members": [
          {
            "name": "defaultCSP",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "defaultCSPV3",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getBaseCSP",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getExtensionPageCSP",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getGeneratedBackgroundPageUrl",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aPerm",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "addonHasPermission",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aExplicit",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "addonMayLoadURI",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aAddonId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getExtensionName",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aSourceURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aExtensionURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aFromPrivateWindow",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "sourceMayLoadExtensionURI",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "extensionURIToAddonId",
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "CSP_ALLOW_ANY",
            "value": 65535
          },
          {
            "name": "CSP_ALLOW_LOCALHOST",
            "value": 1
          },
          {
            "name": "CSP_ALLOW_EVAL",
            "value": 2
          },
          {
            "name": "CSP_ALLOW_REMOTE",
            "value": 4
          },
          {
            "name": "CSP_ALLOW_WASM",
            "value": 8
          }
        ],
        "enums": [],
        "id": "nsIAddonContentPolicy",
        "members": [
          {
            "args": [
              {
                "name": "aPolicyString",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aPermittedPolicy",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "validateAddonCSP",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aPolicyString",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "validateAddonSandboxCSP",
            "type": "string"
          }
        ]
      }
    ],
    "path": "caps/nsIAddonPolicyService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIDomainPolicy",
        "members": [
          {
            "name": "blocklist",
            "readonly": true,
            "type": "nsIDomainSet"
          },
          {
            "name": "superBlocklist",
            "readonly": true,
            "type": "nsIDomainSet"
          },
          {
            "name": "allowlist",
            "readonly": true,
            "type": "nsIDomainSet"
          },
          {
            "name": "superAllowlist",
            "readonly": true,
            "type": "nsIDomainSet"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "deactivate",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIDomainSet",
        "members": [
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "add",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "remove",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "clear",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "contains",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "containsSuperDomain",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "caps/nsIDomainPolicy.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPrincipal",
        "members": [
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "equals",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "aExactHost",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "equalsForPermission",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "equalsConsideringDomain",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aOtherURI",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "equalsURI",
            "type": "boolean"
          },
          {
            "name": "URI",
            "readonly": true,
            "type": "nsIURI"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "subsumes",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "subsumesConsideringDomain",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "subsumesConsideringDomainIgnoringFPD",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "allowIfInheritsPrincipal",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "checkMayLoad",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "allowIfInheritsPrincipal",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "innerWindowID",
                "optional": false,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "checkMayLoadWithReporting",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "isThirdPartyURI",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "principal",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "isThirdPartyPrincipal",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "channel",
                "optional": false,
                "type": "nsIChannel"
              }
            ],
            "iid_is": null,
            "name": "isThirdPartyChannel",
            "type": "boolean"
          },
          {
            "name": "originAttributes",
            "readonly": true,
            "type": "any"
          },
          {
            "name": "origin",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "hostPort",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "asciiHost",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "host",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "prePath",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "filePath",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "asciiSpec",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "spec",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "exposablePrePath",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "exposableSpec",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "scheme",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [
              {
                "name": "scheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "schemeIs",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "pref",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isURIInPrefList",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "list",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isURIInList",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "isContentAccessibleAboutURI",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "otherURI",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "isSameOrigin",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aWindow",
                "optional": false,
                "type": "mozIDOMWindow"
              },
              {
                "name": "rejectedReason",
                "optional": false,
                "type": "OutParam<u32>"
              }
            ],
            "iid_is": null,
            "name": "hasFirstpartyStorageAccess",
            "type": "boolean"
          },
          {
            "name": "localStorageQuotaKey",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "isOriginPotentiallyTrustworthy",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isLoopbackHost",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isSecureContextAllowlistedHost",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getAboutModuleFlags",
            "type": "u32"
          },
          {
            "name": "storageOriginKey",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "originNoSuffix",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "originSuffix",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "siteOrigin",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "siteOriginNoSuffix",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "baseDomain",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "addonId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "addonPolicy",
            "readonly": true,
            "type": "WebExtensionPolicy"
          },
          {
            "name": "contentScriptAddonPolicy",
            "readonly": true,
            "type": "WebExtensionPolicy"
          },
          {
            "name": "userContextId",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "privateBrowsingId",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "isInPrivateBrowsing",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isNullPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isContentPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isExpandedPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isSystemPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isAddonPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isAddonOrExpandedAddonPrincipal",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isOnion",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isScriptAllowedByPolicy",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aDocumentURI",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "isL10nAllowed",
            "type": "boolean"
          },
          {
            "name": "nextSubDomainPrincipal",
            "readonly": true,
            "type": "nsIPrincipal"
          },
          {
            "name": "isIpAddress",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isLocalIpAddress",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "precursorPrincipal",
            "readonly": true,
            "type": "nsIPrincipal"
          }
        ]
      }
    ],
    "path": "caps/nsIPrincipal.idl",
    "typedefs": [
      [
        "CSPDirective",
        "nsIContentSecurityPolicy.CSPDirective"
      ],
      [
        "PRTime",
        "i64"
      ],
      [
        "RequireTrustedTypesForDirectiveState",
        "nsIContentSecurityPolicy.RequireTrustedTypesForDirectiveState"
      ],
      [
        "nsContentPolicyType",
        "nsIContentPolicy.nsContentPolicyType"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "STANDARD",
            "value": 0
          },
          {
            "name": "LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT",
            "value": 1
          },
          {
            "name": "ALLOW_CHROME",
            "value": 2
          },
          {
            "name": "DISALLOW_INHERIT_PRINCIPAL",
            "value": 4
          },
          {
            "name": "DISALLOW_SCRIPT_OR_DATA",
            "value": 4
          },
          {
            "name": "DISALLOW_SCRIPT",
            "value": 8
          },
          {
            "name": "DONT_REPORT_ERRORS",
            "value": 16
          },
          {
            "name": "DEFAULT_USER_CONTEXT_ID",
            "value": 0
          },
          {
            "name": "DEFAULT_PRIVATE_BROWSING_ID",
            "value": 0
          }
        ],
        "enums": [],
        "id": "nsIScriptSecurityManager",
        "members": [
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "flags",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "innerWindowID",
                "optional": true,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "checkLoadURIWithPrincipalXPCOM",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "flags",
                "optional": true,
                "type": "u32"
              },
              {
                "name": "innerWindowID",
                "optional": true,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "checkLoadURIWithPrincipal",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "uri",
                "optional": false,
                "type": "string"
              },
              {
                "name": "flags",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "checkLoadURIStrWithPrincipalXPCOM",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "uri",
                "optional": false,
                "type": "string"
              },
              {
                "name": "flags",
                "optional": true,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "checkLoadURIStrWithPrincipal",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aUri",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "inFileURIAllowlist",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getSystemPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "loadContext",
                "optional": false,
                "type": "nsILoadContext"
              }
            ],
            "iid_is": null,
            "name": "getLoadContextContentPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "docShell",
                "optional": false,
                "type": "nsIDocShell"
              }
            ],
            "iid_is": null,
            "name": "getDocShellContentPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "principal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "originAttributes",
                "optional": false,
                "type": "any"
              }
            ],
            "iid_is": null,
            "name": "principalWithOA",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "originAttributes",
                "optional": false,
                "type": "any"
              }
            ],
            "iid_is": null,
            "name": "createContentPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "origin",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "createContentPrincipalFromOrigin",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "principal",
                "optional": false,
                "type": "nsIPrincipal"
              }
            ],
            "iid_is": null,
            "name": "principalToJSON",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "json",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "JSONToPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "originAttributes",
                "optional": false,
                "type": "any"
              }
            ],
            "iid_is": null,
            "name": "createNullPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "aSourceURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aTargetURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "reportError",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "fromPrivateWindow",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "checkSameOriginURI",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              }
            ],
            "iid_is": null,
            "name": "getChannelResultPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              }
            ],
            "iid_is": null,
            "name": "getChannelResultStoragePrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "OutParam<nsIPrincipal>"
              },
              {
                "name": "aPartitionedPrincipal",
                "optional": false,
                "type": "OutParam<nsIPrincipal>"
              }
            ],
            "iid_is": null,
            "name": "getChannelResultPrincipals",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              }
            ],
            "iid_is": null,
            "name": "getChannelURIPrincipal",
            "type": "nsIPrincipal"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "activateDomainPolicy",
            "type": "nsIDomainPolicy"
          },
          {
            "name": "domainPolicyActive",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aDomain",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "policyAllowsScript",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "caps/nsIScriptSecurityManager.idl",
    "typedefs": [
      [
        "CSPDirective",
        "nsIContentSecurityPolicy.CSPDirective"
      ],
      [
        "PRTime",
        "i64"
      ],
      [
        "RequireTrustedTypesForDirectiveState",
        "nsIContentSecurityPolicy.RequireTrustedTypesForDirectiveState"
      ],
      [
        "nsContentPolicyType",
        "nsIContentPolicy.nsContentPolicyType"
      ]
    ]
  }
]