我看到enablePrivilege在Firefox中已被弃用。我正在尝试使我的Intranet代码库适应这一点。

最关键的地方是分配“树”元素的“视图”。这需要提升特权,尽管我真的不明白为什么。还有另一种不需要提升特权的方法吗?在enablePrivilege消失之前,会提供一种方法吗?

该应用程序不是扩展程序,而是作为内容运行的已签名的JAR文件。

最佳答案

通过bug 546848浏览,Mozilla不再计划允许具有更高特权的网站。此功能带来了根本不值得的安全风险(类似于远程XUL)。建议的解决方案将使用Firefox扩展来执行可能需要的任何特殊操作。理想情况下,您将整个Web应用程序UI移到扩展中,而仅将服务器留为后端。但是我想这种解决方案需要您付出过多的努力。一个简单的解决方案是单一用途的扩展程序,该扩展程序从您的网站接收消息并设置树形视图。

Interaction between privileged and non-privileged pages描述如何实现此通信。您的网站将在_myTreeView元素上设置属性<tree>并在其上调度事件。该扩展名将接收该事件,确认event.target.ownerDocument.defaultView.location.host是您的Intranet网站(重要的是,允许任何网站触发您的扩展名将是一个安全漏洞),然后设置event.target.view = event.target.wrappedJSObject._myTreeView。有关为何在此处需要wrappedJSObject的信息,请参见XPCNativeWrapper documentation

09-25 15:53