Best JavaScript code snippet using playwright-internal
Page.js
Source:Page.js
...578 inspect: "æ£æ¥",579 },580 })581 }582 _onCrashed() {583 this.isCrashed = true584 if (this.$dom) {585 let crashedDOM = document.createElement("div")586 crashedDOM.innerHTML =587 '<div style="width: 100%; position: absolute; left: 0; top: 0; height: 100%; z-index: 2; background: #fff; padding: 100px; font-size: 24px; color: #444; line-height: 32px; "><svg t="1598317803345" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2065" width="32" height="32" style=" margin-right: 20px; display: inline-block; vertical-align: top; "><path d="M1024 519.9872C1024 484.4544 984.9344 0 506.2656 0 79.36 0 0 433.0496 0 522.5984c0 323.2768 298.24 372.8384 298.24 372.8384-16.2304 86.528 43.1616 147.0464 137.3696 103.936 77.056 52.8896 132.352 4.096 132.352 4.096 62.464 34.5088 158.6688-7.1168 145.152-108.9536 0 0 310.8864-63.0784 310.8864-374.4768M299.008 649.216c-78.8992 0-142.8992-75.9808-142.8992-169.7792 0-93.696 64-169.6768 142.848-169.6768 79.0016 0 143.0016 75.9296 143.0016 169.6768 0 93.7984-64 169.8304-142.9504 169.8304m275.7632 87.808c-3.072 58.112-101.7344 77.1072-112.1792 0-1.1264-15.9744 13.568-77.312 56.064-77.312 42.4448 0 58.9824 58.2656 56.1152 77.1584m150.016-87.6544c-78.9504 0-142.9504-76.032-142.9504-169.8304 0-93.696 64-169.6768 143.0016-169.6768 78.9504 0 142.9504 75.9296 142.9504 169.6768 0 93.7984-64 169.8304-142.9504 169.8304" p-id="2066" fill="currentColor"></path></svg>åå·ï¼å´©æºå¦ï¼</div>'588 this.$dom.appendChild(crashedDOM)589 } else {590 }591 }592 _onDestroyed() {593 this.isDestroyed = true594 }595 goHome() {596 return this.goto(this.options.startUrl || "about:blank")...
extensionHost.js
Source:extensionHost.js
1/*---------------------------------------------------------------------------------------------2 * Copyright (c) Microsoft Corporation. All rights reserved.3 * Licensed under the MIT License. See License.txt in the project root for license information.4 *--------------------------------------------------------------------------------------------*/5var __assign = (this && this.__assign) || Object.assign || function(t) {6 for (var s, i = 1, n = arguments.length; i < n; i++) {7 s = arguments[i];8 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))9 t[p] = s[p];10 }11 return t;12};13var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {14 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;15 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);16 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;17 return c > 3 && r && Object.defineProperty(target, key, r), r;18};19var __param = (this && this.__param) || function (paramIndex, decorator) {20 return function (target, key) { decorator(target, key, paramIndex); }21};22define(["require", "exports", "vs/nls", "vs/base/common/errorMessage", "vs/base/common/objects", "vs/base/common/uri", "vs/base/common/winjs.base", "vs/base/common/platform", "vs/base/node/ports", "vs/platform/message/common/message", "vs/platform/lifecycle/common/lifecycle", "vs/platform/windows/common/windows", "vs/platform/workspace/common/workspace", "vs/platform/telemetry/common/telemetry", "child_process", "electron", "vs/platform/node/product", "vs/platform/environment/common/environment", "vs/base/parts/ipc/node/ipc.net", "net", "vs/base/common/event", "vs/workbench/services/configuration/common/configuration", "vs/workbench/services/crashReporter/electron-browser/crashReporterService", "vs/platform/broadcast/electron-browser/broadcastService", "vs/base/common/paths", "vs/platform/extensions/common/extensionHost", "vs/base/common/lifecycle", "vs/base/node/console", "vs/platform/configuration/common/configurationRegistry", "vs/platform/log/common/log"], function (require, exports, nls, errorMessage_1, objects, uri_1, winjs_base_1, platform_1, ports_1, message_1, lifecycle_1, windows_1, workspace_1, telemetry_1, child_process_1, electron_1, product_1, environment_1, ipc_net_1, net_1, event_1, configuration_1, crashReporterService_1, broadcastService_1, paths_1, extensionHost_1, lifecycle_2, console_1, configurationRegistry_1, log_1) {23 'use strict';24 Object.defineProperty(exports, "__esModule", { value: true });25 var ExtensionHostProcessWorker = /** @class */ (function () {26 function ExtensionHostProcessWorker(27 /* intentionally not injected */ _extensionService, _contextService, _messageService, _windowsService, _windowService, _broadcastService, _lifecycleService, _environmentService, _configurationService, _telemetryService, _crashReporterService, _logService) {28 var _this = this;29 this._extensionService = _extensionService;30 this._contextService = _contextService;31 this._messageService = _messageService;32 this._windowsService = _windowsService;33 this._windowService = _windowService;34 this._broadcastService = _broadcastService;35 this._lifecycleService = _lifecycleService;36 this._environmentService = _environmentService;37 this._configurationService = _configurationService;38 this._telemetryService = _telemetryService;39 this._crashReporterService = _crashReporterService;40 this._logService = _logService;41 this._onCrashed = new event_1.Emitter();42 this.onCrashed = this._onCrashed.event;43 // handle extension host lifecycle a bit special when we know we are developing an extension that runs inside44 this._isExtensionDevHost = this._environmentService.isExtensionDevelopment;45 this._isExtensionDevDebug = (typeof this._environmentService.debugExtensionHost.port === 'number');46 this._isExtensionDevDebugBrk = !!this._environmentService.debugExtensionHost.break;47 this._isExtensionDevTestFromCli = this._isExtensionDevHost && !!this._environmentService.extensionTestsPath && !this._environmentService.debugExtensionHost.break;48 this._lastExtensionHostError = null;49 this._terminating = false;50 this._namedPipeServer = null;51 this._extensionHostProcess = null;52 this._extensionHostConnection = null;53 this._messageProtocol = null;54 this._toDispose = [];55 this._toDispose.push(this._onCrashed);56 this._toDispose.push(this._lifecycleService.onWillShutdown(function (e) { return _this._onWillShutdown(e); }));57 this._toDispose.push(this._lifecycleService.onShutdown(function (reason) { return _this.terminate(); }));58 this._toDispose.push(this._broadcastService.onBroadcast(function (b) { return _this._onBroadcast(b); }));59 var globalExitListener = function () { return _this.terminate(); };60 process.once('exit', globalExitListener);61 this._toDispose.push({62 dispose: function () {63 process.removeListener('exit', globalExitListener);64 }65 });66 }67 ExtensionHostProcessWorker.prototype.dispose = function () {68 this.terminate();69 };70 ExtensionHostProcessWorker.prototype._onBroadcast = function (broadcast) {71 var _this = this;72 // Close Ext Host Window Request73 if (broadcast.channel === extensionHost_1.EXTENSION_CLOSE_EXTHOST_BROADCAST_CHANNEL && this._isExtensionDevHost) {74 var extensionPaths = broadcast.payload;75 if (Array.isArray(extensionPaths) && extensionPaths.some(function (path) { return paths_1.isEqual(_this._environmentService.extensionDevelopmentPath, path, !platform_1.isLinux); })) {76 this._windowService.closeWindow();77 }78 }79 if (broadcast.channel === extensionHost_1.EXTENSION_RELOAD_BROADCAST_CHANNEL && this._isExtensionDevHost) {80 var extensionPaths = broadcast.payload;81 if (Array.isArray(extensionPaths) && extensionPaths.some(function (path) { return paths_1.isEqual(_this._environmentService.extensionDevelopmentPath, path, !platform_1.isLinux); })) {82 this._windowService.reloadWindow();83 }84 }85 };86 ExtensionHostProcessWorker.prototype.start = function () {87 var _this = this;88 if (this._terminating) {89 // .terminate() was called90 return null;91 }92 if (!this._messageProtocol) {93 this._messageProtocol = winjs_base_1.TPromise.join([this._tryListenOnPipe(), this._tryFindDebugPort()]).then(function (data) {94 var pipeName = data[0];95 var portData = data[1];96 var opts = {97 env: objects.mixin(objects.deepClone(process.env), {98 AMD_ENTRYPOINT: 'vs/workbench/node/extensionHostProcess',99 PIPE_LOGGING: 'true',100 VERBOSE_LOGGING: true,101 VSCODE_WINDOW_ID: String(_this._windowService.getCurrentWindowId()),102 VSCODE_IPC_HOOK_EXTHOST: pipeName,103 VSCODE_HANDLES_UNCAUGHT_ERRORS: true,104 VSCODE_LOG_STACK: !_this._isExtensionDevTestFromCli && (_this._isExtensionDevHost || !_this._environmentService.isBuilt || product_1.default.quality !== 'stable' || _this._environmentService.verbose)105 }),106 // We only detach the extension host on windows. Linux and Mac orphan by default107 // and detach under Linux and Mac create another process group.108 // We detach because we have noticed that when the renderer exits, its child processes109 // (i.e. extension host) are taken down in a brutal fashion by the OS110 detached: !!platform_1.isWindows,111 execArgv: undefined,112 silent: true113 };114 if (portData.actual) {115 opts.execArgv = [116 '--nolazy',117 (_this._isExtensionDevDebugBrk ? '--inspect-brk=' : '--inspect=') + portData.actual118 ];119 if (!portData.expected) {120 // No one asked for 'inspect' or 'inspect-brk', only us. We add another121 // option such that the extension host can manipulate the execArgv array122 opts.env.VSCODE_PREVENT_FOREIGN_INSPECT = true;123 }124 }125 var crashReporterOptions = _this._crashReporterService.getChildProcessStartOptions('extensionHost');126 if (crashReporterOptions) {127 opts.env.CRASH_REPORTER_START_OPTIONS = JSON.stringify(crashReporterOptions);128 }129 // Run Extension Host as fork of current process130 _this._extensionHostProcess = child_process_1.fork(uri_1.default.parse(require.toUrl('bootstrap')).fsPath, ['--type=extensionHost'], opts);131 _this._extensionHostProcess.stdout.setEncoding('utf8');132 _this._extensionHostProcess.stderr.setEncoding('utf8');133 var onStdout = event_1.fromNodeEventEmitter(_this._extensionHostProcess.stdout, 'data');134 var onStderr = event_1.fromNodeEventEmitter(_this._extensionHostProcess.stderr, 'data');135 var onOutput = event_1.anyEvent(event_1.mapEvent(onStdout, function (o) { return ({ data: "%c" + o, format: [''] }); }), event_1.mapEvent(onStderr, function (o) { return ({ data: "%c" + o, format: ['color: red'] }); }));136 // Debounce all output, so we can render it in the Chrome console as a group137 var onDebouncedOutput = event_1.debounceEvent(onOutput, function (r, o) {138 return r139 ? { data: r.data + o.data, format: r.format.concat(o.format) }140 : { data: o.data, format: o.format };141 }, 100);142 // Print out extension host output143 onDebouncedOutput(function (data) {144 var inspectorUrlIndex = !_this._environmentService.isBuilt && data.data && data.data.indexOf('chrome-devtools://');145 if (inspectorUrlIndex >= 0) {146 console.log("%c[Extension Host] %cdebugger inspector at " + data.data.substr(inspectorUrlIndex), 'color: blue', 'color: black');147 }148 else {149 console.group('Extension Host');150 console.log.apply(console, [data.data].concat(data.format));151 console.groupEnd();152 }153 });154 // Support logging from extension host155 _this._extensionHostProcess.on('message', function (msg) {156 if (msg && msg.type === '__$console') {157 _this._logExtensionHostMessage(msg);158 }159 });160 // Lifecycle161 _this._extensionHostProcess.on('error', function (err) { return _this._onExtHostProcessError(err); });162 _this._extensionHostProcess.on('exit', function (code, signal) { return _this._onExtHostProcessExit(code, signal); });163 // Notify debugger that we are ready to attach to the process if we run a development extension164 if (_this._isExtensionDevHost && portData.actual) {165 _this._broadcastService.broadcast({166 channel: extensionHost_1.EXTENSION_ATTACH_BROADCAST_CHANNEL,167 payload: {168 debugId: _this._environmentService.debugExtensionHost.debugId,169 port: portData.actual170 }171 });172 }173 _this._inspectPort = portData.actual;174 // Help in case we fail to start it175 var startupTimeoutHandle;176 if (!_this._environmentService.isBuilt || _this._isExtensionDevHost) {177 startupTimeoutHandle = setTimeout(function () {178 var msg = _this._isExtensionDevDebugBrk179 ? nls.localize('extensionHostProcess.startupFailDebug', "Extension host did not start in 10 seconds, it might be stopped on the first line and needs a debugger to continue.")180 : nls.localize('extensionHostProcess.startupFail', "Extension host did not start in 10 seconds, that might be a problem.");181 _this._messageService.show(message_1.Severity.Warning, msg);182 }, 10000);183 }184 // Initialize extension host process with hand shakes185 return _this._tryExtHostHandshake().then(function (protocol) {186 clearTimeout(startupTimeoutHandle);187 return protocol;188 });189 });190 }191 return this._messageProtocol;192 };193 /**194 * Start a server (`this._namedPipeServer`) that listens on a named pipe and return the named pipe name.195 */196 ExtensionHostProcessWorker.prototype._tryListenOnPipe = function () {197 var _this = this;198 return new winjs_base_1.TPromise(function (resolve, reject) {199 var pipeName = ipc_net_1.generateRandomPipeName();200 _this._namedPipeServer = net_1.createServer();201 _this._namedPipeServer.on('error', reject);202 _this._namedPipeServer.listen(pipeName, function () {203 _this._namedPipeServer.removeListener('error', reject);204 resolve(pipeName);205 });206 });207 };208 /**209 * Find a free port if extension host debugging is enabled.210 */211 ExtensionHostProcessWorker.prototype._tryFindDebugPort = function () {212 var _this = this;213 var expected;214 var startPort = 9333;215 if (typeof this._environmentService.debugExtensionHost.port === 'number') {216 startPort = expected = this._environmentService.debugExtensionHost.port;217 }218 else {219 return winjs_base_1.TPromise.as({ expected: undefined, actual: 0 });220 }221 return new winjs_base_1.TPromise(function (c, e) {222 return ports_1.findFreePort(startPort, 10 /* try 10 ports */, 5000 /* try up to 5 seconds */).then(function (port) {223 if (!port) {224 console.warn('%c[Extension Host] %cCould not find a free port for debugging', 'color: blue', 'color: black');225 }226 else {227 if (expected && port !== expected) {228 console.warn("%c[Extension Host] %cProvided debugging port " + expected + " is not free, using " + port + " instead.", 'color: blue', 'color: black');229 }230 if (_this._isExtensionDevDebugBrk) {231 console.warn("%c[Extension Host] %cSTOPPED on first line for debugging on port " + port, 'color: blue', 'color: black');232 }233 else {234 console.info("%c[Extension Host] %cdebugger listening on port " + port, 'color: blue', 'color: black');235 }236 }237 return c({ expected: expected, actual: port });238 });239 });240 };241 ExtensionHostProcessWorker.prototype._tryExtHostHandshake = function () {242 var _this = this;243 return new winjs_base_1.TPromise(function (resolve, reject) {244 // Wait for the extension host to connect to our named pipe245 // and wrap the socket in the message passing protocol246 var handle = setTimeout(function () {247 _this._namedPipeServer.close();248 _this._namedPipeServer = null;249 reject('timeout');250 }, 60 * 1000);251 _this._namedPipeServer.on('connection', function (socket) {252 clearTimeout(handle);253 _this._namedPipeServer.close();254 _this._namedPipeServer = null;255 _this._extensionHostConnection = socket;256 resolve(new ipc_net_1.Protocol(_this._extensionHostConnection));257 });258 }).then(function (protocol) {259 // 1) wait for the incoming `ready` event and send the initialization data.260 // 2) wait for the incoming `initialized` event.261 return new winjs_base_1.TPromise(function (resolve, reject) {262 var handle = setTimeout(function () {263 reject('timeout');264 }, 60 * 1000);265 var disposable = protocol.onMessage(function (msg) {266 if (msg === 'ready') {267 // 1) Extension Host is ready to receive messages, initialize it268 _this._createExtHostInitData().then(function (data) { return protocol.send(JSON.stringify(data)); });269 return;270 }271 if (msg === 'initialized') {272 // 2) Extension Host is initialized273 clearTimeout(handle);274 // stop listening for messages here275 disposable.dispose();276 // release this promise277 resolve(protocol);278 return;279 }280 console.error("received unexpected message during handshake phase from the extension host: ", msg);281 });282 });283 });284 };285 ExtensionHostProcessWorker.prototype._createExtHostInitData = function () {286 var _this = this;287 return winjs_base_1.TPromise.join([this._telemetryService.getTelemetryInfo(), this._extensionService.getExtensions()]).then(function (_a) {288 var telemetryInfo = _a[0], extensionDescriptions = _a[1];289 var configurationData = __assign({}, _this._configurationService.getConfigurationData(), { configurationScopes: {} });290 var r = {291 parentPid: process.pid,292 environment: {293 isExtensionDevelopmentDebug: _this._isExtensionDevDebug,294 appRoot: _this._environmentService.appRoot,295 appSettingsHome: _this._environmentService.appSettingsHome,296 disableExtensions: _this._environmentService.disableExtensions,297 userExtensionsHome: _this._environmentService.extensionsPath,298 extensionDevelopmentPath: _this._environmentService.extensionDevelopmentPath,299 extensionTestsPath: _this._environmentService.extensionTestsPath,300 // globally disable proposed api when built and not insiders developing extensions301 enableProposedApiForAll: !_this._environmentService.isBuilt || (!!_this._environmentService.extensionDevelopmentPath && product_1.default.nameLong.indexOf('Insiders') >= 0),302 enableProposedApiFor: _this._environmentService.args['enable-proposed-api'] || []303 },304 workspace: _this._contextService.getWorkbenchState() === workspace_1.WorkbenchState.EMPTY ? null : _this._contextService.getWorkspace(),305 extensions: extensionDescriptions,306 // Send configurations scopes only in development mode.307 configuration: !_this._environmentService.isBuilt || _this._environmentService.isExtensionDevelopment ? __assign({}, configurationData, { configurationScopes: configurationRegistry_1.getScopes() }) : configurationData,308 telemetryInfo: telemetryInfo,309 args: _this._environmentService.args,310 execPath: _this._environmentService.execPath,311 windowId: _this._windowService.getCurrentWindowId(),312 logLevel: _this._logService.getLevel()313 };314 return r;315 });316 };317 ExtensionHostProcessWorker.prototype._logExtensionHostMessage = function (entry) {318 // Send to local console unless we run tests from cli319 if (!this._isExtensionDevTestFromCli) {320 console_1.log(entry, 'Extension Host');321 }322 // Log on main side if running tests from cli323 if (this._isExtensionDevTestFromCli) {324 (_a = this._windowsService).log.apply(_a, [entry.severity].concat(console_1.parse(entry).args));325 }326 else if (!this._environmentService.isBuilt || this._isExtensionDevHost) {327 this._broadcastService.broadcast({328 channel: extensionHost_1.EXTENSION_LOG_BROADCAST_CHANNEL,329 payload: {330 logEntry: entry,331 debugId: this._environmentService.debugExtensionHost.debugId332 }333 });334 }335 var _a;336 };337 ExtensionHostProcessWorker.prototype._onExtHostProcessError = function (err) {338 var errorMessage = errorMessage_1.toErrorMessage(err);339 if (errorMessage === this._lastExtensionHostError) {340 return; // prevent error spam341 }342 this._lastExtensionHostError = errorMessage;343 this._messageService.show(message_1.Severity.Error, nls.localize('extensionHostProcess.error', "Error from the extension host: {0}", errorMessage));344 };345 ExtensionHostProcessWorker.prototype._onExtHostProcessExit = function (code, signal) {346 if (this._terminating) {347 // Expected termination path (we asked the process to terminate)348 return;349 }350 // Unexpected termination351 if (!this._isExtensionDevHost) {352 this._onCrashed.fire([code, signal]);353 }354 else if (!this._isExtensionDevTestFromCli) {355 this._windowService.closeWindow();356 }357 else {358 electron_1.ipcRenderer.send('vscode:exit', code);359 }360 };361 ExtensionHostProcessWorker.prototype.getInspectPort = function () {362 return this._inspectPort;363 };364 ExtensionHostProcessWorker.prototype.terminate = function () {365 var _this = this;366 if (this._terminating) {367 return;368 }369 this._terminating = true;370 lifecycle_2.dispose(this._toDispose);371 if (!this._messageProtocol) {372 // .start() was not called373 return;374 }375 this._messageProtocol.then(function (protocol) {376 // Send the extension host a request to terminate itself377 // (graceful termination)378 protocol.send({379 type: '__$terminate'380 });381 // Give the extension host 60s, after which we will382 // try to kill the process and release any resources383 setTimeout(function () { return _this._cleanResources(); }, 60 * 1000);384 }, function (err) {385 // Establishing a protocol with the extension host failed, so386 // try to kill the process and release any resources.387 _this._cleanResources();388 });389 };390 ExtensionHostProcessWorker.prototype._cleanResources = function () {391 if (this._namedPipeServer) {392 this._namedPipeServer.close();393 this._namedPipeServer = null;394 }395 if (this._extensionHostConnection) {396 this._extensionHostConnection.end();397 this._extensionHostConnection = null;398 }399 if (this._extensionHostProcess) {400 this._extensionHostProcess.kill();401 this._extensionHostProcess = null;402 }403 };404 ExtensionHostProcessWorker.prototype._onWillShutdown = function (event) {405 // If the extension development host was started without debugger attached we need406 // to communicate this back to the main side to terminate the debug session407 if (this._isExtensionDevHost && !this._isExtensionDevTestFromCli && !this._isExtensionDevDebug) {408 this._broadcastService.broadcast({409 channel: extensionHost_1.EXTENSION_TERMINATE_BROADCAST_CHANNEL,410 payload: {411 debugId: this._environmentService.debugExtensionHost.debugId412 }413 });414 event.veto(winjs_base_1.TPromise.timeout(100 /* wait a bit for IPC to get delivered */).then(function () { return false; }));415 }416 };417 ExtensionHostProcessWorker = __decorate([418 __param(1, workspace_1.IWorkspaceContextService),419 __param(2, message_1.IMessageService),420 __param(3, windows_1.IWindowsService),421 __param(4, windows_1.IWindowService),422 __param(5, broadcastService_1.IBroadcastService),423 __param(6, lifecycle_1.ILifecycleService),424 __param(7, environment_1.IEnvironmentService),425 __param(8, configuration_1.IWorkspaceConfigurationService),426 __param(9, telemetry_1.ITelemetryService),427 __param(10, crashReporterService_1.ICrashReporterService),428 __param(11, log_1.ILogService)429 ], ExtensionHostProcessWorker);430 return ExtensionHostProcessWorker;431 }());432 exports.ExtensionHostProcessWorker = ExtensionHostProcessWorker;
...
ffPage.js
Source:ffPage.js
...271 const worker = this._workers.get(event.workerId);272 if (!worker) return;273 worker.session.dispatchMessage(JSON.parse(event.message));274 }275 async _onCrashed(event) {276 this._session.markAsCrashed();277 this._page._didCrash();278 }279 _onVideoRecordingStarted(event) {280 this._browserContext._browser._videoStarted(this._browserContext, event.screencastId, event.file, this.pageOrError());281 }282 async exposeBinding(binding) {283 await this._session.send('Page.addBinding', {284 name: binding.name,285 script: binding.source286 });287 }288 didClose() {289 this._session.dispose();...
servant.js
Source:servant.js
1/*!---------------------------------------------------------2* Copyright (C) Microsoft Corporation. All rights reserved.3*--------------------------------------------------------*/4/// <reference path="./declare/node.d.ts" />5/// <reference path="./declare/atom-browser.d.ts" />6'use strict';7var BrowserWindow = require('browser-window');8var env = require('./env');9var ManagedBrowserWindow = (function () {10 function ManagedBrowserWindow(opts, owner, onDisposedCallback) {11 var _this = this;12 this.id = String(++ManagedBrowserWindow.INSTANCE_COUNT);13 this.owner = owner;14 this._onDisposedCallback = onDisposedCallback;15 this.masterProcessId = opts.pid;16 this.masterRequestId = opts.reqId;17 var bounds = require('screen').getPrimaryDisplay().bounds;18 this.browserWindow = new BrowserWindow({19 x: 10 + bounds.x + (ManagedBrowserWindow.INSTANCE_COUNT * 50) % Math.floor(bounds.width / 2),20 y: 10 + bounds.y + (ManagedBrowserWindow.INSTANCE_COUNT * 50) % Math.floor(bounds.height / 2),21 width: 800,22 height: 600,23 show: false,24 frame: true,25 kiosk: false26 });27 this.browserWindow.setTitle(opts.name);28 this._onFrameFinishLoad = function () {29 _this.postMessage({30 $tbw: true,31 ownerProcessId: _this.masterProcessId,32 communicationId: _this.id,33 appRoot: env.appRoot,34 module: opts.module,35 initData: opts.initData36 });37 _this.owner.send('ticino:servant:opened', {38 reqId: _this.masterRequestId,39 id: _this.id40 });41 };42 this.browserWindow.webContents.on('did-frame-finish-load', this._onFrameFinishLoad);43 this.browserWindow.loadUrl('file://' + __dirname.replace(/\\/g, '/') + '/index-servant.html');44 this._onCrashed = function () {45 try {46 _this.owner.send('ticino:servant:crashed', {47 $tbw_id: _this.id48 });49 }50 catch (e) {51 console.warn('Could not notify owner that managed browser process crashed: ', e);52 }53 _this._dispose(true);54 };55 this.browserWindow.webContents.on('crashed', this._onCrashed);56 }57 ManagedBrowserWindow.prototype._dispose = function (isCrash) {58 try {59 this.browserWindow.webContents.removeAllListeners();60 }61 catch (e) {62 console.warn('Could not remove all listeners from managed browser process: ', e);63 }64 try {65 this.browserWindow.destroy();66 }67 catch (e) {68 console.warn('Could not destroy managed browser process: ', e);69 }70 this.id = null;71 this.masterProcessId = -1;72 this.masterRequestId = -1;73 this.browserWindow = null;74 this.owner = null;75 this._onFrameFinishLoad = null;76 this._onCrashed = null;77 var onDisposed = this._onDisposedCallback;78 this._onDisposedCallback = null;79 onDisposed();80 };81 ManagedBrowserWindow.prototype.dispose = function () {82 this._dispose(false);83 };84 ManagedBrowserWindow.prototype.getId = function () {85 return this.id;86 };87 ManagedBrowserWindow.prototype.postMessage = function (msg) {88 if (this.browserWindow.webContents) {89 this.browserWindow.webContents.send('tbw', msg);90 }91 else {92 console.warn('Cannot send message to managed browser window (because [I am]|[it is] shutting down?)');93 }94 };95 ManagedBrowserWindow.prototype.sendMessageToOwner = function (msg) {96 this.owner.send('tbw', msg);97 };98 ManagedBrowserWindow.prototype.reveal = function () {99 this.browserWindow.openDevTools();100 this.browserWindow.show();101 };102 ManagedBrowserWindow.prototype.hide = function () {103 this.browserWindow.closeDevTools();104 this.browserWindow.hide();105 };106 ManagedBrowserWindow.INSTANCE_COUNT = 0;107 return ManagedBrowserWindow;108})();
...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: `example.png` });15 await browser._onCrashed();16 await browser.close();17})();18 at processTicksAndRejections (internal/process/task_queues.js:93:5)19const { chromium } = require('playwright');20(async () => {21 const browser = await chromium.launch();22 const context = await browser.newContext();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page._onCrashed();6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page._onCrashed();13 await browser.close();14})();15const { chromium } = require('playwright');16(async () => {17 const browser = await chromium.launch();18 const page = await browser.newPage();19 await page._onCrashed();20 await browser.close();21})();22const { chromium } = require('playwright');23(async () => {24 const browser = await chromium.launch();25 const page = await browser.newPage();26 await page._onCrashed();27 await browser.close();28})();29const { chromium } = require('playwright');30(async () => {31 const browser = await chromium.launch();32 const page = await browser.newPage();33 await page._onCrashed();34 await browser.close();35})();36const { chromium } = require('playwright');37(async () => {38 const browser = await chromium.launch();39 const page = await browser.newPage();40 await page._onCrashed();41 await browser.close();42})();43const { chromium } = require('playwright');44(async () => {45 const browser = await chromium.launch();46 const page = await browser.newPage();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const page = await browser.newPage();5 await page._onCrashed();6 await browser.close();7})();8 at Page._onCrashed (C:\Users\user\playwright\test.js:8:24)9 at processTicksAndRejections (internal/process/task_queues.js:97:5)10const { chromium } = require('playwright');11(async () => {12 const browser = await chromium.launch();13 const page = await browser.newPage();14 const url = await page.url();15 console.log(url);16 await browser.close();17})();18const { chromium } = require('playwright');19(async () => {20 const browser = await chromium.launch();21 const page = await browser.newPage();22 const url = await page.url();23 console.log(url);24 await browser.close();25})();26const { chromium } = require('playwright');27(async () => {
Using AI Code Generation
1const { chromium } = require('playwright');2const { _onCrashed } = require('playwright/lib/server/crBrowser');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 _onCrashed(page, 'crashed');8})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async() => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.evaluate(() => {6 document.querySelector('body').innerHTML = '<iframe></iframe>';7 });8 await page._onCrashed();9 await browser.close();10})();11 at Frame._onCrashed (C:\Users\abc\playwright\playwright\lib\server\frame.js:119:15)12 at Page._onCrashed (C:\Users\abc\playwright\playwright\lib\server\page.js:105:23)13 at Object.onCrashed (C:\Users\abc\playwright\playwright\lib\server\chromium\crBrowser.js:34:24)14 at CDPSession.emit (events.js:315:20)15 at CDPSession._onMessage (C:\Users\abc\playwright\playwright\lib\server\cdpsession.js:94:10)16 at WebSocketTransport._ws.addEventListener.event (C:\Users\abc\playwright\playwright\lib\server\webSocketTransport.js:32:24)17 at WebSocket.onMessage (C:\Users\abc\playwright\playwright\lib\server\webSocket.js:99:14)18 at WebSocket.emit (events.js:315:20)19 at Receiver.receiverOnMessage (C:\Users\abc\playwright\playwright\node_modules\ws\lib\websocket.js:800:20)20 at Receiver.emit (events.js:315:20)
Using AI Code Generation
1const playwright = require('playwright');2const { _onCrashed } = require('playwright/lib/server/browserServer');3(async () => {4 const browser = await playwright['chromium'].launch();5 const page = await browser.newPage();6 await browser.close();7 _onCrashed();8})();
Using AI Code Generation
1const { _onCrashed } = require('playwright/lib/server/chromium/crBrowser');2_onCrashed.call(browser, 'Crashed');3const { _onClosed } = require('playwright/lib/server/chromium/crBrowser');4_onClosed.call(browser, 'Closed');5const { _onDisconnected } = require('playwright/lib/server/chromium/crBrowser');6_onDisconnected.call(browser, 'Disconnected');7const { _onTargetCrashed } = require('playwright/lib/server/chromium/crBrowser');8_onTargetCrashed.call(browser, 'TargetCrashed', 'TargetCrashed');9const { _onTargetDestroyed } = require('playwright/lib/server/chromium/crBrowser');10_onTargetDestroyed.call(browser, 'TargetDestroyed', 'TargetDestroyed');11const { _onTargetChanged } = require('playwright/lib/server/chromium/crBrowser');12_onTargetChanged.call(browser, 'TargetChanged', 'TargetChanged');13const { _onTargetCreated } = require('playwright/lib/server/chromium/crBrowser');14_onTargetCreated.call(browser, 'TargetCreated', 'TargetCreated');15const { _onTargetDetached } = require('playwright/lib/server/chromium/crBrowser');16_onTargetDetached.call(browser, 'TargetDetached', 'TargetDetached');17const { _onTargetAttached } = require('playwright/lib/server/chromium/crBrowser');18_onTargetAttached.call(browser, 'TargetAttached', 'TargetAttached');19const { _onTargetInfoChanged } = require('playwright/lib/server/chromium/crBrowser');20_onTargetInfoChanged.call(browser, 'TargetInfoChanged', 'TargetInfoChanged');21const { _onTargetDestroyed } = require('playwright
Using AI Code Generation
1const playwright = require('playwright');2const { _onCrashed } = require('playwright/lib/server/browserType');3const { BrowserType } = require('playwright/lib/server/browserType');4const browserType = playwright.chromium;5_onCrashed.call(browserType, () => {6 console.log('crashed');7});8const playwright = require('playwright');9const { _onCrashed } = require('playwright/lib/server/browserType');10const { BrowserType } = require('playwright/lib/server/browserType');11const browserType = playwright.chromium;12_onCrashed.call(browserType, () => {13 console.log('crashed');14});15const playwright = require('playwright');16const { _onCrashed } = require('playwright/lib/server/browserType');17const { BrowserType } = require('playwright/lib/server/browserType');18const browserType = playwright.chromium;19_onCrashed.call(browserType, () => {20 console.log('crashed');21});22const playwright = require('playwright');23const { _onCrashed } = require('playwright/lib/server/browserType');24const { BrowserType } = require('playwright/lib/server/browserType');25const browserType = playwright.chromium;26_onCrashed.call(browserType, () => {27 console.log('crashed');28});29const playwright = require('playwright');30const { _onCrashed } = require('playwright/lib/server/browserType');31const { BrowserType } = require('playwright/lib/server/browserType');32const browserType = playwright.chromium;33_onCrashed.call(browserType, () => {34 console.log('crashed');35});36const playwright = require('playwright');37const { _onCrashed } = require('playwright/lib/server/browserType');38const { BrowserType } = require('playwright/lib/server/browserType');39const browserType = playwright.chromium;40_onCrashed.call(browserType, () => {41 console.log('crashed');42});
Using AI Code Generation
1const { _onCrashed } = require('playwright/lib/server/crBrowser');2const { BrowserContext } = require('playwright/lib/server/browserContext');3const { Browser } = require('playwright/lib/server/browser');4const browser = await Browser.connect({5});6const context = await browser.newContext();7const page = await context.newPage();8await page.evaluate(() => {9 window.crash();10});11_onCrashed.call(context, new Error('test'));12await browser.close();13const { _onCrashed } = require('playwright/lib/server/crBrowser');14const { BrowserContext } = require('playwright/lib/server/browserContext');15const { Browser } = require('playwright/lib/server/browser');16const browser = await Browser.connect({17});18const context = await browser.newContext();19const page = await context.newPage();20await page.evaluate(() => {21 window.crash();22});23_onCrashed.call(context, new Error('test'));24await browser.close();25const { _onCrashed } = require('playwright/lib/server/crBrowser');26const { BrowserContext } = require('playwright/lib/server/browserContext');27const { Browser } = require('playwright/lib/server/browser');28const browser = await Browser.connect({
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!!