为什么我的简单Firefox扩展现在拒绝运行?

时间:2015-01-13 18:10:38

标签: javascript firefox firefox-addon

我很难问这样一个基本问题,但我最终会陷入困境。

情况

  • 我正在使用32位Windows 7计算机,运行Firefox 34.0.5。

  • 我在目录C:\Projects\CloudGem\plugin中有一个简单的Firefox扩展。
    文件结构如下:

    CloudGem directory structure

  • 除了某些FF开发人员插件外,所有其他插件都被禁用。

  • 所有文件都经过UTF-8编码确认。

文件内容

cloudgem.js的两个实例的内容是:

window.addEventListener( "load", function() {
    setInterval( function() {
        console.log( "Cloudgem service started (2)." );
    }, 2000 );
}, false );

console.log( "Cloudgem service started (1)." );

cloudgem.xul的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE overlay>

<overlay id="cgem-scriptmount" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
    <script type="application/x-javascript" src="cloudgem.js" />
</overlay>

chrome.manifest的内容是:

# Content definitions.

content      cloudgem      chrome/content/


# Overlays.

overlay chrome://browser/content/browser.xul chrome://cloudgem/content/cloudgem.xul

install.rdf的内容是:

<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
    <Description about="urn:mozilla:install-manifest">
        <em:id>cloudgem@cloudgem.net</em:id>
        <em:version>1.0</em:version>
        <em:type>2</em:type>

        <!-- Target application this extension can install into, with minimum and maximum supported versions. -->
        <em:targetApplication>
            <Description>
                <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
                <em:minVersion>1.5</em:minVersion>
                <em:maxVersion>34.0.*</em:maxVersion>
            </Description>
        </em:targetApplication>

        <!-- Front end metadata. -->
        <em:name>CloudGem</em:name>
        <em:description>A description of GloudGem.</em:description>
        <em:creator>Me</em:creator>
        <em:homepageURL>http://cloudgem.net/</em:homepageURL>
    </Description>
</RDF>

cloudgem@cloudgem.net的内容是:

C:\Projects\CloudGem\plugin\

此文件的副本存在于我的Firefox开发者个人资料的extensions文件夹中。

发生了什么

  • Firefox似乎无问题地加载扩展程序。它出现在活动插件列表中。所有元数据都是正确的。

  • 在地址栏中运行chrome://cloudgem/content/cloudgem.xul按预期运行脚本,在控制台上生成消息。

  • 大约一个月前,我创建了另一个具有几乎相同结构的扩展。它已加载并且脚本按预期执行。

  • 现在的问题是代码无法运行。&gt; ____&lt;当Firefox启动时,它什么都不做。没有错误。控制台上没有消息。它只是坐在那里像一只愚蠢的狐狸,而不是运行我的代码。此外,我之前在一个月前工作的扩展程序也在启动时无法解释地停止运行。

我已经尝试了什么

  • 创建一个全新的开发者个人资料并在那里安装插件。同样的结果。

  • 更改控制台输出调用dump()调用,抛出异常,更改窗口标题等。结果相同。

  • 更改文件名称。同样的结果。

  • 迁移到其他计算机(这次运行Windows XP)。同样的结果。

  • 复制cloudgem.js文件夹中的components代码,并在XUL叠加层中将其作为脚本运行。这是一个黑客攻击,以回应FF没有在components文件夹中运行代码的事实。这两个代码都没有运行。

正如我所说,我完全没有想法。我不知道为什么这不是在浏览器启动时运行。从现在到一个月前,当代码工作时,我的系统上唯一的变化是对我的操作系统,Firefox和病毒检查程序的一些例行更新。禁用我的病毒检查程序(Avast)的“网络屏蔽”无法解决问题,并且病毒检查程序没有对插件发出任何明显的噪音。

有人可以提出解决方案吗?我在MDN文章中跑来跑去,一无所获。

提前非常感谢。

1 个答案:

答案 0 :(得分:1)

我认为您可能正在查看错误的控制台。附加组件输出信息到浏览器控制台。更一般的问题是如何在浏览器控制台上查看输出。

这不是那么明显,但你可以按照这两个步骤来做到这一点。

1)在位置栏中输入about:config,然后查找loop.debug.loglevel,将值更改为all,以确保记录所有输出。

Step1

您可能需要重新启动浏览器。

2)打开浏览器控制台,通过 Ctrl + Shift + j 或汉堡菜单 - &gt;开发者 - &gt;浏览器控制台。

Developer Console

应在那里打印消息。

Messages

相关问题