如何同步FF simple-prefs

时间:2016-06-18 19:06:32

标签: synchronization firefox-addon firefox-addon-sdk

我想使用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) - 但它没有 我做错了什么?

1 个答案:

答案 0 :(得分:1)

Mozilla Wiki开始,关于在配置文件之间同步加载项的条件:

  

目前,Sync会同步符合以下条件的附加组件:
   - 是扩展名还是主题(即不是插件)
   - 安装在配置文件目录中    - 用户在Firefox中明确安装    - 从可信URI安装

我认为问题在第4个条件。在开发过程中,您的插件无法被Firefox信任。但在同一篇文章中,有一个旁路第四个条件的可能变体的暗示:

  

为什么功能受限于addons.mozilla.org的附加组件?
  首先,这只是默认行为。 services.sync.addons.trustedSourceHostnames 首选项是逗号分隔的列表,以允许其他可信主机名。