patchright-core 1.52.5 → 1.55.0

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 (218) hide show
  1. package/ThirdPartyNotices.txt +65 -123
  2. package/bin/reinstall_chrome_beta_mac.sh +1 -1
  3. package/bin/reinstall_chrome_stable_mac.sh +1 -1
  4. package/bin/reinstall_msedge_beta_mac.sh +1 -1
  5. package/bin/reinstall_msedge_dev_mac.sh +1 -1
  6. package/bin/reinstall_msedge_stable_mac.sh +1 -1
  7. package/browsers.json +14 -14
  8. package/index.js +1 -1
  9. package/lib/androidServerImpl.js +4 -2
  10. package/lib/browserServerImpl.js +47 -12
  11. package/lib/cli/program.js +116 -50
  12. package/lib/cli/programWithTestStub.js +1 -1
  13. package/lib/client/android.js +30 -34
  14. package/lib/client/browser.js +54 -17
  15. package/lib/client/browserContext.js +67 -71
  16. package/lib/client/browserType.js +25 -34
  17. package/lib/client/channelOwner.js +20 -24
  18. package/lib/client/connection.js +6 -10
  19. package/lib/client/electron.js +8 -3
  20. package/lib/client/elementHandle.js +18 -21
  21. package/lib/client/fetch.js +5 -3
  22. package/lib/client/frame.js +54 -32
  23. package/lib/client/input.js +3 -1
  24. package/lib/client/jsHandle.js +4 -0
  25. package/lib/client/localUtils.js +0 -1
  26. package/lib/client/locator.js +30 -26
  27. package/lib/client/network.js +5 -12
  28. package/lib/client/page.js +32 -32
  29. package/lib/client/playwright.js +6 -16
  30. package/lib/client/selectors.js +18 -38
  31. package/lib/client/timeoutSettings.js +12 -8
  32. package/lib/client/tracing.js +24 -20
  33. package/lib/client/waiter.js +2 -2
  34. package/lib/client/webSocket.js +4 -22
  35. package/lib/generated/bindingsControllerSource.js +28 -0
  36. package/lib/generated/clockSource.js +1 -1
  37. package/lib/generated/injectedScriptSource.js +1 -1
  38. package/lib/generated/pollingRecorderSource.js +1 -1
  39. package/lib/generated/storageScriptSource.js +28 -0
  40. package/lib/generated/utilityScriptSource.js +1 -1
  41. package/lib/generated/webSocketMockSource.js +12 -50
  42. package/lib/inProcessFactory.js +9 -6
  43. package/lib/outofprocess.js +0 -2
  44. package/lib/protocol/validator.js +421 -345
  45. package/lib/protocol/validatorPrimitives.js +18 -4
  46. package/lib/remote/playwrightConnection.js +29 -166
  47. package/lib/remote/playwrightServer.js +233 -35
  48. package/lib/server/android/android.js +97 -83
  49. package/lib/server/android/backendAdb.js +0 -2
  50. package/lib/server/bidi/bidiBrowser.js +139 -73
  51. package/lib/server/bidi/bidiChromium.js +23 -22
  52. package/lib/server/bidi/bidiExecutionContext.js +2 -1
  53. package/lib/server/bidi/bidiFirefox.js +17 -14
  54. package/lib/server/bidi/bidiInput.js +22 -22
  55. package/lib/server/bidi/bidiNetworkManager.js +8 -11
  56. package/lib/server/bidi/bidiPage.js +42 -86
  57. package/lib/server/bidi/third_party/bidiProtocol.js +5 -133
  58. package/lib/server/bidi/third_party/bidiProtocolCore.js +179 -0
  59. package/lib/server/{dispatchers/selectorsDispatcher.js → bidi/third_party/bidiProtocolPermissions.js} +20 -18
  60. package/lib/server/browser.js +30 -21
  61. package/lib/server/browserContext.js +203 -165
  62. package/lib/server/browserType.js +109 -107
  63. package/lib/server/chromium/chromium.js +84 -69
  64. package/lib/server/chromium/chromiumSwitches.js +13 -20
  65. package/lib/server/chromium/crBrowser.js +74 -40
  66. package/lib/server/chromium/crConnection.js +8 -9
  67. package/lib/server/chromium/crCoverage.js +11 -8
  68. package/lib/server/chromium/crDragDrop.js +25 -20
  69. package/lib/server/chromium/crExecutionContext.js +2 -1
  70. package/lib/server/chromium/crInput.js +32 -29
  71. package/lib/server/chromium/crNetworkManager.js +43 -31
  72. package/lib/server/chromium/crPage.js +98 -72
  73. package/lib/server/chromium/crServiceWorker.js +13 -18
  74. package/lib/server/chromium/videoRecorder.js +10 -18
  75. package/lib/server/clock.js +51 -39
  76. package/lib/server/codegen/csharp.js +10 -5
  77. package/lib/server/codegen/java.js +1 -1
  78. package/lib/server/codegen/javascript.js +1 -1
  79. package/lib/server/codegen/jsonl.js +2 -1
  80. package/lib/server/codegen/language.js +22 -1
  81. package/lib/server/codegen/languages.js +4 -4
  82. package/lib/server/codegen/python.js +1 -1
  83. package/lib/server/cookieStore.js +3 -1
  84. package/lib/server/debugController.js +105 -71
  85. package/lib/server/debugger.js +6 -23
  86. package/lib/server/deviceDescriptorsSource.json +237 -127
  87. package/lib/server/dialog.js +50 -6
  88. package/lib/server/dispatchers/androidDispatcher.js +77 -62
  89. package/lib/server/dispatchers/artifactDispatcher.js +18 -18
  90. package/lib/server/dispatchers/browserContextDispatcher.js +141 -91
  91. package/lib/server/dispatchers/browserDispatcher.js +55 -88
  92. package/lib/server/dispatchers/browserTypeDispatcher.js +18 -9
  93. package/lib/server/dispatchers/cdpSessionDispatcher.js +4 -4
  94. package/lib/server/dispatchers/debugControllerDispatcher.js +12 -21
  95. package/lib/server/dispatchers/dialogDispatcher.js +4 -4
  96. package/lib/server/dispatchers/dispatcher.js +78 -53
  97. package/lib/server/dispatchers/electronDispatcher.js +19 -20
  98. package/lib/server/dispatchers/elementHandlerDispatcher.js +83 -93
  99. package/lib/server/dispatchers/frameDispatcher.js +98 -101
  100. package/lib/server/dispatchers/jsHandleDispatcher.js +21 -16
  101. package/lib/server/dispatchers/jsonPipeDispatcher.js +4 -4
  102. package/lib/server/dispatchers/localUtilsDispatcher.js +53 -59
  103. package/lib/server/dispatchers/networkDispatchers.js +41 -35
  104. package/lib/server/dispatchers/pageDispatcher.js +156 -107
  105. package/lib/server/dispatchers/playwrightDispatcher.js +37 -25
  106. package/lib/server/dispatchers/streamDispatcher.js +15 -8
  107. package/lib/server/dispatchers/tracingDispatcher.js +22 -13
  108. package/lib/server/dispatchers/webSocketRouteDispatcher.js +46 -35
  109. package/lib/server/dispatchers/writableStreamDispatcher.js +16 -10
  110. package/lib/server/dom.js +198 -266
  111. package/lib/server/download.js +3 -3
  112. package/lib/server/electron/electron.js +96 -103
  113. package/lib/server/electron/loader.js +1 -1
  114. package/lib/server/fetch.js +22 -41
  115. package/lib/server/fileUploadUtils.js +1 -1
  116. package/lib/server/firefox/ffBrowser.js +79 -55
  117. package/lib/server/firefox/ffExecutionContext.js +2 -1
  118. package/lib/server/firefox/ffInput.js +23 -23
  119. package/lib/server/firefox/ffNetworkManager.js +8 -6
  120. package/lib/server/firefox/ffPage.js +39 -36
  121. package/lib/server/firefox/firefox.js +9 -10
  122. package/lib/server/frameSelectors.js +63 -20
  123. package/lib/server/frames.js +495 -555
  124. package/lib/server/har/harRecorder.js +1 -1
  125. package/lib/server/har/harTracer.js +4 -2
  126. package/lib/server/helper.js +3 -7
  127. package/lib/server/index.js +0 -3
  128. package/lib/server/input.js +47 -54
  129. package/lib/server/instrumentation.js +8 -14
  130. package/lib/server/javascript.js +8 -16
  131. package/lib/server/launchApp.js +48 -30
  132. package/lib/server/localUtils.js +45 -38
  133. package/lib/server/network.js +44 -10
  134. package/lib/server/page.js +232 -177
  135. package/lib/server/pageBinding.js +6 -7
  136. package/lib/server/playwright.js +4 -14
  137. package/lib/server/progress.js +57 -49
  138. package/lib/server/recorder/recorderApp.js +298 -95
  139. package/lib/server/recorder/recorderRunner.js +23 -24
  140. package/lib/server/recorder/recorderSignalProcessor.js +83 -0
  141. package/lib/server/recorder/recorderUtils.js +67 -10
  142. package/lib/server/recorder.js +284 -146
  143. package/lib/server/registry/index.js +83 -48
  144. package/lib/server/registry/nativeDeps.js +175 -0
  145. package/lib/server/registry/oopDownloadBrowserMain.js +1 -1
  146. package/lib/server/screenshotter.js +84 -83
  147. package/lib/server/selectors.js +12 -12
  148. package/lib/server/socksClientCertificatesInterceptor.js +198 -136
  149. package/lib/server/trace/recorder/snapshotter.js +12 -19
  150. package/lib/server/trace/recorder/tracing.js +36 -27
  151. package/lib/server/trace/viewer/traceViewer.js +11 -20
  152. package/lib/server/transport.js +20 -22
  153. package/lib/server/utils/comparators.js +2 -2
  154. package/lib/server/utils/debug.js +3 -8
  155. package/lib/server/utils/debugLogger.js +8 -0
  156. package/lib/server/utils/hostPlatform.js +3 -1
  157. package/lib/server/utils/network.js +35 -25
  158. package/lib/server/utils/nodePlatform.js +1 -1
  159. package/lib/server/utils/processLauncher.js +4 -1
  160. package/lib/server/utils/wsServer.js +11 -17
  161. package/lib/server/webkit/webkit.js +5 -2
  162. package/lib/server/webkit/wkBrowser.js +51 -28
  163. package/lib/server/webkit/wkExecutionContext.js +2 -1
  164. package/lib/server/webkit/wkInput.js +25 -25
  165. package/lib/server/webkit/wkInterceptableRequest.js +1 -1
  166. package/lib/server/webkit/wkPage.js +80 -59
  167. package/lib/server/webkit/wkProvisionalPage.js +1 -1
  168. package/lib/server/webkit/wkWorkers.js +7 -7
  169. package/lib/utils/isomorphic/ariaSnapshot.js +13 -7
  170. package/lib/utils/isomorphic/cssParser.js +1 -2
  171. package/lib/utils/isomorphic/locatorGenerators.js +18 -0
  172. package/lib/utils/isomorphic/manualPromise.js +1 -2
  173. package/lib/utils/isomorphic/mimeType.js +1 -2
  174. package/lib/utils/isomorphic/multimap.js +1 -2
  175. package/lib/utils/isomorphic/oldUtilityScriptSerializers.js +248 -0
  176. package/lib/utils/isomorphic/protocolFormatter.js +78 -0
  177. package/lib/utils/isomorphic/protocolMetainfo.js +318 -0
  178. package/lib/utils/isomorphic/selectorParser.js +3 -4
  179. package/lib/utils/isomorphic/stringUtils.js +3 -24
  180. package/lib/utils/isomorphic/time.js +9 -4
  181. package/lib/utils/isomorphic/timeoutRunner.js +3 -4
  182. package/lib/utils/isomorphic/traceUtils.js +2 -3
  183. package/lib/utils/isomorphic/urlMatch.js +21 -7
  184. package/lib/utils/isomorphic/utilityScriptSerializers.js +208 -205
  185. package/lib/utils.js +8 -2
  186. package/lib/utilsBundleImpl/index.js +160 -150
  187. package/lib/vite/htmlReport/index.html +17 -17
  188. package/lib/vite/recorder/assets/{codeMirrorModule-CXVeovup.js → codeMirrorModule-DzQ0k89p.js} +1 -1
  189. package/lib/vite/recorder/assets/{index-eHBmevrY.css → index-CI4HQ-Zb.css} +1 -1
  190. package/lib/vite/recorder/assets/index-D7C7daHH.js +184 -0
  191. package/lib/vite/recorder/index.html +3 -3
  192. package/lib/vite/traceViewer/assets/{codeMirrorModule-_GLjJL-7.js → codeMirrorModule-Di48jgWx.js} +1 -1
  193. package/lib/vite/traceViewer/assets/defaultSettingsView-szBn8781.js +256 -0
  194. package/lib/vite/traceViewer/defaultSettingsView.DVJHpiGt.css +1 -0
  195. package/lib/vite/traceViewer/index.BFsek2M6.css +1 -0
  196. package/lib/vite/traceViewer/index.DQvXoPLL.js +2 -0
  197. package/lib/vite/traceViewer/index.html +6 -6
  198. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  199. package/lib/vite/traceViewer/uiMode.dBV3oN9h.js +5 -0
  200. package/lib/vite/traceViewer/uiMode.html +4 -4
  201. package/lib/zipBundleImpl.js +4 -4
  202. package/package.json +1 -1
  203. package/types/protocol.d.ts +712 -107
  204. package/types/types.d.ts +128 -17
  205. package/lib/generated/consoleApiSource.js +0 -28
  206. package/lib/protocol/debug.js +0 -211
  207. package/lib/server/recorder/contextRecorder.js +0 -286
  208. package/lib/server/recorder/recorderCollection.js +0 -116
  209. package/lib/server/recorder/recorderFrontend.js +0 -16
  210. package/lib/server/storageScript.js +0 -154
  211. package/lib/server/timeoutSettings.js +0 -89
  212. package/lib/utils/isomorphic/builtins.js +0 -86
  213. package/lib/vite/recorder/assets/index-BsWQsSGl.js +0 -184
  214. package/lib/vite/traceViewer/assets/defaultSettingsView-DtCQiGHe.js +0 -265
  215. package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +0 -1
  216. package/lib/vite/traceViewer/index.CFOW-Ezb.css +0 -1
  217. package/lib/vite/traceViewer/index.cFZzK9RN.js +0 -2
  218. package/lib/vite/traceViewer/uiMode.XVPIqBeS.js +0 -5
