[英]Firefox preferences not saved when browser is force quit (XPCOM/javascript)
使用Firefox扩展程序。 我试图从javascript设置首选项,并观察一些奇怪的行为。
about:config
立即看到更改。 但是,如果将Firefox强制终止(使用Ctrl + C),则不会保存首选项。 (在我的个人资料中看不到prefs.js
中的条目) about:config
切换选项(用于boolean)或使用标准的prefwindow prefpane来设置首选项时,即使我强制终止firefox,也将保存首选项。 如果正常关闭Firefox,一切正常。 但是我只是担心,如果发生强制退出(例如操作系统关闭或用户发送终止信号),那么用户首选项将会丢失!
这是一个自举插件,我在启动时设置了默认首选项。 我有事件侦听器来读取用户输入,并设置用户首选项。 例如:
const prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
prefs.setBoolPref("extensions.myextension.test.ffterminate", false);
我在这里做错什么了吗? 我应该使用存储而不是首选项分支吗?
编辑:在此上与Mozilla引发了一个错误: https ://bugzilla.mozilla.org/show_bug.cgi?id =981818
我在想您没有在默认分支上设置它。
这是在默认分支上设置首选项的方式,因此,重置首选项时,它不会自行删除,而是会使用此默认值。 我不知道为什么在浏览器上强制关闭其丢失的内容,但是尝试在默认分支上进行设置:
Services.ps.getDefaultBranch('my_branch_name')['setBoolPref']('myprefname', false);
您可能只是在非默认分支上设置,如下所示:
Services.ps.getBranch('my_branch_name')['setBoolPref']('myprefname', false);
注意:如果在非默认分支上已经设置了值,则设置默认值不会更改首选参数的当前值,只有重置后,首选参数才会变为该默认值。 因此,当您将默认设置设为默认值时,请不要感到困惑。 它仍然在工作。 它实际上确实更改了它,右键单击首选项,然后单击重置以查看它跳到默认设置的值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.