我正在尝试开发一个浏览器扩展,当遇到错误条件时,它将增加基于chrome的浏览器的弹性。
是否有可能获得基于chrome的浏览器可能遇到的所有可能错误的列表,以及由*触发的chrome.webRequest.onErrorOccurred的值?
我还注意到文档中说,由于错误代码可能会更改,因此不应该将它们用于处理。考虑到我的扩展是基于改变浏览器对某些错误条件的反应,传递这些字符串的替代方案是什么?
- 到目前为止,我看到的一些例子是"net::ERR_ABORTED", "net::ERR_EMPTY_RESPONSE"one_answers"net::ERR_BLOCKED_BY_CLIENT"。我不确定是否"net:: err_interrupted "也是一个。
这些错误是一个实现细节。如果您真的想了解更多关于错误码的信息,以及它们何时被设置,请阅读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
只有NET_ERRORs列表的一个子集在webRequest API中是可见的。如果您真的想知道哪些错误将被触发,那么您必须跟踪源代码中的所有代码路径(http://cs.chromium.org上的源浏览器非常有用)。由于这些是实现细节,它们可以在未来的任何时候更改。
这些错误不能保证在将来是稳定和一致的,但是由于缺乏替代方法,并且大多数常见的字符串多年来都没有改变,因此您必须使用它们。