Files

57 lines
1.2 KiB
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/. */
const lazy = {};
ChromeUtils.defineLazyGetter(lazy, "nssErrorsService", () =>
Cc["@mozilla.org/nss_errors_service;1"].getService(Ci.nsINSSErrorsService)
);
/**
* 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;
}
get isCertError() {
try {
return (
lazy.nssErrorsService.getErrorClass(this.#status) ===
Ci.nsINSSErrorsService.ERROR_CLASS_BAD_CERT
);
} catch {}
return false;
}
}