我想使用require('sdk/preferences/service')
同步我的Firefox插件的设置。
这是我的非工作试验: 的的package.json:
{
"title": "Test",
"name": "test",
"author": "devname",
"version": "1.0.0",
"main": "lib/main.js",
"engines": {"firefox": ">=38.0a1","fennec": ">=38.0a1"},
"license": "MPL-2.0",
"id": "test@devname.org",
"permissions": {"private-browsing": true},
"dependencies": ["addon-kit"],
"preferences": [{
"title": "Color 1",
"type": "color",
"value": "#000000",
"name": "1"
}]}
LIB / main.js:
const
addonid = require('sdk/self').id,
simprefs = require('sdk/simple-prefs'),
simstore = require('sdk/simple-storage'),
service = require('sdk/preferences/service'),
store = simstore.storage
;
service.set('services.sync.prefs.sync.extensions.' + addonid + '.syncy', true);
simprefs.on('1', function() {
simprefs.prefs["syncy"] = simprefs.prefs["1"];
});
})();
因此,当在Addon-Manager中我将pref 1设置为color#777777时,pref syncy将获得相同的值(在about:config页面上可见)。
当我使用2个Firefox配置文件并注册Mozilla进行同步并在每个配置文件上安装此附加组件时,我希望在一个配置文件上更改此值会在另一个配置文件上更改它(因此有关about:config - >扩展名的设置)。 test@devname.org.syncy) - 但它没有
我做错了什么?
答案 0 :(得分:1)
从Mozilla Wiki开始,关于在配置文件之间同步加载项的条件:
目前,Sync会同步符合以下条件的附加组件:
- 是扩展名还是主题(即不是插件)
- 安装在配置文件目录中 - 用户在Firefox中明确安装 - 从可信URI安装
我认为问题在第4个条件。在开发过程中,您的插件无法被Firefox信任。但在同一篇文章中,有一个旁路第四个条件的可能变体的暗示:
为什么功能受限于addons.mozilla.org的附加组件?
首先,这只是默认行为。 services.sync.addons.trustedSourceHostnames 首选项是逗号分隔的列表,以允许其他可信主机名。