1

我正在尝试开发一个浏览器扩展,当遇到错误情况时,它将增加基于铬的浏览器的弹性。

是否可以获得基于 chromium 的浏览器可能遇到的所有可能错误的列表,以及 chrome.webRequest.onErrorOccurred 由 * 触发的值?

我还注意到文档说由于错误代码可能会发生变化,因此不应将它们用于处理。鉴于我的扩展基于更改浏览器对某些错误条件的反应方式,那么传递这些字符串的替代方法是什么?

  • 到目前为止,我看到的一些示例是“net::ERR_ABORTED”、“net::ERR_EMPTY_RESPONSE”和“net::ERR_BLOCKED_BY_CLIENT”。我不确定“net::ERR_INTERUPTED”是否也是一个。
4

1 回答 1

3

这些错误是一个实现细节。如果您真的想了解更多关于错误代码以及设置错误代码的信息,请阅读 Chromium 的源代码(使用 C++ 编写)。

  • 该事件最终将由 OnErrorOccurred 调度:http ://cs.chromium.com/file:web_request_api.cc%20OnErrorOccurred
  • 所有可能的网络错误都在net/base/net_error_list.h中声明,使用以下宏

    #define NET_ERROR(label, value) ERR_ ## label = value,
    #include "net/base/net_error_list.h"
    #undef NET_ERROR
    

    在 webRequest API 中只能看到这个 NET_ERROR 列表的一个子集。如果您真的想知道会触发哪些错误,那么您必须遵循源代码中的所有代码路径(http://cs.chromium.org的源浏览器非常有用)。由于这些是实现细节,它们可以在未来的任何时候进行更改。

这些错误不能保证在未来保持稳定和一致,但由于缺乏替代品以及最常见的字符串多年来没有改变的事实,您必须使用它们。

于 2014-05-30T17:34:15.990 回答