Best JavaScript code snippet using playwright-internal
ProcessGlobal.js
Source:ProcessGlobal.js
...26function log(msg) {27 // This file implements console.log(), so use dump().28 //dump('ProcessGlobal: ' + msg + '\n');29}30function formatStackFrame(aFrame) {31 let functionName = aFrame.functionName || '<anonymous>';32 return ' at ' + functionName +33 ' (' + aFrame.filename + ':' + aFrame.lineNumber +34 ':' + aFrame.columnNumber + ')';35}36function ConsoleMessage(aMsg, aLevel) {37 this.timeStamp = Date.now();38 this.msg = aMsg;39 switch (aLevel) {40 case 'error':41 case 'assert':42 this.logLevel = Ci.nsIConsoleMessage.error;43 break;44 case 'warn':45 this.logLevel = Ci.nsIConsoleMessage.warn;46 break;47 case 'log':48 case 'info':49 this.logLevel = Ci.nsIConsoleMessage.info;50 break;51 default:52 this.logLevel = Ci.nsIConsoleMessage.debug;53 break;54 }55}56function toggleUnrestrictedDevtools(unrestricted) {57 Services.prefs.setBoolPref("devtools.debugger.forbid-certified-apps",58 !unrestricted);59 Services.prefs.setBoolPref("dom.apps.developer_mode", unrestricted);60 // TODO: Remove once bug 1125916 is fixed.61 Services.prefs.setBoolPref("network.disable.ipc.security", unrestricted);62 Services.prefs.setBoolPref("dom.webcomponents.enabled", unrestricted);63 let lock = settings.createLock();64 lock.set("developer.menu.enabled", unrestricted, null);65 lock.set("devtools.unrestricted", unrestricted, null);66}67ConsoleMessage.prototype = {68 QueryInterface: XPCOMUtils.generateQI([Ci.nsIConsoleMessage]),69 toString: function() { return this.msg; }70};71const gFactoryResetFile = "__post_reset_cmd__";72function ProcessGlobal() {}73ProcessGlobal.prototype = {74 classID: Components.ID('{1a94c87a-5ece-4d11-91e1-d29c29f21b28}'),75 QueryInterface: XPCOMUtils.generateQI([Ci.nsIObserver,76 Ci.nsISupportsWeakReference]),77 wipeDir: function(path) {78 log("wipeDir " + path);79 let dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);80 dir.initWithPath(path);81 if (!dir.exists() || !dir.isDirectory()) {82 return;83 }84 let entries = dir.directoryEntries;85 while (entries.hasMoreElements()) {86 let file = entries.getNext().QueryInterface(Ci.nsIFile);87 log("Deleting " + file.path);88 try {89 file.remove(true);90 } catch(e) {}91 }92 },93 processCommandsFile: function(text) {94 log("processCommandsFile " + text);95 let lines = text.split("\n");96 lines.forEach((line) => {97 log(line);98 let params = line.split(" ");99 switch (params[0]) {100 case "root":101 log("unrestrict devtools");102 toggleUnrestrictedDevtools(true);103 break;104 case "wipe":105 this.wipeDir(params[1]);106 case "normal":107 log("restrict devtools");108 toggleUnrestrictedDevtools(false);109 break;110 }111 });112 },113 cleanupAfterFactoryReset: function() {114 log("cleanupAfterWipe start");115 Cu.import("resource://gre/modules/osfile.jsm");116 let dir = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);117 dir.initWithPath("/persist");118 var postResetFile = dir.exists() ?119 OS.Path.join("/persist", gFactoryResetFile):120 OS.Path.join("/cache", gFactoryResetFile);121 let file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile);122 file.initWithPath(postResetFile);123 if (!file.exists()) {124 debug("No additional command.")125 return;126 }127 let promise = OS.File.read(postResetFile);128 promise.then(129 (array) => {130 file.remove(false);131 let decoder = new TextDecoder();132 this.processCommandsFile(decoder.decode(array));133 },134 function onError(error) {135 debug("Error: " + error);136 }137 );138 log("cleanupAfterWipe end.");139 },140 observe: function pg_observe(subject, topic, data) {141 switch (topic) {142 case 'app-startup': {143 Services.obs.addObserver(this, 'console-api-log-event', false);144 let inParent = Cc["@mozilla.org/xre/app-info;1"]145 .getService(Ci.nsIXULRuntime)146 .processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;147 if (inParent) {148 let ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"]149 .getService(Ci.nsIMessageListenerManager);150 ppmm.addMessageListener("getProfD", function(message) {151 return Services.dirsvc.get("ProfD", Ci.nsIFile).path;152 });153 this.cleanupAfterFactoryReset();154 }155 break;156 }157 case 'console-api-log-event': {158 // Pipe `console` log messages to the nsIConsoleService which159 // writes them to logcat on Gonk.160 let message = subject.wrappedJSObject;161 let args = message.arguments;162 let stackTrace = '';163 if (message.stacktrace &&164 (message.level == 'assert' || message.level == 'error' || message.level == 'trace')) {165 stackTrace = Array.map(message.stacktrace, formatStackFrame).join('\n');166 } else {167 stackTrace = formatStackFrame(message);168 }169 if (stackTrace) {170 args.push('\n' + stackTrace);171 }172 let msg = 'Content JS ' + message.level.toUpperCase() + ': ' + Array.join(args, ' ');173 Services.console.logMessage(new ConsoleMessage(msg, message.level));174 break;175 }176 }177 },178};...
adapter.js
Source:adapter.js
...39 / in ()(\S+ \(line \d+\))$/.exec(line) || // Safari40 / (?:(\S*)@)?(\S+(?::\d+){1,2})$/.exec(line) // Firefox41 return match42 ? line.substr(0, match.index) + '\n' +43 formatStackFrame(match[1], match[2])44 : line45 }46 function skipStackFrame (line) {47 // at <Jasmine>48 // <Jasmine>49 // promiseReactionJob@[native code]50 // [native code]51 return /^(?:\s+at )?<[^>]+>$/.exec(line) ||52 /\[native code\]/.exec(line)53 }54 function containsTestedCode (line, ignoredFiles) {55 return ignoredFiles.every(function (ignoredFile) {56 return line.indexOf(ignoredFile + ':') < 057 })58 }59 function unifyStackFrame (line) {60 // at processModule (http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:1191:16)61 // at Object.module$1 [as module] (http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:1216:4)62 // at Object.<anonymous> (http://localhost:9876/base/test-qunit/index.test.js?6dd492cd7df41bd57315374ab4211e04e747bcca:25:5)63 // at http://localhost:9876/base/test-qunit/index.test.js?6dd492cd7df41bd57315374ab4211e04e747bcca:7:7: Crashing...64 // at http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:2627:865 // processModule@http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:1191:1666 // module$1@http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:1216:467 // processTaskQueue/<@http://localhost:9876/base/node_modules/qunit/qunit/qunit.js?33c76b37e3944ddbfc9cda0f2f4891094b8f1d97:2627:868 // @http://localhost:9876/base/test-qunit/index.test.js?6dd492cd7df41bd57315374ab4211e04e747bcca:7:769 // global code@http://localhost:9876/base/test-qunit/index.test.js?6dd492cd7df41bd57315374ab4211e04e747bcca:7:13: Crashing...70 var match = /^(?:\s+at )?(?:([^)]+) )?\(([^)]+(?::\d+){1,2})\)$/.exec(line) ||71 /^(?:\s+at )?(?:([^)]+) )?(\S+(?::\d+){1,2})$/.exec(line) ||72 /^([^@]+)?@(\S+(?::\d+){1,2})(?::.+)?$/.exec(line) ||73 /^()(\S+(?::\d+){1,2})$/.exec(line)74 return match ? formatStackFrame(match[1], match[2]) : line75 }76 function cleanStack (stack, ignoredFiles) {77 return !stack ? '' : stack78 .split(/\r?\n/)79 .map(function (line, index) {80 if (index === 0) {81 return reformatMessage(line)82 }83 if (skipStackFrame(line)) {84 return85 }86 return unifyStackFrame(line)87 })88 .filter(function (line) {...
Using AI Code Generation
1const { Playwright } = require('@playwright/test');2const { InternalError } = Playwright;3const error = new InternalError('error message');4console.log(error.formatStackFrame('path', 'line', 'column', 'functionName', 'code'));5#### InternalError.formatStackFrame(frame)6#### InternalError.formatStackTrace()
Using AI Code Generation
1const { InternalError } = require('playwright/lib/utils/stackTrace');2const stack = new InternalError().stack;3const frame = stack[0];4console.log(frame.formatStackFrame());5`formatStackFrame` should return the stack frame in the same format as `console.trace()`6`formatStackFrame` returns the stack frame in the format `at <function> (<file>:<line>:<column>)`7const { InternalError } = require('playwright/lib/utils/stackTrace');8const stack = new InternalError().stack;9const frame = stack[0];10console.log(frame.formatStackFrame());
Using AI Code Generation
1import { Playwright } from 'playwright';2const { formatStackFrame } = Playwright.InternalError;3console.log(formatStackFrame({ file: 'foo.js', line: 123, column: 0, name: 'foo' }));4#### InternalError.constructor(message, stack)5#### InternalError.formatStackFrame(frame)6#### InternalError.stackFrames()7#### InternalError.stackTrace()8[Apache-2.0](LICENSE)
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!