gpt4 book ai didi

firefox-addon - Firefox附加sdk是否允许直接修改http响应字节流?

转载 作者:行者123 更新时间:2023-12-02 13:47:50 26 4
gpt4 key购买 nike

我正在开展一个项目,我打算将其作为自己的学术练习。我基本上所做的就是尝试在 IIS 服务器和 Web 浏览器之间添加自定义压缩类型,但陷入了浏览器方面的困境。基本上需要的是能够在将字节流发送到客户端之前更改服务器上的字节流,并且在客户端浏览器端能够在其他正常 DOM 解析等发生之前更改接收到的响应字节流。在服务器端,这被证明是非常微不足道的,但我不知道如何在 Chrome 或 Firefox 中执行此操作。如果有人对 chrome 有见解,请分享,但我现在将重点关注 Firefox。我的理解是,以前 Firefox 对扩展程序的访问级别相当低,但他们正在通过 Firefox 附加 sdk 稍微收紧限制。如果旧方法将被删除,我不想费心学习它们,所以有人明确知道附加 SDK 是否允许您以这种方式直接更改字节流?如果是这样,您有此类用法的示例吗?

(我知道我需要与 Accept-Encoding header 协商压缩)

最佳答案

I don't want to bother learning the old methods if they are slated to be removed

现在或将来都没有计划删除旧版附加组件支持。至少附加 SDK 人员和扩展管理器人员反复告诉我的是这样的。

回到你的问题:附加 SDK 没有为此类内容提供显式 API,但你始终可以进入更低级别,甚至在 SDK 中也是如此(通过 chrome 模块和/或 window/utils )。

要实现其他压缩方法,您需要实现 nsIStreamConverter 接口(interface)并在 @mozilla.org/streamconv;1@?from=<yourcompression>&to=uncompressed 合约下正确注册您的组件。那么 Firefox 应该能够解码 yourcompression

  • 有关如何使用 JavaScript 或 C++ 实现和注册 XPCOM 组件的详细信息,请参阅 https://developer.mozilla.org/
  • 使用 SDK 或实现无需重新启动的插件将需要您自行注册组件,而不是依赖 chrome.manifest。已经有几个附加组件这样做了,例如Adblock Plus
  • 应避免使用二进制 (C++) 组件,因为您显然需要为每个受支持的平台编译组件,并且需要为每个 Gecko 版本重新编译它。如果您必须采用二进制,则 JavaScript 组件 stub + js-ctypes 可能会更好。
  • 首先请参阅 mozilla 源代码,了解如何获取 implement nsIStreamConverter

您可能还需要修改 network.http.accept-encoding 首选项,以便可以实际与服务器协商压缩。

关于firefox-addon - Firefox附加sdk是否允许直接修改http响应字节流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18201785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com