in src/extension-runners/firefox-desktop.js [142:180]
async setupProfileDir() {
const {
customPrefs,
extensions,
keepProfileChanges,
preInstall,
profilePath,
firefoxApp,
} = this.params;
if (profilePath) {
if (keepProfileChanges) {
log.debug(`Using Firefox profile from ${profilePath}`);
this.profile = await firefoxApp.useProfile(profilePath, {
customPrefs,
});
} else {
log.debug(`Copying Firefox profile from ${profilePath}`);
this.profile = await firefoxApp.copyProfile(profilePath, {
customPrefs,
});
}
} else {
log.debug('Creating new Firefox profile');
this.profile = await firefoxApp.createProfile({ customPrefs });
}
// preInstall the extensions if needed.
if (preInstall) {
for (const extension of extensions) {
await firefoxApp.installExtension({
asProxy: true,
extensionPath: extension.sourceDir,
manifestData: extension.manifestData,
profile: this.profile,
});
}
}
}