Files
sousa-gecko/remote/shared/RemoteError.sys.mjs
T
Julian Descottes f17fd940e9 Bug 1914407 - [bidi] Succeed browsingContext.navigate if NS_BINDING_ABORTED is received after navigationCommitted r=webdriver-reviewers,whimboo
The browsingContext awaitNavigation logic will now succeed navigation commands if navigationCommitted was already received and the navigation failed due to a NS_BINDING_ABORTED error.

The navigation manager introduces a committed flag on the navigation object to track whether we received the navigationCommitted event or not.
The Navigate helper will create a NavigationError - also added in this patch - in case of a failing navigation. This error object provides a getter in order to know if it was generated because of a NS_BINDING_ABORTED error.

Depends on D226770

Differential Revision: https://phabricator.services.mozilla.com/D262921
2025-09-08 15:27:30 +00:00

40 lines
823 B
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
/**
* Base class for all remote protocol errors.
*/
export class RemoteError extends Error {
get isRemoteError() {
return true;
}
/**
* Convert to a serializable object. Should be implemented by subclasses.
*/
toJSON() {
throw new Error("Not implemented");
}
}
/**
* Internal class for navigation errors.
*/
export class NavigationError extends Error {
#status;
constructor(errorName, status) {
super(errorName);
this.#status = status;
}
get isNavigationError() {
return true;
}
get isBindingAborted() {
return this.#status == Cr.NS_BINDING_ABORTED;
}
}