在Firefox中,我可以从WebExtension枚举字体吗?如果可以,如何枚举?

在Firefox中,我可以从WebExtension枚举字体吗?如果可以,如何枚举?,firefox,firefox-addon-webextensions,Firefox,Firefox Addon Webextensions,用例,在Firefox(或其他浏览器)的WebExtension中,我想向用户展示一种自定义部分界面中使用的字体的方法。我想使用浏览器已经知道的字体,无论是安装在1)系统上,还是2)浏览器“字体缓存”(如果存在这种情况-例如,当使用CSS@font-face,local('font-Name')查找字体的本地缓存副本,或者在系统或其他地方) 在Firefox->Options->Content->Fonts&Color中,有一个Firefox在我的系统上找到的字体下拉选择。我怎样才能获得这个列表

用例,在Firefox(或其他浏览器)的WebExtension中,我想向用户展示一种自定义部分界面中使用的字体的方法。我想使用浏览器已经知道的字体,无论是安装在1)系统上,还是2)浏览器“字体缓存”(如果存在这种情况-例如,当使用CSS
@font-face
local('font-Name')
查找字体的本地缓存副本,或者在系统或其他地方)

在Firefox->Options->Content->Fonts&Color中,有一个Firefox在我的系统上找到的字体下拉选择。我怎样才能获得这个列表(以及关于它是serif、sans、mono还是其他系列的元信息)以用于WebExtension?这似乎是系统上安装的字体列表

我怎样才能将web字体存储在缓存中的某个地方(例如,以前由其他页面下载的web字体,就像Google fonts API那样)

我想使用元信息来过滤字体列表,白名单单或衬线字体是易读的

在任何人说“只需包含所有字体文件并使用CSS提供它们”之前,我只想说,虽然技术上可行且琐碎,但在法律上是不可能的,因为大多数系统字体都受到知识产权使用限制

在有人回答“好吧,那就只使用开放式字体吧”之前,我还想说,虽然我可能会提供一些开放式字体,但大多数开放式字体都很难看、难以辨认,或者不适合使用。许多受版权保护的专利闭源代码系统字体已经在系统上,外观更好,并且因系统而异。因此,我宁愿为特定平台上的人们提供字体选项,让他们熟悉和熟悉。这甚至可能包括外语字体,开放式字体目前严重缺乏


在任何人建议“我们去做你自己的多语言开放字体!!”之前,我想说我已经有了FontForge,为一种语言创建字体并不是一件小事,更不用说为所有语言创建字体了(即使我知道所有语言,以及每种语言中什么是吸引人的字体),虽然我已经黑了一些图标字体,所以我在技术上知道怎么做。

必须记住,浏览器积极对抗字体枚举,因为这是一个巨大的指纹识别机会。可能在Chrome扩展中:@Xan哦,我没有意识到这一点,所以这不是记忆的问题,而是学习的问题p解释了在Firefox中查找相关信息的困难。如果他们能在什么地方解释一下就好了。我将研究如何更新MDN Wiki。我想这给我留下了3个选择:1)根据我得到的任何平台细节做出通用字体列表假设(有问题),2)只安装web字体,这样每个人都有相同的字体(稍微难看),3)开发一种新的开放式字体(劳动密集型)。通过默默无闻实现安全是一个失败的概念,可惜我们为此付出了代价。@DanielHerr感谢您的推荐!也许一旦我运行了FirefoxWebExtensions版本,我就会移植到Chrome风格的WebExtensions。至少有一个浏览器会为用户定制字体。不幸的是,这项功能在Firefox的WebExtensions中似乎并不存在,可能是因为晦涩难懂而带来的安全性,可能是出于各种原因而做出的有意识的设计决定,或者只是还没有足够的时间来实现。我也遇到了同样的问题。但我的扩展主要适用于中文/日语。Web字体永远不会在这些语言上工作。所以,也许我会列出一个常见的,并根据它的计算大小做一个过滤器。(这太难看了)必须记住,浏览器积极对抗字体枚举,因为这是一个巨大的指纹识别机会。可能在Chrome扩展中:@Xan哦,我没有意识到这一点,所以这不是记忆的问题,而是学习的问题p解释了在Firefox中查找相关信息的困难。如果他们能在什么地方解释一下就好了。我将研究如何更新MDN Wiki。我想这给我留下了3个选择:1)根据我得到的任何平台细节做出通用字体列表假设(有问题),2)只安装web字体,这样每个人都有相同的字体(稍微难看),3)开发一种新的开放式字体(劳动密集型)。通过默默无闻实现安全是一个失败的概念,可惜我们为此付出了代价。@DanielHerr感谢您的推荐!也许一旦我运行了FirefoxWebExtensions版本,我就会移植到Chrome风格的WebExtensions。至少有一个浏览器会为用户定制字体。不幸的是,这项功能在Firefox的WebExtensions中似乎并不存在,可能是因为晦涩难懂而带来的安全性,可能是出于各种原因而做出的有意识的设计决定,或者只是还没有足够的时间来实现。我也遇到了同样的问题。但我的扩展主要适用于中文/日语。Web字体永远不会在这些语言上工作。所以,也许我会列出一个常见的,并根据它的计算大小做一个过滤器。(这太难看了)