我正在尝试开发一个浏览器扩展程序,以便在遇到错误情况时提高基于铬的浏览器的弹性。
是否可以获取基于铬的浏览器可能遇到的所有可能错误的列表,以及由*触发chrome.webRequest.onErrorOccurred的值?
我还注意到文档说由于错误代码可能会发生变化,因此不应将它们用于处理。鉴于我的扩展是基于改变浏览器对某些错误条件的反应而预测的,传递这些字符串的替代方法是什么?
答案 0 :(得分:3)
这些错误是一个实现细节。如果您真的想要了解有关错误代码的更多信息以及何时设置错误代码,请阅读Chromium的源代码(使用C ++)。
使用net/base/net_error_list.h在following macro中声明所有可能的网络错误:
#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处的源浏览器非常有帮助)。由于这些是实施细节,因此可以在将来的任何时候进行更改。
这些错误保证在将来不会保持稳定和一致,但由于缺乏替代方案以及最常见的字符串多年未发生变化这一事实,您必须使用它们。