编辑现有的Firefox加载项

Luk*_*ich 3 firefox firefox-addon dom-inspector

对于我正在进行的其中一个项目,我必须使用DOM Inspector来调试Firefox扩展.

DOM检查器的问题在于它只向您显示代码下面的浏览器,没有办法分离浏览器或并排出代码部分或浏览器.

它对我不起作用,因为我正在调试的插件有一个大的xul叠加层,并且有问题的区域位于底部,所以没有物理方法来查看该区域的代码以及区域本身.

所以我决定修改DOM Inspector本身,将浏览器放在代码编辑器的一边.

以下是我采取的步骤:

  1. 从配置文件目录中获取现有的xpi文件.
  2. 将其改为拉链.
  3. 在里面并inspector.jar使用提取jar -xf <filename>
  4. 去了inspectorOverlay.xul,改成<vbox id="bxInspectorMain">了一个hbox.(这应该足以将这两个窗口水平放置.)
  5. 然后我使用重新创建jar文件jar cf.
  6. 压缩目录,确保名称相同,并将扩展名更改回xpi.

但是,当我尝试运行它时,我收到以下警告:

Warning: WARN addons.xpi: Add-on is invalid: [Exception... "Component returned failure code: 0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST) [nsIZipReader.getInputStream]"  nsresult: "0x80520006 (NS_ERROR_FILE_TARGET_DOES_NOT_EXIST)"  location: "JS frame :: resource://gre/modules/XPIProvider.jsm :: loadManifestFromZipReader :: line 740"  data: no]
Source File: resource://gre/modules/XPIProvider.jsm
Line: 740

Warning: WARN addons.xpi: Could not uninstall invalid item from locked install location
Source File: resource://gre/modules/XPIProvider.jsm
Line: 2042
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 我通常需要做些什么其他更改才能正确解释xpi?

Wla*_*ant 6

压缩目录,确保名称相同,并将扩展名更改回xpi.

我猜你在这一步做错了.查看源代码,消息来自方法updateMetadata()- Firefox注意到文件已更改并尝试install.rdf再次读入.该文件应位于XPI文件的顶层,但在您的情况下无法找到.install.rdf重新包装文件后,可能不再处于顶层.您可以使用以下unzip命令对其进行测试:

unzip -l inspector@mozilla.org.xpi
Run Code Online (Sandbox Code Playgroud)

它应该显示XPI文件的内容,包括install.rdfchrome.manifest- 没有任何前置目录名称.