Firefox addon Firefox扩展-chrome和资源协议的区别?

Firefox addon Firefox扩展-chrome和资源协议的区别?,firefox-addon,Firefox Addon,加载扩展脚本时,Firefox扩展中的“chrome://”、“resource://”和“file://”协议有什么区别?与具体问题无关,只是想找出不同之处。 chrome:首先是一种抽象,因为所有chrome:URI都由另一个URI支持,例如file:或jar:URI。chrome:协议还附加了一些特定的协议标志,这些标志定义了对安全性非常重要的某些方面(例如,如果允许http:重定向到chrome:,等等)。最后,chrome:分为内容,皮肤,locale每个注册的包名(三件事的总和),其

加载扩展脚本时,Firefox扩展中的“chrome://”、“resource://”和“file://”协议有什么区别?与具体问题无关,只是想找出不同之处。

  • chrome:
    首先是一种抽象,因为所有
    chrome:
    URI都由另一个URI支持,例如
    file:
    jar:
    URI。
    chrome:
    协议还附加了一些特定的协议标志,这些标志定义了对安全性非常重要的某些方面(例如,如果允许
    http:
    重定向到
    chrome:
    ,等等)。最后,
    chrome:
    分为
    内容
    皮肤
    locale
    每个注册的包名(三件事的总和),其中
    skin
    locale
    是特殊的,它们将自动解析为与当前skin和locale的最佳匹配(magic)。还有一些机制明确检查
    chrome:
    协议并拒绝其他协议
  • resource:
    chrome:
    非常相似,但没有那么神奇(没有
    skin
    /
    locale
    东西,…),只是一个简单的替代品
  • file:
    uri只是普通的file:uri
由于历史原因,js代码模块通常从
资源:
uri加载(大多数
资源:
uri用于加载js代码模块),因为模块加载程序仅支持该协议。另外,包括SDK插件在内的无重启插件(内部)利用了
资源:
URI,因为在Firefox 8之前,无重启插件甚至无法正确注册
chrome:
软件包

但是,现在您还可以从
chrome:
加载js代码模块,因为模块加载程序和无重启加载项都支持
chrome:
uri。 因此,除了遗留/兼容性原因之外,实际上没有太多需要继续使用或甚至必须从
资源:
协议开始