gpt4 book ai didi

firefox - 如何在 Firefox 中为所有页面元素实现内容转换器?

转载 作者:行者123 更新时间:2023-12-04 15:38:02 24 4
gpt4 key购买 nike

我正在尝试将 Internet Explorer 插件移植到 Firefox,但我不确定在哪里可以找到我需要的东西。

基本上我需要能够过滤浏览器接收到的具有特定 Content-Type header 的所有内容。我尝试实现一个流转换器,这有效,但仅适用于页面、框架或 iframe 中的顶级文档。我在使用 IE 时遇到了同样的问题,并且绕过它真的很麻烦,而且由于我理想情况下希望这是跨平台的,所以我真的希望能够在 Firefox 中做到这一点,而无需求助于 vtable hack。

内容以专有压缩格式压缩提供。所以我需要接收数据,解压缩,然后将 Content-Type 改回原始未压缩文件应具有的内容。

如果有一种方法可以过滤所有接收到的数据,那可能是可以接受的,我可以自己处理解析标题。

谢谢

最佳答案

我想我可能已经找到了我需要的东西。我遇到了这个用于跟踪 HTTP 调用的链接:http://blues.ath.cx/firekeeper/resources/http_tracer.html

由于某种原因,JavaScript 实现似乎存在一些问题,我不是 JavaScript 专家来解决这个问题,但我已经用 C++ 实现了它,初步结果表明我应该能够根据我的需要对其进行修改.

基本上,我们用我们自己的实现替换了 nsIHttpProtocolHandler 服务,它保留了对初始实现的引用。当调用服务时,我们只需将其代理到保存的原始实现。然后我们提供我们自己的 nsIHttpChannel 和 nsIStreamListener 实现,我们也将它们用作代理。

我们再次将大部分调用代理回原始处理程序。但是在 OnDataAvailable 中,我们没有将数据传递给底层的 nsIStreamListener,而是使用 nsIStorageStream 保存它。然后在 OnStopRequest 中,当我们得到所有数据后,我们可以解压它,然后在原始处理程序上调用 OnDataAvailable,然后调用 OnStopRequest。

到目前为止,它已经进行了一些小的简单测试,但我必须通过一些更严格的测试......我还必须弄清楚我是否可以用 HTTPS 做同样的事情。

我目前看到的最大问题是它依赖于一些未卡住的接口(interface),例如 nsIHttpChannelInternal。但据我所知,我无能为力,而且我的版本兼容性要求很小,所以如果必须的话,我可以忍受。

同时,如果有人有任何其他建议,我会全力以赴:D

关于firefox - 如何在 Firefox 中为所有页面元素实现内容转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1079115/

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