我在这个分支上创建了一个新分支和pref:
var _branchLive = Services.prefs.getBranch('extensions.rawr@jetpack.');
var _branchDefault = Services.prefs.getDefaultBranch('extensions.rawr@jetpack.');
_branchDefault.setBoolPref('mypref', true);
_branchLive.setBoolPref('mypref', true);
然而,在重新启动浏览器后,pref将被删除。
答案 0 :(得分:1)
您正在错误地设置默认分支。
var _branchDefault = Services.prefs.getDefaultBranch(null);
_branchDefault.setBoolPref('extensions.rawr@jetpack.mypref', true);
<强>更新强>
正常的过程是加载项在每次启动时设置默认的pref(在覆盖加载项中通过/defaults/preferences/pref.js
或在引导加载项的情况下手动设置)。
除非更改了值,否则Firefox会使用这些默认值,然后Firefox会将更改后的值保存在about:config
因此,在关闭时,只会保存更改的值(由用户通过附加组件的选项或附加组件本身)。
在您的情况下,默认值和设置值相同,因此不会更改任何内容。
试试这个,看看:
// set the default value
var _branchDefault = Services.prefs.getDefaultBranch(null);
_branchDefault.setBoolPref('extensions.rawr@jetpack.mypref', true);
// change the value via addon
var _branchLive = Services.prefs.getBranch('extensions.rawr@jetpack.');
_branchLive.setBoolPref('mypref', false);