patchright-core 1.57.0 → 1.58.2

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 (148) hide show
  1. package/ThirdPartyNotices.txt +3223 -308
  2. package/browsers.json +21 -22
  3. package/lib/cli/program.js +4 -5
  4. package/lib/client/api.js +3 -0
  5. package/lib/client/browser.js +3 -5
  6. package/lib/client/browserContext.js +40 -4
  7. package/lib/client/browserType.js +4 -3
  8. package/lib/client/connection.js +4 -0
  9. package/lib/client/elementHandle.js +3 -0
  10. package/lib/client/events.js +3 -0
  11. package/lib/client/fetch.js +3 -4
  12. package/lib/client/frame.js +10 -1
  13. package/lib/client/locator.js +8 -0
  14. package/lib/client/network.js +5 -1
  15. package/lib/client/page.js +29 -1
  16. package/lib/client/pageAgent.js +64 -0
  17. package/lib/client/platform.js +3 -0
  18. package/lib/client/tracing.js +1 -1
  19. package/lib/generated/injectedScriptSource.js +1 -1
  20. package/lib/generated/pollingRecorderSource.js +1 -1
  21. package/lib/mcpBundle.js +84 -0
  22. package/lib/mcpBundleImpl/index.js +147 -0
  23. package/lib/protocol/serializers.js +5 -0
  24. package/lib/protocol/validator.js +88 -4
  25. package/lib/remote/playwrightServer.js +1 -2
  26. package/lib/server/agent/actionRunner.js +335 -0
  27. package/lib/server/agent/actions.js +128 -0
  28. package/lib/server/agent/codegen.js +111 -0
  29. package/lib/server/agent/context.js +150 -0
  30. package/lib/server/agent/expectTools.js +156 -0
  31. package/lib/server/agent/pageAgent.js +204 -0
  32. package/lib/server/agent/performTools.js +262 -0
  33. package/lib/server/agent/tool.js +109 -0
  34. package/lib/server/artifact.js +1 -1
  35. package/lib/server/bidi/bidiBrowser.js +56 -12
  36. package/lib/server/bidi/bidiChromium.js +8 -12
  37. package/lib/server/bidi/bidiConnection.js +1 -0
  38. package/lib/server/bidi/bidiDeserializer.js +116 -0
  39. package/lib/server/bidi/bidiExecutionContext.js +75 -29
  40. package/lib/server/bidi/bidiFirefox.js +6 -8
  41. package/lib/server/bidi/bidiNetworkManager.js +1 -1
  42. package/lib/server/bidi/bidiPage.js +39 -28
  43. package/lib/server/bidi/third_party/bidiProtocolCore.js +1 -0
  44. package/lib/server/browserContext.js +34 -26
  45. package/lib/server/browserType.js +12 -4
  46. package/lib/server/chromium/chromium.js +14 -20
  47. package/lib/server/chromium/chromiumSwitches.js +2 -2
  48. package/lib/server/chromium/crBrowser.js +22 -12
  49. package/lib/server/chromium/crConnection.js +0 -5
  50. package/lib/server/chromium/crCoverage.js +13 -1
  51. package/lib/server/chromium/crDevTools.js +0 -2
  52. package/lib/server/chromium/crNetworkManager.js +92 -12
  53. package/lib/server/chromium/crPage.js +62 -116
  54. package/lib/server/codegen/javascript.js +6 -29
  55. package/lib/server/deviceDescriptorsSource.json +56 -56
  56. package/lib/server/dispatchers/browserContextDispatcher.js +3 -2
  57. package/lib/server/dispatchers/dispatcher.js +6 -13
  58. package/lib/server/dispatchers/frameDispatcher.js +1 -1
  59. package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
  60. package/lib/server/dispatchers/pageAgentDispatcher.js +96 -0
  61. package/lib/server/dispatchers/pageDispatcher.js +4 -0
  62. package/lib/server/dom.js +12 -3
  63. package/lib/server/electron/electron.js +5 -2
  64. package/lib/server/firefox/ffBrowser.js +10 -20
  65. package/lib/server/firefox/ffConnection.js +0 -5
  66. package/lib/server/firefox/ffNetworkManager.js +2 -2
  67. package/lib/server/firefox/ffPage.js +15 -18
  68. package/lib/server/firefox/firefox.js +6 -8
  69. package/lib/server/frameSelectors.js +16 -4
  70. package/lib/server/frames.js +251 -86
  71. package/lib/server/instrumentation.js +3 -0
  72. package/lib/server/javascript.js +8 -4
  73. package/lib/server/launchApp.js +2 -1
  74. package/lib/server/network.js +50 -12
  75. package/lib/server/page.js +61 -91
  76. package/lib/server/progress.js +26 -6
  77. package/lib/server/recorder/recorderApp.js +79 -100
  78. package/lib/server/registry/browserFetcher.js +6 -4
  79. package/lib/server/registry/index.js +172 -149
  80. package/lib/server/registry/oopDownloadBrowserMain.js +3 -0
  81. package/lib/server/screencast.js +190 -0
  82. package/lib/server/screenshotter.js +6 -0
  83. package/lib/server/trace/recorder/snapshotter.js +17 -8
  84. package/lib/server/trace/recorder/snapshotterInjected.js +30 -72
  85. package/lib/server/trace/recorder/tracing.js +29 -21
  86. package/lib/server/trace/viewer/traceParser.js +72 -0
  87. package/lib/server/trace/viewer/traceViewer.js +21 -17
  88. package/lib/server/utils/expectUtils.js +87 -2
  89. package/lib/server/utils/hostPlatform.js +15 -0
  90. package/lib/server/utils/httpServer.js +5 -20
  91. package/lib/server/utils/network.js +37 -28
  92. package/lib/server/utils/nodePlatform.js +6 -0
  93. package/lib/server/{chromium/videoRecorder.js → videoRecorder.js} +22 -13
  94. package/lib/server/webkit/webkit.js +4 -6
  95. package/lib/server/webkit/wkBrowser.js +2 -6
  96. package/lib/server/webkit/wkConnection.js +1 -6
  97. package/lib/server/webkit/wkInterceptableRequest.js +29 -1
  98. package/lib/server/webkit/wkPage.js +75 -46
  99. package/lib/utils/isomorphic/ariaSnapshot.js +60 -2
  100. package/lib/utils/isomorphic/lruCache.js +51 -0
  101. package/lib/utils/isomorphic/protocolMetainfo.js +9 -1
  102. package/lib/utils/isomorphic/stringUtils.js +49 -0
  103. package/lib/utils/isomorphic/trace/entries.js +16 -0
  104. package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -0
  105. package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
  106. package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
  107. package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
  108. package/lib/utils/isomorphic/trace/traceModel.js +365 -0
  109. package/lib/utils/isomorphic/trace/traceModernizer.js +400 -0
  110. package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
  111. package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
  112. package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
  113. package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
  114. package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
  115. package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
  116. package/lib/utils/isomorphic/yaml.js +84 -0
  117. package/lib/utils.js +2 -0
  118. package/lib/utilsBundle.js +2 -5
  119. package/lib/utilsBundleImpl/index.js +165 -165
  120. package/lib/vite/htmlReport/index.html +21 -21
  121. package/lib/vite/recorder/assets/codeMirrorModule-CFUTFUO7.js +32 -0
  122. package/lib/vite/{traceViewer/codeMirrorModule.C3UTv-Ge.css → recorder/assets/codeMirrorModule-DYBRYzYX.css} +1 -1
  123. package/lib/vite/recorder/assets/{index-Ri0uHF7I.css → index-BSjZa4pk.css} +1 -1
  124. package/lib/vite/recorder/assets/index-CVkBxsGf.js +193 -0
  125. package/lib/vite/recorder/index.html +2 -2
  126. package/lib/vite/traceViewer/assets/codeMirrorModule-BVA4h_ZY.js +32 -0
  127. package/lib/vite/traceViewer/assets/defaultSettingsView-CjfmcdOz.js +266 -0
  128. package/lib/vite/{recorder/assets/codeMirrorModule-C3UTv-Ge.css → traceViewer/codeMirrorModule.DYBRYzYX.css} +1 -1
  129. package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -0
  130. package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
  131. package/lib/vite/traceViewer/index.BtyWtaE-.js +2 -0
  132. package/lib/vite/traceViewer/index.html +4 -4
  133. package/lib/vite/traceViewer/sw.bundle.js +5 -3
  134. package/lib/vite/traceViewer/uiMode.fyrXARf2.js +5 -0
  135. package/lib/vite/traceViewer/uiMode.html +3 -3
  136. package/package.json +2 -1
  137. package/types/protocol.d.ts +738 -159
  138. package/types/types.d.ts +25 -38
  139. package/lib/server/bidi/third_party/bidiDeserializer.js +0 -98
  140. package/lib/server/trace/test/inMemorySnapshotter.js +0 -87
  141. package/lib/vite/recorder/assets/codeMirrorModule-CBbSe-ZI.js +0 -25
  142. package/lib/vite/recorder/assets/index-CpZVd2nA.js +0 -193
  143. package/lib/vite/traceViewer/assets/codeMirrorModule-DHz0wP2C.js +0 -25
  144. package/lib/vite/traceViewer/assets/defaultSettingsView-WsZP88O6.js +0 -266
  145. package/lib/vite/traceViewer/defaultSettingsView.ConWv5KN.css +0 -1
  146. package/lib/vite/traceViewer/index.C4Y3Aw8n.css +0 -1
  147. package/lib/vite/traceViewer/index.C8xAeo93.js +0 -2
  148. package/lib/vite/traceViewer/uiMode.BltraIJB.js +0 -5
