我正在创建一个注册新协议的Firefox插件,该协议应该从存储在磁盘上的文件(由二进制exe生成)向Firefox提供HTML。
我对标签中的图像和(可能)引用本地文件的css样式有问题。它们没有正确加载,我在错误控制台中收到这样的消息:
安全错误:moz nullprincipal处的内容:{afde522e-6b29-4359-9959-c46c749687f6}可能无法加载或链接到文件:///E:/xowa_app/user/anymount/app/img/file/manify-clip.png。
我的协议标志:nsIProtocolHandler.URI_IS_LOCAL_FILE|nsIProtacolHandler.URI _IS_LOCAL_RESOURCE|nsIPProtocolHandleR.URI_STD|nsIPprotocolHandler.URI_INHERITS_CURITY_CONTEXT。(我不知道我是否正确理解MDN引用)
nsIProtocolHandler接口规范需要我在协议打开URI时实现创建新通道(MDN)的功能。我从位于磁盘上的URI(程序生成的html)创建了一个通道。通道具有"授予或拒绝特权"的所有者属性,我甚至将所有者设置为"通过所有安全检查"(MDN)的系统主体,但错误是相同的。
在我看来,仅仅删除URI_INHERITS_CURITY_CONTEXT标志(并将更改所有者留给系统主体)就解决了我的问题,尽管我不知道什么时候需要使用这个标志。