我正在尝试编写一个 Firefox 扩展来拦截某个 HTTP 请求并返回静态内容,而不会将请求发送到实际服务器(类似于 AdBlock)。
我查看了教程,并获得了基本的文件布局。我还发现我需要使用nsITraceableChannel API并添加一个观察者来做我想做的事情,我有示例代码。
问题是,我实际上将这段代码放在哪里?我的扩展程序何时实际加载和执行?它是在后台持续异步运行,还是按页面视图加载?
文档对此似乎不太清楚。这个扩展不需要 GUI,所以我不需要布局 XUL 文件(或者我需要吗?)。我尝试编写一些 XPCOM(我认为我做得不对)组件,将其注册,chrome.manifest
但它似乎没有运行。
谁能解释一下 Firefox 扩展是如何工作的,我应该把我的实际 JavaScript 代码放在哪里来监控请求?或者我是否完全了解扩展名有什么问题?附加组件、扩展和插件之间有区别吗?