[
  {
    "interfaces": [],
    "path": "uriloader/exthandler/nsCExternalHandlerService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIContentDispatchChooser",
        "members": [
          {
            "args": [
              {
                "name": "aHandler",
                "optional": false,
                "type": "nsIHandlerInfo"
              },
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aTriggeringPrincipal",
                "optional": false,
                "type": "nsIPrincipal"
              },
              {
                "name": "aBrowsingContext",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "aWasTriggeredExternally",
                "optional": true,
                "type": "boolean"
              },
              {
                "name": "aHasValidUserGestureActivation",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "handleURI",
            "type": "void"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsIContentDispatchChooser.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIExternalHelperAppService",
        "members": [
          {
            "args": [
              {
                "name": "aMimeContentType",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aContentContext",
                "optional": false,
                "type": "nsIInterfaceRequestor"
              },
              {
                "name": "aForceSave",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aWindowContext",
                "optional": true,
                "type": "nsIInterfaceRequestor"
              }
            ],
            "iid_is": null,
            "name": "doContent",
            "type": "nsIStreamListener"
          },
          {
            "args": [
              {
                "name": "aMimeContentType",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aChannel",
                "optional": false,
                "type": "nsIChannel"
              },
              {
                "name": "aContentContext",
                "optional": false,
                "type": "BrowsingContext"
              },
              {
                "name": "aForceSave",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aWindowContext",
                "optional": true,
                "type": "nsIInterfaceRequestor"
              }
            ],
            "iid_is": null,
            "name": "createListener",
            "type": "nsIStreamListener"
          },
          {
            "args": [
              {
                "name": "aExtension",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aEncodingType",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "applyDecodingForExtension",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getPreferredDownloadsDirectory",
            "type": "nsIFile"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsPIExternalAppLauncher",
        "members": [
          {
            "args": [
              {
                "name": "aTemporaryFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "deleteTemporaryFileOnExit",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aTemporaryFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "deleteTemporaryPrivateFileWhenPossible",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aPrivateFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "deletePrivateFileWhenPossible",
            "type": "void"
          }
        ]
      },
      {
        "base": "nsICancelable",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIHelperAppLauncher",
        "members": [
          {
            "name": "MIMEInfo",
            "readonly": true,
            "type": "nsIMIMEInfo"
          },
          {
            "name": "source",
            "readonly": true,
            "type": "nsIURI"
          },
          {
            "name": "suggestedFileName",
            "readonly": true,
            "type": "string"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "promptForSaveDestination",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aHandleInternally",
                "optional": false,
                "type": "boolean"
              },
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              }
            ],
            "iid_is": null,
            "name": "setDownloadToLaunch",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "launchLocalFile",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFile",
                "optional": false,
                "type": "nsIFile"
              },
              {
                "name": "aDialogWasShown",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "saveDestinationAvailable",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aWebProgressListener",
                "optional": false,
                "type": "nsIWebProgressListener2"
              }
            ],
            "iid_is": null,
            "name": "setWebProgressListener",
            "type": "void"
          },
          {
            "name": "targetFile",
            "readonly": true,
            "type": "nsIFile"
          },
          {
            "name": "targetFileIsExecutable",
            "readonly": true,
            "type": "boolean"
          },
          {
            "name": "timeDownloadStarted",
            "readonly": true,
            "type": "PRTime"
          },
          {
            "name": "contentLength",
            "readonly": true,
            "type": "i64"
          },
          {
            "name": "browsingContextId",
            "readonly": true,
            "type": "u64"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsIExternalHelperAppService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIExternalProtocolService",
        "members": [
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "externalProtocolHandlerExists",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isExposedProtocol",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getProtocolHandlerInfo",
            "type": "nsIHandlerInfo"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aFound",
                "optional": false,
                "type": "OutParam<boolean>"
              }
            ],
            "iid_is": null,
            "name": "getProtocolHandlerInfoFromOS",
            "type": "nsIHandlerInfo"
          },
          {
            "args": [
              {
                "name": "aHandlerInfo",
                "optional": false,
                "type": "nsIHandlerInfo"
              },
              {
                "name": "aOSHandlerExists",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "setProtocolHandlerDefaults",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aURI",
                "optional": false,
                "type": "nsIURI"
              },
              {
                "name": "aTriggeringPrincipal",
                "optional": true,
                "type": "nsIPrincipal"
              },
              {
                "name": "aRedirectPrincipal",
                "optional": true,
                "type": "nsIPrincipal"
              },
              {
                "name": "aBrowsingContext",
                "optional": true,
                "type": "BrowsingContext"
              },
              {
                "name": "aWasTriggeredExternally",
                "optional": true,
                "type": "boolean"
              },
              {
                "name": "aHasValidUserGestureActivation",
                "optional": true,
                "type": "boolean"
              },
              {
                "name": "aNewWindowTarget",
                "optional": true,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "loadURI",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getApplicationDescription",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "isCurrentAppOSDefaultForProtocol",
            "type": "boolean"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsIExternalProtocolService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIHandlerService",
        "members": [
          {
            "args": [],
            "iid_is": null,
            "name": "asyncInit",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "enumerate",
            "type": "nsISimpleEnumerator"
          },
          {
            "args": [
              {
                "name": "aHandlerInfo",
                "optional": false,
                "type": "nsIHandlerInfo"
              },
              {
                "name": "aOverrideType",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "fillHandlerInfo",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aHandlerInfo",
                "optional": false,
                "type": "nsIHandlerInfo"
              }
            ],
            "iid_is": null,
            "name": "store",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aHandlerInfo",
                "optional": false,
                "type": "nsIHandlerInfo"
              }
            ],
            "iid_is": null,
            "name": "exists",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aHandlerInfo",
                "optional": false,
                "type": "nsIHandlerInfo"
              }
            ],
            "iid_is": null,
            "name": "remove",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aFileExtension",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getTypeFromExtension",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "existsForProtocolOS",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "existsForProtocol",
            "type": "boolean"
          },
          {
            "args": [
              {
                "name": "aProtocolScheme",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getApplicationDescription",
            "type": "string"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsIHandlerService.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [
          {
            "id": "reason",
            "variants": [
              {
                "name": "REASON_CANTHANDLE",
                "value": 0
              },
              {
                "name": "REASON_SERVERREQUEST",
                "value": 1
              },
              {
                "name": "REASON_TYPESNIFFED",
                "value": 2
              }
            ]
          }
        ],
        "id": "nsIHelperAppLauncherDialog",
        "members": [
          {
            "args": [
              {
                "name": "aLauncher",
                "optional": false,
                "type": "nsIHelperAppLauncher"
              },
              {
                "name": "aWindowContext",
                "optional": false,
                "type": "nsIInterfaceRequestor"
              },
              {
                "name": "aReason",
                "optional": false,
                "type": "nsIHelperAppLauncherDialog.reason"
              }
            ],
            "iid_is": null,
            "name": "show",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aLauncher",
                "optional": false,
                "type": "nsIHelperAppLauncher"
              },
              {
                "name": "aWindowContext",
                "optional": false,
                "type": "nsIInterfaceRequestor"
              },
              {
                "name": "aDefaultFileName",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSuggestedFileExtension",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aForcePrompt",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "promptForSaveToFileAsync",
            "type": "void"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsIHelperAppLauncherDialog.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  },
  {
    "interfaces": [
      {
        "base": "nsIHandlerApp",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsISharingHandlerApp",
        "members": [
          {
            "args": [
              {
                "name": "data",
                "optional": false,
                "type": "string"
              },
              {
                "name": "title",
                "optional": true,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "share",
            "type": "void"
          }
        ]
      }
    ],
    "path": "uriloader/exthandler/nsISharingHandlerApp.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ],
      [
        "nsHandlerInfoAction",
        "i32"
      ]
    ]
  }
]