@@ -3,10 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
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
6
  var __copyProps = (to, from, except, desc) => {
11
7
  if (from && typeof from === "object" || typeof from === "function") {
12
8
  for (let key of __getOwnPropNames(from))
@@ -15,138 +11,14 @@ var __copyProps = (to, from, except, desc) => {
15
11
  }
16
12
  return to;
17
13
  };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
15
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
16
  var bidiProtocol_exports = {};
20
- __export(bidiProtocol_exports, {
21
- BrowsingContext: () => BrowsingContext,
22
- ErrorCode: () => ErrorCode,
23
- Input: () => Input,
24
- Log: () => Log,
25
- Network: () => Network,
26
- Script: () => Script,
27
- Session: () => Session
28
- });
29
17
  module.exports = __toCommonJS(bidiProtocol_exports);
30
- /**
31
- * @license
32
- * Copyright 2024 Google Inc.
33
- * Modifications copyright (c) Microsoft Corporation.
34
- * SPDX-License-Identifier: Apache-2.0
35
- */
36
- var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
37
- ErrorCode2["InvalidArgument"] = "invalid argument";
38
- ErrorCode2["InvalidSelector"] = "invalid selector";
39
- ErrorCode2["InvalidSessionId"] = "invalid session id";
40
- ErrorCode2["InvalidWebExtension"] = "invalid web extension";
41
- ErrorCode2["MoveTargetOutOfBounds"] = "move target out of bounds";
42
- ErrorCode2["NoSuchAlert"] = "no such alert";
43
- ErrorCode2["NoSuchElement"] = "no such element";
44
- ErrorCode2["NoSuchFrame"] = "no such frame";
45
- ErrorCode2["NoSuchHandle"] = "no such handle";
46
- ErrorCode2["NoSuchHistoryEntry"] = "no such history entry";
47
- ErrorCode2["NoSuchIntercept"] = "no such intercept";
48
- ErrorCode2["NoSuchNode"] = "no such node";
49
- ErrorCode2["NoSuchRequest"] = "no such request";
50
- ErrorCode2["NoSuchScript"] = "no such script";
51
- ErrorCode2["NoSuchStoragePartition"] = "no such storage partition";
52
- ErrorCode2["NoSuchUserContext"] = "no such user context";
53
- ErrorCode2["NoSuchWebExtension"] = "no such web extension";
54
- ErrorCode2["SessionNotCreated"] = "session not created";
55
- ErrorCode2["UnableToCaptureScreen"] = "unable to capture screen";
56
- ErrorCode2["UnableToCloseBrowser"] = "unable to close browser";
57
- ErrorCode2["UnableToSetCookie"] = "unable to set cookie";
58
- ErrorCode2["UnableToSetFileInput"] = "unable to set file input";
59
- ErrorCode2["UnderspecifiedStoragePartition"] = "underspecified storage partition";
60
- ErrorCode2["UnknownCommand"] = "unknown command";
61
- ErrorCode2["UnknownError"] = "unknown error";
62
- ErrorCode2["UnsupportedOperation"] = "unsupported operation";
63
- return ErrorCode2;
64
- })(ErrorCode || {});
65
- var Session;
66
- ((Session2) => {
67
- let UserPromptHandlerType;
68
- ((UserPromptHandlerType2) => {
69
- UserPromptHandlerType2["Accept"] = "accept";
70
- UserPromptHandlerType2["Dismiss"] = "dismiss";
71
- UserPromptHandlerType2["Ignore"] = "ignore";
72
- })(UserPromptHandlerType = Session2.UserPromptHandlerType || (Session2.UserPromptHandlerType = {}));
73
- })(Session || (Session = {}));
74
- var BrowsingContext;
75
- ((BrowsingContext2) => {
76
- let ReadinessState;
77
- ((ReadinessState2) => {
78
- ReadinessState2["None"] = "none";
79
- ReadinessState2["Interactive"] = "interactive";
80
- ReadinessState2["Complete"] = "complete";
81
- })(ReadinessState = BrowsingContext2.ReadinessState || (BrowsingContext2.ReadinessState = {}));
82
- })(BrowsingContext || (BrowsingContext = {}));
83
- ((BrowsingContext2) => {
84
- let UserPromptType;
85
- ((UserPromptType2) => {
86
- UserPromptType2["Alert"] = "alert";
87
- UserPromptType2["Beforeunload"] = "beforeunload";
88
- UserPromptType2["Confirm"] = "confirm";
89
- UserPromptType2["Prompt"] = "prompt";
90
- })(UserPromptType = BrowsingContext2.UserPromptType || (BrowsingContext2.UserPromptType = {}));
91
- })(BrowsingContext || (BrowsingContext = {}));
92
- ((BrowsingContext2) => {
93
- let CreateType;
94
- ((CreateType2) => {
95
- CreateType2["Tab"] = "tab";
96
- CreateType2["Window"] = "window";
97
- })(CreateType = BrowsingContext2.CreateType || (BrowsingContext2.CreateType = {}));
98
- })(BrowsingContext || (BrowsingContext = {}));
99
- var Network;
100
- ((Network2) => {
101
- let SameSite;
102
- ((SameSite2) => {
103
- SameSite2["Strict"] = "strict";
104
- SameSite2["Lax"] = "lax";
105
- SameSite2["None"] = "none";
106
- })(SameSite = Network2.SameSite || (Network2.SameSite = {}));
107
- })(Network || (Network = {}));
108
- ((Network2) => {
109
- let InterceptPhase;
110
- ((InterceptPhase2) => {
111
- InterceptPhase2["BeforeRequestSent"] = "beforeRequestSent";
112
- InterceptPhase2["ResponseStarted"] = "responseStarted";
113
- InterceptPhase2["AuthRequired"] = "authRequired";
114
- })(InterceptPhase = Network2.InterceptPhase || (Network2.InterceptPhase = {}));
115
- })(Network || (Network = {}));
116
- var Script;
117
- ((Script2) => {
118
- let ResultOwnership;
119
- ((ResultOwnership2) => {
120
- ResultOwnership2["Root"] = "root";
121
- ResultOwnership2["None"] = "none";
122
- })(ResultOwnership = Script2.ResultOwnership || (Script2.ResultOwnership = {}));
123
- })(Script || (Script = {}));
124
- var Log;
125
- ((Log2) => {
126
- let Level;
127
- ((Level2) => {
128
- Level2["Debug"] = "debug";
129
- Level2["Info"] = "info";
130
- Level2["Warn"] = "warn";
131
- Level2["Error"] = "error";
132
- })(Level = Log2.Level || (Log2.Level = {}));
133
- })(Log || (Log = {}));
134
- var Input;
135
- ((Input2) => {
136
- let PointerType;
137
- ((PointerType2) => {
138
- PointerType2["Mouse"] = "mouse";
139
- PointerType2["Pen"] = "pen";
140
- PointerType2["Touch"] = "touch";
141
- })(PointerType = Input2.PointerType || (Input2.PointerType = {}));
142
- })(Input || (Input = {}));
18
+ __reExport(bidiProtocol_exports, require("./bidiProtocolCore"), module.exports);
19
+ __reExport(bidiProtocol_exports, require("./bidiProtocolPermissions"), module.exports);
143
20
  // Annotate the CommonJS export names for ESM import in node:
