我是一位高级用户,并且具有一定的编程技能,但是我安装了一些firefox附加组件,我想在原始代码中添加一些额外的代码行。但是我只有.xpi文件。
我知道可以通过任何zip实用程序打开它。但是,当我在其中更改某些内容时,它不起作用。它将.js文件存储在CONTENT文件夹中。有一个输出到文件的功能,我想格式化一个字符串,然后将其保存到文件中。
您不能不提及问题的开头,但是有一个主要目标和问题:如何在已安装的.xpi扩展名中重新编译或对.js文件进行任何更改?以任何方式升级它们。
附加组件:
本质上,您只是再次压缩了东西(非SDK附加组件)。和您链接的那些加载项是非SDK加载项。
但是有一些陷阱:
META-INF
文件夹所示。修改内容当然会使签名无效。只需删除文件夹以使(已修改的)扩展名再次未签名即可。.xpi
)然后包含/some-addon-folder/install.rdf
而不是仅仅/install.rdf
。确保不要压缩外部文件夹,而不要压缩其中的文件和子文件夹。这是正确压缩的:
$ 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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句