[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "Result",
            "variants": [
              {
                "name": "eSuccess",
                "value": 1
              },
              {
                "name": "eInvalidResponse",
                "value": 2
              },
              {
                "name": "eTooLate",
                "value": 3
              }
            ]
          },
          {
            "id": "FinalAction",
            "variants": [
              {
                "name": "eUnspecified",
                "value": 0
              },
              {
                "name": "eAllow",
                "value": 1
              },
              {
                "name": "eReportOnly",
                "value": 2
              },
              {
                "name": "eWarn",
                "value": 3
              },
              {
                "name": "eBlock",
                "value": 4
              }
            ]
          }
        ],
        "id": "nsIContentAnalysisAcknowledgement",
        "members": [
          {
            "name": "result",
            "readonly": true,
            "type": "nsIContentAnalysisAcknowledgement.Result"
          },
          {
            "name": "finalAction",
            "readonly": true,
            "type": "nsIContentAnalysisAcknowledgement.FinalAction"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentAnalysisResult",
        "members": [
          {
            "name": "shouldAllowContent",
            "readonly": true,
            "type": "boolean"
          }
        ]
      },
      {
        "base": "nsIContentAnalysisResult",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "Action",
            "variants": [
              {
                "name": "eUnspecified",
                "value": 0
              },
              {
                "name": "eReportOnly",
                "value": 1
              },
              {
                "name": "eWarn",
                "value": 2
              },
              {
                "name": "eBlock",
                "value": 3
              },
              {
                "name": "eAllow",
                "value": 1000
              },
              {
                "name": "eCanceled",
                "value": 1001
              }
            ]
          },
          {
            "id": "CancelError",
            "variants": [
              {
                "name": "eUserInitiated",
                "value": 0
              },
              {
                "name": "eNoAgent",
                "value": 1
              },
              {
                "name": "eInvalidAgentSignature",
                "value": 2
              },
              {
                "name": "eErrorOther",
                "value": 3
              },
              {
                "name": "eOtherRequestInGroupCancelled",
                "value": 4
              },
              {
                "name": "eShutdown",
                "value": 5
              },
              {
                "name": "eTimeout",
                "value": 6
              }
            ]
          }
        ],
        "id": "nsIContentAnalysisResponse",
        "members": [
          {
            "name": "action",
            "readonly": true,
            "type": "nsIContentAnalysisResponse.Action"
          },
          {
            "name": "cancelError",
            "readonly": true,
            "type": "nsIContentAnalysisResponse.CancelError"
          },
          {
            "name": "requestToken",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "userActionId",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "isCachedResponse",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isSyntheticResponse",
            "readonly": true,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aCaa",
                "optional": false,
                "type": "nsIContentAnalysisAcknowledgement"
              }
            ],
            "iid_is": null,
            "name": "acknowledge",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "DOWNLOAD_URL",
            "value": 0
          },
          {
            "name": "DOWNLOAD_REDIRECT",
            "value": 1
          },
          {
            "name": "TAB_URL",
            "value": 2
          },
          {
            "name": "TAB_REDIRECT",
            "value": 3
          },
          {
            "name": "PPAPI_DOCUMENT",
            "value": 4
          },
          {
            "name": "PPAPI_PLUGIN",
            "value": 5
          }
        ],
        "enums": [],
        "id": "nsIClientDownloadResource",
        "members": [
          {
            "name": "url",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "type",
            "readonly": true,
            "type": "u32"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "AnalysisType",
            "variants": [
              {
                "name": "eUnspecified",
                "value": 0
              },
              {
                "name": "eFileDownloaded",
                "value": 1
              },
              {
                "name": "eFileAttached",
                "value": 2
              },
              {
                "name": "eBulkDataEntry",
                "value": 3
              },
              {
                "name": "ePrint",
                "value": 4
              },
              {
                "name": "eFileTransfer",
                "value": 5
              },
              {
                "name": "eDataCopied",
                "value": 6
              }
            ]
          },
          {
            "id": "Reason",
            "variants": [
              {
                "name": "eUnknown",
                "value": 0
              },
              {
                "name": "eClipboardPaste",
                "value": 1
              },
              {
                "name": "eDragAndDrop",
                "value": 2
              },
              {
                "name": "eFilePickerDialog",
                "value": 3
              },
              {
                "name": "ePrintPreviewPrint",
                "value": 4
              },
              {
                "name": "eSystemDialogPrint",
                "value": 5
              },
              {
                "name": "eNormalDownload",
                "value": 6
              },
              {
                "name": "eSaveAsDownload",
                "value": 7
              },
              {
                "name": "eClipboardCopy",
                "value": 8
              }
            ]
          },
          {
            "id": "OperationType",
            "variants": [
              {
                "name": "ePasteClipboard",
                "value": 0
              },
              {
                "name": "eDroppedText",
                "value": 1
              },
              {
                "name": "eOperationPrint",
                "value": 2
              },
              {
                "name": "eUpload",
                "value": 3
              },
              {
                "name": "eDownload",
                "value": 4
              },
              {
                "name": "eCopyClipboard",
                "value": 5
              }
            ]
          }
        ],
        "id": "nsIContentAnalysisRequest",
        "members": [
          {
            "name": "analysisType",
            "readonly": true,
            "type": "nsIContentAnalysisRequest.AnalysisType"
          },
          {
            "name": "reason",
            "readonly": true,
            "type": "nsIContentAnalysisRequest.Reason"
          },
          {
            "name": "operationTypeForDisplay",
            "readonly": true,
            "type": "nsIContentAnalysisRequest.OperationType"
          },
          {
            "name": "fileNameForDisplay",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "dataTransfer",
            "readonly": false,
            "type": "DataTransfer"
          },
          {
            "name": "transferable",
            "readonly": true,
            "type": "nsITransferable"
          },
          {
            "name": "textContent",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "filePath",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getPrintData",
            "type": "u8[]"
          },
          {
            "name": "printerName",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "url",
            "readonly": true,
            "type": "nsIURI"
          },
          {
            "name": "sha256Digest",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "resources",
            "readonly": true,
            "type": "nsIClientDownloadResource[]"
          },
          {
            "name": "email",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "requestToken",
            "readonly": false,
            "type": "string"
          },
          {
            "name": "windowGlobalParent",
            "readonly": true,
            "type": "WindowGlobalParent"
          },
          {
            "name": "userActionId",
            "readonly": false,
            "type": "string"
          },
          {
            "name": "userActionRequestsCount",
            "readonly": false,
            "type": "i64"
          },
          {
            "name": "sourceWindowGlobal",
            "readonly": true,
            "type": "WindowGlobalParent"
          },
          {
            "name": "timeoutMultiplier",
            "readonly": false,
            "type": "u32"
          },
          {
            "name": "testOnlyIgnoreCanceledAndAlwaysSubmitToAgent",
            "readonly": false,
            "type": "boolean"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentAnalysisCallback",
        "members": [
          {
            "args": [
              {
                "name": "aResult",
                "optional": false,
                "type": "nsIContentAnalysisResult"
              }
            ],
            "iid_is": null,
            "name": "contentResult",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aResult",
                "optional": false,
                "type": "nsresult"
              }
            ],
            "iid_is": null,
            "name": "error",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentAnalysisDiagnosticInfo",
        "members": [
          {
            "name": "connectedToAgent",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "agentPath",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "failedSignatureVerification",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "requestCount",
            "readonly": true,
            "type": "i64"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentAnalysis",
        "members": [
          {
            "name": "isActive",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "mightBeActive",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "isSetByEnterprisePolicy",
            "readonly": false,
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aCars",
                "optional": false,
                "type": "nsIContentAnalysisRequest[]"
              },
              {
                "name": "aAutoAcknowledge",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "analyzeContentRequests",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aCars",
                "optional": false,
                "type": "nsIContentAnalysisRequest[]"
              },
              {
                "name": "aAutoAcknowledge",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "callback",
                "optional": false,
                "type": "nsIContentAnalysisCallback"
              }
            ],
            "iid_is": null,
            "name": "analyzeContentRequestsCallback",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aCar",
                "optional": false,
                "type": "nsIContentAnalysisRequest"
              },
              {
                "name": "aAutoAcknowledge",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "analyzeBatchContentRequest",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aRequest",
                "optional": false,
                "type": "nsIContentAnalysisRequest"
              },
              {
                "name": "aAutoAcknowledge",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIContentAnalysisCallback"
              }
            ],
            "iid_is": null,
            "name": "analyzeContentRequestPrivate",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aUserActionId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "cancelRequestsByUserAction",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aUserActionId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "cancelAllRequestsAssociatedWithUserAction",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aRequestToken",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aAllowContent",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "respondToWarnDialog",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aForbidFutureRequests",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "cancelAllRequests",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aVal",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "testOnlySetCACmdLineArg",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getDiagnosticInfo",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aBrowsingContext",
                "optional": false,
                "type": "BrowsingContext"
              }
            ],
            "iid_is": null,
            "name": "getURIForBrowsingContext",
            "type": "nsIURI"
          },
          {
            "args": [
              {
                "name": "aEvent",
                "optional": false,
                "type": "DragEvent"
              }
            ],
            "iid_is": null,
            "name": "getURIForDropEvent",
            "type": "nsIURI"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aSequenceNumber",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "aAction",
                "optional": false,
                "type": "nsIContentAnalysisResponse.Action"
              }
            ],
            "iid_is": null,
            "name": "setCachedResponse",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aSequenceNumber",
                "optional": false,
                "type": "i32"
              },
              {
                "name": "aAction",
                "optional": false,
                "type": "OutParam<nsIContentAnalysisResponse.Action>"
              },
              {
                "name": "aIsValid",
                "optional": false,
                "type": "OutParam<boolean>"
              }
            ],
            "iid_is": null,
            "name": "getCachedResponse",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aRequest",
                "optional": false,
                "type": "nsIContentAnalysisRequest"
              }
            ],
            "iid_is": null,
            "name": "showBlockedRequestDialog",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aAction",
                "optional": false,
                "type": "nsIContentAnalysisResponse.Action"
              },
              {
                "name": "aToken",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aUserActionId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "makeResponseForTest",
            "type": "nsIContentAnalysisResponse"
          },
          {
            "args": [
              {
                "name": "aUserActionId",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "sendCancelToAgent",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "forceRecreateClientForTest",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "REPORT",
            "value": 0
          },
          {
            "name": "WARN",
            "value": 1
          },
          {
            "name": "BLOCK",
            "value": 2
          }
        ],
        "enums": [],
        "id": "nsIContentAnalysisRule",
        "members": [
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "operations",
            "readonly": true,
            "type": "u32[]"
          },
          {
            "name": "domains",
            "readonly": true,
            "type": "string[]"
          },
          {
            "name": "contentPatterns",
            "readonly": true,
            "type": "string[]"
          },
          {
            "name": "verdict",
            "readonly": true,
            "type": "u8"
          },
          {
            "name": "message",
            "readonly": true,
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentAnalysisWasmRunner",
        "members": [
          {
            "args": [
              {
                "name": "aRequestBytes",
                "optional": false,
                "type": "u8[]"
              },
              {
                "name": "aContentBytes",
                "optional": false,
                "type": "u8[]"
              },
              {
                "name": "aRules",
                "optional": false,
                "type": "nsIContentAnalysisRule[]"
              }
            ],
            "iid_is": null,
            "name": "analyze",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "toolkit/components/contentanalysis/nsIContentAnalysis.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]