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 (или распакованная папка) является определенным расширением, расположенным в/загруженном из?
Ответы
Ответ 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
для "соответствия только", а затем добавьте точки со значением "соответствовать любому персонажу" вокруг поискового запроса, чтобы мы могли видеть, что происходит в непосредственной близости от матча.
Не удивительно удобный, но по крайней мере он работает:) Все еще надеясь услышать более простой метод для этого.
Ура!