package/types/types.d.ts CHANGED
@@ -12457,6 +12457,12 @@ export interface Locator {
12457
12457
  elementHandle(options?: {
12458
12458
  timeout?: number;
12459
12459
  }): Promise<null|ElementHandle<SVGElement | HTMLElement>>;
12460
+ /**
12461
+ * Returns a human-readable representation of the locator, using the
12462
+ * [locator.description()](https://playwright.dev/docs/api/class-locator#locator-description) if one exists;
12463
+ * otherwise, it generates a string based on the locator's selector.
12464
+ */
12465
+ toString(): string;
12460
12466
  /**
12461
12467
  * When the locator points to a list of elements, this returns an array of locators, pointing to their respective
12462
12468
  * elements.
@@ -13011,8 +13017,9 @@ export interface Locator {
13011
13017
  /**
13012
13018
  * Returns locator description previously set with
13013
13019
  * [locator.describe(description)](https://playwright.dev/docs/api/class-locator#locator-describe). Returns `null` if
13014
- * no custom description has been set. Prefer `Locator.toString()` for a human-readable representation, as it uses the
13015
- * description when available.
13020
+ * no custom description has been set. Prefer
13021
+ * [locator.toString()](https://playwright.dev/docs/api/class-locator#locator-to-string) for a human-readable
13022
+ * representation, as it uses the description when available.
13016
13023
  *
13017
13024
  * **Usage**
13018
13025
  *
@@ -14998,14 +15005,6 @@ export interface BrowserType<Unused = {}> {
14998
15005
  */
14999
15006
  deviceScaleFactor?: number;
15000
15007
 
15001
- /**
15002
- * **Chromium-only** Whether to auto-open a Developer Tools panel for each tab. If this option is `true`, the
15003
- * [`headless`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-persistent-context-option-headless)
15004
- * option will be set `false`.
15005
- * @deprecated Use [debugging tools](https://playwright.dev/docs/debug) instead.
15006
- */
15007
- devtools?: boolean;
15008
-
15009
15008
  /**
15010
15009
  * If specified, accepted downloads are downloaded into this directory. Otherwise, temporary directory is created and
15011
15010
  * is deleted when browser is closed. In either case, the downloads are deleted when the browser context they were
@@ -15085,9 +15084,7 @@ export interface BrowserType<Unused = {}> {
15085
15084
  /**
15086
15085
  * Whether to run browser in headless mode. More details for
15087
15086
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
15088
- * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
15089
- * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
15090
- * `true`.
15087
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true`.
15091
15088
  */
15092
15089
  headless?: boolean;
15093
15090
 
@@ -15428,14 +15425,6 @@ export interface BrowserType<Unused = {}> {
15428
15425
  */
15429
15426
  chromiumSandbox?: boolean;
15430
15427
 
15431
- /**
15432
- * **Chromium-only** Whether to auto-open a Developer Tools panel for each tab. If this option is `true`, the
15433
- * [`headless`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-server-option-headless) option
15434
- * will be set `false`.
15435
- * @deprecated Use [debugging tools](https://playwright.dev/docs/debug) instead.
15436
- */
15437
- devtools?: boolean;
15438
-
15439
15428
  /**
15440
15429
  * If specified, accepted downloads are downloaded into this directory. Otherwise, temporary directory is created and
15441
15430
  * is deleted when browser is closed. In either case, the downloads are deleted when the browser context they were
@@ -15480,9 +15469,7 @@ export interface BrowserType<Unused = {}> {
15480
15469
  /**
15481
15470
  * Whether to run browser in headless mode. More details for
15482
15471
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
15483
- * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
15484
- * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
15485
- * `true`.
15472
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true`.
15486
15473
  */
15487
15474
  headless?: boolean;
15488
15475
 
@@ -18881,7 +18868,7 @@ export interface ConsoleMessage {
18881
18868
  */
18882
18869
  text(): string;
18883
18870
 
18884
- type(): "log"|"debug"|"info"|"error"|"warning"|"dir"|"dirxml"|"table"|"trace"|"clear"|"startGroup"|"startGroupCollapsed"|"endGroup"|"assert"|"profile"|"profileEnd"|"count"|"timeEnd";
18871
+ type(): "log"|"debug"|"info"|"error"|"warning"|"dir"|"dirxml"|"table"|"trace"|"clear"|"startGroup"|"startGroupCollapsed"|"endGroup"|"assert"|"profile"|"profileEnd"|"count"|"time"|"timeEnd";
18885
18872
 
18886
18873
  /**
18887
18874
  * The web worker or service worker that produced this console message, if any. Note that console messages from web
@@ -20876,8 +20863,12 @@ export interface Route {
20876
20863
  * [route.fallback([options])](https://playwright.dev/docs/api/class-route#route-fallback) If you want next matching
20877
20864
  * handler in the chain to be invoked.
20878
20865
  *
20879
- * **NOTE** The `Cookie` header cannot be overridden using this method. If a value is provided, it will be ignored,
20880
- * and the cookie will be loaded from the browser's cookie store. To set custom cookies, use
20866
+ * **NOTE** Some request headers are **forbidden** and cannot be overridden (for example, `Cookie`, `Host`,
20867
+ * `Content-Length` and others, see
20868
+ * [this MDN page](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_request_header) for full list). If an
20869
+ * override is provided for a forbidden header, it will be ignored and the original request header will be used.
20870
+ *
20871
+ * To set custom cookies, use
20881
20872
  * [browserContext.addCookies(cookies)](https://playwright.dev/docs/api/class-browsercontext#browser-context-add-cookies).
20882
20873
  *
20883
20874
  * @param options
@@ -21763,14 +21754,6 @@ export interface LaunchOptions {
21763
21754
  */
21764
21755
  chromiumSandbox?: boolean;
21765
21756
 
21766
- /**
21767
- * **Chromium-only** Whether to auto-open a Developer Tools panel for each tab. If this option is `true`, the
21768
- * [`headless`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-headless) option will be
21769
- * set `false`.
21770
- * @deprecated Use [debugging tools](https://playwright.dev/docs/debug) instead.
21771
- */
21772
- devtools?: boolean;
21773
-
21774
21757
  /**
21775
21758
  * If specified, accepted downloads are downloaded into this directory. Otherwise, temporary directory is created and
21776
21759
  * is deleted when browser is closed. In either case, the downloads are deleted when the browser context they were
@@ -21815,9 +21798,7 @@ export interface LaunchOptions {
21815
21798
  /**
21816
21799
  * Whether to run browser in headless mode. More details for
21817
21800
  * [Chromium](https://developers.google.com/web/updates/2017/04/headless-chrome) and
21818
- * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true` unless the
21819
- * [`devtools`](https://playwright.dev/docs/api/class-browsertype#browser-type-launch-option-devtools) option is
21820
- * `true`.
21801
+ * [Firefox](https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/). Defaults to `true`.
21821
21802
  */
21822
21803
  headless?: boolean;
21823
21804
 
@@ -21889,6 +21870,12 @@ export interface ConnectOverCDPOptions {
21889
21870
  */
21890
21871
  headers?: { [key: string]: string; };
21891
21872
 
21873
+ /**
21874
+ * Tells Playwright that it runs on the same host as the CDP server. It will enable certain optimizations that rely
21875
+ * upon the file system being the same between Playwright and the Browser.
21876
+ */
21877
+ isLocal?: boolean;
21878
+
21892
21879
  /**
21893
21880
  * Logger sink for Playwright logging. Optional.
21894
21881
  * @deprecated The logs received by the logger are incomplete. Please use tracing instead.
@@ -1,98 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var bidiDeserializer_exports = {};
20
- __export(bidiDeserializer_exports, {
21
- BidiDeserializer: () => BidiDeserializer
22
- });
23
- module.exports = __toCommonJS(bidiDeserializer_exports);
24
- /**
25
- * @license
26
- * Copyright 2024 Google Inc.
27
- * Modifications copyright (c) Microsoft Corporation.
28
- * SPDX-License-Identifier: Apache-2.0
29
- */
30
- class BidiDeserializer {
31
- static deserialize(result) {
32
- if (!result)
33
- return void 0;
34
- switch (result.type) {
35
- case "array":
36
- return result.value?.map((value) => {
37
- return BidiDeserializer.deserialize(value);
38
- });
39
- case "set":
40
- return result.value?.reduce((acc, value) => {
41
- return acc.add(BidiDeserializer.deserialize(value));
42
- }, /* @__PURE__ */ new Set());
43
- case "object":
44
- return result.value?.reduce((acc, tuple) => {
45
- const { key, value } = BidiDeserializer._deserializeTuple(tuple);
46
- acc[key] = value;
47
- return acc;
48
- }, {});
49
- case "map":
50
- return result.value?.reduce((acc, tuple) => {
51
- const { key, value } = BidiDeserializer._deserializeTuple(tuple);
52
- return acc.set(key, value);
53
- }, /* @__PURE__ */ new Map());
54
- case "promise":
55
- return {};
56
- case "regexp":
57
- return new RegExp(result.value.pattern, result.value.flags);
58
- case "date":
59
- return new Date(result.value);
60
- case "undefined":
61
- return void 0;
62
- case "null":
63
- return null;
64
- case "number":
65
- return BidiDeserializer._deserializeNumber(result.value);
66
- case "bigint":
67
- return BigInt(result.value);
68
- case "boolean":
69
- return Boolean(result.value);
70
- case "string":
71
- return result.value;
72
- }
73
- throw new Error(`Deserialization of type ${result.type} not supported.`);
74
- }
75
- static _deserializeNumber(value) {
76
- switch (value) {
77
- case "-0":
78
- return -0;
79
- case "NaN":
80
- return NaN;
81
- case "Infinity":
82
- return Infinity;
83
- case "-Infinity":
84
- return -Infinity;
85
- default:
86
- return value;
87
- }
88
- }
89
- static _deserializeTuple([serializedKey, serializedValue]) {
90
- const key = typeof serializedKey === "string" ? serializedKey : BidiDeserializer.deserialize(serializedKey);
91
- const value = BidiDeserializer.deserialize(serializedValue);
92
- return { key, value };
93
- }
94
- }
95
- // Annotate the CommonJS export names for ESM import in node:
96
- 0 && (module.exports = {
97
- BidiDeserializer
98
- });
@@ -1,87 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var inMemorySnapshotter_exports = {};
20
- __export(inMemorySnapshotter_exports, {
21
- InMemorySnapshotter: () => InMemorySnapshotter
22
- });
23
- module.exports = __toCommonJS(inMemorySnapshotter_exports);
24
- var import_snapshotStorage = require("../../../../../trace-viewer/src/sw/snapshotStorage");
25
- var import_utils = require("../../../utils");
26
- var import_harTracer = require("../../har/harTracer");
27
- var import_snapshotter = require("../recorder/snapshotter");
28
- class InMemorySnapshotter {
29
- constructor(context) {
30
- this._blobs = /* @__PURE__ */ new Map();
31
- this._snapshotReadyPromises = /* @__PURE__ */ new Map();
32
- this._snapshotCount = 0;
33
- this._snapshotter = new import_snapshotter.Snapshotter(context, this);
34
- this._harTracer = new import_harTracer.HarTracer(context, null, this, { content: "attach", includeTraceInfo: true, recordRequestOverrides: false, waitForContentOnStop: false });
35
- this._storage = new import_snapshotStorage.SnapshotStorage();
36
- }
37
- async initialize() {
38
- await this._snapshotter.start();
39
- this._harTracer.start({ omitScripts: true });
40
- }
41
- async reset() {
42
- await this._snapshotter.reset();
43
- await this._harTracer.flush();
44
- this._harTracer.stop();
45
- this._harTracer.start({ omitScripts: true });
46
- }
47
- async dispose() {
48
- this._snapshotter.dispose();
49
- await this._harTracer.flush();
50
- this._harTracer.stop();
51
- }
52
- async captureSnapshot(page, callId, snapshotName) {
53
- if (this._snapshotReadyPromises.has(snapshotName))
54
- throw new Error("Duplicate snapshot name: " + snapshotName);
55
- this._snapshotter.captureSnapshot(page, callId, snapshotName).catch(() => {
56
- });
57
- const promise = new import_utils.ManualPromise();
58
- this._snapshotReadyPromises.set(snapshotName, promise);
59
- return promise;
60
- }
61
- onEntryStarted(entry) {
62
- }
63
- onEntryFinished(entry) {
64
- this._storage.addResource("", entry);
65
- }
66
- onContentBlob(sha1, buffer) {
67
- this._blobs.set(sha1, buffer);
68
- }
69
- onSnapshotterBlob(blob) {
70
- this._blobs.set(blob.sha1, blob.buffer);
71
- }
72
- onFrameSnapshot(snapshot) {
73
- ++this._snapshotCount;
74
- const renderer = this._storage.addFrameSnapshot("", snapshot, []);
75
- this._snapshotReadyPromises.get(snapshot.snapshotName || "")?.resolve(renderer);
76
- }
77
- async resourceContentForTest(sha1) {
78
- return this._blobs.get(sha1);
79
- }
80
- snapshotCount() {
81
- return this._snapshotCount;
82
- }
83
- }
84
- // Annotate the CommonJS export names for ESM import in node:
85
- 0 && (module.exports = {
86
- InMemorySnapshotter
87
- });