对于我正在从事的项目之一,我必须使用 DOM Inspector 来调试 Firefox 扩展。
DOM 检查器的问题在于,它只向您显示代码下方的浏览器,无法分离浏览器或并排显示代码部分或浏览器。
它对我不起作用,因为我正在调试的插件有一个很大的 xul 覆盖层,并且有问题的区域位于底部,因此没有物理方法可以查看该区域的代码以及该区域本身。
所以我决定修改 DOM Inspector 本身,将浏览器放置在代码编辑器的一侧。
以下是我采取的步骤:
- 从配置文件目录中获取现有的 xpi 文件。
- 改成zip了。
- 进去并提取
inspector.jar
using jar -xf <filename>
- Went to
inspectorOverlay.xul
并改变了<vbox id="bxInspectorMain">
成为一个 hbox。 (这应该足以水平放置这两个窗口。)
- 然后我使用重新创建了jar文件
jar cf
.
- 压缩目录,确保名称相同,并将扩展名更改回 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?
压缩目录,确保名称相同,并将扩展名更改回 xpi。
我猜你在这一步做错了什么。看着源代码 http://mxr.mozilla.org/mozilla-central/source/toolkit/mozapps/extensions/XPIProvider.jsm,消息来自方法updateMetadata()
- Firefox 注意到文件发生了变化并尝试读入install.rdf
再次。该文件应该位于 XPI 文件的顶层,但在您的情况下找不到它。或许install.rdf
重新打包文件后,不再位于顶层。您可以使用以下命令进行测试unzip
命令:
unzip -l [email protected] /cdn-cgi/l/email-protection
它应该显示 XPI 文件的内容,包括install.rdf
and chrome.manifest
- 没有任何前缀的目录名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)