Firefox addon Firefox插件可与;jpm跑步;,但不是用“生成的.xpi文件”;jpm xpi“;

Firefox addon Firefox插件可与;jpm跑步;,但不是用“生成的.xpi文件”;jpm xpi“;,firefox-addon,firefox-addon-sdk,Firefox Addon,Firefox Addon Sdk,我正在使用开发Firefox插件。 我一直在关注这个问题 Firefox版本:41.0.2 我的过程是: jpm运行-->好,附加模块工作正常 jpm xpi-->确定:创建@myAddon.xpi(jpm[info]已成功创建.xpi at…) 使用@myAddon.xpi-->NOK 当我尝试在我的Firefox中安装插件时(addon->install from file->@myAddon.xpi),我收到一条消息“install successfully”。看起来不错。但是,附加组件不

我正在使用开发Firefox插件。 我一直在关注这个问题

Firefox版本:41.0.2
我的过程是:

  • jpm运行
    -->好,附加模块工作正常
  • jpm xpi
    -->确定:创建@myAddon.xpi(jpm[info]已成功创建.xpi at…)
  • 使用@myAddon.xpi-->NOK
    当我尝试在我的Firefox中安装插件时(addon->install from file->@myAddon.xpi),我收到一条消息“install successfully”。看起来不错。但是,附加组件不起作用。什么也没发生
  • 那么,为什么使用
    jpm运行的测试正常,但在安装
    .xpi
    文件后不起作用呢

    我可以和你分享代码,但是这种情况怎么会发生呢?如果它在测试中工作,我希望它在“发布”中工作。 我没有收到任何错误或警告

    高级别:

    Index.js: data/Compute.js 编辑(从评论中移动):

    我发现一些有趣的事。。。。取决于FireFox中的隐私级别,插件是否有效。(选项->隐私->历史记录“记住历史记录”或“永远记住历史记录”)-记住历史-->addOn OK-“永远记住历史记录”“-->addOn NOK您知道为什么吗?

    正如您所确定的,如果您希望您的Firefox Add-on SDK加载项在中工作,您需要在文件中添加值为
    true
    的密钥
    私人浏览

    如果不使用其他文件,可以在package.json文件中添加一行,如下所示:

    "permissions": {"private-browsing": true}
    
    该模式特别指出,当出现以下情况时,该方法将返回true(强调):

    • 私人窗口,或
    • 属于专用窗口的选项卡,或
    • 与托管在私有窗口中的文档关联的工作进程
    • 任何窗口、选项卡或工作程序,如果浏览器已配置为从不记住历史记录(选项->隐私->历史记录)
    如果您没有
    “私人浏览”:true
    ,则如下所示(强调我的):

    • 该模块不会列出任何专用浏览器窗口,不会为专用浏览器窗口生成任何事件,也不会让附加模块打开任何专用浏览器窗口
    • 该模块不会列出属于专用浏览器窗口的任何选项卡,并且加载项不会收到此类选项卡的任何事件
    • 任何组件都不会显示在专用浏览器窗口中
    • 使用创建的任何菜单或菜单项都不会显示在属于专用浏览器窗口的上下文菜单中
    • 该模块不会将内容脚本附加到属于专用浏览器窗口的文档
    • 如果活动窗口是专用浏览器窗口,则不会显示任何对象
    • 该模块将不包括在专用浏览器窗口中进行的任何选择
    当您使用的配置文件被配置为在您的package.json中没有
    “private browsing”:true
    权限的情况下永远记不住历史时,您的加载项将看起来无法工作


    如果确实将该权限放入package.json文件中,则必须使用私有浏览模块
    require(“sdk/private browsing”).isPrivate(object)
    ,以检查是否位于私有窗口或选项卡中。如果您在这样的窗口或选项卡中,则不需要存储有关此类环境的任何信息。

    我发现了一些有趣的东西。。。。取决于FireFox中的隐私级别,插件是否有效。(选项->隐私->历史记录“记住历史记录”或“永远记住历史记录”)-记住历史-->addOn OK-“永远记住历史记录”“-->addOn NOK知道为什么吗?代码片段看起来不错。将加载项上载到github并共享链接。@user5023028默认情况下,jpm加载项在专用模式下不工作。您必须向package.json添加密钥才能在私有模式下工作。谢谢。现在它使用的是:“permissions”:{“private browsing”:true},添加在package.json中。这个问题与主题无关,因为:它是一个调试问题,不包含诊断问题所需的信息。这些评论清楚地表明,问题在于package.json文件中未设置权限,而该文件未包含在问题中。因此,这个问题需要猜测未提供的信息。我之所以使用自定义原因,是因为它确实包含代码,而不是所有必需的代码。因此,人们很难看出它实际上是离题的。
    self.port.on('got-request', function (data) {
        console.log(data);
    });
    
    "permissions": {"private-browsing": true}