[
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "defaultCSP",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "defaultCSPV3",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getBaseCSP",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getExtensionPageCSP",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getGeneratedBackgroundPageUrl",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "addonHasPermission",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "addonMayLoadURI",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getExtensionName",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "sourceMayLoadExtensionURI",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "extensionURIToAddonId",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      }
    ],
    "name": "nsIAddonPolicyService",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "8a034ef9-9d14-4c5d-8319-06c1ab574baa"
  },
  {
    "consts": [
      {
        "name": "CSP_ALLOW_ANY",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 65535
      },
      {
        "name": "CSP_ALLOW_LOCALHOST",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 1
      },
      {
        "name": "CSP_ALLOW_EVAL",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 2
      },
      {
        "name": "CSP_ALLOW_REMOTE",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 4
      },
      {
        "name": "CSP_ALLOW_WASM",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 8
      }
    ],
    "flags": [],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "validateAddonCSP",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "validateAddonSandboxCSP",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      }
    ],
    "name": "nsIAddonContentPolicy",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "7a4fe60b-9131-45f5-83f3-dc63b5d71a5d"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "blocklist",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainSet",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "superBlocklist",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainSet",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "allowlist",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainSet",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "superAllowlist",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainSet",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "deactivate",
        "params": []
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "cloneDomainPolicy",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "applyClone",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          }
        ]
      }
    ],
    "name": "nsIDomainPolicy",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "82b24a20-6701-4d40-a0f9-f5dc7321b555"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [],
        "name": "add",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "remove",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "clear",
        "params": []
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "contains",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "containsSuperDomain",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      }
    ],
    "name": "nsIDomainSet",
    "needs_scriptable": [
      "nsIURI"
    ],
    "parent": "nsISupports",
    "uuid": "665c981b-0a0f-4229-ac06-a826e02d4f69"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "hasretval"
        ],
        "name": "equals",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "equalsForPermission",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "equalsConsideringDomain",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "equalsURI",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "URI",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hidden",
          "hasretval"
        ],
        "name": "domain",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "setter",
          "hidden"
        ],
        "name": "domain",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "subsumes",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "subsumesConsideringDomain",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "subsumesConsideringDomainIgnoringFPD",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "checkMayLoad",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "checkMayLoadWithReporting",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT64"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isThirdPartyURI",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isThirdPartyPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isThirdPartyChannel",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "jscontext",
          "hasretval"
        ],
        "name": "originAttributes",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_JSVAL"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "OriginAttributesRef",
        "params": []
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "origin",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hidden",
          "hasretval"
        ],
        "name": "webExposedOriginSerialization",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "hostPort",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "asciiHost",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "host",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "prePath",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "filePath",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "asciiSpec",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "spec",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "exposablePrePath",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "exposableSpec",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "scheme",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "schemeIs",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isURIInPrefList",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_PSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isURIInList",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isContentAccessibleAboutURI",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isSameOrigin",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "getPrefLightCacheKey",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "hasFirstpartyStorageAccess",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "mozIDOMWindow",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "localStorageQuotaKey",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isOriginPotentiallyTrustworthy",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isLoopbackHost",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isSecureContextAllowlistedHost",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getAboutModuleFlags",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "storageOriginKey",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "createReferrerInfo",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIReferrerInfo",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "originNoSuffix",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "originSuffix",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "siteOrigin",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "siteOriginNoSuffix",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "baseDomain",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "addonId",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_ASTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "addonPolicy",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "headerFile": "mozilla/extensions/WebExtensionPolicy.h",
              "name": "WebExtensionPolicy",
              "native": "mozilla::extensions::WebExtensionPolicy",
              "tag": "TD_DOMOBJECT"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "contentScriptAddonPolicy",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "headerFile": "mozilla/extensions/WebExtensionPolicy.h",
              "name": "WebExtensionPolicy",
              "native": "mozilla::extensions::WebExtensionPolicy",
              "tag": "TD_DOMOBJECT"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "userContextId",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "privateBrowsingId",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isInPrivateBrowsing",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isNullPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isContentPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isExpandedPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isSystemPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isAddonPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isAddonOrExpandedAddonPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isOnion",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isScriptAllowedByPolicy",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "isL10nAllowed",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "nextSubDomainPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isIpAddress",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isLocalIpAddress",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "precursorPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIPrincipal",
    "needs_scriptable": [
      "nsIChannel",
      "nsIURI"
    ],
    "parent": "nsISupports",
    "uuid": "f75f502d-79fd-48be-a079-e5a7b8f80c8b"
  },
  {
    "consts": [
      {
        "name": "STANDARD",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 0
      },
      {
        "name": "LOAD_IS_AUTOMATIC_DOCUMENT_REPLACEMENT",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 1
      },
      {
        "name": "ALLOW_CHROME",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 2
      },
      {
        "name": "DISALLOW_INHERIT_PRINCIPAL",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 4
      },
      {
        "name": "DISALLOW_SCRIPT_OR_DATA",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 4
      },
      {
        "name": "DISALLOW_SCRIPT",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 8
      },
      {
        "name": "DONT_REPORT_ERRORS",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 16
      },
      {
        "name": "DEFAULT_USER_CONTEXT_ID",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 0
      },
      {
        "name": "DEFAULT_PRIVATE_BROWSING_ID",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 0
      }
    ],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "hidden"
        ],
        "name": "canCreateWrapper",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsISupports",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIClassInfo",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "canCreateInstance",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "canGetService",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_NSID"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "checkLoadURIFromScript",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "checkLoadURIWithPrincipalXPCOM",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_UINT64"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext"
        ],
        "name": "checkLoadURIWithPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_UINT64"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "checkLoadURIStrWithPrincipalXPCOM",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext"
        ],
        "name": "checkLoadURIStrWithPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "inFileURIAllowlist",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getSystemPrincipal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getLoadContextContentPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsILoadContext",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getDocShellContentPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIDocShell",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "principalWithOA",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_JSVAL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "createContentPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_JSVAL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "createContentPrincipalFromOrigin",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "principalToJSON",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "JSONToPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "createNullPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_JSVAL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "checkSameOriginURI",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getChannelResultPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getChannelResultStoragePrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "getChannelResultPrincipals",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "getChannelResultPrincipalIfNotSandboxed",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getChannelURIPrincipal",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIChannel",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIPrincipal",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "activateDomainPolicy",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainPolicy",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "domainPolicyActive",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden",
          "hasretval"
        ],
        "name": "activateDomainPolicyInternal",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIDomainPolicy",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hidden"
        ],
        "name": "cloneDomainPolicy",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_VOID"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "policyAllowsScript",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIURI",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      }
    ],
    "name": "nsIScriptSecurityManager",
    "needs_scriptable": [
      "nsIChannel",
      "nsIDocShell",
      "nsIDomainPolicy",
      "nsILoadContext",
      "nsIURI"
    ],
    "parent": "nsISupports",
    "uuid": "51daad87-3a0c-44cc-b620-7356801c9022"
  }
]