electron 添加新的协议拦截器,允许委托给URLRequestHttpJob,

7fhtutme  于 3个月前  发布在  Electron
关注(0)|答案(4)|浏览(57)

您的功能请求是否与问题相关?请描述。

作为一个electron的用户,我希望能够拦截http请求并可选地发送响应回来。如果我不选择发送响应,我希望它由chrome的网络堆栈处理。

描述您希望实现的解决方案

我希望添加一个新的协议,如interceptFooProtocol,它具有以下特点:

  • 在请求任务的各个点调用处理程序(在请求开始时、在构建了头之后、在接收到头之后等)
  • 允许为任务提供可选的http响应
  • 如果没有提供http响应,则委托给chrome的URLRequestHttpJob
    描述您考虑过的替代方案
  • 使用interceptStreamProtocol并使用node网络堆栈
  • 这个问题在于URLRequestHttpJob在幕后做了很多工作,虽然用js重写它是可能的,但需要很多工作。除了其他事情之外,它还会添加头、管理cookies和检查ssl证书的固定。
  • 另一个问题是,由于interceptStreamProtocol出现bug时仍然需要通过electron进行修复,而不是调用URLRequestHttpJob并知道它将像chrome一样被处理。
  • 使用WebRequest进行拦截
  • 据我所知,这只能让你检查请求或取消它,而不能提供http响应。
    附加上下文
  • 这将有助于实现offline support to nativefier
  • 我也一直在与Ryan Patterson讨论这个问题,他正在研究chronicler(cc @CGamesPlay)
7rtdyuoh

7rtdyuoh1#

如果大家对这个的外观达成一致意见,我将乐意尝试制作一个PR。

s5a0g9ez

s5a0g9ez3#

这可能是重复的问题?

0x6upsns

0x6upsns4#

我也这么认为。

相关问题