зеркало из https://github.com/mozilla/gecko-dev.git
45 строки
1.1 KiB
JavaScript
45 строки
1.1 KiB
JavaScript
const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm");
|
|
|
|
let consoleListener;
|
|
|
|
function ConsoleListener() {
|
|
Services.console.registerListener(this);
|
|
}
|
|
|
|
ConsoleListener.prototype = {
|
|
callbacks: [],
|
|
|
|
observe: aMsg => {
|
|
if (!(aMsg instanceof Ci.nsIScriptError)) {
|
|
return;
|
|
}
|
|
|
|
let msg = {
|
|
cssSelectors: aMsg.cssSelectors,
|
|
errorMessage: aMsg.errorMessage,
|
|
sourceName: aMsg.sourceName,
|
|
sourceLine: aMsg.sourceLine,
|
|
lineNumber: aMsg.lineNumber,
|
|
columnNumber: aMsg.columnNumber,
|
|
category: aMsg.category,
|
|
windowID: aMsg.outerWindowID,
|
|
innerWindowID: aMsg.innerWindowID,
|
|
isScriptError: true,
|
|
isWarning: (aMsg.flags & Ci.nsIScriptError.warningFlag) === 1,
|
|
};
|
|
|
|
sendAsyncMessage("monitor", msg);
|
|
},
|
|
};
|
|
|
|
addMessageListener("load", function(e) {
|
|
consoleListener = new ConsoleListener();
|
|
sendAsyncMessage("ready", {});
|
|
});
|
|
|
|
addMessageListener("unload", function(e) {
|
|
Services.console.unregisterListener(consoleListener);
|
|
consoleListener = null;
|
|
sendAsyncMessage("unloaded", {});
|
|
});
|