当网站使用内容策略安全时,如何在Firefox广告中使用字体?

时间:2015-08-12 12:05:10

标签: javascript css firefox-addon font-face content-security-policy

我开发了一个Firefox插件,允许用户修改网站的样式。他可以选择使用扩展名的字体。

内容策略安全性指定它不应干扰用户安装的浏览器加载项或扩展的操作: https://en.wikipedia.org/wiki/Content_Security_Policy#Browser_add-ons_and_extensions_exemption

当网站使用指令" font-src"内容安全策略不允许跨域字体,它不起作用。 我尝试通过此方法在附加组件的内容脚本上注入css:

var l = document.createElement('LINK');
l.rel = "stylesheet";
l.type = "text/css";
l.href = 'fontface.css';
this.head.appendChild(l);

或者通过这种方法:

 s = '@font-face {
font-family: 'customfont';
src: url(data:application/x-font-ttf;charset=utf-8;base64, ... ) format('truetype');
}';
newStyle = document.createElement("style");
newStyle.setAttribute("type", "text/css");
newStyle.appendChild(document.createTextNode(s));
document.getElementsByTagName('head')[0].appendChild(newStyle);

在这两种方法中,我都在使用firebug中的错误: "可下载字体:不允许下载({css code})"

当网站有CSP指令font-src时,是否可以在Firefox插件中使用自定义字体?怎么做?

1 个答案:

答案 0 :(得分:0)

尝试在包含您文件的路径上的contentaccessible=true文件中设置chrome.manifest,除非它的base64然后我不确定:https://gist.github.com/Noitidart/9406437#file-chrome-manifest-L1