2014-05-05 8 views
5

In welchem ​​Format deklarieren Sie, dass die Einstellungen eines Addons in Firefox-Installationen synchronisiert werden sollen? Ich sehe eine kurze description, die Sie erstellen sollten services.sync.prefs.sync.extension.frobnaz.foobar, aber wie sollte das in der package.json eingegeben werden, die die Präferenzen des Addons definiert? Zum Beispiel, sagen, dass ich eine Vorliebe dort definiert haben:Wie synchronisierst du die Einstellungen für das Firefox AddOn/Extension?

"preferences": [{"name": "show_xyz", 
       "type": "bool", 
       "title": "Show XYZ", 
       "value": true}] 

In Firefox about:config dies letztlich in die Präferenz extensions.<addon id>@jetpack.show_xyz übersetzt. Wie sollten also services.sync.prefs.sync.* Präferenzen erstellt werden?

Antwort

0

hier Dieser Typ Grease Prefs syncs, ich glaube, Sie können es verwenden: 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); 
} 
1

Sie haben mit dieser programmatisch zu beschäftigen, durch das preferences/service Modul.

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) 
});