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

COT*_*OTO 5 javascript firefox firefox-addon

我很难问这样一个基本问题,但是我的智慧结束了.

情况

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

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

    CloudGem目录结构

  • 除某些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)." );
Run Code Online (Sandbox Code Playgroud)

内容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>
Run Code Online (Sandbox Code Playgroud)

内容chrome.manifest是:

# Content definitions.

content      cloudgem      chrome/content/


# Overlays.

overlay chrome://browser/content/browser.xul chrome://cloudgem/content/cloudgem.xul
Run Code Online (Sandbox Code Playgroud)

内容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>
Run Code Online (Sandbox Code Playgroud)

内容cloudgem@cloudgem.net是:

C:\Projects\CloudGem\plugin\
Run Code Online (Sandbox Code Playgroud)

extensions我的Firefox开发人员配置文件的文件夹中存在此文件的副本.

怎么了

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

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

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

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

我已经尝试过的东西

  • 创建一个全新的开发人员配置文件并在那里安装插件.结果相同.

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

  • 更改文件的名称.结果相同.

  • 迁移到另一台计算机(这次运行Windows XP).结果相同.

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

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

谁有人建议解决方案?我在MDN文章中跑来跑去,一无所获.

非常感谢提前.

lpi*_*ora 1

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

虽然不是那么明显,但您可以按照这两个步骤来完成。

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

步骤1

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

2) 通过Ctrl+ Shift+j或汉堡菜单 -> 开发人员 -> 浏览器控制台打开浏览器控制台。

开发者控制台

消息应该打印在那里。

留言