2016-06-18 17 views
1

Ich möchte die Einstellungen meines Firefox-Addons mit require('sdk/preferences/service') synchronisieren.So synchronisieren Sie FF simple-prefs

Hier meine Nicht-Arbeits Studie: 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": "[email protected]", 
    "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"]; 
    }); 
})(); 

Also, wenn in dem Addon-Manager-I gesetzt pref 1 to color # 777777 dann pref syncy erhält den gleichen Wert (sichtbar auf der Seite about: config).
Wenn ich 2 Firefox-Profile verwende und mich bei Mozilla für die Synchronisierung anmelde und dieses Add-on auf jedem von ihnen installiere, erwarte ich, dass sich die Änderung auf einem Profil auf der anderen ändert (also die Einstellung auf about: config -> extensions .test @ devname.org.syncy) - aber das tut es nicht.
Was mache ich falsch?

Antwort

1

Von über Bedingungen Add-ons zwischen den Profilen zu synchronisieren:

Derzeit Sync synchronisiert Add-ons, die die folgenden Kriterien erfüllen:
- Ist eine Erweiterung oder ein Thema (dh kein Plugin)
- Ist im Profilverzeichnis
installiert -
explizit durch den Benutzer innerhalb von Firefox installiert ist - von einer vertrauenswürdigen URI

installiert ist

Ich denke, Problem in der 4. Bedingung. Während der Entwicklung kann dein Addon nicht für Firefox verwendet werden. Aber im selben Artikel gibt es einen Hinweis auf eine mögliche Variante der Bypass 4. Bedingung:

Warum Funktionalität Begrenzt auf Add-ons von addons.mozilla.org?
Zuerst ist dies nur das Standardverhalten. Die services.sync.addons.trustedSourceHostnames Voreinstellung ist eine durch Kommas getrennte Liste, um andere vertrauenswürdige Hostnamen zuzulassen.

+0

danke! Dies scheint eine gute Idee zu sein, aber ich habe versucht, es mit der Änderung dieser durch Komma getrennten Zeichenfolge von vertrauenswürdigen Quellen zu arbeiten - aber entweder mache ich es falsch oder es funktioniert nicht wie erwartet. Irgendeine Idee, wie man die Zeichenkette "addons.mozilla.org" erweitert? -> "addons.mozilla.org, ???" - Danke – user1521685