Firefox:找到特定附加/扩展的位置?

时间:2011-07-05 06:20:31

标签: firefox firefox-addon

我正在使用Firefox 5,我已经知道扩展程序位于Profile folderextensions子文件夹中...但是,我需要找到特定扩展名的位置(例如, 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 Docs)...

由于XPI基本上是一个ZIP存档,因此请浏览extensions文件夹,查找扩展名:

extensions$ grep -ri 'colt' . 

......什么也不会返回。

那么,有没有人知道一个方法(或扩展名)告诉我哪个XPI(或解压缩的文件夹)是位于/加载的特定扩展名?

2 个答案:

答案 0 :(得分:28)

在您的位置栏中输入about:support#extensions-tbody - 这将列出(除其他外)所有已安装的扩展程序及其ID。扩展ID确定extensions目录中的文件夹/文件名。请注意,您的个人资料中并不总是安装扩展程序 - 如果有疑问,您的Firefox个人资料中的extensions.ini内容应该清除。

如果您想让它更“舒适”,可以将以下代码粘贴到浏览器控制台中:

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 :(得分:1)

嗯,这里至少有一些东西,所以我再没有得到风滚草了:)

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}.xpiCoLT扩展程序的容器。

请注意unzip -c解压缩到terminal / stdout,-a我们强制grep进行二进制搜索,但由于这可能会在终端上转储大行,我们会使用{{{ 1}}用于“仅匹配”,然后在搜索词周围添加“匹配任何字符”含义的点,以便我们可以看到匹配附近发生了什么。

用户友好并不令人惊讶,但至少它有效:)仍然希望听到一个更直接的方法...

干杯!