Firefox: найти местоположение определенного дополнения / расширения? - PullRequest
14 голосов
/ 05 июля 2011

Я использую Firefox 5, и я уже знаю, что расширения находятся в подпапке extensions папки Profile ... Однако мне нужно найти, где находится конкретное расширение (скажем,, 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 помещается в каталог расширений, а файлы загружаются непосредственно из пакета."( Extension Packaging - Документы MDN ) ...

А поскольку XPI - это в основном ZIP-архив, поиск в папке extensions, скажем, по имени расширения:

extensions$ grep -ri 'colt' . 

... ничего не даст.

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

Ответы [ 2 ]

29 голосов
/ 05 июля 2011

Введите 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 менеджера надстроек для отображения имен и местоположений установки всех ваших надстроек.

1 голос
/ 05 июля 2011

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

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 распаковывает в терминал / стандартный вывод, с помощью -a мы заставляем grep выполнять бинарный поиск, но поскольку это может сбрасывать огромные строки на терминале, мы ограничиваем это с помощью -o для "только совпадения" , а затем добавьте точки со значением «соответствовать любому символу» вокруг поискового запроса, чтобы мы могли видеть, что происходит в непосредственной близости от совпадения.

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

ура!

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