[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentSecurityManager",
        "members": [
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aStreamListener",
                "optional": false,
                "type": "nsIStreamListener"
              }
            ],
            "iid_is": null,
            "name": "performSecurityCheck",
            "type": "nsIStreamListener"
          }
        ]
      }
    ],
    "path": "dom/interfaces/security/nsIContentSecurityManager.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISerializable",
        "callable": false,
        "consts": [
          {
            "name": "VIOLATION_TYPE_EVAL",
            "value": 1
          },
          {
            "name": "VIOLATION_TYPE_WASM_EVAL",
            "value": 2
          }
        ],
        "enums": [
          {
            "id": "CSPDirective",
            "variants": [
              {
                "name": "NO_DIRECTIVE",
                "value": 0
              },
              {
                "name": "DEFAULT_SRC_DIRECTIVE",
                "value": 1
              },
              {
                "name": "SCRIPT_SRC_DIRECTIVE",
                "value": 2
              },
              {
                "name": "OBJECT_SRC_DIRECTIVE",
                "value": 3
              },
              {
                "name": "STYLE_SRC_DIRECTIVE",
                "value": 4
              },
              {
                "name": "IMG_SRC_DIRECTIVE",
                "value": 5
              },
              {
                "name": "MEDIA_SRC_DIRECTIVE",
                "value": 6
              },
              {
                "name": "FRAME_SRC_DIRECTIVE",
                "value": 7
              },
              {
                "name": "FONT_SRC_DIRECTIVE",
                "value": 8
              },
              {
                "name": "CONNECT_SRC_DIRECTIVE",
                "value": 9
              },
              {
                "name": "REPORT_URI_DIRECTIVE",
                "value": 10
              },
              {
                "name": "FRAME_ANCESTORS_DIRECTIVE",
                "value": 11
              },
              {
                "name": "REFLECTED_XSS_DIRECTIVE",
                "value": 12
              },
              {
                "name": "BASE_URI_DIRECTIVE",
                "value": 13
              },
              {
                "name": "FORM_ACTION_DIRECTIVE",
                "value": 14
              },
              {
                "name": "WEB_MANIFEST_SRC_DIRECTIVE",
                "value": 15
              },
              {
                "name": "UPGRADE_IF_INSECURE_DIRECTIVE",
                "value": 16
              },
              {
                "name": "CHILD_SRC_DIRECTIVE",
                "value": 17
              },
              {
                "name": "BLOCK_ALL_MIXED_CONTENT",
                "value": 18
              },
              {
                "name": "SANDBOX_DIRECTIVE",
                "value": 19
              },
              {
                "name": "WORKER_SRC_DIRECTIVE",
                "value": 20
              },
              {
                "name": "SCRIPT_SRC_ELEM_DIRECTIVE",
                "value": 21
              },
              {
                "name": "SCRIPT_SRC_ATTR_DIRECTIVE",
                "value": 22
              },
              {
                "name": "STYLE_SRC_ELEM_DIRECTIVE",
                "value": 23
              },
              {
                "name": "STYLE_SRC_ATTR_DIRECTIVE",
                "value": 24
              },
              {
                "name": "REQUIRE_TRUSTED_TYPES_FOR_DIRECTIVE",
                "value": 25
              },
              {
                "name": "TRUSTED_TYPES_DIRECTIVE",
                "value": 26
              },
              {
                "name": "REPORT_TO_DIRECTIVE",
                "value": 27
              }
            ]
          },
          {
            "id": "RequireTrustedTypesForDirectiveState",
            "variants": [
              {
                "name": "NONE",
                "value": 0
              },
              {
                "name": "REPORT_ONLY",
                "value": 1
              },
              {
                "name": "ENFORCE",
                "value": 2
              }
            ]
          }
        ],
        "id": "nsIContentSecurityPolicy",
        "members": [
          {
            "args": [
              {
                "name": "index",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "getPolicy",
            "type": "string"
          },
          {
            "name": "policyCount",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "upgradeInsecureRequests",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "blockAllMixedContent",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "enforcesFrameAncestors",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "policyString",
                "optional": false,
                "type": "string"
              },
              {
                "name": "reportOnly",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "deliveredViaMetaTag",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "appendPolicy",
            "type": "void"
          },
          {
            "name": "requireTrustedTypesForDirectiveState",
            "readonly": true,
            "type": "nsIContentSecurityPolicy.RequireTrustedTypesForDirectiveState"
          },
          {
            "args": [
              {
                "name": "aDirective",
                "optional": false,
                "type": "nsIContentSecurityPolicy.CSPDirective"
              },
              {
                "name": "aHasUnsafeHash",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aNonce",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aParserCreated",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aTriggeringElement",
                "optional": false,
                "type": "Element"
              },
              {
                "name": "aCSPEventListener",
                "optional": false,
                "type": "nsICSPEventListener"
              },
              {
                "name": "aSourceText",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aLineNumber",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "aColumnNumber",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "getAllowsInline",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "shouldReportViolations",
                "optional": false,
                "type": "OutParam<boolean>"
              }
            ],
            "iid_is": null,
            "name": "getAllowsEval",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "shouldReportViolations",
                "optional": false,
                "type": "OutParam<boolean>"
              }
            ],
            "iid_is": null,
            "name": "getAllowsWasmEval",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getCSPSandboxFlags",
            "type": "u32"
          },
          {
            "args": [
              {
                "name": "violationType",
                "optional": false,
                "type": "u16"
              },
              {
                "name": "triggeringElement",
                "optional": false,
                "type": "Element"
              },
              {
                "name": "aCSPEventListener",
                "optional": false,
                "type": "nsICSPEventListener"
              },
              {
                "name": "sourceFile",
                "optional": false,
                "type": "string"
              },
              {
                "name": "scriptSample",
                "optional": false,
                "type": "string"
              },
              {
                "name": "lineNum",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "columnNum",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "nonce",
                "optional": true,
                "type": "string"
              },
              {
                "name": "content",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "logViolationDetails",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDocument",
                "optional": false,
                "type": "Document"
              }
            ],
            "iid_is": null,
            "name": "setRequestContextWithDocument",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aRequestPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "aSelfURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aReferrer",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aInnerWindowId",
                "optional": false,
                "type": "u64"
              }
            ],
            "iid_is": null,
            "name": "setRequestContextWithPrincipal",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aLoadInfo",
                "optional": false,
                "type": "nsILoadInfo"
              }
            ],
            "iid_is": null,
            "name": "permitsAncestry",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aTriggeringElement",
                "optional": false,
                "type": "Element"
              },
              {
                "name": "aCSPEventListener",
                "optional": false,
                "type": "nsICSPEventListener"
              },
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aDir",
                "optional": false,
                "type": "nsIContentSecurityPolicy.CSPDirective"
              },
              {
                "name": "aSpecific",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aSendViolationReports",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "permits",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aContentType",
                "optional": false,
                "type": "nsContentPolicyType"
              },
              {
                "name": "aCSPEventListener",
                "optional": false,
                "type": "nsICSPEventListener"
              },
              {
                "name": "aLoadInfo",
                "optional": false,
                "type": "nsILoadInfo"
              },
              {
                "name": "aContentLocation",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aOriginalURIIfRedirect",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aSendViolationReports",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "shouldLoad",
            "type": "i16"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "toJSON",
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsICSPEventListener",
        "members": [
          {
            "args": [
              {
                "name": "aJSON",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aReportGroupName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onCSPViolationEvent",
            "type": "void"
          }
        ]
      }
    ],
    "path": "dom/interfaces/security/nsIContentSecurityPolicy.idl",
    "typedefs": [
      [
        "CSPDirective",
        "nsIContentSecurityPolicy.CSPDirective"
      ],
      [
        "PRTime",
        "i64"
      ],
      [
        "RequireTrustedTypesForDirectiveState",
        "nsIContentSecurityPolicy.RequireTrustedTypesForDirectiveState"
      ],
      [
        "nsContentPolicyType",
        "nsIContentPolicy.nsContentPolicyType"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISerializable",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIIntegrityPolicy",
        "members": []
      }
    ],
    "path": "dom/interfaces/security/nsIIntegrityPolicy.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISerializable",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIPolicyContainer",
        "members": [
          {
            "name": "csp",
            "readonly": true,
            "type": "nsIContentSecurityPolicy"
          },
          {
            "args": [
              {
                "name": "aCSP",
                "optional": false,
                "type": "nsIContentSecurityPolicy"
              }
            ],
            "iid_is": null,
            "name": "initFromCSP",
            "type": "void"
          }
        ]
      }
    ],
    "path": "dom/interfaces/security/nsIPolicyContainer.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISerializable",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "ReferrerPolicyIDL",
            "variants": [
              {
                "name": "EMPTY",
                "value": 0
              },
              {
                "name": "NO_REFERRER_WHEN_DOWNGRADE",
                "value": 1
              },
              {
                "name": "NO_REFERRER",
                "value": 2
              },
              {
                "name": "ORIGIN",
                "value": 3
              },
              {
                "name": "ORIGIN_WHEN_CROSS_ORIGIN",
                "value": 4
              },
              {
                "name": "UNSAFE_URL",
                "value": 5
              },
              {
                "name": "SAME_ORIGIN",
                "value": 6
              },
              {
                "name": "STRICT_ORIGIN",
                "value": 7
              },
              {
                "name": "STRICT_ORIGIN_WHEN_CROSS_ORIGIN",
                "value": 8
              }
            ]
          }
        ],
        "id": "nsIReferrerInfo",
        "members": [
          {
            "name": "originalReferrer",
            "readonly": true,
            "type": "nsIURI"
          },
          {
            "name": "referrerPolicy",
            "readonly": true,
            "type": "nsIReferrerInfo.ReferrerPolicyIDL"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getReferrerPolicyString",
            "type": "string"
          },
          {
            "name": "sendReferrer",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "computedReferrerSpec",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [
              {
                "name": "other",
                "optional": false,
                "type": "nsIReferrerInfo"
              }
            ],
            "iid_is": null,
            "name": "equals",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aReferrerPolicy",
                "optional": false,
                "type": "nsIReferrerInfo.ReferrerPolicyIDL"
              },
              {
                "name": "aSendReferrer",
                "optional": true,
                "type": "boolean"
              },
              {
                "name": "aOriginalReferrer",
                "optional": true,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDocument",
                "optional": false,
                "type": "Document"
              }
            ],
            "iid_is": null,
            "name": "initWithDocument",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aNode",
                "optional": false,
                "type": "Element"
              }
            ],
            "iid_is": null,
            "name": "initWithElement",
            "type": "void"
          }
        ]
      }
    ],
    "path": "dom/interfaces/security/nsIReferrerInfo.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "LOAD_INSECURE_DEFAULT",
            "value": 0
          },
          {
            "name": "LOAD_INSECURE_ALLOW",
            "value": 1
          },
          {
            "name": "LOAD_INSECURE_BLOCK",
            "value": 2
          },
          {
            "name": "LOAD_INSECURE_ALLOW_SESSION",
            "value": 9
          },
          {
            "name": "HTTPSFIRST_LOAD_INSECURE_ALLOW",
            "value": 10
          }
        ],
        "enums": [],
        "id": "nsIHttpsOnlyModePermission",
        "members": []
      }
    ],
    "path": "dom/security/nsIHttpsOnlyModePermission.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]