3

对于我正在处理的项目之一,我必须使用 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 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

我的问题是 - 我通常需要进行哪些其他更改才能正确解释 xpi?

4

2 回答 2

7

Zipped the directory making sure that the name is the same and changed extension back to xpi.

I guess that you did something wrong in this step. Looking at the source code, the message comes from method updateMetadata() - Firefox noticed that the file changed and tries to read in install.rdf again. That file should be at the top level of the XPI file but in your case it cannot be found. Maybe install.rdf is no longer at the top level after you repacked the file. You can test it with the unzip command:

unzip -l inspector@mozilla.org.xpi

It should show the contents of the XPI file, including install.rdf and chrome.manifest - without any prepended directory name.

于 2011-09-16T06:57:49.387 回答
4

@Luka,我猜弗拉基米尔帕兰特是正确的。为了避免在修改现有项目的源代码时出错,我建议你在工作环境中工作。

编辑源代码的建议方法:

  1. 安装 Eclipse
  2. 安装 Xul 助推器(项目/文档
  3. 从 FF 配置文件中提取您的恶意代码。
  4. 检查您提取的 .Zippy 文件(FF 扩展名)中给出的主文件夹和子文件夹的名称。
  5. 在 XUL booster 环境下在 Eclipse 中创建一个新项目:请使用您的 FF 扩展主文件夹和子文件夹的相同名称。
  6. 然后,将提取的文件复制粘贴到 Eclipse 中的 XUL 项目中。
  7. 修改您的代码并提取为 .XPi 文件并安装在您的 FF 浏览器中。

这样您就可以避免任何类型的错误,因为所有内容都会自动分类(Chrome 文件夹、清单、install.rdf、did dies 等)。

注意:有一种修改源代码的高级方法,FF 浏览器将通过在您的 FF 扩展配置文件文件夹中设置环境来自动检测您的源代码的修改。

  1. 创建一个 bat 文件并找到您的项目文件夹路径并在 FF 扩展配置文件文件夹中输入您的扩展 ID。(指导
于 2011-09-16T09:02:46.207 回答