fix navigation errors being misreported lol professional grade software

This commit is contained in:
2026-07-26 15:12:47 -04:00
parent 3aff7caf2e
commit 7356cd8afd
2 changed files with 44 additions and 4 deletions

View File

@@ -296,7 +296,7 @@ An `EventEmitter` instance that emits the following events:
| `browser_connect` | `ws` | Browser connected |
| `browser_disconnect` | `{}` | Browser disconnected |
| `dom_ready` | `{ id, index, status, active, title, url, container }` | A tab finished loading |
| `dom_load_fail` | `{ id }` | A tab failed to load |
| `dom_load_fail` | `{ id, url, error }` | A tab failed to load (Network error, `<=400` code) |
| `web_request` | `{ id, url, status, origin, type, method, container, headers }` | A request was sent |
| `web_response` | `{ id, url, status, origin, type, method, container, body }` | A response was received |

View File

@@ -15,7 +15,7 @@ var proxy_map = {};
var web_response_whitelist = ["main_frame", "xmlhttprequest"];
const log_debug = true;
const log_debug = false;
browser.browserAction.setBadgeBackgroundColor({
color: [0, 0, 0, 0]
@@ -638,16 +638,56 @@ browser.tabs.onUpdated.addListener(function(tabid, event, tab){
}
});
browser.webRequest.onHeadersReceived.addListener(function(page){
if(page.type != "main_frame"){
return
};
// send error on 4xx code
if(page.statusCode >= 400){
send_event(
global_ws,
{
"action": "dom_load_fail",
"data": {
id: page.tabId,
url: page.url,
error: page.statusLine.trim()
}
}
);
}
},
{ urls: ["<all_urls>"] }
);
browser.webNavigation.onErrorOccurred.addListener(function(page){
if(connected === false){ return; }
if(
connected === false ||
// must be an error in parent frame
page.frameId !== 0 ||
// ignore HSTS error. See:
// https://bugzilla.mozilla.org/show_bug.cgi?id=1801326
page.error == "Error code 2152398850" ||
// page-load abort
page.error == "NS_BINDING_ABORTED"
){
return;
}
send_event(
global_ws,
{
"action": "dom_load_fail",
"data": {
id: page.tabId
id: page.tabId,
url: page.url,
error: page.error
}
}
);