getPanelTitle: function WC_getPanelTitle() { let url = this.ui ? this.ui.contentLocation : ""; return l10n.getFormatStr("webConsoleWindowTitleAndURL", [url]); },
/** * Transforms a packet from Firefox RDP structure to Chrome RDP structure. */ function transformPacket(packet) { if (packet._type) { packet = convertCachedPacket(packet); } switch (packet.type) { case "consoleAPICall": { let { message } = packet; let parameters = message.arguments; let type = message.level; let level = getLevelFromType(type); let messageText = null; const timer = message.timer; // Special per-type conversion. switch (type) { case "clear": // We show a message to users when calls console.clear() is called. parameters = [l10n.getStr("consoleCleared")]; break; case "count": // Chrome RDP doesn't have a special type for count. type = MESSAGE_TYPE.LOG; let {counter} = message; let label = counter.label ? counter.label : l10n.getStr("noCounterLabel"); messageText = `${label}: ${counter.count}`; parameters = null; break; case "time": // We don't show anything for console.time calls to match Chrome's behaviour. parameters = null; type = MESSAGE_TYPE.NULL_MESSAGE; break; case "timeEnd": parameters = null; if (timer) { // We show the duration to users when calls console.timeEnd() is called, // if corresponding console.time() was called before. let duration = Math.round(timer.duration * 100) / 100; messageText = l10n.getFormatStr("timeEnd", [timer.name, duration]); } else { // If the `timer` property does not exists, we don't output anything. type = MESSAGE_TYPE.NULL_MESSAGE; } break; } const frame = { source: message.filename || null, line: message.lineNumber || null, column: message.columnNumber || null }; return new ConsoleMessage({ source: MESSAGE_SOURCE.CONSOLE_API, type, level, parameters, messageText, stacktrace: message.stacktrace ? message.stacktrace : null, frame }); } case "navigationMessage": { let { message } = packet; return new ConsoleMessage({ source: MESSAGE_SOURCE.CONSOLE_API, type: MESSAGE_TYPE.LOG, level: MESSAGE_LEVEL.LOG, messageText: "Navigated to " + message.url, }); } case "pageError": { let { pageError } = packet; let level = MESSAGE_LEVEL.ERROR; if (pageError.warning || pageError.strict) { level = MESSAGE_LEVEL.WARN; } else if (pageError.info) { level = MESSAGE_LEVEL.INFO; } const frame = { source: pageError.sourceName, line: pageError.lineNumber, column: pageError.columnNumber }; return new ConsoleMessage({ source: MESSAGE_SOURCE.JAVASCRIPT, type: MESSAGE_TYPE.LOG, level, messageText: pageError.errorMessage, frame, }); } case "evaluationResult": default: { let { result } = packet; return new ConsoleMessage({ source: MESSAGE_SOURCE.JAVASCRIPT, type: MESSAGE_TYPE.RESULT, level: MESSAGE_LEVEL.LOG, parameters: result, }); } } }
/** * Transforms a packet from Firefox RDP structure to Chrome RDP structure. */ function transformPacket(packet) { if (packet._type) { packet = convertCachedPacket(packet); } switch (packet.type) { case "consoleAPICall": { let { message } = packet; let parameters = message.arguments; let type = message.level; let level = LEVELS[type] || MESSAGE_TYPE.LOG; let messageText = null; // Special per-type conversion. switch (type) { case "clear": // We show a message to users when calls console.clear() is called. parameters = [l10n.getStr("consoleCleared")]; break; case "count": // Chrome RDP doesn't have a special type for count. type = MESSAGE_TYPE.LOG; level = MESSAGE_LEVEL.DEBUG; let {counter} = message; let label = counter.label ? counter.label : l10n.getStr("noCounterLabel"); messageText = `${label}: ${counter.count}`; parameters = null; break; } return new ConsoleMessage({ source: MESSAGE_SOURCE.CONSOLE_API, type, level, parameters, messageText, category: CATEGORY_WEBDEV, severity: level, }); } case "pageError": { let { pageError } = packet; let level = MESSAGE_LEVEL.ERROR; if (pageError.warning || pageError.strict) { level = MESSAGE_LEVEL.WARN; } else if (pageError.info) { level = MESSAGE_LEVEL.INFO; } return new ConsoleMessage({ source: MESSAGE_SOURCE.JAVASCRIPT, type: MESSAGE_TYPE.LOG, messageText: pageError.errorMessage, category: CATEGORY_JS, severity: level, }); } case "evaluationResult": default: { let { result } = packet; return new ConsoleMessage({ source: MESSAGE_SOURCE.JAVASCRIPT, type: MESSAGE_TYPE.RESULT, level: MESSAGE_LEVEL.LOG, parameters: result, category: CATEGORY_OUTPUT, severity: SEVERITY_LOG, }); } } }