@checkly/playwright-core 1.41.23 → 1.41.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/lib/cli/driver.js +1 -9
  2. package/lib/cli/program.js +3 -11
  3. package/lib/client/channelOwner.js +1 -1
  4. package/lib/client/clientHelper.js +1 -5
  5. package/lib/client/connection.js +1 -1
  6. package/lib/client/consoleMessage.js +1 -1
  7. package/lib/client/electron.js +0 -3
  8. package/lib/client/events.js +0 -1
  9. package/lib/client/frame.js +1 -2
  10. package/lib/client/harRouter.js +1 -7
  11. package/lib/client/page.js +6 -25
  12. package/lib/common/debugLogger.js +0 -1
  13. package/lib/common/socksProxy.js +1 -1
  14. package/lib/generated/consoleApiSource.js +1 -1
  15. package/lib/generated/injectedScriptSource.js +1 -1
  16. package/lib/generated/recorderSource.js +1 -1
  17. package/lib/outofprocess.js +1 -1
  18. package/lib/protocol/validator.js +29 -46
  19. package/lib/remote/playwrightConnection.js +1 -1
  20. package/lib/remote/playwrightServer.js +166 -72
  21. package/lib/server/android/android.js +1 -1
  22. package/lib/server/browserType.js +2 -2
  23. package/lib/server/chromium/chromium.js +4 -5
  24. package/lib/server/chromium/crConnection.js +1 -1
  25. package/lib/server/chromium/crPage.js +2 -45
  26. package/lib/server/console.js +3 -1
  27. package/lib/server/debugController.js +3 -0
  28. package/lib/server/deviceDescriptorsSource.json +50 -50
  29. package/lib/server/dispatchers/browserContextDispatcher.js +2 -3
  30. package/lib/server/dispatchers/dispatcher.js +10 -9
  31. package/lib/server/dispatchers/electronDispatcher.js +0 -13
  32. package/lib/server/dispatchers/frameDispatcher.js +6 -0
  33. package/lib/server/dispatchers/pageDispatcher.js +10 -14
  34. package/lib/server/dom.js +167 -130
  35. package/lib/server/electron/electron.js +12 -38
  36. package/lib/server/electron/loader.js +2 -4
  37. package/lib/server/firefox/ffAccessibility.js +1 -2
  38. package/lib/server/firefox/ffConnection.js +1 -1
  39. package/lib/server/firefox/ffPage.js +1 -1
  40. package/lib/server/frames.js +20 -39
  41. package/lib/server/helper.js +1 -1
  42. package/lib/server/page.js +5 -49
  43. package/lib/server/pipeTransport.js +1 -1
  44. package/lib/server/playwright.js +1 -1
  45. package/lib/server/progress.js +11 -3
  46. package/lib/server/recorder/csharp.js +1 -1
  47. package/lib/server/recorder.js +1 -1
  48. package/lib/server/registry/browserFetcher.js +1 -1
  49. package/lib/server/registry/dependencies.js +4 -5
  50. package/lib/server/registry/index.js +30 -48
  51. package/lib/server/registry/nativeDeps.js +94 -0
  52. package/lib/server/trace/recorder/snapshotter.js +1 -1
  53. package/lib/server/trace/recorder/tracing.js +2 -5
  54. package/lib/server/trace/viewer/traceViewer.js +1 -1
  55. package/lib/server/transport.js +2 -4
  56. package/lib/server/webkit/wkConnection.js +1 -1
  57. package/lib/server/webkit/wkPage.js +2 -2
  58. package/lib/utils/comparators.js +4 -4
  59. package/lib/utils/fileUtils.js +0 -4
  60. package/lib/utils/hostPlatform.js +1 -1
  61. package/lib/utils/index.js +0 -11
  62. package/lib/utils/isomorphic/locatorParser.js +4 -6
  63. package/lib/utils/network.js +0 -33
  64. package/lib/utils/processLauncher.js +0 -7
  65. package/lib/vite/htmlReport/index.html +11 -11
  66. package/lib/vite/traceViewer/assets/codeMirrorModule-2mdjgmqe.js +24 -0
  67. package/lib/vite/traceViewer/assets/codeMirrorModule-GJA8DRmd.js +24 -0
  68. package/lib/vite/traceViewer/assets/wsPort-93o0i57c.js +69 -0
  69. package/lib/vite/traceViewer/assets/wsPort-qI0zJPR7.js +69 -0
  70. package/lib/vite/traceViewer/index.LR1HufLs.js +2 -0
  71. package/lib/vite/traceViewer/index.Ox-CymYJ.js +2 -0
  72. package/lib/vite/traceViewer/index.html +3 -3
  73. package/lib/vite/traceViewer/sw.bundle.js +4 -4
  74. package/lib/vite/traceViewer/uiMode.YGPXSUMv.js +10 -0
  75. package/lib/vite/traceViewer/uiMode.YYFJGvtV.js +10 -0
  76. package/lib/vite/traceViewer/uiMode.html +3 -3
  77. package/package.json +1 -1
