本文给出了关于如何为扩展开发配置Mozilla应用程序的建议.
开发配置
为了避免由于设置了开发相关的预定义选项导致的性能上的问题,以及避免破坏你的个人数据,建议你可以创建一个新的Profile,而不是使用默认的进行开发工作.
如果你使用-no-remote
参数启动Firefox,你可以用不同的Profile运行两个Firefox实例.例如,不管是否"正常"的Firefox是否运行,下面的命令将运行你的开发Profile(假设你的开发Profile命名为"dev").
start "" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -P dev
用默认的Profile允许Firefox通常仅仅是"firefox"或者"firefox -P default".
你可以使用Firefox稳定版本和开发版本来检查扩展的兼容性(Installing Firefox 3 or Minefield while keeping Firefox 2).
开发预定义选项
这些已定义参数使在低性能的情况下使调试更容易.
查看编辑配置文件关于设置预定义选项的信息.注意某些设置默认不存在与abount:config中.所以你需要创建一个新的(boolean)的项.
要这样做, 添加下面的代码行到你的Profile目录的 user.js
文件中,如果文件不存在,创建之:
user_pref("nglayout.debug.disable_xul_cache",true); user_pref("browser.dom.window.dump.enabled",true);
注意: 对于Firefox 版本 3.0"user.js" 已被 "prefs.js" 替换.
See below under "Development Profile" to setup a separate development profile before you make these changes.
- javascript.options.showInConsole = true. Logs errors in chrome files to the Error Console.
- nglayout.debug.disable_xul_cache = true. Disables the XUL cache so that changes to windows and dialogs do not require a restart. This assumes you're using directories rather than JARs. Changes to XUL overlays will still require reloading of the document overlaid.
- browser.dom.window.dump.enabled = true. Enables the use of the dump() statement to print to the standard console. See
window.dump
for more info. You can also usensIConsoleService
from privileged script. - javascript.options.strict = true. Enables strict JavaScript warnings in the Error Console. Note that since many people have this setting turned off when developing, you will see lots of warnings for problems with their code in addition to warnings for your own extension. You can filter those with Console2.
- extensions.logging.enabled = true. This will send more detailed information about installation and update problems to the Error Console.
开发扩展
这些扩展可以帮组你进行扩展开发.
- DOM 检查器, 自定义安装的一个选项.
- Venkman, 一个JavaScript 调试器.
- 扩展开发者的扩展
- Console2
- Chrome 清单
- Firebug
- Execute JS
- XPCOMViewer, 一个XPCOM 检查器
扩展开发目录设定
每次因遇到某些变更而不得不重新添加扩展部分的时候,以及,为了保护您的"扩展源文件"不受到卸载过程中被意外删除的风险,其实您可以把"扩展插件目录"从"标准用户配置目录"中移出到你自己想要的文件目录中进行开发。具体操作步骤如下:
- 找到扩展ID:从install.rdf中找到你的扩展ID号,install.rdf就安装在扩展插件的根目录中;
- 建立文件:在“用户配置目录/extensions/”目录下,用你的扩展插件ID号作为文件名新建一个文件。 (比如: `用户配置目录/extensions/{46D1B3C0-DB7A-4b1a-863A-6EE6F77ECB58}`) (找到你的用户配置目录所在位置),记得没有文件扩展名。(为了方便说明暂把这个文件称作“扩展外链定位文件” )
- 设定文件内容:“扩展外链定位文件”里要包含一个路径,这个路径是指向扩展程序的install.rdf所在目录的路径。(例如:`/full/path/to/yourExtension`. Windows用户注意,用大写书写驱动器名以及反斜杠而不是正斜杠,比如:`C:\full\path\to\yourExtension` Here is an example 'C:\sam\workspace\toolbar\helloWorldtoolbar\'). 在Firefox3中, 如果你是通过XPI包安装的扩展,`用户配置目录`下部分或者所有extensions.*的文件可能会被重新设置。虽然这些文件系统会自动重新生成的,还是备份一下先。
- 把“扩展外链定位文件”放在你的用户配置目录中的扩展目录(`用户配置目录/extension`)下,重启Firefox。
使用目录而非JAR
无论你是否选择将你的扩展 chrome打包成JAR或是目录,在目录下开发会更简单。如果你选择了一个用于分发的JAR,你仍然可以通过编辑chrome.manifest工作在目录形式下。比如下面的例子
content myExtension jar:chrome/myExtension.jar!/content/
不如
content myExtension chrome/content/