3

我有一个网站,它使用了我开发的 Firefox 扩展中实现的一些功能。我的一个网页上的 JavaScript 脚本需要 UniversalXPConnect 权限才能与我的 Firefox 扩展中实现的 XPCOM 组件进行通信。

默认情况下,当我的脚本尝试启用此权限以访问 XPCOM 组件时:

netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

...发生以下错误:

错误:来自“ http://example.com ”的脚本被拒绝 UniversalXPConnect 权限。

要启用此权限,当前用户需要在“about:config”Firefox 页面中手动编辑“signed.applets.codebase_principal_support”设置。

从这个页面:http ://www.mozilla.org/projects/security/components/signed-scripts.html我了解到可以显式签署包含需要此权限的脚本的网页。在我签署我的脚本后,用户将不需要手动编辑上述设置。

网站托管在 Drupal CMS 下的 Linux 平台上。

如果您能给我详细的分步说明,我将非常感激我如何签署我的脚本(我应该下载哪些工具,如何创建证书等),以便在按照您的说明编辑 about:config设置将不是必需的。

4

2 回答 2

1

从 Firefox 16 开始,签署该脚本的可能性不大,因为对 UniversalXPconnect 的支持似乎已被删除,您现在应该使用附加组件来增加权限,尽管我不知道怎么做。https://bugzilla.mozilla.org/show_bug.cgi?id=546848

于 2012-09-08T20:16:23.160 回答
0

EnablePrivilege 在 Firefox 15 中被禁用,并将在 Firefox 17 中删除。

看看这个:

https://developer.mozilla.org/en-US/docs/Bypassing_Security_Restrictions_and_Signing_Code

于 2012-10-05T15:00:31.900 回答