package/lib/cli/driver.js CHANGED
@@ -50,15 +50,7 @@ function runDriver() {
50
50
  });
51
51
  const transport = new _transport.PipeTransport(process.stdout, process.stdin);
52
52
  transport.onmessage = message => dispatcherConnection.dispatch(JSON.parse(message));
53
- // Certain Language Binding JSON parsers (e.g. .NET) do not like strings with lone surrogates.
54
- const isJavaScriptLanguageBinding = !process.env.PW_LANG_NAME || process.env.PW_LANG_NAME === 'javascript';
55
- const replacer = !isJavaScriptLanguageBinding && String.prototype.toWellFormed ? (key, value) => {
56
- if (typeof value === 'string')
57
- // @ts-expect-error
58
- return value.toWellFormed();
59
- return value;
60
- } : undefined;
61
- dispatcherConnection.onmessage = message => transport.send(JSON.stringify(message, replacer));
53
+ dispatcherConnection.onmessage = message => transport.send(JSON.stringify(message));
62
54
  transport.onclose = () => {
63
55
  // Drop any messages during shutdown on the floor.
64
56
  dispatcherConnection.onmessage = () => {};
@@ -3,12 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "program", {
7
- enumerable: true,
8
- get: function () {
9
- return _utilsBundle.program;
10
- }
11
- });
6
+ exports.default = void 0;
12
7
  var _fs = _interopRequireDefault(require("fs"));
13
8
  var _os = _interopRequireDefault(require("os"));
14
9
  var _path = _interopRequireDefault(require("path"));
@@ -116,10 +111,6 @@ _utilsBundle.program.command('install [browser...]').description('ensure browser
116
111
  } else {
117
112
  const forceReinstall = hasNoArguments ? false : !!options.force;
118
113
  await _server.registry.install(executables, forceReinstall);
119
- await _server.registry.validateHostRequirementsForExecutablesIfNeeded(executables, process.env.PW_LANG_NAME || 'javascript').catch(e => {
120
- e.name = 'Playwright Host validation warning';
121
- console.error(e);
122
- });
123
114
  }
124
115
  } catch (e) {
125
116
  console.log(`Failed to install browsers\n${e}`);
@@ -579,4 +570,5 @@ function buildBasePlaywrightCLICommand(cliTargetLang) {
579
570
  return `${packageManagerCommand} playwright`;
580
571
  }
581
572
  }
582
- }
573
+ }
574
+ var _default = exports.default = _utilsBundle.program;
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.ChannelOwner = void 0;
7
7
  var _events = require("events");
8
8
  var _validator = require("../protocol/validator");
9
- var _debugLogger = require("../utils/debugLogger");
9
+ var _debugLogger = require("../common/debugLogger");
10
10
  var _stackTrace = require("../utils/stackTrace");
11
11
  var _utils = require("../utils");
12
12
  var _zones = require("../utils/zones");
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.addSourceUrlToScript = addSourceUrlToScript;
7
6
  exports.envObjectToArray = envObjectToArray;
8
7
  exports.evaluationScript = evaluationScript;
9
8
  var _fs = _interopRequireDefault(require("fs"));
