@checkly/playwright-core 1.42.17 → 1.47.20-alpha

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 (234) hide show
  1. package/ThirdPartyNotices.txt +144 -109
  2. package/browsers.json +15 -25
  3. package/lib/androidServerImpl.js +1 -1
  4. package/lib/browserServerImpl.js +1 -1
  5. package/lib/cli/driver.js +1 -3
  6. package/lib/cli/program.js +5 -10
  7. package/lib/client/android.js +1 -1
  8. package/lib/client/api.js +7 -0
  9. package/lib/client/browserContext.js +37 -5
  10. package/lib/client/browserType.js +19 -11
  11. package/lib/client/channelOwner.js +19 -16
  12. package/lib/client/clientInstrumentation.js +17 -7
  13. package/lib/client/clock.js +68 -0
  14. package/lib/client/connection.js +9 -6
  15. package/lib/client/electron.js +7 -5
  16. package/lib/client/elementHandle.js +44 -14
  17. package/lib/client/eventEmitter.js +314 -0
  18. package/lib/client/fetch.js +81 -28
  19. package/lib/client/frame.js +2 -4
  20. package/lib/client/jsHandle.js +7 -1
  21. package/lib/client/locator.js +9 -0
  22. package/lib/client/network.js +12 -9
  23. package/lib/client/page.js +45 -23
  24. package/lib/client/playwright.js +3 -0
  25. package/lib/client/tracing.js +7 -4
  26. package/lib/common/socksProxy.js +2 -2
  27. package/lib/generated/clockSource.js +7 -0
  28. package/lib/generated/injectedScriptSource.js +1 -1
  29. package/lib/generated/recorderSource.js +1 -1
  30. package/lib/generated/utilityScriptSource.js +1 -1
  31. package/lib/protocol/serializers.js +12 -11
  32. package/lib/protocol/validator.js +137 -55
  33. package/lib/server/bidi/bidiBrowser.js +296 -0
  34. package/lib/server/bidi/bidiConnection.js +206 -0
  35. package/lib/server/bidi/bidiExecutionContext.js +162 -0
  36. package/lib/server/bidi/bidiFirefox.js +110 -0
  37. package/lib/server/bidi/bidiInput.js +174 -0
  38. package/lib/server/bidi/bidiNetworkManager.js +304 -0
  39. package/lib/server/bidi/bidiPage.js +456 -0
  40. package/lib/server/bidi/third_party/bidiDeserializer.js +93 -0
  41. package/lib/server/bidi/third_party/bidiKeyboard.js +238 -0
  42. package/lib/server/bidi/third_party/bidiProtocol.js +139 -0
  43. package/lib/server/bidi/third_party/bidiSerializer.js +144 -0
  44. package/lib/server/browser.js +9 -1
  45. package/lib/server/browserContext.js +97 -22
  46. package/lib/server/browserType.js +27 -20
  47. package/lib/server/chromium/chromium.js +30 -15
  48. package/lib/server/chromium/chromiumSwitches.js +6 -3
  49. package/lib/server/chromium/crBrowser.js +11 -17
  50. package/lib/server/chromium/crConnection.js +2 -2
  51. package/lib/server/chromium/crDragDrop.js +28 -29
  52. package/lib/server/chromium/crNetworkManager.js +130 -84
  53. package/lib/server/chromium/crPage.js +34 -79
  54. package/lib/server/chromium/crProtocolHelper.js +3 -1
  55. package/lib/server/chromium/crServiceWorker.js +20 -23
  56. package/lib/server/chromium/videoRecorder.js +1 -1
  57. package/lib/server/clock.js +125 -0
  58. package/lib/server/codegen/csharp.js +299 -0
  59. package/lib/server/codegen/java.js +235 -0
  60. package/lib/server/codegen/javascript.js +223 -0
  61. package/lib/server/codegen/jsonl.js +47 -0
  62. package/lib/server/codegen/language.js +76 -0
  63. package/lib/server/codegen/languages.js +30 -0
  64. package/lib/server/codegen/python.js +265 -0
  65. package/lib/server/codegen/types.js +5 -0
  66. package/lib/server/debugController.js +3 -5
  67. package/lib/server/deviceDescriptors.js +9 -4
  68. package/lib/server/deviceDescriptorsSource.json +239 -119
  69. package/lib/server/dispatchers/androidDispatcher.js +1 -1
  70. package/lib/server/dispatchers/browserContextDispatcher.js +51 -7
  71. package/lib/server/dispatchers/dispatcher.js +36 -40
  72. package/lib/server/dispatchers/frameDispatcher.js +1 -2
  73. package/lib/server/dispatchers/jsHandleDispatcher.js +1 -1
  74. package/lib/server/dispatchers/jsonPipeDispatcher.js +4 -6
  75. package/lib/server/dispatchers/localUtilsDispatcher.js +19 -5
  76. package/lib/server/dispatchers/networkDispatchers.js +2 -2
  77. package/lib/server/dispatchers/pageDispatcher.js +5 -2
  78. package/lib/server/dispatchers/playwrightDispatcher.js +1 -0
  79. package/lib/server/dispatchers/writableStreamDispatcher.js +8 -5
  80. package/lib/server/dom.js +90 -53
  81. package/lib/server/electron/electron.js +21 -4
  82. package/lib/server/fetch.js +74 -25
  83. package/lib/server/fileUploadUtils.js +7 -3
  84. package/lib/server/firefox/ffBrowser.js +36 -25
  85. package/lib/server/firefox/ffConnection.js +2 -2
  86. package/lib/server/firefox/ffNetworkManager.js +6 -4
  87. package/lib/server/firefox/ffPage.js +22 -24
  88. package/lib/server/firefox/firefox.js +25 -6
  89. package/lib/server/frameSelectors.js +2 -2
  90. package/lib/server/frames.js +205 -159
  91. package/lib/server/har/harTracer.js +4 -12
  92. package/lib/server/helper.js +3 -3
  93. package/lib/server/index.js +18 -0
  94. package/lib/server/input.js +18 -8
  95. package/lib/server/instrumentation.js +0 -4
  96. package/lib/server/isomorphic/utilityScriptSerializers.js +19 -5
  97. package/lib/server/javascript.js +3 -2
  98. package/lib/server/launchApp.js +3 -2
  99. package/lib/server/network.js +14 -4
  100. package/lib/server/page.js +75 -46
  101. package/lib/server/playwright.js +5 -2
  102. package/lib/server/recorder/codeGenerator.js +2 -1
  103. package/lib/server/recorder/contextRecorder.js +316 -0
  104. package/lib/server/recorder/csharp.js +2 -1
  105. package/lib/server/recorder/java.js +2 -1
  106. package/lib/server/recorder/javascript.js +2 -1
  107. package/lib/server/recorder/jsonl.js +2 -1
  108. package/lib/server/recorder/language.js +2 -1
  109. package/lib/server/recorder/python.js +2 -1
  110. package/lib/server/recorder/recorderApp.js +14 -5
  111. package/lib/server/recorder/recorderCollection.js +127 -0
  112. package/lib/server/recorder/recorderRunner.js +177 -0
  113. package/lib/server/recorder/recorderUtils.js +23 -0
  114. package/lib/server/recorder/throttledFile.js +46 -0
  115. package/lib/server/recorder/utils.js +2 -1
  116. package/lib/server/recorder.js +42 -418
  117. package/lib/server/registry/index.js +99 -100
  118. package/lib/server/registry/nativeDeps.js +107 -0
  119. package/lib/server/screenshotter.js +6 -12
  120. package/lib/server/socksClientCertificatesInterceptor.js +328 -0
  121. package/lib/server/trace/recorder/snapshotter.js +4 -1
  122. package/lib/server/trace/recorder/tracing.js +27 -96
  123. package/lib/server/trace/viewer/traceViewer.js +54 -67
  124. package/lib/server/transport.js +1 -1
  125. package/lib/server/webkit/webkit.js +5 -5
  126. package/lib/server/webkit/wkBrowser.js +14 -14
  127. package/lib/server/webkit/wkConnection.js +3 -3
  128. package/lib/server/webkit/wkInterceptableRequest.js +8 -4
  129. package/lib/server/webkit/wkPage.js +52 -34
  130. package/lib/server/webkit/wkProvisionalPage.js +36 -1
  131. package/lib/utils/crypto.js +141 -0
  132. package/lib/utils/debugLogger.js +2 -0
  133. package/lib/utils/env.js +4 -2
  134. package/lib/utils/expectUtils.js +33 -0
  135. package/lib/utils/fileUtils.js +140 -1
  136. package/lib/utils/glob.js +2 -1
  137. package/lib/utils/happy-eyeballs.js +29 -2
  138. package/lib/utils/hostPlatform.js +13 -4
  139. package/lib/utils/httpServer.js +54 -13
  140. package/lib/utils/index.js +53 -31
  141. package/lib/utils/isomorphic/cssTokenizer.js +1 -1
  142. package/lib/utils/isomorphic/locatorParser.js +1 -1
  143. package/lib/utils/isomorphic/mimeType.js +29 -0
  144. package/lib/utils/isomorphic/stringUtils.js +28 -1
  145. package/lib/utils/isomorphic/urlMatch.js +120 -0
  146. package/lib/utils/mimeType.js +2 -1
  147. package/lib/utils/network.js +7 -35
  148. package/lib/utils/stackTrace.js +2 -4
  149. package/lib/utils/timeoutRunner.js +11 -76
  150. package/lib/utils/zones.js +23 -60
  151. package/lib/utilsBundle.js +2 -1
  152. package/lib/utilsBundleImpl/index.js +33 -31
  153. package/lib/vite/htmlReport/index.html +12 -12
  154. package/lib/vite/recorder/assets/codeMirrorModule-C-fQ5QZD.js +24 -0
  155. package/lib/vite/recorder/assets/{codicon-zGuYmc9o.ttf → codicon-DCmgc-ay.ttf} +0 -0
  156. package/lib/vite/recorder/assets/index-B-MT5gKo.css +1 -0
  157. package/lib/vite/recorder/assets/index-D-5S5PPN.js +47 -0
  158. package/lib/vite/recorder/index.html +2 -2
  159. package/lib/vite/traceViewer/assets/codeMirrorModule-5yiV-3wl.js +16831 -0
  160. package/lib/vite/traceViewer/assets/codeMirrorModule-B7Z3vq11.js +24 -0
  161. package/lib/vite/traceViewer/assets/codeMirrorModule-C6p3E9Zg.js +24 -0
  162. package/lib/vite/traceViewer/assets/codeMirrorModule-CqYUz5ms.js +24 -0
  163. package/lib/vite/traceViewer/assets/codeMirrorModule-Dx6AXgMV.js +16838 -0
  164. package/lib/vite/traceViewer/assets/codeMirrorModule-T_sdMrbM.js +24 -0
  165. package/lib/vite/traceViewer/assets/codeMirrorModule-V7N6ppkd.js +15585 -0
  166. package/lib/vite/traceViewer/assets/testServerConnection-D-tXL3sj.js +224 -0
  167. package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +1 -0
  168. package/lib/vite/traceViewer/assets/workbench-Bjkiwcr1.js +19119 -0
  169. package/lib/vite/traceViewer/assets/workbench-C43LWZEX.js +72 -0
  170. package/lib/vite/traceViewer/assets/workbench-C5OQh9VX.js +19119 -0
  171. package/lib/vite/traceViewer/assets/workbench-DrQjKdyE.js +72 -0
  172. package/lib/vite/traceViewer/assets/workbench-caTaZnzx.js +72 -0
  173. package/lib/vite/traceViewer/assets/workbench-u2lRPMOT.js +72 -0
  174. package/lib/vite/traceViewer/assets/wsPort-EUvw-dwH.js +18540 -0
  175. package/lib/vite/traceViewer/assets/xtermModule-CZ7sDYXB.js +6529 -0
  176. package/lib/vite/traceViewer/assets/xtermModule-_6TC5FYT.js +6529 -0
  177. package/lib/vite/traceViewer/codeMirrorModule.Cy8X9Wtw.css +344 -0
  178. package/lib/vite/traceViewer/codeMirrorModule.svF_VrcJ.css +344 -0
  179. package/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
  180. package/lib/vite/traceViewer/embedded.BQq6Psnz.js +104 -0
  181. package/lib/vite/traceViewer/embedded.BVDVQOzc.js +2 -0
  182. package/lib/vite/traceViewer/embedded.Bn8Ptzv6.js +2 -0
  183. package/lib/vite/traceViewer/embedded.CvhnUgIi.js +2 -0
  184. package/lib/vite/traceViewer/embedded.D27cnKiB.js +104 -0
  185. package/lib/vite/traceViewer/embedded.DPqrDeET.js +2 -0
  186. package/lib/vite/traceViewer/embedded.DjZq4InJ.css +68 -0
  187. package/lib/vite/traceViewer/embedded.html +16 -0
  188. package/lib/vite/traceViewer/embedded.w7WN2u1R.css +1 -0
  189. package/lib/vite/traceViewer/index.5mge2rY_.css +124 -0
  190. package/lib/vite/traceViewer/index.6KJ-JQ0L.js +180 -0
  191. package/lib/vite/traceViewer/index.B8dgQwuN.js +2 -0
  192. package/lib/vite/traceViewer/index.BGj8jY3H.js +2 -0
  193. package/lib/vite/traceViewer/index.C0EgJ4oW.js +195 -0
  194. package/lib/vite/traceViewer/index.CUpI-BFe.js +195 -0
  195. package/lib/vite/traceViewer/{index.-g_5lMbJ.css → index.CrbWWHbf.css} +1 -1
  196. package/lib/vite/traceViewer/index.QanXxRUb.css +131 -0
  197. package/lib/vite/traceViewer/index._cX8k4co.js +2 -0
  198. package/lib/vite/traceViewer/index.html +5 -4
  199. package/lib/vite/traceViewer/index.pMAN88y-.js +2 -0
  200. package/lib/vite/traceViewer/snapshot.html +1 -1
  201. package/lib/vite/traceViewer/sw.bundle.js +3 -4
  202. package/lib/vite/traceViewer/uiMode.D-tg1Oci.js +1730 -0
  203. package/lib/vite/traceViewer/uiMode.D3cNFP6u.css +1 -0
  204. package/lib/vite/traceViewer/uiMode.DKjMBMlc.js +1730 -0
  205. package/lib/vite/traceViewer/uiMode.DVWUEIHq.css +1424 -0
  206. package/lib/vite/traceViewer/uiMode.DVrL7a1K.js +10 -0
  207. package/lib/vite/traceViewer/uiMode.Dg9oJCQU.js +10 -0
  208. package/lib/vite/traceViewer/uiMode.DwZAzstF.js +10 -0
  209. package/lib/vite/traceViewer/uiMode.html +5 -4
  210. package/lib/vite/traceViewer/uiMode.iq7CyYy7.js +1490 -0
  211. package/lib/vite/traceViewer/uiMode.jY2s-9ps.js +10 -0
  212. package/lib/vite/traceViewer/uiMode.xvJHbkzl.css +1324 -0
  213. package/lib/vite/traceViewer/workbench.B3X2QtYa.css +3702 -0
  214. package/lib/vite/traceViewer/workbench.DyTpxWVb.css +1 -0
  215. package/lib/vite/traceViewer/wsPort.p5jUwABW.css +3450 -0
  216. package/lib/vite/traceViewer/xtermModule.4oRVGWQ-.css +209 -0
  217. package/lib/vite/traceViewer/xtermModule.OKEVRlkP.css +209 -0
  218. package/package.json +2 -2
  219. package/types/protocol.d.ts +960 -78
  220. package/types/structs.d.ts +1 -1
  221. package/types/types.d.ts +3083 -2448
  222. package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +0 -24
  223. package/lib/vite/recorder/assets/index-ljsTwXtJ.css +0 -1
  224. package/lib/vite/recorder/assets/index-yg8ypzl6.js +0 -47
  225. package/lib/vite/traceViewer/assets/codeMirrorModule-0bpaqixv.js +0 -24
  226. package/lib/vite/traceViewer/assets/wsPort-_JBDEilC.js +0 -69
  227. package/lib/vite/traceViewer/index.u51inEcm.js +0 -2
  228. package/lib/vite/traceViewer/uiMode.Fb0bNA4H.js +0 -10
  229. package/lib/vite/traceViewer/uiMode.pWy0Re7G.css +0 -1
  230. package/lib/vite/traceViewer/wsPort.zR1WIy9-.css +0 -1
  231. /package/lib/vite/recorder/assets/{codeMirrorModule-Hs9-1ZG4.css → codeMirrorModule-ez37Vkbh.css} +0 -0
  232. /package/lib/vite/traceViewer/assets/{xtermModule-Yt6xwiJ_.js → xtermModule-BeNbaIVa.js} +0 -0
  233. /package/lib/vite/traceViewer/{codeMirrorModule.Hs9-1ZG4.css → codeMirrorModule.ez37Vkbh.css} +0 -0
  234. /package/lib/vite/traceViewer/{xtermModule.0lwXJFHT.css → xtermModule.DSXBckUd.css} +0 -0
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getBidiKeyValue = void 0;
7
+ /**
8
+ * @license
9
+ * Copyright 2024 Google Inc.
10
+ * Modifications copyright (c) Microsoft Corporation.
11
+ * SPDX-License-Identifier: Apache-2.0
12
+ */
13
+
14
+ /* eslint-disable curly */
15
+
16
+ const getBidiKeyValue = key => {
17
+ switch (key) {
18
+ case '\r':
19
+ case '\n':
20
+ key = 'Enter';
21
+ break;
22
+ }
23
+ // Measures the number of code points rather than UTF-16 code units.
24
+ if ([...key].length === 1) {
25
+ return key;
26
+ }
27
+ switch (key) {
28
+ case 'Cancel':
29
+ return '\uE001';
30
+ case 'Help':
31
+ return '\uE002';
32
+ case 'Backspace':
33
+ return '\uE003';
34
+ case 'Tab':
35
+ return '\uE004';
36
+ case 'Clear':
37
+ return '\uE005';
38
+ case 'Enter':
39
+ return '\uE007';
40
+ case 'Shift':
41
+ case 'ShiftLeft':
42
+ return '\uE008';
43
+ case 'Control':
44
+ case 'ControlLeft':
45
+ return '\uE009';
46
+ case 'Alt':
47
+ case 'AltLeft':
48
+ return '\uE00A';
49
+ case 'Pause':
50
+ return '\uE00B';
51
+ case 'Escape':
52
+ return '\uE00C';
53
+ case 'PageUp':
54
+ return '\uE00E';
55
+ case 'PageDown':
56
+ return '\uE00F';
57
+ case 'End':
58
+ return '\uE010';
59
+ case 'Home':
60
+ return '\uE011';
61
+ case 'ArrowLeft':
62
+ return '\uE012';
63
+ case 'ArrowUp':
64
+ return '\uE013';
65
+ case 'ArrowRight':
66
+ return '\uE014';
67
+ case 'ArrowDown':
68
+ return '\uE015';
69
+ case 'Insert':
70
+ return '\uE016';
71
+ case 'Delete':
72
+ return '\uE017';
73
+ case 'NumpadEqual':
74
+ return '\uE019';
75
+ case 'Numpad0':
76
+ return '\uE01A';
77
+ case 'Numpad1':
78
+ return '\uE01B';
79
+ case 'Numpad2':
80
+ return '\uE01C';
81
+ case 'Numpad3':
82
+ return '\uE01D';
83
+ case 'Numpad4':
84
+ return '\uE01E';
85
+ case 'Numpad5':
86
+ return '\uE01F';
87
+ case 'Numpad6':
88
+ return '\uE020';
89
+ case 'Numpad7':
90
+ return '\uE021';
91
+ case 'Numpad8':
92
+ return '\uE022';
93
+ case 'Numpad9':
94
+ return '\uE023';
95
+ case 'NumpadMultiply':
96
+ return '\uE024';
97
+ case 'NumpadAdd':
98
+ return '\uE025';
99
+ case 'NumpadSubtract':
100
+ return '\uE027';
101
+ case 'NumpadDecimal':
102
+ return '\uE028';
103
+ case 'NumpadDivide':
104
+ return '\uE029';
105
+ case 'F1':
106
+ return '\uE031';
107
+ case 'F2':
108
+ return '\uE032';
109
+ case 'F3':
110
+ return '\uE033';
111
+ case 'F4':
112
+ return '\uE034';
113
+ case 'F5':
114
+ return '\uE035';
115
+ case 'F6':
116
+ return '\uE036';
117
+ case 'F7':
118
+ return '\uE037';
119
+ case 'F8':
120
+ return '\uE038';
121
+ case 'F9':
122
+ return '\uE039';
123
+ case 'F10':
124
+ return '\uE03A';
125
+ case 'F11':
126
+ return '\uE03B';
127
+ case 'F12':
128
+ return '\uE03C';
129
+ case 'Meta':
130
+ case 'MetaLeft':
131
+ return '\uE03D';
132
+ case 'ShiftRight':
133
+ return '\uE050';
134
+ case 'ControlRight':
135
+ return '\uE051';
136
+ case 'AltRight':
137
+ return '\uE052';
138
+ case 'MetaRight':
139
+ return '\uE053';
140
+ case 'Digit0':
141
+ return '0';
142
+ case 'Digit1':
143
+ return '1';
144
+ case 'Digit2':
145
+ return '2';
146
+ case 'Digit3':
147
+ return '3';
148
+ case 'Digit4':
149
+ return '4';
150
+ case 'Digit5':
151
+ return '5';
152
+ case 'Digit6':
153
+ return '6';
154
+ case 'Digit7':
155
+ return '7';
156
+ case 'Digit8':
157
+ return '8';
158
+ case 'Digit9':
159
+ return '9';
160
+ case 'KeyA':
161
+ return 'a';
162
+ case 'KeyB':
163
+ return 'b';
164
+ case 'KeyC':
165
+ return 'c';
166
+ case 'KeyD':
167
+ return 'd';
168
+ case 'KeyE':
169
+ return 'e';
170
+ case 'KeyF':
171
+ return 'f';
172
+ case 'KeyG':
173
+ return 'g';
174
+ case 'KeyH':
175
+ return 'h';
176
+ case 'KeyI':
177
+ return 'i';
178
+ case 'KeyJ':
179
+ return 'j';
180
+ case 'KeyK':
181
+ return 'k';
182
+ case 'KeyL':
183
+ return 'l';
184
+ case 'KeyM':
185
+ return 'm';
186
+ case 'KeyN':
187
+ return 'n';
188
+ case 'KeyO':
189
+ return 'o';
190
+ case 'KeyP':
191
+ return 'p';
192
+ case 'KeyQ':
193
+ return 'q';
194
+ case 'KeyR':
195
+ return 'r';
196
+ case 'KeyS':
197
+ return 's';
198
+ case 'KeyT':
199
+ return 't';
200
+ case 'KeyU':
201
+ return 'u';
202
+ case 'KeyV':
203
+ return 'v';
204
+ case 'KeyW':
205
+ return 'w';
206
+ case 'KeyX':
207
+ return 'x';
208
+ case 'KeyY':
209
+ return 'y';
210
+ case 'KeyZ':
211
+ return 'z';
212
+ case 'Semicolon':
213
+ return ';';
214
+ case 'Equal':
215
+ return '=';
216
+ case 'Comma':
217
+ return ',';
218
+ case 'Minus':
219
+ return '-';
220
+ case 'Period':
221
+ return '.';
222
+ case 'Slash':
223
+ return '/';
224
+ case 'Backquote':
225
+ return '`';
226
+ case 'BracketLeft':
227
+ return '[';
228
+ case 'Backslash':
229
+ return '\\';
230
+ case 'BracketRight':
231
+ return ']';
232
+ case 'Quote':
233
+ return '"';
234
+ default:
235
+ throw new Error(`Unknown key: "${key}"`);
236
+ }
237
+ };
238
+ exports.getBidiKeyValue = getBidiKeyValue;
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Storage = exports.Session = exports.Script = exports.Network = exports.Log = exports.Input = exports.ErrorCode = exports.BrowsingContext = exports.Browser = void 0;
7
+ /**
8
+ * @license
9
+ * Copyright 2024 Google Inc.
10
+ * Modifications copyright (c) Microsoft Corporation.
11
+ * SPDX-License-Identifier: Apache-2.0
12
+ */
13
+ /**
14
+ * THIS FILE IS AUTOGENERATED by cddlconv 0.1.5.
15
+ * Run `node tools/generate-bidi-types.mjs` to regenerate.
16
+ * @see https://github.com/w3c/webdriver-bidi/blob/master/index.bs
17
+ */
18
+ /**
19
+ * Must be between `-9007199254740991` and `9007199254740991`, inclusive.
20
+ */
21
+ /**
22
+ * Must be between `0` and `9007199254740991`, inclusive.
23
+ */
24
+ let ErrorCode = exports.ErrorCode = /*#__PURE__*/function (ErrorCode) {
25
+ ErrorCode["InvalidArgument"] = "invalid argument";
26
+ ErrorCode["InvalidSelector"] = "invalid selector";
27
+ ErrorCode["InvalidSessionId"] = "invalid session id";
28
+ ErrorCode["MoveTargetOutOfBounds"] = "move target out of bounds";
29
+ ErrorCode["NoSuchAlert"] = "no such alert";
30
+ ErrorCode["NoSuchElement"] = "no such element";
31
+ ErrorCode["NoSuchFrame"] = "no such frame";
32
+ ErrorCode["NoSuchHandle"] = "no such handle";
33
+ ErrorCode["NoSuchHistoryEntry"] = "no such history entry";
34
+ ErrorCode["NoSuchIntercept"] = "no such intercept";
35
+ ErrorCode["NoSuchNode"] = "no such node";
36
+ ErrorCode["NoSuchRequest"] = "no such request";
37
+ ErrorCode["NoSuchScript"] = "no such script";
38
+ ErrorCode["NoSuchStoragePartition"] = "no such storage partition";
39
+ ErrorCode["NoSuchUserContext"] = "no such user context";
40
+ ErrorCode["SessionNotCreated"] = "session not created";
41
+ ErrorCode["UnableToCaptureScreen"] = "unable to capture screen";
42
+ ErrorCode["UnableToCloseBrowser"] = "unable to close browser";
43
+ ErrorCode["UnableToSetCookie"] = "unable to set cookie";
44
+ ErrorCode["UnableToSetFileInput"] = "unable to set file input";
45
+ ErrorCode["UnderspecifiedStoragePartition"] = "underspecified storage partition";
46
+ ErrorCode["UnknownCommand"] = "unknown command";
47
+ ErrorCode["UnknownError"] = "unknown error";
48
+ ErrorCode["UnsupportedOperation"] = "unsupported operation";
49
+ return ErrorCode;
50
+ }({});
51
+ let Session = exports.Session = void 0;
52
+ (function (_Session10) {
53
+ let UserPromptHandlerType = /*#__PURE__*/function (UserPromptHandlerType) {
54
+ UserPromptHandlerType["Accept"] = "accept";
55
+ UserPromptHandlerType["Dismiss"] = "dismiss";
56
+ UserPromptHandlerType["Ignore"] = "ignore";
57
+ return UserPromptHandlerType;
58
+ }({});
59
+ _Session10.UserPromptHandlerType = UserPromptHandlerType;
60
+ })(Session || (exports.Session = Session = {}));
61
+ let Browser = exports.Browser = void 0;
62
+ let BrowsingContext = exports.BrowsingContext = void 0;
63
+ (function (_BrowsingContext10) {
64
+ let ReadinessState = /*#__PURE__*/function (ReadinessState) {
65
+ ReadinessState["None"] = "none";
66
+ ReadinessState["Interactive"] = "interactive";
67
+ ReadinessState["Complete"] = "complete";
68
+ return ReadinessState;
69
+ }({});
70
+ _BrowsingContext10.ReadinessState = ReadinessState;
71
+ })(BrowsingContext || (exports.BrowsingContext = BrowsingContext = {}));
72
+ (function (_BrowsingContext11) {
73
+ let UserPromptType = /*#__PURE__*/function (UserPromptType) {
74
+ UserPromptType["Alert"] = "alert";
75
+ UserPromptType["Beforeunload"] = "beforeunload";
76
+ UserPromptType["Confirm"] = "confirm";
77
+ UserPromptType["Prompt"] = "prompt";
78
+ return UserPromptType;
79
+ }({});
80
+ _BrowsingContext11.UserPromptType = UserPromptType;
81
+ })(BrowsingContext || (exports.BrowsingContext = BrowsingContext = {}));
82
+ (function (_BrowsingContext24) {
83
+ let CreateType = /*#__PURE__*/function (CreateType) {
84
+ CreateType["Tab"] = "tab";
85
+ CreateType["Window"] = "window";
86
+ return CreateType;
87
+ }({});
88
+ _BrowsingContext24.CreateType = CreateType;
89
+ })(BrowsingContext || (exports.BrowsingContext = BrowsingContext = {}));
90
+ let Network = exports.Network = void 0;
91
+ (function (_Network6) {
92
+ let SameSite = /*#__PURE__*/function (SameSite) {
93
+ SameSite["Strict"] = "strict";
94
+ SameSite["Lax"] = "lax";
95
+ SameSite["None"] = "none";
96
+ return SameSite;
97
+ }({});
98
+ _Network6.SameSite = SameSite;
99
+ })(Network || (exports.Network = Network = {}));
100
+ (function (_Network23) {
101
+ let InterceptPhase = /*#__PURE__*/function (InterceptPhase) {
102
+ InterceptPhase["BeforeRequestSent"] = "beforeRequestSent";
103
+ InterceptPhase["ResponseStarted"] = "responseStarted";
104
+ InterceptPhase["AuthRequired"] = "authRequired";
105
+ return InterceptPhase;
106
+ }({});
107
+ _Network23.InterceptPhase = InterceptPhase;
108
+ })(Network || (exports.Network = Network = {}));
109
+ let Script = exports.Script = void 0;
110
+ (function (_Script68) {
111
+ let ResultOwnership = /*#__PURE__*/function (ResultOwnership) {
112
+ ResultOwnership["Root"] = "root";
113
+ ResultOwnership["None"] = "none";
114
+ return ResultOwnership;
115
+ }({});
116
+ _Script68.ResultOwnership = ResultOwnership;
117
+ })(Script || (exports.Script = Script = {}));
118
+ let Storage = exports.Storage = void 0;
119
+ let Log = exports.Log = void 0;
120
+ (function (_Log7) {
121
+ let Level = /*#__PURE__*/function (Level) {
122
+ Level["Debug"] = "debug";
123
+ Level["Info"] = "info";
124
+ Level["Warn"] = "warn";
125
+ Level["Error"] = "error";
126
+ return Level;
127
+ }({});
128
+ _Log7.Level = Level;
129
+ })(Log || (exports.Log = Log = {}));
130
+ let Input = exports.Input = void 0;
131
+ (function (_Input9) {
132
+ let PointerType = /*#__PURE__*/function (PointerType) {
133
+ PointerType["Mouse"] = "mouse";
134
+ PointerType["Pen"] = "pen";
135
+ PointerType["Touch"] = "touch";
136
+ return PointerType;
137
+ }({});
138
+ _Input9.PointerType = PointerType;
139
+ })(Input || (exports.Input = Input = {}));
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isRegExp = exports.isPlainObject = exports.isDate = exports.BidiSerializer = void 0;
7
+ /**
8
+ * @license
9
+ * Copyright 2024 Google Inc.
10
+ * Modifications copyright (c) Microsoft Corporation.
11
+ * SPDX-License-Identifier: Apache-2.0
12
+ */
13
+
14
+ /* eslint-disable curly, indent */
15
+
16
+ /**
17
+ * @internal
18
+ */
19
+ class UnserializableError extends Error {}
20
+
21
+ /**
22
+ * @internal
23
+ */
24
+ class BidiSerializer {
25
+ static serialize(arg) {
26
+ switch (typeof arg) {
27
+ case 'symbol':
28
+ case 'function':
29
+ throw new UnserializableError(`Unable to serializable ${typeof arg}`);
30
+ case 'object':
31
+ return BidiSerializer._serializeObject(arg);
32
+ case 'undefined':
33
+ return {
34
+ type: 'undefined'
35
+ };
36
+ case 'number':
37
+ return BidiSerializer._serializeNumber(arg);
38
+ case 'bigint':
39
+ return {
40
+ type: 'bigint',
41
+ value: arg.toString()
42
+ };
43
+ case 'string':
44
+ return {
45
+ type: 'string',
46
+ value: arg
47
+ };
48
+ case 'boolean':
49
+ return {
50
+ type: 'boolean',
51
+ value: arg
52
+ };
53
+ }
54
+ }
55
+ static _serializeNumber(arg) {
56
+ let value;
57
+ if (Object.is(arg, -0)) {
58
+ value = '-0';
59
+ } else if (Object.is(arg, Infinity)) {
60
+ value = 'Infinity';
61
+ } else if (Object.is(arg, -Infinity)) {
62
+ value = '-Infinity';
63
+ } else if (Object.is(arg, NaN)) {
64
+ value = 'NaN';
65
+ } else {
66
+ value = arg;
67
+ }
68
+ return {
69
+ type: 'number',
70
+ value
71
+ };
72
+ }
73
+ static _serializeObject(arg) {
74
+ if (arg === null) {
75
+ return {
76
+ type: 'null'
77
+ };
78
+ } else if (Array.isArray(arg)) {
79
+ const parsedArray = arg.map(subArg => {
80
+ return BidiSerializer.serialize(subArg);
81
+ });
82
+ return {
83
+ type: 'array',
84
+ value: parsedArray
85
+ };
86
+ } else if (isPlainObject(arg)) {
87
+ try {
88
+ JSON.stringify(arg);
89
+ } catch (error) {
90
+ if (error instanceof TypeError && error.message.startsWith('Converting circular structure to JSON')) {
91
+ error.message += ' Recursive objects are not allowed.';
92
+ }
93
+ throw error;
94
+ }
95
+ const parsedObject = [];
96
+ for (const key in arg) {
97
+ parsedObject.push([BidiSerializer.serialize(key), BidiSerializer.serialize(arg[key])]);
98
+ }
99
+ return {
100
+ type: 'object',
101
+ value: parsedObject
102
+ };
103
+ } else if (isRegExp(arg)) {
104
+ return {
105
+ type: 'regexp',
106
+ value: {
107
+ pattern: arg.source,
108
+ flags: arg.flags
109
+ }
110
+ };
111
+ } else if (isDate(arg)) {
112
+ return {
113
+ type: 'date',
114
+ value: arg.toISOString()
115
+ };
116
+ }
117
+ throw new UnserializableError('Custom object serialization not possible. Use plain objects instead.');
118
+ }
119
+ }
120
+
121
+ /**
122
+ * @internal
123
+ */
124
+ exports.BidiSerializer = BidiSerializer;
125
+ const isPlainObject = obj => {
126
+ return typeof obj === 'object' && (obj === null || obj === void 0 ? void 0 : obj.constructor) === Object;
127
+ };
128
+
129
+ /**
130
+ * @internal
131
+ */
132
+ exports.isPlainObject = isPlainObject;
133
+ const isRegExp = obj => {
134
+ return typeof obj === 'object' && (obj === null || obj === void 0 ? void 0 : obj.constructor) === RegExp;
135
+ };
136
+
137
+ /**
138
+ * @internal
139
+ */
140
+ exports.isRegExp = isRegExp;
141
+ const isDate = obj => {
142
+ return typeof obj === 'object' && (obj === null || obj === void 0 ? void 0 : obj.constructor) === Date;
143
+ };
144
+ exports.isDate = isDate;
@@ -42,7 +42,15 @@ class Browser extends _instrumentation.SdkObject {
42
42
  }
43
43
  async newContext(metadata, options) {
44
44
  (0, _browserContext.validateBrowserContextOptions)(options, this.options);
45
- const context = await this.doCreateNewContext(options);
45
+ const clientCertificatesProxy = await (0, _browserContext.createClientCertificatesProxyIfNeeded)(options, this.options);
46
+ let context;
47
+ try {
48
+ context = await this.doCreateNewContext(options);
49
+ } catch (error) {
50
+ await (clientCertificatesProxy === null || clientCertificatesProxy === void 0 ? void 0 : clientCertificatesProxy.close());
51
+ throw error;
52
+ }
53
+ context._clientCertificatesProxy = clientCertificatesProxy;
46
54
  if (options.storageState) await context.setStorageState(metadata, options.storageState);
47
55
  return context;
48
56
  }