summaryrefslogtreecommitdiffstats
path: root/dom/serviceworkers/test/console_monitor.js
diff options
context:
space:
mode:
Diffstat (limited to 'dom/serviceworkers/test/console_monitor.js')
-rw-r--r--dom/serviceworkers/test/console_monitor.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/dom/serviceworkers/test/console_monitor.js b/dom/serviceworkers/test/console_monitor.js
new file mode 100644
index 0000000000..099feb646d
--- /dev/null
+++ b/dom/serviceworkers/test/console_monitor.js
@@ -0,0 +1,44 @@
+/* eslint-env mozilla/chrome-script */
+
+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", {});
+});