在 Tor 浏览器中使用时不显示插件切换按钮图标

An addon's ToggleButton icon is not displayed when used in Tor browser

我对 Firefox (40) 和 Tor 浏览器 5.0.1 (Firefox 38.2.0) 中使用的插件的奇怪行为有疑问。目标是为两种环境都提供一个工作插件。

这个简单的示例是使用 jpm init 创建的,并稍作调整以突出显示 ToggleButton 问题。虽然 ToggleButton 及其图标通过 jpm run 在 Firefox 中显示得很好,但 Tor 似乎无法找到图标文件并且什么也不显示。为了在 Tor 中导入插件,我使用了 jpm xpi 并通过插件管理器安装了插件。

我当前的目录布局结构如下:

├── README.md
├── data
│   ├── skull-16.png
│   ├── skull-32.png
│   ├── skull-48.png
│   └── skull-64.png
├── icon.png
├── index.js
├── package.json
└── test
    └── test-index.js

这是 index.js 文件的内容:

const self = require('sdk/self');
const { ToggleButton } = require("sdk/ui/button/toggle");

// a dummy function, to show how tests work.
// to see how to test this function, look at test/test-index.js
function dummy(text, callback) {
    callback(text);
}

let button = ToggleButton({
    id: "skull-link",
    label: "Skull Master",
    icon: {
        "16": "./skull-16.png",
        "32": "./skull-32.png",
        "48": "./skull-48.png",
        "64": "./skull-64.png"
    },
    onChange: function() {
        console.log("toggle")
    },
    bagde: 0
});

exports.dummy = dummy;

没什么特别的,我刚刚添加了 ToggleButton 部分。 我没有发现 Firefox 38 和 40 中的 API 之间有任何冲突,所以我不知道什么可能会触发此行为。谢谢大家的帮助。

您可以在此处找到 zip 文件中的示例:sample addon

这其实很简单,但我花了很长时间才弄明白。我在postndm13's answer中找到了答案。如果你的插件在 Firefox 中工作但在 Tor 中没有问题,请附加

"permissions": {"private-browsing": true}

给你的package.json。 Tor 浏览器始终处于隐私浏览模式。