我想在我的Firefox附加组件中运行我自己的可执行二进制文件(由C代码生成)与其他常规文件捆绑在一起。因为,它需要为此创建一个新流程,我想我应该使用htmlentities($text, ENT_COMPAT, 'UTF-8');
使用sdk/system/child_process
或本机OS API。
我的问题是,创建新流程会对附加发布流程产生负面影响吗?它违反了任何Mozilla的规则吗?
答案 0 :(得分:3)
创建新流程会对附加发布流程产生严重影响,但不会违反rules。
通过以如此低级别的方式与系统交互,您的插件将被标记为行政审查,这可能导致即使是微不足道的更新需要最多3个月才能获得批准。它肯定不会总是需要那么长时间(如果您向他们解释缓解情况,审核人员非常擅长通过审核来解决关键或安全性影响错误的评论)但对于典型的新版本,提交XPI之间可能需要几个月的时间。用于审核的文件,实际上已发送给用户。
目前,您可以通过在AMO生态系统之外托管附加组件来避免这种延迟,但在add-on signing requirements发挥作用后的下一个1-2个月内,这种情况会发生变化。他们说对非托管附加组件的评论会更快,我希望情况会如此,但即便如此,如果您希望定期进行自动化测试,需要进行人工审核可能是一个严重的问题和插件的部署过程。
如果Mozilla在今年晚些时候在这个领域做出进一步的改变以阻止他们的附加开发者社区的流失,我不会感到惊讶。特别是,即使不变的代码也会引发每次次要更新的审核需要,这似乎很疯狂。
至于你如何实现它,我之前没有使用过SDK,所以你的建议可能是最好的,但第三个选择是考虑使用XPCOM nsIProcess接口。我不再在我的附加组件中使用ctypes,但我希望标记为管理员审阅的方式与任何其他可能可行地启动可执行文件的方法相同。
就捆绑而言,这应该不是问题,但您需要向Mozilla提供源代码,以便确保它是安全的。