playwright-core 1.54.0-alpha-2025-07-08 → 1.54.0-beta-1752075907000

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 (32) hide show
  1. package/browsers.json +6 -6
  2. package/lib/client/browserContext.js +19 -5
  3. package/lib/client/page.js +4 -4
  4. package/lib/generated/injectedScriptSource.js +1 -1
  5. package/lib/generated/pollingRecorderSource.js +1 -1
  6. package/lib/protocol/validator.js +8 -1
  7. package/lib/server/browserContext.js +2 -1
  8. package/lib/server/chromium/chromium.js +0 -2
  9. package/lib/server/codegen/csharp.js +1 -1
  10. package/lib/server/codegen/java.js +1 -1
  11. package/lib/server/codegen/javascript.js +1 -1
  12. package/lib/server/codegen/python.js +1 -1
  13. package/lib/server/debugController.js +2 -2
  14. package/lib/server/deviceDescriptorsSource.json +81 -81
  15. package/lib/server/dispatchers/browserContextDispatcher.js +14 -0
  16. package/lib/server/recorder/recorderApp.js +31 -2
  17. package/lib/server/recorder/recorderSignalProcessor.js +20 -8
  18. package/lib/server/recorder/recorderUtils.js +16 -5
  19. package/lib/server/recorder.js +16 -11
  20. package/lib/server/utils/comparators.js +2 -2
  21. package/lib/server/webkit/wkBrowser.js +1 -1
  22. package/lib/utils/isomorphic/protocolMetainfo.js +1 -0
  23. package/lib/vite/htmlReport/index.html +14 -18
  24. package/lib/vite/traceViewer/assets/{codeMirrorModule-B2cH4C1Z.js → codeMirrorModule-Djh-rPQr.js} +1 -1
  25. package/lib/vite/traceViewer/assets/defaultSettingsView-BsQs1KiL.js +256 -0
  26. package/lib/vite/traceViewer/{index.CPrh2bDb.js → index.LwN9z-Hp.js} +1 -1
  27. package/lib/vite/traceViewer/index.html +2 -2
  28. package/lib/vite/traceViewer/{uiMode.zJf6t5Og.js → uiMode.DyB42ep8.js} +1 -1
  29. package/lib/vite/traceViewer/uiMode.html +2 -2
  30. package/package.json +1 -1
  31. package/types/types.d.ts +0 -7
  32. package/lib/vite/traceViewer/assets/defaultSettingsView-DzmHcS17.js +0 -256
package/browsers.json CHANGED
@@ -15,15 +15,15 @@
15
15
  },
16
16
  {
17
17
  "name": "chromium-tip-of-tree",
18
- "revision": "1343",
18
+ "revision": "1345",
19
19
  "installByDefault": false,
20
- "browserVersion": "139.0.7258.0"
20
+ "browserVersion": "140.0.7271.0"
21
21
  },
22
22
  {
23
23
  "name": "chromium-tip-of-tree-headless-shell",
24
- "revision": "1343",
24
+ "revision": "1345",
25
25
  "installByDefault": false,
26
- "browserVersion": "139.0.7258.0"
26
+ "browserVersion": "140.0.7271.0"
27
27
  },
28
28
  {
29
29
  "name": "firefox",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  {
41
41
  "name": "webkit",
42
- "revision": "2189",
42
+ "revision": "2191",
43
43
  "installByDefault": true,
44
44
  "revisionOverrides": {
45
45
  "debian11-x64": "2105",
@@ -55,7 +55,7 @@
55
55
  "ubuntu20.04-x64": "2092",
56
56
  "ubuntu20.04-arm64": "2092"
57
57
  },
58
- "browserVersion": "18.5"
58
+ "browserVersion": "26.0"
59
59
  },
60
60
  {
61
61
  "name": "ffmpeg",
@@ -127,6 +127,14 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
127
127
  this._channel.on("requestFailed", ({ request, failureText, responseEndTiming, page }) => this._onRequestFailed(network.Request.from(request), responseEndTiming, failureText, import_page.Page.fromNullable(page)));
128
128
  this._channel.on("requestFinished", (params) => this._onRequestFinished(params));
129
129
  this._channel.on("response", ({ response, page }) => this._onResponse(network.Response.from(response), import_page.Page.fromNullable(page)));
130
+ this._channel.on("recorderEvent", ({ event, data, page }) => {
131
+ if (event === "actionAdded")
132
+ this._onRecorderEventSink?.actionAdded(import_page.Page.from(page), data);
133
+ else if (event === "actionUpdated")
134
+ this._onRecorderEventSink?.actionUpdated(import_page.Page.from(page), data);
135
+ else if (event === "signalAdded")
136
+ this._onRecorderEventSink?.signalAdded(import_page.Page.from(page), data);
137
+ });
130
138
  this._closedPromise = new Promise((f) => this.once(import_events.Events.BrowserContext.Close, f));
131
139
  this._setEventToSubscriptionMapping(/* @__PURE__ */ new Map([
132
140
  [import_events.Events.BrowserContext.Console, "console"],
@@ -355,11 +363,11 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
355
363
  }
356
364
  async _unrouteInternal(removed, remaining, behavior) {
357
365
  this._routes = remaining;
366
+ if (behavior && behavior !== "default") {
367
+ const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
368
+ await Promise.all(promises);
369
+ }
358
370
  await this._updateInterceptionPatterns();
359
- if (!behavior || behavior === "default")
360
- return;
361
- const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
362
- await Promise.all(promises);
363
371
  }
364
372
  async _updateInterceptionPatterns() {
365
373
  const patterns = network.RouteHandler.prepareInterceptionPatterns(this._routes);
@@ -445,9 +453,15 @@ class BrowserContext extends import_channelOwner.ChannelOwner {
445
453
  await this._channel.close(options);
446
454
  await this._closedPromise;
447
455
  }
448
- async _enableRecorder(params) {
456
+ async _enableRecorder(params, eventSink) {
457
+ if (eventSink)
458
+ this._onRecorderEventSink = eventSink;
449
459
  await this._channel.enableRecorder(params);
450
460
  }
461
+ async _disableRecorder() {
462
+ this._onRecorderEventSink = void 0;
463
+ await this._channel.disableRecorder();
464
+ }
451
465
  }
452
466
  async function prepareStorageState(platform, options) {
453
467
  if (typeof options.storageState !== "string")
@@ -442,11 +442,11 @@ class Page extends import_channelOwner.ChannelOwner {
442
442
  }
443
443
  async _unrouteInternal(removed, remaining, behavior) {
444
444
  this._routes = remaining;
445
+ if (behavior && behavior !== "default") {
446
+ const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
447
+ await Promise.all(promises);
448
+ }
445
449
  await this._updateInterceptionPatterns();
446
- if (!behavior || behavior === "default")
447
- return;
448
- const promises = removed.map((routeHandler) => routeHandler.stop(behavior));
449
- await Promise.all(promises);
450
450
  }
451
451
  async _updateInterceptionPatterns() {
452
452
  const patterns = import_network.RouteHandler.prepareInterceptionPatterns(this._routes);