144
21
  0 && (module.exports = {
145
- BrowsingContext,
146
- ErrorCode,
147
- Input,
148
- Log,
149
- Network,
150
- Script,
151
- Session
22
+ ...require("./bidiProtocolCore"),
23
+ ...require("./bidiProtocolPermissions")
152
24
  });
@@ -0,0 +1,179 @@
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 bidiProtocolCore_exports = {};
20
+ __export(bidiProtocolCore_exports, {
21
+ BrowsingContext: () => BrowsingContext,
22
+ Emulation: () => Emulation,
23
+ ErrorCode: () => ErrorCode,
24
+ Input: () => Input,
25
+ Log: () => Log,
26
+ Network: () => Network,
27
+ Script: () => Script,
28
+ Session: () => Session
29
+ });
30
+ module.exports = __toCommonJS(bidiProtocolCore_exports);
31
+ var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => {
32
+ ErrorCode2["InvalidArgument"] = "invalid argument";
33
+ ErrorCode2["InvalidSelector"] = "invalid selector";
34
+ ErrorCode2["InvalidSessionId"] = "invalid session id";
35
+ ErrorCode2["InvalidWebExtension"] = "invalid web extension";
36
+ ErrorCode2["MoveTargetOutOfBounds"] = "move target out of bounds";
37
+ ErrorCode2["NoSuchAlert"] = "no such alert";
38
+ ErrorCode2["NoSuchNetworkCollector"] = "no such network collector";
39
+ ErrorCode2["NoSuchElement"] = "no such element";
40
+ ErrorCode2["NoSuchFrame"] = "no such frame";
41
+ ErrorCode2["NoSuchHandle"] = "no such handle";
42
+ ErrorCode2["NoSuchHistoryEntry"] = "no such history entry";
43
+ ErrorCode2["NoSuchIntercept"] = "no such intercept";
44
+ ErrorCode2["NoSuchNetworkData"] = "no such network data";
45
+ ErrorCode2["NoSuchNode"] = "no such node";
46
+ ErrorCode2["NoSuchRequest"] = "no such request";
47
+ ErrorCode2["NoSuchScript"] = "no such script";
48
+ ErrorCode2["NoSuchStoragePartition"] = "no such storage partition";
49
+ ErrorCode2["NoSuchUserContext"] = "no such user context";
50
+ ErrorCode2["NoSuchWebExtension"] = "no such web extension";
51
+ ErrorCode2["SessionNotCreated"] = "session not created";
52
+ ErrorCode2["UnableToCaptureScreen"] = "unable to capture screen";
53
+ ErrorCode2["UnableToCloseBrowser"] = "unable to close browser";
54
+ ErrorCode2["UnableToSetCookie"] = "unable to set cookie";
55
+ ErrorCode2["UnableToSetFileInput"] = "unable to set file input";
56
+ ErrorCode2["UnavailableNetworkData"] = "unavailable network data";
57
+ ErrorCode2["UnderspecifiedStoragePartition"] = "underspecified storage partition";
58
+ ErrorCode2["UnknownCommand"] = "unknown command";
59
+ ErrorCode2["UnknownError"] = "unknown error";
60
+ ErrorCode2["UnsupportedOperation"] = "unsupported operation";
61
+ return ErrorCode2;
62
+ })(ErrorCode || {});
63
+ var Session;
64
+ ((Session2) => {
65
+ let UserPromptHandlerType;
66
+ ((UserPromptHandlerType2) => {
67
+ UserPromptHandlerType2["Accept"] = "accept";
68
+ UserPromptHandlerType2["Dismiss"] = "dismiss";
69
+ UserPromptHandlerType2["Ignore"] = "ignore";
70
+ })(UserPromptHandlerType = Session2.UserPromptHandlerType || (Session2.UserPromptHandlerType = {}));
71
+ })(Session || (Session = {}));
72
+ var BrowsingContext;
73
+ ((BrowsingContext2) => {
74
+ let ReadinessState;
75
+ ((ReadinessState2) => {
76
+ ReadinessState2["None"] = "none";
77
+ ReadinessState2["Interactive"] = "interactive";
78
+ ReadinessState2["Complete"] = "complete";
79
+ })(ReadinessState = BrowsingContext2.ReadinessState || (BrowsingContext2.ReadinessState = {}));
80
+ })(BrowsingContext || (BrowsingContext = {}));
81
+ ((BrowsingContext2) => {
82
+ let UserPromptType;
83
+ ((UserPromptType2) => {
84
+ UserPromptType2["Alert"] = "alert";
85
+ UserPromptType2["Beforeunload"] = "beforeunload";
86
+ UserPromptType2["Confirm"] = "confirm";
87
+ UserPromptType2["Prompt"] = "prompt";
88
+ })(UserPromptType = BrowsingContext2.UserPromptType || (BrowsingContext2.UserPromptType = {}));
89
+ })(BrowsingContext || (BrowsingContext = {}));
90
+ ((BrowsingContext2) => {
91
+ let CreateType;
92
+ ((CreateType2) => {
93
+ CreateType2["Tab"] = "tab";
94
+ CreateType2["Window"] = "window";
95
+ })(CreateType = BrowsingContext2.CreateType || (BrowsingContext2.CreateType = {}));
96
+ })(BrowsingContext || (BrowsingContext = {}));
97
+ var Emulation;
98
+ ((Emulation2) => {
99
+ let ForcedColorsModeTheme;
100
+ ((ForcedColorsModeTheme2) => {
101
+ ForcedColorsModeTheme2["Light"] = "light";
102
+ ForcedColorsModeTheme2["Dark"] = "dark";
103
+ })(ForcedColorsModeTheme = Emulation2.ForcedColorsModeTheme || (Emulation2.ForcedColorsModeTheme = {}));
104
+ })(Emulation || (Emulation = {}));
105
+ ((Emulation2) => {
106
+ let ScreenOrientationNatural;
107
+ ((ScreenOrientationNatural2) => {
108
+ ScreenOrientationNatural2["Portrait"] = "portrait";
109
+ ScreenOrientationNatural2["Landscape"] = "landscape";
110
+ })(ScreenOrientationNatural = Emulation2.ScreenOrientationNatural || (Emulation2.ScreenOrientationNatural = {}));
111
+ })(Emulation || (Emulation = {}));
112
+ var Network;
113
+ ((Network2) => {
114
+ let CollectorType;
115
+ ((CollectorType2) => {
116
+ CollectorType2["Blob"] = "blob";
117
+ })(CollectorType = Network2.CollectorType || (Network2.CollectorType = {}));
118
+ })(Network || (Network = {}));
119
+ ((Network2) => {
120
+ let SameSite;
121
+ ((SameSite2) => {
122
+ SameSite2["Strict"] = "strict";
123
+ SameSite2["Lax"] = "lax";
124
+ SameSite2["None"] = "none";
125
+ SameSite2["Default"] = "default";
126
+ })(SameSite = Network2.SameSite || (Network2.SameSite = {}));
127
+ })(Network || (Network = {}));
128
+ ((Network2) => {
129
+ let DataType;
130
+ ((DataType2) => {
131
+ DataType2["Response"] = "response";
132
+ })(DataType = Network2.DataType || (Network2.DataType = {}));
133
+ })(Network || (Network = {}));
134
+ ((Network2) => {
135
+ let InterceptPhase;
136
+ ((InterceptPhase2) => {
137
+ InterceptPhase2["BeforeRequestSent"] = "beforeRequestSent";
138
+ InterceptPhase2["ResponseStarted"] = "responseStarted";
139
+ InterceptPhase2["AuthRequired"] = "authRequired";
140
+ })(InterceptPhase = Network2.InterceptPhase || (Network2.InterceptPhase = {}));
141
+ })(Network || (Network = {}));
142
+ var Script;
143
+ ((Script2) => {
144
+ let ResultOwnership;
145
+ ((ResultOwnership2) => {
146
+ ResultOwnership2["Root"] = "root";
147
+ ResultOwnership2["None"] = "none";
148
+ })(ResultOwnership = Script2.ResultOwnership || (Script2.ResultOwnership = {}));
149
+ })(Script || (Script = {}));
150
+ var Log;
151
+ ((Log2) => {
152
+ let Level;
153
+ ((Level2) => {
154
+ Level2["Debug"] = "debug";
155
+ Level2["Info"] = "info";
156
+ Level2["Warn"] = "warn";
157
+ Level2["Error"] = "error";
158
+ })(Level = Log2.Level || (Log2.Level = {}));
159
+ })(Log || (Log = {}));
160
+ var Input;
161
+ ((Input2) => {
162
+ let PointerType;
163
+ ((PointerType2) => {
164
+ PointerType2["Mouse"] = "mouse";
165
+ PointerType2["Pen"] = "pen";
166
+ PointerType2["Touch"] = "touch";
167
+ })(PointerType = Input2.PointerType || (Input2.PointerType = {}));
168
+ })(Input || (Input = {}));
169
+ // Annotate the CommonJS export names for ESM import in node:
170
+ 0 && (module.exports = {
171
+ BrowsingContext,
172
+ Emulation,
173
+ ErrorCode,
174
+ Input,
175
+ Log,
176
+ Network,
177
+ Script,
178
+ Session
179
+ });
@@ -16,25 +16,27 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var selectorsDispatcher_exports = {};
20
- __export(selectorsDispatcher_exports, {
21
- SelectorsDispatcher: () => SelectorsDispatcher
19
+ var bidiProtocolPermissions_exports = {};
20
+ __export(bidiProtocolPermissions_exports, {
21
+ Permissions: () => Permissions
22
22
  });
23
- module.exports = __toCommonJS(selectorsDispatcher_exports);
24
- var import_dispatcher = require("./dispatcher");
25
- class SelectorsDispatcher extends import_dispatcher.Dispatcher {
26
- constructor(scope, selectors) {
27
- super(scope, selectors, "Selectors", {});
28
- this._type_Selectors = true;
29
- }
30
- async register(params) {
31
- await this._object.register(params.name, params.source, params.contentScript);
32
- }
33
- async setTestIdAttributeName(params) {
34
- this._object.setTestIdAttributeName(params.testIdAttributeName);
35
- }
36
- }
23
+ module.exports = __toCommonJS(bidiProtocolPermissions_exports);
24
+ /**
25
+ * @license
26
+ * Copyright 2024 Google Inc.
27
+ * Modifications copyright (c) Microsoft Corporation.
28
+ * SPDX-License-Identifier: Apache-2.0
29
+ */
30
+ var Permissions;
31
+ ((Permissions2) => {
32
+ let PermissionState;
33
+ ((PermissionState2) => {
34
+ PermissionState2["Granted"] = "granted";
35
+ PermissionState2["Denied"] = "denied";
36
+ PermissionState2["Prompt"] = "prompt";
37
+ })(PermissionState = Permissions2.PermissionState || (Permissions2.PermissionState = {}));
38
+ })(Permissions || (Permissions = {}));
37
39
  // Annotate the CommonJS export names for ESM import in node:
38
40
  0 && (module.exports = {
39
- SelectorsDispatcher
41
+ Permissions
40
42
  });
@@ -41,43 +41,52 @@ class Browser extends import_instrumentation.SdkObject {
41
41
  }
42
42
  static {
43
43
  this.Events = {
44
+ Context: "context",
44
45
  Disconnected: "disconnected"
45
46
  };
46
47
  }
47
- async newContext(metadata, options) {
48
+ sdkLanguage() {
49
+ return this.options.sdkLanguage || this.attribution.playwright.options.sdkLanguage;
50
+ }
51
+ async newContext(progress, options) {
48
52
  (0, import_browserContext.validateBrowserContextOptions)(options, this.options);
49
53
  let clientCertificatesProxy;
50
- if (options.clientCertificates?.length) {
51
- clientCertificatesProxy = new import_socksClientCertificatesInterceptor.ClientCertificatesProxy(options);
52
- options = { ...options };
53
- options.proxyOverride = await clientCertificatesProxy.listen();
54
- options.internalIgnoreHTTPSErrors = true;
55
- }
56
54
  let context;
57
55
  try {
58
- context = await this.doCreateNewContext(options);
56
+ if (options.clientCertificates?.length) {
57
+ clientCertificatesProxy = await import_socksClientCertificatesInterceptor.ClientCertificatesProxy.create(progress, options);
58
+ options = { ...options };
59
+ options.proxyOverride = clientCertificatesProxy.proxySettings();
60
+ options.internalIgnoreHTTPSErrors = true;
61
+ }
62
+ context = await progress.race(this.doCreateNewContext(options));
63
+ context._clientCertificatesProxy = clientCertificatesProxy;
64
+ if (options.__testHookBeforeSetStorageState)
65
+ await progress.race(options.__testHookBeforeSetStorageState());
66
+ await context.setStorageState(progress, options.storageState, "initial");
67
+ this.emit(Browser.Events.Context, context);
68
+ return context;
59
69
  } catch (error) {
60
- await clientCertificatesProxy?.close();
70
+ await context?.close({ reason: "Failed to create context" }).catch(() => {
71
+ });
72
+ await clientCertificatesProxy?.close().catch(() => {
73
+ });
61
74
  throw error;
62
75
  }
63
- context._clientCertificatesProxy = clientCertificatesProxy;
64
- if (options.storageState)
65
- await context.setStorageState(metadata, options.storageState);
66
- return context;
67
76
  }
68
- async newContextForReuse(params, metadata) {
77
+ async newContextForReuse(progress, params) {
69
78
  const hash = import_browserContext.BrowserContext.reusableContextHash(params);
70
79
  if (!this._contextForReuse || hash !== this._contextForReuse.hash || !this._contextForReuse.context.canResetForReuse()) {
71
80
  if (this._contextForReuse)
72
81
  await this._contextForReuse.context.close({ reason: "Context reused" });
73
- this._contextForReuse = { context: await this.newContext(metadata, params), hash };
74
- return { context: this._contextForReuse.context, needsReset: false };
82
+ this._contextForReuse = { context: await this.newContext(progress, params), hash };
83
+ return this._contextForReuse.context;
75
84
  }
76
- await this._contextForReuse.context.stopPendingOperations("Context recreated");
77
- return { context: this._contextForReuse.context, needsReset: true };
85
+ await this._contextForReuse.context.resetForReuse(progress, params);
86
+ return this._contextForReuse.context;
78
87
  }
79
- async stopPendingOperations(reason) {
80
- await this._contextForReuse?.context?.stopPendingOperations(reason);
88
+ contextForReuse() {
89
+ return this._contextForReuse?.context;
81
90
  }
82
91
  _downloadCreated(page, uuid, url, suggestedFilename) {
83
92
  const download = new import_download.Download(page, this.options.downloadsPath || "", uuid, url, suggestedFilename);
@@ -101,7 +110,7 @@ class Browser extends import_instrumentation.SdkObject {
101
110
  this._idToVideo.set(videoId, { context, artifact });
102
111
  pageOrError.then((page) => {
103
112
  if (page instanceof import_page.Page) {
104
- page._video = artifact;
113
+ page.video = artifact;
105
114
  page.emitOnContext(import_browserContext.BrowserContext.Events.VideoStarted, artifact);
106
115
  page.emit(import_page.Page.Events.Video, artifact);
107
116
  }