[
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "directory",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "doStartup",
        "params": []
      }
    ],
    "name": "nsIProfileStartup",
    "needs_scriptable": [
      "nsIFile"
    ],
    "parent": "nsISupports",
    "uuid": "048e5ca1-0eb7-4bb1-a9a2-a36f7d4e0e3c"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [],
        "name": "migrate",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIProfileStartup",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_CSTRING"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      }
    ],
    "name": "nsIProfileMigrator",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "3df284a5-2258-4d46-a664-761ecdc04c22"
  },
  {
    "consts": [
      {
        "name": "ATTEMPT_QUIT",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 0
      },
      {
        "name": "FORCE_QUIT",
        "type": {
          "tag": "TD_UINT32"
        },
        "value": 1
      }
    ],
    "flags": [],
    "methods": [
      {
        "flags": [],
        "name": "unlock",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      }
    ],
    "name": "nsIProfileUnlocker",
    "needs_scriptable": [],
    "parent": "nsISupports",
    "uuid": "08923af1-e7a3-4fae-ba02-128502193994"
  },
  {
    "consts": [],
    "flags": [],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "directory",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "localDirectory",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "replacedLockTime",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_INT64"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "unlock",
        "params": []
      }
    ],
    "name": "nsIProfileLock",
    "needs_scriptable": [
      "nsIFile"
    ],
    "parent": "nsISupports",
    "uuid": "7c58c703-d245-4864-8d75-9648ca4a6139"
  },
  {
    "consts": [],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "rootDir",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "rootDir",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "localDir",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "name",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "name",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "storeID",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "storeID",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "showProfileSelector",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "showProfileSelector",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "remove",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "removeInBackground",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "lock",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIProfileUnlocker",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIProfileLock",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      }
    ],
    "name": "nsIToolkitProfile",
    "needs_scriptable": [
      "nsIFile",
      "nsIProfileUnlocker"
    ],
    "parent": "nsISupports",
    "uuid": "7422b090-4a86-4407-972e-75468a625388"
  },
  {
    "consts": [
      {
        "name": "hasSync",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 1
      },
      {
        "name": "quit",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 0
      },
      {
        "name": "createNewProfile",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 1
      },
      {
        "name": "exit",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 0
      },
      {
        "name": "launchWithProfile",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 1
      },
      {
        "name": "restart",
        "type": {
          "tag": "TD_UINT8"
        },
        "value": 2
      }
    ],
    "flags": [
      "builtinclass"
    ],
    "methods": [
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isListOutdated",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "isFirstRun",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "startWithLastProfile",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "startWithLastProfile",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "profiles",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsISimpleEnumerator",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "currentProfile",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "defaultProfile",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "setter"
        ],
        "name": "defaultProfile",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "selectStartupProfile",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "element": {
                "tag": "TD_CSTRING"
              },
              "tag": "TD_ARRAY"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getProfileByName",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getProfileByDir",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in",
              "optional"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "createProfile",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "createUniqueProfile",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIToolkitProfile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getProfileDescriptor",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_BOOL"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UTF8STRING"
            }
          }
        ]
      },
      {
        "flags": [
          "hasretval"
        ],
        "name": "getLocalDirFromRootDir",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          }
        ]
      },
      {
        "flags": [
          "getter",
          "hasretval"
        ],
        "name": "profileCount",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          }
        ]
      },
      {
        "flags": [],
        "name": "flush",
        "params": []
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "asyncFlush",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_PROMISE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "asyncFlushCurrentProfile",
        "params": [
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_PROMISE"
            }
          }
        ]
      },
      {
        "flags": [
          "jscontext",
          "hasretval"
        ],
        "name": "removeProfileFilesByPath",
        "params": [
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "name": "nsIFile",
              "tag": "TD_INTERFACE_TYPE"
            }
          },
          {
            "flags": [
              "in"
            ],
            "type": {
              "tag": "TD_UINT32"
            }
          },
          {
            "flags": [
              "out"
            ],
            "type": {
              "tag": "TD_PROMISE"
            }
          }
        ]
      }
    ],
    "name": "nsIToolkitProfileService",
    "needs_scriptable": [
      "nsIFile",
      "nsISimpleEnumerator",
      "nsIToolkitProfile"
    ],
    "parent": "nsISupports",
    "uuid": "e3909911-5518-4bec-bbb1-37b54f36f162"
  }
]