[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "TRACKING_PROTECTION",
            "value": 0
          },
          {
            "name": "SOCIAL_TRACKING_PROTECTION",
            "value": 1
          },
          {
            "name": "FINGERPRINTING_PROTECTION",
            "value": 2
          },
          {
            "name": "CRYPTOMINING_PROTECTION",
            "value": 3
          }
        ],
        "enums": [],
        "id": "nsIUrlClassifierBlockedChannel",
        "members": [
          {
            "name": "reason",
            "readonly": true,
            "type": "u8"
          },
          {
            "name": "tables",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "url",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "tabId",
            "readonly": true,
            "type": "u64"
          },
          {
            "name": "channelId",
            "readonly": true,
            "type": "u64"
          },
          {
            "name": "isPrivateBrowsing",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "topLevelUrl",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "browserId",
            "readonly": true,
            "type": "u64"
          },
          {
            "name": "channel",
            "readonly": true,
            "type": "nsIChannel"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "replace",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "allow",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIChannelClassifierService",
        "members": [
          {
            "args": [
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIObserver"
              }
            ],
            "iid_is": null,
            "name": "addListener",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIObserver"
              }
            ],
            "iid_is": null,
            "name": "removeListener",
            "type": "void"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIChannelClassifierService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ],
      [
        "nsContentPolicyType",
        "nsIContentPolicy.nsContentPolicyType"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIURIClassifierCallback",
        "members": [
          {
            "args": [
              {
                "name": "aErrorCode",
                "optional": false,
                "type": "nsresult"
              },
              {
                "name": "aList",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aProvider",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFullHash",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "onClassifyComplete",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIURIClassifier",
        "members": [
          {
            "args": [
              {
                "name": "aPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIURIClassifierCallback"
              }
            ],
            "iid_is": null,
            "name": "classify",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aFeatures",
                "optional": false,
                "type": "nsIUrlClassifierFeature[]"
              },
              {
                "name": "aListType",
                "optional": false,
                "type": "nsIUrlClassifierFeature.listType"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIUrlClassifierFeatureCallback"
              },
              {
                "name": "aIdlePriority",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "asyncClassifyLocalWithFeatures",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aFeatures",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aListType",
                "optional": false,
                "type": "nsIUrlClassifierFeature.listType"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIUrlClassifierFeatureCallback"
              }
            ],
            "iid_is": null,
            "name": "asyncClassifyLocalWithFeatureNames",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFeatureName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getFeatureByName",
            "type": "nsIUrlClassifierFeature"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getFeatureNames",
            "type": "string[]"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aBlocklistTables",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aEntitylistTables",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "createFeatureWithTables",
            "type": "nsIUrlClassifierFeature"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aProvider",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aList",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFullHash",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "sendThreatHitReport",
            "type": "void"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIURIClassifier.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierExceptionList",
        "members": [
          {
            "args": [
              {
                "name": "aFeature",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aEntry",
                "optional": false,
                "type": "nsIUrlClassifierExceptionListEntry"
              }
            ],
            "iid_is": null,
            "name": "addEntry",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aTopLevelURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aIsPrivateBrowsing",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "matches",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "testGetEntries",
            "type": "nsIUrlClassifierExceptionListEntry[]"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIUrlClassifierExceptionList.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "Category",
            "variants": [
              {
                "name": "CATEGORY_INTERNAL_PREF",
                "value": 0
              },
              {
                "name": "CATEGORY_BASELINE",
                "value": 1
              },
              {
                "name": "CATEGORY_CONVENIENCE",
                "value": 2
              }
            ]
          }
        ],
        "id": "nsIUrlClassifierExceptionListEntry",
        "members": [
          {
            "args": [
              {
                "name": "aCategory",
                "optional": false,
                "type": "nsIUrlClassifierExceptionListEntry.Category"
              },
              {
                "name": "aUrlPattern",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aTopLevelUrlPattern",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aIsPrivateBrowsingOnly",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aFilterContentBlockingCategories",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aClassifierFeatures",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aTopLevelURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aIsPrivateBrowsing",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "matches",
            "type": "boolean"
          },
          {
            "name": "category",
            "readonly": true,
            "type": "nsIUrlClassifierExceptionListEntry.Category"
          },
          {
            "name": "urlPattern",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "topLevelUrlPattern",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "isPrivateBrowsingOnly",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "filterContentBlockingCategories",
            "readonly": true,
            "type": "string[]"
          },
          {
            "name": "classifierFeatures",
            "readonly": true,
            "type": "string[]"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIUrlClassifierExceptionListEntry.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierExceptionListObserver",
        "members": [
          {
            "args": [
              {
                "name": "aList",
                "optional": false,
                "type": "nsIUrlClassifierExceptionList"
              }
            ],
            "iid_is": null,
            "name": "onExceptionListUpdate",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierExceptionListService",
        "members": [
          {
            "args": [
              {
                "name": "aFeature",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aPrefName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIUrlClassifierExceptionListObserver"
              }
            ],
            "iid_is": null,
            "name": "registerAndRunExceptionListObserver",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFeature",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aObserver",
                "optional": false,
                "type": "nsIUrlClassifierExceptionListObserver"
              }
            ],
            "iid_is": null,
            "name": "unregisterExceptionListObserver",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "clear",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "maybeMigrateCategoryPrefs",
            "type": "void"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIUrlClassifierExceptionListService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "listType",
            "variants": [
              {
                "name": "blocklist",
                "value": 0
              },
              {
                "name": "entitylist",
                "value": 1
              }
            ]
          },
          {
            "id": "URIType",
            "variants": [
              {
                "name": "blocklistURI",
                "value": 0
              },
              {
                "name": "entitylistURI",
                "value": 1
              },
              {
                "name": "pairwiseEntitylistURI",
                "value": 2
              }
            ]
          }
        ],
        "id": "nsIUrlClassifierFeature",
        "members": [
          {
            "name": "name",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "exceptionList",
            "readonly": true,
            "type": "nsIUrlClassifierExceptionList"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierFeatureResult",
        "members": [
          {
            "name": "uri",
            "readonly": true,
            "type": "nsIURI"
          },
          {
            "name": "feature",
            "readonly": true,
            "type": "nsIUrlClassifierFeature"
          },
          {
            "name": "list",
            "readonly": true,
            "type": "string"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierFeatureCallback",
        "members": [
          {
            "args": [
              {
                "name": "aResults",
                "optional": false,
                "type": "nsIUrlClassifierFeatureResult[]"
              }
            ],
            "iid_is": null,
            "name": "onClassifyComplete",
            "type": "void"
          }
        ]
      }
    ],
    "path": "netwerk/url-classifier/nsIUrlClassifierFeature.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [
          {
            "name": "WARNING_MALWARE_PAGE_TOP",
            "value": 1
          },
          {
            "name": "WARNING_MALWARE_PAGE_TOP_WHY_BLOCKED",
            "value": 2
          },
          {
            "name": "WARNING_MALWARE_PAGE_TOP_GET_ME_OUT_OF_HERE",
            "value": 3
          },
          {
            "name": "WARNING_MALWARE_PAGE_TOP_IGNORE_WARNING",
            "value": 4
          },
          {
            "name": "WARNING_MALWARE_PAGE_FRAME",
            "value": 5
          },
          {
            "name": "WARNING_MALWARE_PAGE_FRAME_WHY_BLOCKED",
            "value": 6
          },
          {
            "name": "WARNING_MALWARE_PAGE_FRAME_GET_ME_OUT_OF_HERE",
            "value": 7
          },
          {
            "name": "WARNING_MALWARE_PAGE_FRAME_IGNORE_WARNING",
            "value": 8
          },
          {
            "name": "WARNING_PHISHING_PAGE_TOP",
            "value": 9
          },
          {
            "name": "WARNING_PHISHING_PAGE_TOP_WHY_BLOCKED",
            "value": 10
          },
          {
            "name": "WARNING_PHISHING_PAGE_TOP_GET_ME_OUT_OF_HERE",
            "value": 11
          },
          {
            "name": "WARNING_PHISHING_PAGE_TOP_IGNORE_WARNING",
            "value": 12
          },
          {
            "name": "WARNING_PHISHING_PAGE_FRAME",
            "value": 13
          },
          {
            "name": "WARNING_PHISHING_PAGE_FRAME_WHY_BLOCKED",
            "value": 14
          },
          {
            "name": "WARNING_PHISHING_PAGE_FRAME_GET_ME_OUT_OF_HERE",
            "value": 15
          },
          {
            "name": "WARNING_PHISHING_PAGE_FRAME_IGNORE_WARNING",
            "value": 16
          },
          {
            "name": "WARNING_UNWANTED_PAGE_TOP",
            "value": 17
          },
          {
            "name": "WARNING_UNWANTED_PAGE_TOP_WHY_BLOCKED",
            "value": 18
          },
          {
            "name": "WARNING_UNWANTED_PAGE_TOP_GET_ME_OUT_OF_HERE",
            "value": 19
          },
          {
            "name": "WARNING_UNWANTED_PAGE_TOP_IGNORE_WARNING",
            "value": 20
          },
          {
            "name": "WARNING_UNWANTED_PAGE_FRAME",
            "value": 21
          },
          {
            "name": "WARNING_UNWANTED_PAGE_FRAME_WHY_BLOCKED",
            "value": 22
          },
          {
            "name": "WARNING_UNWANTED_PAGE_FRAME_GET_ME_OUT_OF_HERE",
            "value": 23
          },
          {
            "name": "WARNING_UNWANTED_PAGE_FRAME_IGNORE_WARNING",
            "value": 24
          },
          {
            "name": "WARNING_HARMFUL_PAGE_TOP",
            "value": 25
          },
          {
            "name": "WARNING_HARMFUL_PAGE_TOP_WHY_BLOCKED",
            "value": 26
          },
          {
            "name": "WARNING_HARMFUL_PAGE_TOP_GET_ME_OUT_OF_HERE",
            "value": 27
          },
          {
            "name": "WARNING_HARMFUL_PAGE_TOP_IGNORE_WARNING",
            "value": 28
          },
          {
            "name": "WARNING_HARMFUL_PAGE_FRAME",
            "value": 29
          },
          {
            "name": "WARNING_HARMFUL_PAGE_FRAME_WHY_BLOCKED",
            "value": 30
          },
          {
            "name": "WARNING_HARMFUL_PAGE_FRAME_GET_ME_OUT_OF_HERE",
            "value": 31
          },
          {
            "name": "WARNING_HARMFUL_PAGE_FRAME_IGNORE_WARNING",
            "value": 32
          }
        ],
        "enums": [],
        "id": "IUrlClassifierUITelemetry",
        "members": []
      }
    ],
    "path": "toolkit/components/url-classifier/IUrlClassifierUITelemetry.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierCallback",
        "members": [
          {
            "args": [
              {
                "name": "value",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "handleEvent",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierUpdateObserver",
        "members": [
          {
            "args": [
              {
                "name": "url",
                "optional": false,
                "type": "string"
              },
              {
                "name": "table",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "updateUrlRequested",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "status",
                "optional": false,
                "type": "nsresult"
              },
              {
                "name": "delay",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "streamFinished",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "error",
                "optional": false,
                "type": "nsresult"
              }
            ],
            "iid_is": null,
            "name": "updateError",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "tables",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "waitSeconds",
                "optional": false,
                "type": "u32[]"
              }
            ],
            "iid_is": null,
            "name": "updateSuccess",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierDBService",
        "members": [
          {
            "args": [
              {
                "name": "principal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "tables",
                "optional": false,
                "type": "string"
              },
              {
                "name": "c",
                "optional": false,
                "type": "nsIUrlClassifierCallback"
              }
            ],
            "iid_is": null,
            "name": "lookup",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "c",
                "optional": false,
                "type": "nsIUrlClassifierCallback"
              }
            ],
            "iid_is": null,
            "name": "getTables",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "completer",
                "optional": false,
                "type": "nsIUrlClassifierHashCompleter"
              }
            ],
            "iid_is": null,
            "name": "setHashCompleter",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "clearLastResults",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "updater",
                "optional": false,
                "type": "nsIUrlClassifierUpdateObserver"
              },
              {
                "name": "tables",
                "optional": false,
                "type": "string"
              },
              {
                "name": "provider",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "beginUpdate",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "table",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "beginStream",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "updateChunk",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "updateStream",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "finishStream",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "finishUpdate",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "cancelUpdate",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "resetDatabase",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "reloadDatabase",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "clearCache",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "cleanRealTimeSimulatorCache",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "expireRealTimeSimulatorCache",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierDBService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIFullHashMatch",
        "members": [
          {
            "name": "tableName",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "fullHash",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "cacheDuration",
            "readonly": true,
            "type": "u32"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierHashCompleterCallback",
        "members": [
          {
            "args": [
              {
                "name": "hash",
                "optional": false,
                "type": "string"
              },
              {
                "name": "table",
                "optional": false,
                "type": "string"
              },
              {
                "name": "chunkId",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "completionV2",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "partialHash",
                "optional": false,
                "type": "string"
              },
              {
                "name": "table",
                "optional": false,
                "type": "string"
              },
              {
                "name": "negativeCacheDuration",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "fullHashes",
                "optional": false,
                "type": "nsIArray"
              }
            ],
            "iid_is": null,
            "name": "completionV4",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "status",
                "optional": false,
                "type": "nsresult"
              }
            ],
            "iid_is": null,
            "name": "completionFinished",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierHashCompleter",
        "members": [
          {
            "args": [
              {
                "name": "partialHash",
                "optional": false,
                "type": "string"
              },
              {
                "name": "gethashUrl",
                "optional": false,
                "type": "string"
              },
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "callback",
                "optional": false,
                "type": "nsIUrlClassifierHashCompleterCallback"
              }
            ],
            "iid_is": null,
            "name": "complete",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierHashCompleter.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierPositiveCacheEntry",
        "members": [
          {
            "name": "fullhash",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "expiry",
            "readonly": true,
            "type": "i64"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierCacheEntry",
        "members": [
          {
            "name": "prefix",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "expiry",
            "readonly": true,
            "type": "i64"
          },
          {
            "name": "matches",
            "readonly": true,
            "type": "nsIArray"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierCacheInfo",
        "members": [
          {
            "name": "table",
            "readonly": true,
            "type": "string"
          },
          {
            "name": "entries",
            "readonly": true,
            "type": "nsIArray"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": true,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierGetCacheCallback",
        "members": [
          {
            "args": [
              {
                "name": "info",
                "optional": false,
                "type": "nsIUrlClassifierCacheInfo"
              }
            ],
            "iid_is": null,
            "name": "onGetCacheComplete",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierInfo",
        "members": [
          {
            "args": [
              {
                "name": "table",
                "optional": false,
                "type": "string"
              },
              {
                "name": "callback",
                "optional": false,
                "type": "nsIUrlClassifierGetCacheCallback"
              }
            ],
            "iid_is": null,
            "name": "getCacheInfo",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierInfo.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierPrefixSet",
        "members": [
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "init",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrefixes",
                "optional": false,
                "type": "u32[]"
              },
              {
                "name": "aLength",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "setPrefixes",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aCount",
                "optional": false,
                "type": "OutParam<u32>"
              }
            ],
            "iid_is": null,
            "name": "getPrefixes",
            "type": "u32[]"
          },
          {
            "args": [
              {
                "name": "aPrefix",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "contains",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "isEmpty",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierPrefixSet.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierRemoteSettingsService",
        "members": [
          {
            "args": [
              {
                "name": "aPayload",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aListener",
                "optional": false,
                "type": "nsIStreamListener"
              }
            ],
            "iid_is": null,
            "name": "fetchList",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "clear",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierRemoteSettingsService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierStreamUpdater",
        "members": [
          {
            "args": [
              {
                "name": "aRequestTables",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRequestPayload",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aRequestQueryParameters",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aIsPostRequest",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aProvider",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aUpdateUrl",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSuccessCallback",
                "optional": false,
                "type": "nsIUrlClassifierCallback"
              },
              {
                "name": "aUpdateErrorCallback",
                "optional": false,
                "type": "nsIUrlClassifierCallback"
              },
              {
                "name": "aDownloadErrorCallback",
                "optional": false,
                "type": "nsIUrlClassifierCallback"
              }
            ],
            "iid_is": null,
            "name": "downloadUpdates",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierStreamUpdater.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierTestUtils",
        "members": [
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSingleHash",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "makeUpdateResponseV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFullHash",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "makeUpdateResponseV5_32b",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aNames",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aWaitSeconds",
                "optional": false,
                "type": "u32[]"
              }
            ],
            "iid_is": null,
            "name": "makeUpdateResponseV5WithWaitDurations",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aFullHash",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "makeFindFullHashResponseV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aFragment",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "generateLookupHash",
            "type": "u32"
          },
          {
            "args": [
              {
                "name": "aFragment",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "generateFullHash",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aFragment",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "generateFullHashRaw",
            "type": "string"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierTestUtils.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierParseFindFullHashCallback",
        "members": [
          {
            "args": [
              {
                "name": "aCompleteHash",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aTableNames",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aPerHashCacheDuration",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "onCompleteHashFound",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aMinWaitDuration",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "aNegCacheDuration",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "onResponseParsed",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlClassifierUtils",
        "members": [
          {
            "args": [
              {
                "name": "uri",
                "optional": false,
                "type": "nsIURI"
              }
            ],
            "iid_is": null,
            "name": "getKeyForURI",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getProvider",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getTelemetryProvider",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "provider",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getProtocolVersion",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "threatType",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "convertThreatTypeToListNames",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "listName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "convertListNameToThreatType",
            "type": "u32"
          },
          {
            "args": [
              {
                "name": "serverListName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "convertServerListNameToLocalListNameV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "localListName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "convertLocalListNameToServerListNameV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "threatType",
                "optional": false,
                "type": "u32"
              }
            ],
            "iid_is": null,
            "name": "convertThreatTypeToListNamesV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aListNames",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aStatesBase64",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "makeUpdateRequestV4",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aListNames",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aStatesBase64",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "makeUpdateRequestV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aListNames",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aListStatesBase64",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aPrefixes",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "makeFindFullHashRequestV4",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aHashPrefixes",
                "optional": false,
                "type": "string[]"
              }
            ],
            "iid_is": null,
            "name": "makeFindFullHashRequestV5",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aListName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aHashBase64",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "makeThreatHitReport",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aResponse",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIUrlClassifierParseFindFullHashCallback"
              }
            ],
            "iid_is": null,
            "name": "parseFindFullHashResponseV4",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aResponse",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aCallback",
                "optional": false,
                "type": "nsIUrlClassifierParseFindFullHashCallback"
              }
            ],
            "iid_is": null,
            "name": "parseFindFullHashResponseV5",
            "type": "void"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlClassifierUtils.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIUrlListManager",
        "members": [
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getGethashUrl",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getUpdateUrl",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "providerName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "updateUrl",
                "optional": false,
                "type": "string"
              },
              {
                "name": "gethashUrl",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "registerTable",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "unregisterTable",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "enableUpdate",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "disableAllUpdates",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "tableName",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "disableUpdate",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "maybeToggleUpdateChecking",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "updateUrl",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "checkForUpdates",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "tableNames",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "forceUpdates",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "provider",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getBackOffTime",
            "type": "u64"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "isRegistered",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "toolkit/components/url-classifier/nsIUrlListManager.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]