@@ -47,11 +46,8 @@ async function evaluationScript(fun, arg, addSourceUrl = true) {
47
46
  if (fun.content !== undefined) return fun.content;
48
47
  if (fun.path !== undefined) {
49
48
  let source = await _fs.default.promises.readFile(fun.path, 'utf8');
50
- if (addSourceUrl) source = addSourceUrlToScript(source, fun.path);
49
+ if (addSourceUrl) source += '\n//# sourceURL=' + fun.path.replace(/\n/g, '');
51
50
  return source;
52
51
  }
53
52
  throw new Error('Either path or content property must be present');
54
- }
55
- function addSourceUrlToScript(source, path) {
56
- return `${source}\n//# sourceURL=${path.replace(/\n/g, '')}`;
57
53
  }
@@ -21,7 +21,7 @@ var _playwright = require("./playwright");
21
21
  var _electron = require("./electron");
22
22
  var _stream = require("./stream");
23
23
  var _writableStream = require("./writableStream");
24
- var _debugLogger = require("../utils/debugLogger");
24
+ var _debugLogger = require("../common/debugLogger");
25
25
  var _selectors = require("./selectors");
26
26
  var _android = require("./android");
27
27
  var _artifact = require("./artifact");
@@ -30,7 +30,7 @@ class ConsoleMessage {
30
30
  constructor(event) {
31
31
  this._page = void 0;
32
32
  this._event = void 0;
33
- this._page = 'page' in event && event.page ? _page.Page.from(event.page) : null;
33
+ this._page = event.page ? _page.Page.from(event.page) : null;
34
34
  this._event = event;
35
35
  }
36
36
  page() {
@@ -10,7 +10,6 @@ var _channelOwner = require("./channelOwner");
10
10
  var _clientHelper = require("./clientHelper");
11
11
  var _events = require("./events");
12
12
  var _jsHandle = require("./jsHandle");
13
- var _consoleMessage = require("./consoleMessage");
14
13
  var _waiter = require("./waiter");
15
14
  var _errors = require("./errors");
16
15
  let _Symbol$asyncDispose;
@@ -66,8 +65,6 @@ class ElectronApplication extends _channelOwner.ChannelOwner {
66
65
  this._isClosed = true;
67
66
  this.emit(_events.Events.ElectronApplication.Close);
68
67
  });
69
- this._channel.on('console', event => this.emit(_events.Events.ElectronApplication.Console, new _consoleMessage.ConsoleMessage(event)));
70
- this._setEventToSubscriptionMapping(new Map([[_events.Events.ElectronApplication.Console, 'console']]));
71
68
  }
72
69
  process() {
73
70
  return this._toImpl().process();
@@ -88,7 +88,6 @@ const Events = exports.Events = {
88
88
  },
89
89
  ElectronApplication: {
90
90
  Close: 'close',
91
- Console: 'console',
92
91
  Window: 'window'
93
92
  }
94
93
  };
@@ -18,7 +18,6 @@ var _waiter = require("./waiter");
18
18
  var _events2 = require("./events");
19
19
  var _types = require("./types");
20
20
  var _network2 = require("../utils/network");
21
- var _clientHelper = require("./clientHelper");
22
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
22
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -271,7 +270,7 @@ class Frame extends _channelOwner.ChannelOwner {
271
270
  };
272
271
  if (copy.path) {
273
272
  copy.content = (await _fs.default.promises.readFile(copy.path)).toString();
274
- copy.content = (0, _clientHelper.addSourceUrlToScript)(copy.content, copy.path);
273
+ copy.content += '//# sourceURL=' + copy.path.replace(/\n/g, '');
275
274
  }
