1

我是一名高级用户并且有一些程序员技能,但我已经安装了一些 Firefox 插件,我想在原始代码中添加一些额外的代码行。但我只有.xpi文件。

我知道它可以被任何 zip 实用程序打开。但是当我在那里改变一些东西时它不起作用。它将.js文件存储在CONTENT文件夹中。有一个输出到文件的功能,我想稍微格式化一个正在保存到文件中的字符串。

您可以不提问题的开头,但主要目标和问题是:如何重新编译或对已安装的.xpi扩展中的.js文件应用任何更改?任何升级它们的方法。

附加组件:

网址记录器

http-请求记录器

4

1 回答 1

4

本质上,您只需再次压缩东西(非 SDK 附加组件)。您链接的那些附加组件是非 SDK 附加组件。

但是也有一些陷阱:

  • META-INF如文件夹的存在所示,扩展可能已经过数字签名。修改东西当然会使签名无效。只需删除文件夹以使(修改后的)扩展名再次未签名。
  • 很多时候,人们实际上会压缩外部文件夹。即生成的 zip( .xpi) 然后包含/some-addon-folder/install.rdf而不是仅包含/install.rdf. 确保不要压缩外部文件夹,只压缩其中的文件和子文件夹。
  • 一些 zip 工具生成的 zip 文件基本上是损坏的;损坏到足以被 Firefox 拒绝,但还不足以损坏其他 zip 实用程序。确保 zip 有效,如果有疑问,请切换您使用的 zip 实用程序。
  • 还要记住实际上是 ZIP 文件,而不是 7zip、rar、tar.gz 或其他任何东西。;)

这是正确压缩的:

$ unzip -l http_request_logger-0.1-fx.xpi 
Archive:  http_request_logger-0.1-fx.xpi
  Length     Date   Time    Name
 --------    ----   ----    ----
      240  07-29-11 11:45   chrome.manifest
        0  07-29-11 11:42   components/
     1558  07-29-11 11:47   components/httpRequestLogger.js
     1021  07-30-11 12:39   install.rdf
 --------                   -------
     2819                   4 files

这未正确压缩(使用 OSX 压缩菜单项生成):

$ unzip -l http_request_logger-0.1-fx.zip 
Archive:  http_request_logger-0.1-fx.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  05-16-14 01:54   http_request_logger-0.1-fx/
      240  07-29-11 11:45   http_request_logger-0.1-fx/chrome.manifest
        0  05-16-14 01:54   __MACOSX/
        0  05-16-14 01:54   __MACOSX/http_request_logger-0.1-fx/
      187  07-29-11 11:45   __MACOSX/http_request_logger-0.1-fx/._chrome.manifest
        0  07-29-11 11:42   http_request_logger-0.1-fx/components/
     1558  07-29-11 11:47   http_request_logger-0.1-fx/components/httpRequestLogger.js
        0  05-16-14 01:54   __MACOSX/http_request_logger-0.1-fx/components/
      187  07-29-11 11:47   __MACOSX/http_request_logger-0.1-fx/components/._httpRequestLogger.js
     1021  07-30-11 12:39   http_request_logger-0.1-fx/install.rdf
      187  07-30-11 12:39   __MACOSX/http_request_logger-0.1-fx/._install.rdf
      187  05-16-14 01:54   __MACOSX/._http_request_logger-0.1-fx
 --------                   -------
     3567                   12 files

(除了__MACOSX废话,现在是http_request_logger-0.1-fx/install.rdf

我建议您还阅读设置扩展开发环境,特别是有关代理文件的部分。;)

对于 SDK 附加组件(如文件的存在所示harness-options.json),重新压缩可能会起作用,也可能不起作用。最好只根据.xpi内容复制 package.json 和目录结构,并使用 SDKcfx工具构建新的 XPI。

于 2014-05-15T23:55:53.573 回答