声明插件的首选项应该在firefox安装中同步的格式是什么?我看到你应该创建一个简短的description services.sync.prefs.sync.extension.frobnaz.foobar
,但应该如何在定义插件首选项的package.json中输入?例如,假设我在那里定义了一个偏好:
"preferences": [{"name": "show_xyz",
"type": "bool",
"title": "Show XYZ",
"value": true}]
在firefox的about:config
中,这最终会被转换为首选项extensions.<addon id>@jetpack.show_xyz
。那么应该如何创建services.sync.prefs.sync.*
首选项?
答案 0 :(得分:1)
您必须通过preferences/service
模块以编程方式处理此问题。
var ps = require('sdk/preferences/service');
var addonid = require('sdk/self').id;
var simpleprefs = ps.keys('extensions.' + addonid);
simpleprefs.forEach(function(prefname){
ps.set('services.sync.prefs.sync.extensions.' + addonid + '.' + prefname, true)
});
答案 1 :(得分:0)
这个家伙在这里同步greasemonkey prefs,我想你可以使用它: https://gist.github.com/LouCypher/3193779
var prefs = Services.prefs;
var prefArray = prefs.getChildList("greasemonkey.scriptvals", {});
for (var i = 0; i < prefArray.length; i++) {
prefs.setBoolPref("services.sync.prefs.sync." + prefArray[i], true);
}