gpt4 book ai didi

google-chrome-extension - Firefox 扩展 .xpi 文件结构 : description, 内容、创建和安装

转载 作者:行者123 更新时间:2023-12-02 08:27:22 29 4
gpt4 key购买 nike

我花了很多东西来寻找一种简单的方法来开发 Firefox 扩展,但我无法创建一个扩展。请告诉我 Firefox 扩展的文件结构和安装扩展的简单方法。

最佳答案

.xpi file format ( Extension Packaging ).xpi用作 Mozilla(Firefox、Thunderbird 等)扩展的容器的文件只是 zip 文件,其文件扩展名已更改为 .xpi使用“deflate”压缩或未压缩将文件添加到存档中。如果您使用除“deflate”或“store”(未压缩)以外的任何其他类型的压缩,您将收到如下错误:

This add-on cannot be installed because it appears to be corrupted
文件从 zip 压缩存档的根目录开始(即没有包含文件的空的第一级目录)。
存档的内容可以是几个文件到任意数量的文件。必须包含的文件取决于您要打包的加载项的类型。如果您打算使用 Add-on SDK ,那么您可能不需要知道这些文件的格式,因为其中大部分是通过使用 jpm 抽象出来的。工具。如果您不知道我在说什么,您可能需要阅读 different typesadd-ons for Firefox ( WebExtensionsAdd-on SDKBootstrap/RestartlessOverlay/Legacy/XUL )。
网络扩展:
至少,您将有一个 manifest.json 文件来描述扩展。几乎可以肯定,您将拥有其他文件。在其他类型的附加组件中使用的 chrome.manifest、install.rdf 和 package.json 文件不会在 WebExtension 附加组件中使用。你不应该有这些文件。
附加SDK:
Firefox Add-on SDK 扩展的 .xpi 文件应通过执行 jpm xpi 创建。 .附加 SDK 扩展在 package.json 文件中进行了描述。当您运行时 jpm xpi您的附加组件被转换为 Bootstrap/Restartless 附加组件。这是通过将 package.json 文件转换为 install.rdf、创建 chrome.manifest 文件并向 JavaScript 添加一些包装器来完成的。您不应该尝试自己执行此过程,除非这样做是您的附加组件运行所必需的(这种情况很少见)。
Bootstrap/Restartless 和 Overlay/legacy:
至少,您有 install.rdf , 和 chrome.manifest文件。 Bootstrap/Restartless 附加组件也将有一个 bootstrap.js 文件。几乎总是会有额外的文件。这些类型的附加组件不使用 package.json,也不使用 manifest.json。
我非常简单的 Bootstrap/Restartless 扩展, Print Button is Print (将打印按钮更改为打印而不是打印预览),具有以下结构:
Archive contains:
bootstrap.js
chrome/
chrome/content/
chrome/content/options.xul
chrome/skin/
chrome/skin/printer-typeC128.png
chrome/skin/printer-typeC32.png
chrome/skin/printer-typeC48.png
chrome/skin/printer-typeC64.png
chrome.manifest
install.rdf
license.txt
Total 12 entries (42360 bytes)
  • 有需要的install.rdfchrome.manifest文件。
  • 文件bootstrap.js Bootstrap/Restartless 需要扩展名。它包含在安装、删除、启用、禁用扩展或 Firefox 启动或关闭时运行的代码。这个扩展非常简单,所有的 JavaScript 代码都包含在 bootstrap.js 中。
  • 有一个文件 chrome/content/options.xul,它是 options dialog 的 XUL 定义。 .
  • license.txt 只是说明扩展名是在 Mozilla Public License, v2.0 下发布的。 .
  • .png文件是此扩展程序在各种分辨率下的图标。

  • 创建 .xpi 文件
    您可以使用任何您想要的方法来创建 .zip 文件,该文件被重命名为 .xpi。请记住,支持的唯一压缩方法是“deflate”,但也可以将文件添加到未压缩的存档中。您的顶级文件(例如,您拥有的 manifest.json (WebExtensions) 或其他所有文件:chrome.manifest 和 install.rdf)应位于存档的根目录中,而不是位于子目录中。
    创建 .xpi文件我使用一个批处理文件,它使用了 DOS 和 Unix/Linux(实际上是 Cygwin)命令的组合:
    mkxpi.bat:
    rm -f PrintButtonIsPrint@makyen.foo.xpi
    zip -1 -r PrintButtonIsPrint@makyen.foo.xpi * -x@xpi.ignore
    pause
    这将删除 .xpi 的所有旧版本文件。然后它创建一个新的 .xpi文件使用, -1 , 最小压缩(访问速度比节省空间更重要),这强制仅存储未压缩或使用“放气”。新的 .xpi 将包含所有文件和子目录 * ,但忽略 xpi.ignore 文本文件 ( -x@xpi.ignore ) 中的所有文件。使用忽略文件是因为我在目录中有其他东西(例如 .git 目录, .bak 从编辑器自动创建的文件等)。曾经 .xpi文件被创建,脚本执行 pause所以我可以验证包含哪些文件,没有错误等,而不仅仅是让窗口消失并假设一切正常。
    我的 xpi.ignore 文件有点长,因为它积累了各种项目的残余物并且很少被清除:
    *.com
    *.class
    *.dll
    *.exe
    *.o
    *.so
    *.7z
    *.dmg
    *.gz
    *.iso
    *.jar
    *.rar
    *.tar
    *.zip
    *.log
    *.sql
    *.sqlite
    *.svg
    */.DS_Store
    */.DS_Store?
    */._*
    ._*
    */.Spotlight-V100
    .Spotlight-V100
    */.Trashes
    .Trashes
    */ehthumbs.db
    */Thumbs.db
    *.ORIG
    *.bak
    *OLD*
    OLD/*
    */OLD/*
    *.OLD
    *.OLD[0-9]
    */OLD/*
    */OLD[0-9]/*
    *.unknown
    *.unknown[0-9]
    *.updated
    *.updated[0-9]
    */Copy *
    */OLD
    */OLD*
    */OLD[0-9]
    */OLD[0-9][0-9]
    */test/*
    */not in xpi/*
    */tmp
    *.tmp
    */foo
    *.foo
    *checkpoint
    .git
    */.git
    .gitignore
    */.gitignore
    xpi.ignore
    mkclean.bat
    mkclean.bat.DONTRUN
    mkxpi.bat
    *.xpi
    */devtools-toolbox-window.ico
    */devtools-webconsole.ico
    */JSConsoleWindow.ico
    */main-window.ico
    */places.ico
    */viewSource.ico
    Installing extensions
    作为正常扩展:
    要将扩展作为普通附加组件安装到 Firefox 的品牌发行版或 Beta 版中,它必须是 signed by Mozilla .这是由 submitting it to AMO 完成的.您可以通过设置 xpinstall.signatures.required 将未签名的扩展作为普通附加组件安装到其他版本的 Firefox(例如 Firefox Developer EditionFirefox NightlyUnbranded Beta, or Unbranded Release )中至 falseabout:config .
    如果您选择,在 Firefox 的特定安装中,您可以完全禁用附加签名要求。更多信息可以看我的回答: How can I disable signature checking for Firefox add-ons?
    Installing an extension (即 .xpi 文件)可以很简单,只需将其拖放到运行您希望安装它的配置文件的 Firefox 窗口上即可。对于 development/testing ,您可以使用 Firefox extension proxy file 将扩展名放在本地驱动器上的目录中。 (在配置文件的扩展目录中创建一个名为 <em:id>(在 install.rdf 中用于 Bootstrap/Restartless 和 Overlay/Legacy)的文件,其中包含一行,其中包含包含扩展文件的目录的完整路径)。根据您的目标(一个配置文件、所有配置文件、所有用户、哪个操作系统等),还有其他关于如何 install extensions 的选项。 .
    temporary add-ons :
    唯一不能作为临时插件安装的扩展类型是覆盖/传统。此类扩展需要在安装后重新启动浏览器才能运行。因此,它们不能是暂时的。
    要将扩展安装为临时扩展,请导航至 about:debugging .在该页面中,单击“加载临时加载项”,然后将弹出窗口导航到相应的文件夹并选择 .xpi 文件或目录中的任何文件。如果您选择的文件不是 .xpi 文件,则假定该目录包含将自动识别的解压附加文件。

    关于google-chrome-extension - Firefox 扩展 .xpi 文件结构 : description, 内容、创建和安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865644/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com