Подтвердить что ты не робот

Firefox: найдите местоположение конкретного дополнения или расширения?

Я использую Firefox 5, и я уже знаю, что расширения находятся в подпапке extensions Папка профиля... Однако мне нужно найти, где находится конкретное расширение (например, CoLT); проблема в том, что большинство папок расширения называются guid, например.

extensions$ ls
{232ac1d3-4d70-4919-8338-48c3d3f98afc}
{29c4afe1-db19-4298-8785-fcc94d1d6c1d}
{2bfc8624-5b8a-4060-b86a-e78ccbc38509}
{33f141c0-3703-4a4c-b459-cec618a7dafd}
...

Затем снова: "Начиная с Gecko 2.0 (Firefox 4/Thunderbird 3.3/SeaMonkey 2.1), файлы XPI больше не распаковываются при установке расширений. Вместо этого сам XPI помещается в каталог расширений, и файлы загружаются напрямую из пакета". (Расширение упаковки - MDN Docs)...

И поскольку XPI - это в основном ZIP-архив, grepping через папку extensions, ищущую, скажем, имя расширения:

extensions$ grep -ri 'colt' . 

... ничего не вернет.

Итак, знает ли кто-нибудь о методе (или расширении), чтобы сказать мне, какой XPI (или распакованная папка) является определенным расширением, расположенным в/загруженном из?

4b9b3361

Ответ 1

Введите about:support#extensions-tbody в свою строку местоположения - в этом списке будут указаны все установленные вами расширения вместе с их идентификаторами. Идентификатор расширения определяет имя папки/файла в каталоге extensions. Обратите внимание, что расширения не всегда устанавливаются в вашем профиле - если есть сомнения, содержимое extensions.ini в вашем профиле Firefox должно очистить вещи.

Если вы хотите, чтобы он был более "удобным", вы можете вставить следующий код в консоль браузера:

Components.utils.import("resource://gre/modules/AddonManager.jsm", null).AddonManager.getAllAddons(addons => {addons.filter(addon => addon.type == "extension").forEach(addon => console.log(addon.name, addon.getResourceURI().spec))});

Это будет использовать API-интерфейс менеджера надстроек для отображения имен и установки местоположений всех ваших надстроек.

Ответ 2

Хорошо, вот хоть что-то, так что я больше не получаю перепалку:)

extensions$ for ix in *.xpi; do echo $ix; unzip -c $ix | grep -aoi ........colt.........; done
...
{e4a8a97b-f2ed-450b-b12d-ee082ba24781}.xpi
{e6c4c3ef-3d4d-42d6-8283-8da73c53a283}.xpi
content colt jar:chro
hrome://colt/content/
:chrome/colt.jar!/loc
...

... что должно четко указывать, что {e6c4c3ef-3d4d-42d6-8283-8da73c53a283}.xpi является контейнером расширения CoLT..

Обратите внимание, что unzip -c распаковывает в терминал /stdout, -a мы вынуждаем grep выполнять двоичный поиск, но поскольку это может сбрасывать огромные строки на терминале, мы ограничиваем это тем, что -o для "соответствия только", а затем добавьте точки со значением "соответствовать любому персонажу" вокруг поискового запроса, чтобы мы могли видеть, что происходит в непосредственной близости от матча.

Не удивительно удобный, но по крайней мере он работает:) Все еще надеясь услышать более простой метод для этого.

Ура!