2016-06-18 8 views
1

require('sdk/preferences/service')を使って自分のFirefoxアドオンの設定を同期したいと思います。FFのシンプルな設定を同期させる方法

ここでは私の非稼働トライアル: 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"]; 
    }); 
})(); 

ので、アドオンマネージャで、私は設定pref 1〜color#777777の場合、pref syncyは同じ値を取得します(about:configページに表示されます)。
2つのFirefoxプロファイルを使用してMozillaに登録して、これらのアドオンを同期させてインストールすると、1つのプロファイルでこの値を変更すると、それが別のプロファイルで変更されることが予想されます(about:config - > extensions .test @ devname.org.syncy) - しかしそれはしません。
どうすればいいですか?アドオンプロファイル間を同期させるための条件についてから

答えて

1

現在、同期アドオン以下の基準を満たして同期します:
は - 拡張機能やテーマ(すなわちないプラグイン)
- プロファイルディレクトリ
にインストールされている - Firefoxの
の内側に、ユーザが明示的にインストールされています - は、信頼できるURI

からインストールされています

第4条の問題だと思います。開発中にアドオンはFirefox用に信頼できません。しかし、同じ記事で、バイパス第四条件の可能な変形のヒントがあります:

なぜ機能Limitedはaddons.mozilla.orgからアドオンを追加することですか?
まず、これはデフォルトの動作です。 services.sync.addons.trustedSourceHostnames preferenceは、他の信頼できるホスト名を許可するカンマ区切りのリストです。

+0

ありがとうございました!これはいい考えですが、このコンマで区切られた信頼できるソースの文字列を変更しようとしましたが、間違っているか、期待どおりに動作していません。文字列 "addons.mozilla.org"をどのように拡張するかについての考え方はありますか? - > "addons.mozilla.org、???" - どうも – user1521685

関連する問題