in src/firefox/index.js [133:198]
export async function isDefaultProfile(
profilePathOrName,
ProfileFinder = FirefoxProfile.Finder,
fsStat = fs.stat,
) {
if (DEFAULT_PROFILES_NAMES.includes(profilePathOrName)) {
return true;
}
const baseProfileDir = ProfileFinder.locateUserDirectory();
const profilesIniPath = path.join(baseProfileDir, 'profiles.ini');
try {
await fsStat(profilesIniPath);
} catch (error) {
if (isErrorWithCode('ENOENT', error)) {
log.debug(`profiles.ini not found: ${error}`);
// No profiles exist yet, default to false (the default profile name contains a
// random generated component).
return false;
}
// Re-throw any unexpected exception.
throw error;
}
// Check for profile dir path.
const finder = new ProfileFinder(baseProfileDir);
const readProfiles = promisify((...args) => finder.readProfiles(...args));
await readProfiles();
const normalizedProfileDirPath = path.normalize(
path.join(path.resolve(profilePathOrName), path.sep),
);
for (const profile of finder.profiles) {
// Check if the profile dir path or name is one of the default profiles
// defined in the profiles.ini file.
if (
DEFAULT_PROFILES_NAMES.includes(profile.Name) ||
profile.Default === '1'
) {
let profileFullPath;
// Check for profile name.
if (profile.Name === profilePathOrName) {
return true;
}
// Check for profile path.
if (profile.IsRelative === '1') {
profileFullPath = path.join(baseProfileDir, profile.Path, path.sep);
} else {
profileFullPath = path.join(profile.Path, path.sep);
}
if (path.normalize(profileFullPath) === normalizedProfileDirPath) {
return true;
}
}
}
// Profile directory not found.
return false;
}