【问题标题】:Re-packaging and/or modifying an existing Firefox extension XPI重新打包和/或修改现有的 Firefox 扩展 XPI
【发布时间】:2014-05-15 23:40:54
【问题描述】:

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

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

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

附加组件:

url-logger

http-request-logger

【问题讨论】:

    标签: javascript firefox firefox-addon xpi


    【解决方案1】:

    基本上你只是再次压缩东西(非 SDK 插件)。而您链接的那些插件是非 SDK 插件。

    但是有一些陷阱:

    • 扩展可能已经过数字签名,如META-INF 文件夹的存在所示。修改东西当然会使签名无效。只需删除该文件夹以使(修改后的)扩展名再次未签名。
    • 实际上,人们经常会拉上外部文件夹的拉链。 IE。生成的 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

    我建议您也阅读Setting up an extension development enviroment,尤其是关于代理文件的部分。 ;)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多