[
  {
    "interfaces": [
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProfilerStartParams",
        "members": [
          {
            "name": "entries",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "duration",
            "readonly": true,
            "type": "double"
          },
          {
            "name": "interval",
            "readonly": true,
            "type": "double"
          },
          {
            "name": "features",
            "readonly": true,
            "type": "u32"
          },
          {
            "name": "activeTabID",
            "readonly": true,
            "type": "u64"
          }
        ]
      },
      {
        "base": "nsISupports",
        "callable": false,
        "consts": [],
        "enums": [],
        "id": "nsIProfiler",
        "members": [
          {
            "args": [
              {
                "name": "aEntries",
                "optional": false,
                "type": "u32"
              },
              {
                "name": "aInterval",
                "optional": false,
                "type": "double"
              },
              {
                "name": "aFeatures",
                "optional": false,
                "type": "string[]"
              },
              {
                "name": "aFilters",
                "optional": true,
                "type": "string[]"
              },
              {
                "name": "aActiveTabID",
                "optional": true,
                "type": "u64"
              },
              {
                "name": "aDuration",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "StartProfiler",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "StopProfiler",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "IsPaused",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "Pause",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "Resume",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "IsSamplingPaused",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "PauseSampling",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "ResumeSampling",
            "type": "Promise<any>"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "waitOnePeriodicSampling",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "GetProfile",
            "type": "string"
          },
          {
            "args": [
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "getProfileData",
            "type": "any"
          },
          {
            "args": [
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "getProfileDataAsync",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "getProfileDataAsArrayBuffer",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "getProfileDataAsGzippedArrayBuffer",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aSinceTime",
                "optional": true,
                "type": "double"
              }
            ],
            "iid_is": null,
            "name": "dumpProfileToFileAsync",
            "type": "Promise<any>"
          },
          {
            "args": [
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "dumpProfileToFile",
            "type": "void"
          },
          {
            "args": [
              {
                "name": "aDelaySeconds",
                "optional": false,
                "type": "double"
              },
              {
                "name": "aFilename",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aExitAfterDump",
                "optional": false,
                "type": "boolean"
              }
            ],
            "iid_is": null,
            "name": "scheduleDumpToFile",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "cancelScheduledDump",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "waitForScheduledDump",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "IsActive",
            "type": "boolean"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "ClearAllPages",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "GetFeatures",
            "type": "string[]"
          },
          {
            "name": "activeConfiguration",
            "readonly": true,
            "type": "any"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "GetAllFeatures",
            "type": "string[]"
          },
          {
            "args": [
              {
                "name": "aCurrentPosition",
                "optional": false,
                "type": "OutParam<u32>"
              },
              {
                "name": "aTotalSize",
                "optional": false,
                "type": "OutParam<u32>"
              },
              {
                "name": "aGeneration",
                "optional": false,
                "type": "OutParam<u32>"
              }
            ],
            "iid_is": null,
            "name": "GetBufferInfo",
            "type": "void"
          },
          {
            "args": [],
            "iid_is": null,
            "name": "getElapsedTime",
            "type": "double"
          },
          {
            "name": "sharedLibraries",
            "readonly": true,
            "type": "any"
          },
          {
            "args": [
              {
                "name": "aDebugPath",
                "optional": false,
                "type": "string"
              },
              {
                "name": "aBreakpadID",
                "optional": false,
                "type": "string"
              }
            ],
            "iid_is": null,
            "name": "getSymbolTable",
            "type": "Promise<any>"
          }
        ]
      }
    ],
    "path": "tools/profiler/gecko/nsIProfiler.idl",
    "typedefs": [
      [
        "PRTime",
        "i64"
      ]
    ]
  }
]