276
275
  return _elementHandle.ElementHandle.from((await this._channel.addScriptTag({
277
276
  ...copy
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HarRouter = void 0;
7
- var _debugLogger = require("../utils/debugLogger");
7
+ var _debugLogger = require("../common/debugLogger");
8
8
  let _Symbol$asyncDispose;
9
9
  /**
10
10
  * Copyright (c) Microsoft Corporation.
@@ -59,12 +59,6 @@ class HarRouter {
59
59
  return;
60
60
  }
61
61
  if (response.action === 'fulfill') {
62
- // If the response status is -1, the request was canceled or stalled, so we just stall it here.
63
- // See https://github.com/microsoft/playwright/issues/29311.
64
- // TODO: it'd be better to abort such requests, but then we likely need to respect the timing,
65
- // because the request might have been stalled for a long time until the very end of the
66
- // test when HAR was recorded but we'd abort it immediately.
67
- if (response.status === -1) return;
68
62
  await route.fulfill({
69
63
  status: response.status,
70
64
  headers: Object.fromEntries(response.headers.map(h => [h.name, h.value])),
@@ -79,7 +79,6 @@ class Page extends _channelOwner.ChannelOwner {
79
79
  this._closeReason = void 0;
80
80
  this._closeWasCalled = false;
81
81
  this._harRouters = [];
82
- this._locatorHandlers = new Map();
83
82
  this._browserContext = parent;
84
83
  this._timeoutSettings = new _timeoutSettings.TimeoutSettings(this._browserContext._timeoutSettings);
85
84
  this.accessibility = new _accessibility.Accessibility(this._channel);
@@ -116,9 +115,6 @@ class Page extends _channelOwner.ChannelOwner {
116
115
  this._channel.on('frameDetached', ({
117
116
  frame
118
117
  }) => this._onFrameDetached(_frame.Frame.from(frame)));
119
- this._channel.on('locatorHandlerTriggered', ({
120
- uid
121
- }) => this._onLocatorHandlerTriggered(uid));
122
118
  this._channel.on('route', ({
123
119
  route
124
120
  }) => this._onRoute(_network2.Route.from(route)));
@@ -308,25 +304,6 @@ class Page extends _channelOwner.ChannelOwner {
308
304
  waitUntil
309
305
  })).response);
310
306
  }
311
- async addLocatorHandler(locator, handler) {
312
- if (locator._frame !== this._mainFrame) throw new Error(`Locator must belong to the main frame of this page`);
313
- const {
314
- uid
315
- } = await this._channel.registerLocatorHandler({
316
- selector: locator._selector
317
- });
318
- this._locatorHandlers.set(uid, handler);
319
- }
320
- async _onLocatorHandlerTriggered(uid) {
321
- try {
322
- const handler = this._locatorHandlers.get(uid);
323
- await (handler === null || handler === void 0 ? void 0 : handler());
324
- } finally {
325
- this._wrapApiCall(() => this._channel.resolveLocatorHandlerNoReply({
326
- uid
327
- }), true).catch(() => {});
328
- }
329
- }
330
307
  async waitForLoadState(state, options) {
331
308
  return await this._mainFrame.waitForLoadState(state, options);
332
309
  }
@@ -485,7 +462,8 @@ class Page extends _channelOwner.ChannelOwner {
485
462
  return result.binary;
486
463
  }
487
464
  async _expectScreenshot(options) {
488
- const mask = options !== null && options !== void 0 && options.mask ? options === null || options === void 0 ? void 0 : options.mask.map(locator => ({
465
+ var _options$screenshotOp, _options$screenshotOp2;
466
+ const mask = (_options$screenshotOp = options.screenshotOptions) !== null && _options$screenshotOp !== void 0 && _options$screenshotOp.mask ? (_options$screenshotOp2 = options.screenshotOptions) === null || _options$screenshotOp2 === void 0 ? void 0 : _options$screenshotOp2.mask.map(locator => ({
489
467
  frame: locator._frame._channel,
490
468
  selector: locator._selector
491
469
  })) : undefined;
@@ -497,7 +475,10 @@ class Page extends _channelOwner.ChannelOwner {
497
475
  ...options,
498
476
  isNot: !!options.isNot,
499
477
  locator,
500
- mask
478
+ screenshotOptions: {
479
+ ...options.screenshotOptions,
480
+ mask
481
+ }
501
482
  });
502
483
  }
503
484
  async title() {
@@ -46,7 +46,6 @@ const debugLoggerColorMap = {
46
46
  // green
47
47
  'server:metadata': 33 // blue
48
48
  };
49
-
50
49
  class DebugLogger {
51
50
  constructor() {
52
51
  this._debuggers = new Map();
@@ -7,7 +7,7 @@ exports.SocksProxyHandler = exports.SocksProxy = void 0;
7
7
  exports.parsePattern = parsePattern;
8
8
  var _events = _interopRequireDefault(require("events"));
9
9
  var _net = _interopRequireDefault(require("net"));
10
- var _debugLogger = require("../utils/debugLogger");
10
+ var _debugLogger = require("./debugLogger");
11
11
  var _happyEyeballs = require("../utils/happy-eyeballs");
12
12
  var _utils = require("../utils");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }