2016-06-18 36 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顏色#777777然後pref syncy將獲得相同的值(在about:config頁面上可見)。
當我使用2個Firefox配置文件並向Mozilla註冊以進行同步並在每個配置文件上安裝此插件時,我預計在一個配置文件上更改此值會在另一個配置文件上更改它(因此about:config - > extensions .test @ devname.org.syncy) - 但它沒有。
我該怎麼做?

回答

1

從有關條件的配置文件之間同步加載項:

目前,同步將同步插件符合以下條件:
- 是一個擴展或主題(即不是一個插件)
- 安裝在配置文件目錄
- 是否顯式安裝在用戶的Firefox
的 - 來自受信任的URI

安裝

我認爲問題在第四種情況。在開發過程中,您的插件無法用於Firefox。但在同一篇文章中,有旁路第四條件的一種變型的暗示:

爲什麼功能僅限於從addons.mozilla.org附加組件?
首先,這只是默認行爲。 services.sync.addons.trustedSourceHostnames首選項是以逗號分隔的列表,以允許其他受信任的主機名。

+0

謝謝!這似乎是一個好主意,但我試圖讓它改變這個由逗號分隔的可信源代碼字符串 - 但是我做錯了或者它沒有按預期工作。任何想法如何擴展字符串「addons.mozilla.org」? - >「addons.mozilla.org,???」 - 謝謝 – user1521685

相關問題