Расширение Firefox: получить список учетных данных для входа - PullRequest
0 голосов
/ 13 апреля 2019

Мне нужно перечислить сохраненные логины веб-сайтов из расширения Firefox (без паролей), для меня самый простой способ сделать это - найти путь к каталогу профиля пользователя Firefox и проанализировать logins.json. Кажется, расширение API не содержит этого свойства. Только одна ссылка , которую я нашел, говорит о том, что я могу сделать это, связываясь с Native App через Native Messaging .

Код для выполнения на нативной стороне

    case 'firefox': {
        // get the profile dir
        const extId = browser.extId = process.argv[5];
        if (process.env.MOZ_CRASHREPORTER_EVENTS_DIRECTORY) {
            browser.profileDir = Path.resolve(process.env.MOZ_CRASHREPORTER_EVENTS_DIRECTORY, '../..');
        } 
        else {
            throw new Error(`MOZ_CRASHREPORTER_EVENTS_DIRECTORY environment variable not set by Firefox`);
            // either -P / -p "profile_name" or -profile "profile_path" (precedence?) default: FS.readFileSync('%AppData%\Mozilla\Firefox\profiles.ini').trim().split(/(?:\r\n?\n){2}/g).find(_=>_.includes('Default=1')).match(/Path=(.*))[1]
        }

        // find the extension
        const extPath = Path.join(browser.profileDir, 'extensions', extId);
        const [ extLink, extDir, extFile, ] = (await Promise.all([
            readFile(extPath, 'utf-8').catch(() => null),
            realpath(extPath).catch(() => null),
            realpath(extPath +'.xpi').catch(() => null),
        ]));

        if (extLink) { try {
            const extDir = normalizeTextPath(extLink);

... и передать его на расширение.

Существуют ли другие способы получения учетных данных для входа в расширение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...