patchright-core 1.50.1 → 1.51.1

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 (242) hide show
  1. package/ThirdPartyNotices.txt +1 -43
  2. package/browsers.json +22 -10
  3. package/index.js +0 -1
  4. package/lib/androidServerImpl.js +4 -4
  5. package/lib/browserServerImpl.js +18 -9
  6. package/lib/cli/driver.js +6 -6
  7. package/lib/cli/program.js +9 -9
  8. package/lib/cli/programWithTestStub.js +2 -1
  9. package/lib/client/android.js +37 -58
  10. package/lib/client/artifact.js +4 -7
  11. package/lib/client/browser.js +10 -15
  12. package/lib/client/browserContext.js +77 -73
  13. package/lib/client/browserType.js +30 -64
  14. package/lib/client/channelOwner.js +23 -20
  15. package/lib/client/clientHelper.js +5 -7
  16. package/lib/client/clientStackTrace.js +65 -0
  17. package/lib/client/connection.js +46 -39
  18. package/lib/client/consoleMessage.js +4 -7
  19. package/lib/client/electron.js +10 -10
  20. package/lib/client/elementHandle.js +32 -33
  21. package/lib/client/errors.js +2 -2
  22. package/lib/client/eventEmitter.js +5 -8
  23. package/lib/client/fetch.js +60 -61
  24. package/lib/client/fileUtils.js +31 -0
  25. package/lib/client/frame.js +30 -29
  26. package/lib/client/harRouter.js +7 -9
  27. package/lib/client/jsHandle.js +3 -4
  28. package/lib/client/localUtils.js +24 -0
  29. package/lib/client/locator.js +37 -18
  30. package/lib/client/network.js +40 -40
  31. package/lib/client/page.js +59 -55
  32. package/lib/client/platform.js +71 -0
  33. package/lib/client/playwright.js +21 -1
  34. package/lib/client/selectors.js +8 -2
  35. package/lib/client/stream.js +2 -21
  36. package/lib/client/timeoutSettings.js +65 -0
  37. package/lib/client/tracing.js +10 -7
  38. package/lib/client/video.js +2 -2
  39. package/lib/client/waiter.js +5 -6
  40. package/lib/client/webSocket.js +106 -0
  41. package/lib/client/worker.js +12 -10
  42. package/lib/client/writableStream.js +2 -21
  43. package/lib/generated/consoleApiSource.js +1 -1
  44. package/lib/generated/injectedScriptSource.js +1 -1
  45. package/lib/inProcessFactory.js +6 -3
  46. package/lib/outofprocess.js +12 -8
  47. package/lib/protocol/validator.js +64 -13
  48. package/lib/protocol/validatorPrimitives.js +1 -2
  49. package/lib/remote/playwrightConnection.js +18 -10
  50. package/lib/remote/playwrightServer.js +20 -7
  51. package/lib/server/android/android.js +17 -14
  52. package/lib/server/android/backendAdb.js +14 -14
  53. package/lib/server/artifact.js +3 -3
  54. package/lib/server/bidi/bidiBrowser.js +2 -2
  55. package/lib/server/bidi/bidiChromium.js +4 -3
  56. package/lib/server/bidi/bidiConnection.js +1 -1
  57. package/lib/server/bidi/bidiExecutionContext.js +70 -40
  58. package/lib/server/bidi/bidiFirefox.js +4 -3
  59. package/lib/server/bidi/bidiInput.js +5 -8
  60. package/lib/server/bidi/bidiNetworkManager.js +3 -3
  61. package/lib/server/bidi/bidiOverCdp.js +2 -2
  62. package/lib/server/bidi/bidiPage.js +30 -46
  63. package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
  64. package/lib/server/browser.js +2 -2
  65. package/lib/server/browserContext.js +37 -40
  66. package/lib/server/browserType.js +18 -17
  67. package/lib/{utils/sequence.js → server/callLog.js} +18 -3
  68. package/lib/server/chromium/chromium.js +14 -14
  69. package/lib/server/chromium/chromiumSwitches.js +32 -1
  70. package/lib/server/chromium/crBrowser.js +15 -14
  71. package/lib/server/chromium/crConnection.js +2 -2
  72. package/lib/server/chromium/crCoverage.js +1 -1
  73. package/lib/server/chromium/crDevTools.js +1 -1
  74. package/lib/server/chromium/crDragDrop.js +1 -1
  75. package/lib/server/chromium/crExecutionContext.js +25 -17
  76. package/lib/server/chromium/crInput.js +2 -2
  77. package/lib/server/chromium/crNetworkManager.js +73 -26
  78. package/lib/server/chromium/crPage.js +22 -23
  79. package/lib/server/chromium/crPdf.js +1 -1
  80. package/lib/server/chromium/crProtocolHelper.js +3 -3
  81. package/lib/server/chromium/crServiceWorker.js +2 -2
  82. package/lib/server/chromium/videoRecorder.js +2 -2
  83. package/lib/server/clock.js +1 -1
  84. package/lib/server/codegen/javascript.js +1 -1
  85. package/lib/server/codegen/languages.js +2 -2
  86. package/lib/server/debugController.js +3 -3
  87. package/lib/server/deviceDescriptors.js +1 -1
  88. package/lib/server/deviceDescriptorsSource.json +131 -131
  89. package/lib/server/dispatchers/androidDispatcher.js +1 -1
  90. package/lib/server/dispatchers/artifactDispatcher.js +3 -3
  91. package/lib/server/dispatchers/browserContextDispatcher.js +19 -19
  92. package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
  93. package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
  94. package/lib/server/dispatchers/dispatcher.js +27 -25
  95. package/lib/server/dispatchers/electronDispatcher.js +3 -3
  96. package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
  97. package/lib/server/dispatchers/frameDispatcher.js +4 -4
  98. package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
  99. package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
  100. package/lib/server/dispatchers/localUtilsDispatcher.js +25 -298
  101. package/lib/server/dispatchers/networkDispatchers.js +3 -3
  102. package/lib/server/dispatchers/pageDispatcher.js +11 -9
  103. package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
  104. package/lib/server/dispatchers/streamDispatcher.js +4 -3
  105. package/lib/server/dispatchers/webSocketRouteDispatcher.js +8 -7
  106. package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
  107. package/lib/server/dom.js +18 -12
  108. package/lib/server/download.js +1 -1
  109. package/lib/server/electron/electron.js +17 -16
  110. package/lib/server/errors.js +1 -1
  111. package/lib/server/fetch.js +36 -25
  112. package/lib/server/fileUploadUtils.js +7 -4
  113. package/lib/server/firefox/ffBrowser.js +8 -2
  114. package/lib/server/firefox/ffConnection.js +1 -1
  115. package/lib/server/firefox/ffExecutionContext.js +25 -17
  116. package/lib/server/firefox/ffNetworkManager.js +2 -2
  117. package/lib/server/firefox/ffPage.js +15 -21
  118. package/lib/server/firefox/firefox.js +7 -9
  119. package/lib/server/frameSelectors.js +1 -1
  120. package/lib/server/frames.js +366 -209
  121. package/lib/server/har/harRecorder.js +4 -4
  122. package/lib/server/har/harTracer.js +7 -8
  123. package/lib/server/harBackend.js +157 -0
  124. package/lib/server/helper.js +2 -2
  125. package/lib/server/index.js +1 -8
  126. package/lib/server/input.js +1 -1
  127. package/lib/server/instrumentation.js +2 -2
  128. package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
  129. package/lib/server/javascript.js +46 -33
  130. package/lib/server/launchApp.js +2 -2
  131. package/lib/server/localUtils.js +203 -0
  132. package/lib/server/network.js +3 -3
  133. package/lib/server/page.js +41 -22
  134. package/lib/server/pipeTransport.js +1 -1
  135. package/lib/server/playwright.js +5 -5
  136. package/lib/server/progress.js +1 -1
  137. package/lib/server/protocolError.js +1 -1
  138. package/lib/server/recorder/contextRecorder.js +3 -3
  139. package/lib/server/recorder/recorderApp.js +18 -12
  140. package/lib/server/recorder/recorderCollection.js +3 -3
  141. package/lib/server/recorder/throttledFile.js +3 -4
  142. package/lib/server/recorder.js +7 -5
  143. package/lib/server/registry/browserFetcher.js +9 -7
  144. package/lib/server/registry/dependencies.js +15 -15
  145. package/lib/server/registry/index.js +38 -44
  146. package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
  147. package/lib/server/screenshotter.js +1 -1
  148. package/lib/server/selectors.js +3 -3
  149. package/lib/server/socksClientCertificatesInterceptor.js +8 -8
  150. package/lib/server/socksInterceptor.js +8 -5
  151. package/lib/server/storageScript.js +160 -0
  152. package/lib/{common → server}/timeoutSettings.js +6 -5
  153. package/lib/server/trace/recorder/snapshotter.js +9 -8
  154. package/lib/server/trace/recorder/tracing.js +40 -31
  155. package/lib/server/trace/test/inMemorySnapshotter.js +4 -4
  156. package/lib/server/trace/viewer/traceViewer.js +13 -5
  157. package/lib/server/transport.js +2 -2
  158. package/lib/{utils → server/utils}/comparators.js +4 -4
  159. package/lib/{utils → server/utils}/crypto.js +4 -4
  160. package/lib/{utils → server/utils}/debug.js +4 -12
  161. package/lib/{utils → server/utils}/debugLogger.js +2 -2
  162. package/lib/{utils → server/utils}/env.js +4 -0
  163. package/lib/{utils → server/utils}/expectUtils.js +1 -1
  164. package/lib/{utils → server/utils}/fileUtils.js +4 -5
  165. package/lib/{utils/happy-eyeballs.js → server/utils/happyEyeballs.js} +22 -24
  166. package/lib/{utils → server/utils}/hostPlatform.js +1 -1
  167. package/lib/{utils → server/utils}/httpServer.js +8 -8
  168. package/lib/{utils → server/utils}/linuxUtils.js +3 -23
  169. package/lib/{utils → server/utils}/network.js +4 -4
  170. package/lib/server/utils/nodePlatform.js +140 -0
  171. package/lib/{protocol/transport.js → server/utils/pipeTransport.js} +2 -2
  172. package/lib/{utils → server/utils}/processLauncher.js +5 -5
  173. package/lib/{utils → server/utils}/profiler.js +5 -6
  174. package/lib/{common → server/utils}/socksProxy.js +10 -9
  175. package/lib/{utils → server/utils}/userAgent.js +2 -16
  176. package/lib/{utils → server/utils}/wsServer.js +3 -3
  177. package/lib/{utils → server/utils}/zipFile.js +1 -1
  178. package/lib/{utils → server/utils}/zones.js +9 -24
  179. package/lib/server/webkit/webkit.js +4 -4
  180. package/lib/server/webkit/wkBrowser.js +4 -4
  181. package/lib/server/webkit/wkConnection.js +1 -1
  182. package/lib/server/webkit/wkExecutionContext.js +25 -17
  183. package/lib/server/webkit/wkInput.js +2 -2
  184. package/lib/server/webkit/wkInterceptableRequest.js +2 -2
  185. package/lib/server/webkit/wkPage.js +41 -40
  186. package/lib/server/webkit/wkProvisionalPage.js +1 -1
  187. package/lib/server/webkit/wkWorkers.js +2 -2
  188. package/lib/utils/isomorphic/ariaSnapshot.js +2 -1
  189. package/lib/utils/isomorphic/assert.js +25 -0
  190. package/lib/utils/isomorphic/colors.js +65 -0
  191. package/lib/utils/isomorphic/cssParser.js +1 -1
  192. package/lib/utils/isomorphic/locatorGenerators.js +13 -1
  193. package/lib/utils/isomorphic/locatorParser.js +2 -2
  194. package/lib/utils/{manualPromise.js → isomorphic/manualPromise.js} +3 -5
  195. package/lib/utils/isomorphic/mimeType.js +11 -3
  196. package/lib/utils/{multimap.js → isomorphic/multimap.js} +1 -3
  197. package/lib/utils/{rtti.js → isomorphic/rtti.js} +2 -5
  198. package/lib/utils/isomorphic/stackTrace.js +169 -0
  199. package/lib/utils/isomorphic/stringUtils.js +1 -1
  200. package/lib/utils/{time.js → isomorphic/time.js} +1 -13
  201. package/lib/utils/{timeoutRunner.js → isomorphic/timeoutRunner.js} +4 -4
  202. package/lib/utils/isomorphic/traceUtils.js +23 -0
  203. package/lib/{utils/index.js → utils.js} +200 -121
  204. package/lib/utilsBundle.js +1 -25
  205. package/lib/utilsBundleImpl/index.js +114 -116
  206. package/lib/vite/htmlReport/index.html +20 -20
  207. package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
  208. package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
  209. package/lib/vite/recorder/index.html +1 -1
  210. package/lib/vite/traceViewer/assets/codeMirrorModule-DpJ-EmBQ.js +24 -0
  211. package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +259 -0
  212. package/lib/vite/traceViewer/assets/{xtermModule-c-SNdYZy.js → xtermModule-BoAIEibi.js} +7 -7
  213. package/lib/vite/traceViewer/defaultSettingsView.5fN5lw10.css +1 -0
  214. package/lib/vite/traceViewer/index.CUq7VgrV.js +2 -0
  215. package/lib/vite/traceViewer/index.html +3 -3
  216. package/lib/vite/traceViewer/sw.bundle.js +3 -3
  217. package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +5 -0
  218. package/lib/vite/traceViewer/uiMode.html +3 -3
  219. package/lib/zipBundleImpl.js +4 -4
  220. package/package.json +7 -7
  221. package/types/protocol.d.ts +123 -99
  222. package/types/types.d.ts +91 -37
  223. package/lib/utils/stackTrace.js +0 -134
  224. package/lib/utils/traceUtils.js +0 -44
  225. package/lib/vite/recorder/assets/codeMirrorModule-CNAqJrkA.js +0 -24
  226. package/lib/vite/recorder/assets/index-DGS0JLxS.js +0 -184
  227. package/lib/vite/traceViewer/assets/codeMirrorModule-D55P_UuL.js +0 -24
  228. package/lib/vite/traceViewer/assets/defaultSettingsView-B-uNoFsX.js +0 -243
  229. package/lib/vite/traceViewer/defaultSettingsView.2xeEXCXv.css +0 -1
  230. package/lib/vite/traceViewer/index.BfvuujqP.js +0 -2
  231. package/lib/vite/traceViewer/uiMode.CStJu6jo.js +0 -5
  232. /package/lib/{utils → server/utils}/ascii.js +0 -0
  233. /package/lib/{utils → server/utils}/eventsHelper.js +0 -0
  234. /package/lib/{image_tools → server/utils/image_tools}/colorUtils.js +0 -0
  235. /package/lib/{image_tools → server/utils/image_tools}/compare.js +0 -0
  236. /package/lib/{image_tools → server/utils/image_tools}/imageChannel.js +0 -0
  237. /package/lib/{image_tools → server/utils/image_tools}/stats.js +0 -0
  238. /package/lib/{utils → server/utils}/spawnAsync.js +0 -0
  239. /package/lib/{utils → server/utils}/task.js +0 -0
  240. /package/lib/utils/{headers.js → isomorphic/headers.js} +0 -0
  241. /package/lib/utils/{semaphore.js → isomorphic/semaphore.js} +0 -0
  242. /package/lib/{common → utils/isomorphic}/types.js +0 -0
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createInProcessPlaywright = createInProcessPlaywright;
7
+ var _androidServerImpl = require("./androidServerImpl");
8
+ var _browserServerImpl = require("./browserServerImpl");
7
9
  var _server = require("./server");
10
+ var _nodePlatform = require("./server/utils/nodePlatform");
8
11
  var _connection = require("./client/connection");
9
- var _browserServerImpl = require("./browserServerImpl");
10
- var _androidServerImpl = require("./androidServerImpl");
12
+ var _selectors = require("./client/selectors");
11
13
  /**
12
14
  * Copyright (c) Microsoft Corporation.
13
15
  *
@@ -28,7 +30,8 @@ function createInProcessPlaywright() {
28
30
  const playwright = (0, _server.createPlaywright)({
29
31
  sdkLanguage: process.env.PW_LANG_NAME || 'javascript'
30
32
  });
31
- const clientConnection = new _connection.Connection(undefined, undefined);
33
+ (0, _selectors.setPlatformForSelectors)(_nodePlatform.nodePlatform);
34
+ const clientConnection = new _connection.Connection(_nodePlatform.nodePlatform);
32
35
  clientConnection.useRawBuffers();
33
36
  const dispatcherConnection = new _server.DispatcherConnection(true /* local */);
34
37
 
@@ -4,13 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.start = start;
7
- var _connection = require("./client/connection");
8
- var _transport = require("./protocol/transport");
9
7
  var childProcess = _interopRequireWildcard(require("child_process"));
10
- var path = _interopRequireWildcard(require("path"));
11
- var _manualPromise = require("./utils/manualPromise");
8
+ var _path = _interopRequireDefault(require("path"));
9
+ var _connection = require("./client/connection");
10
+ var _pipeTransport = require("./server/utils/pipeTransport");
11
+ var _manualPromise = require("./utils/isomorphic/manualPromise");
12
+ var _nodePlatform = require("./server/utils/nodePlatform");
13
+ var _selectors = require("./client/selectors");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
17
  /**
15
18
  * Copyright (c) Microsoft Corporation.
16
19
  *
@@ -28,6 +31,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
28
31
  */
29
32
 
30
33
  async function start(env = {}) {
34
+ (0, _selectors.setPlatformForSelectors)(_nodePlatform.nodePlatform);
31
35
  const client = new PlaywrightClient(env);
32
36
  const playwright = await client._playwright;
33
37
  playwright.driverProcess = client._driverProcess;
@@ -41,7 +45,7 @@ class PlaywrightClient {
41
45
  this._playwright = void 0;
42
46
  this._driverProcess = void 0;
43
47
  this._closePromise = new _manualPromise.ManualPromise();
44
- this._driverProcess = childProcess.fork(path.join(__dirname, '..', 'cli.js'), ['run-driver'], {
48
+ this._driverProcess = childProcess.fork(_path.default.join(__dirname, '..', 'cli.js'), ['run-driver'], {
45
49
  stdio: 'pipe',
46
50
  detached: true,
47
51
  env: {
@@ -51,8 +55,8 @@ class PlaywrightClient {
51
55
  });
52
56
  this._driverProcess.unref();
53
57
  this._driverProcess.stderr.on('data', data => process.stderr.write(data));
54
- const connection = new _connection.Connection(undefined, undefined);
55
- const transport = new _transport.PipeTransport(this._driverProcess.stdin, this._driverProcess.stdout);
58
+ const connection = new _connection.Connection(_nodePlatform.nodePlatform);
59
+ const transport = new _pipeTransport.PipeTransport(this._driverProcess.stdin, this._driverProcess.stdout);
56
60
  connection.onmessage = message => transport.send(JSON.stringify(message));
57
61
  transport.onmessage = message => connection.dispatch(JSON.parse(message));
58
62
  transport.onclose = () => this._closePromise.resolve();
@@ -168,9 +168,38 @@ _validatorPrimitives.scheme.NameValue = (0, _validatorPrimitives.tObject)({
168
168
  name: _validatorPrimitives.tString,
169
169
  value: _validatorPrimitives.tString
170
170
  });
171
+ _validatorPrimitives.scheme.IndexedDBDatabase = (0, _validatorPrimitives.tObject)({
172
+ name: _validatorPrimitives.tString,
173
+ version: _validatorPrimitives.tNumber,
174
+ stores: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
175
+ name: _validatorPrimitives.tString,
176
+ autoIncrement: _validatorPrimitives.tBoolean,
177
+ keyPath: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
178
+ keyPathArray: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)),
179
+ records: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
180
+ key: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
181
+ keyEncoded: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
182
+ value: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
183
+ valueEncoded: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny)
184
+ })),
185
+ indexes: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
186
+ name: _validatorPrimitives.tString,
187
+ keyPath: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
188
+ keyPathArray: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)),
189
+ multiEntry: _validatorPrimitives.tBoolean,
190
+ unique: _validatorPrimitives.tBoolean
191
+ }))
192
+ }))
193
+ });
194
+ _validatorPrimitives.scheme.SetOriginStorage = (0, _validatorPrimitives.tObject)({
195
+ origin: _validatorPrimitives.tString,
196
+ localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue')),
197
+ indexedDB: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('IndexedDBDatabase')))
198
+ });
171
199
  _validatorPrimitives.scheme.OriginStorage = (0, _validatorPrimitives.tObject)({
172
200
  origin: _validatorPrimitives.tString,
173
- localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue'))
201
+ localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue')),
202
+ indexedDB: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('IndexedDBDatabase')))
174
203
  });
175
204
  _validatorPrimitives.scheme.SerializedError = (0, _validatorPrimitives.tObject)({
176
205
  error: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
@@ -231,7 +260,9 @@ _validatorPrimitives.scheme.APIRequestContextFetchLogParams = (0, _validatorPrim
231
260
  _validatorPrimitives.scheme.APIRequestContextFetchLogResult = (0, _validatorPrimitives.tObject)({
232
261
  log: (0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)
233
262
  });
234
- _validatorPrimitives.scheme.APIRequestContextStorageStateParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
263
+ _validatorPrimitives.scheme.APIRequestContextStorageStateParams = (0, _validatorPrimitives.tObject)({
264
+ indexedDB: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
265
+ });
235
266
  _validatorPrimitives.scheme.APIRequestContextStorageStateResult = (0, _validatorPrimitives.tObject)({
236
267
  cookies: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie')),
237
268
  origins: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage'))
@@ -365,6 +396,7 @@ _validatorPrimitives.scheme.PlaywrightNewRequestParams = (0, _validatorPrimitive
365
396
  userAgent: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
366
397
  ignoreHTTPSErrors: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
367
398
  extraHTTPHeaders: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue'))),
399
+ failOnStatusCode: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
368
400
  clientCertificates: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
369
401
  origin: _validatorPrimitives.tString,
370
402
  cert: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBinary),
@@ -387,7 +419,7 @@ _validatorPrimitives.scheme.PlaywrightNewRequestParams = (0, _validatorPrimitive
387
419
  timeout: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tNumber),
388
420
  storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
389
421
  cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie'))),
390
- origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage')))
422
+ origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
391
423
  })),
392
424
  tracesDir: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString)
393
425
  });
@@ -608,6 +640,7 @@ _validatorPrimitives.scheme.BrowserTypeLaunchPersistentContextParams = (0, _vali
608
640
  reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
609
641
  forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
610
642
  acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
643
+ contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
611
644
  baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
612
645
  recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
613
646
  dir: _validatorPrimitives.tString,
@@ -694,6 +727,7 @@ _validatorPrimitives.scheme.BrowserNewContextParams = (0, _validatorPrimitives.t
694
727
  reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
695
728
  forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
696
729
  acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
730
+ contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
697
731
  baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
698
732
  recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
699
733
  dir: _validatorPrimitives.tString,
@@ -713,7 +747,7 @@ _validatorPrimitives.scheme.BrowserNewContextParams = (0, _validatorPrimitives.t
713
747
  })),
714
748
  storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
715
749
  cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetNetworkCookie'))),
716
- origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage')))
750
+ origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
717
751
  }))
718
752
  });
719
753
  _validatorPrimitives.scheme.BrowserNewContextResult = (0, _validatorPrimitives.tObject)({
@@ -763,6 +797,7 @@ _validatorPrimitives.scheme.BrowserNewContextForReuseParams = (0, _validatorPrim
763
797
  reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
764
798
  forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
765
799
  acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
800
+ contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
766
801
  baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
767
802
  recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
768
803
  dir: _validatorPrimitives.tString,
@@ -782,7 +817,7 @@ _validatorPrimitives.scheme.BrowserNewContextForReuseParams = (0, _validatorPrim
782
817
  })),
783
818
  storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
784
819
  cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetNetworkCookie'))),
785
- origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage')))
820
+ origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
786
821
  }))
787
822
  });
788
823
  _validatorPrimitives.scheme.BrowserNewContextForReuseResult = (0, _validatorPrimitives.tObject)({
@@ -986,7 +1021,9 @@ _validatorPrimitives.scheme.BrowserContextSetOfflineParams = (0, _validatorPrimi
986
1021
  offline: _validatorPrimitives.tBoolean
987
1022
  });
988
1023
  _validatorPrimitives.scheme.BrowserContextSetOfflineResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
989
- _validatorPrimitives.scheme.BrowserContextStorageStateParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
1024
+ _validatorPrimitives.scheme.BrowserContextStorageStateParams = (0, _validatorPrimitives.tObject)({
1025
+ indexedDB: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1026
+ });
990
1027
  _validatorPrimitives.scheme.BrowserContextStorageStateResult = (0, _validatorPrimitives.tObject)({
991
1028
  cookies: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie')),
992
1029
  origins: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage'))
@@ -1143,7 +1180,8 @@ _validatorPrimitives.scheme.PageEmulateMediaParams = (0, _validatorPrimitives.tO
1143
1180
  media: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['screen', 'print', 'no-override'])),
1144
1181
  colorScheme: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['dark', 'light', 'no-preference', 'no-override'])),
1145
1182
  reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
1146
- forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override']))
1183
+ forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
1184
+ contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override']))
1147
1185
  });
1148
1186
  _validatorPrimitives.scheme.PageEmulateMediaResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
1149
1187
  _validatorPrimitives.scheme.PageExposeBindingParams = (0, _validatorPrimitives.tObject)({
@@ -1455,6 +1493,8 @@ _validatorPrimitives.scheme.FrameAddStyleTagResult = (0, _validatorPrimitives.tO
1455
1493
  });
1456
1494
  _validatorPrimitives.scheme.FrameAriaSnapshotParams = (0, _validatorPrimitives.tObject)({
1457
1495
  selector: _validatorPrimitives.tString,
1496
+ id: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1497
+ mode: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['raw', 'regex'])),
1458
1498
  timeout: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tNumber)
1459
1499
  });
1460
1500
  _validatorPrimitives.scheme.FrameAriaSnapshotResult = (0, _validatorPrimitives.tObject)({
@@ -1527,7 +1567,8 @@ _validatorPrimitives.scheme.FrameDispatchEventResult = (0, _validatorPrimitives.
1527
1567
  _validatorPrimitives.scheme.FrameEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
1528
1568
  expression: _validatorPrimitives.tString,
1529
1569
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1530
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1570
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1571
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1531
1572
  });
1532
1573
  _validatorPrimitives.scheme.FrameEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
1533
1574
  value: (0, _validatorPrimitives.tType)('SerializedValue')
@@ -1535,7 +1576,8 @@ _validatorPrimitives.scheme.FrameEvaluateExpressionResult = (0, _validatorPrimit
1535
1576
  _validatorPrimitives.scheme.FrameEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
1536
1577
  expression: _validatorPrimitives.tString,
1537
1578
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1538
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1579
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1580
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1539
1581
  });
1540
1582
  _validatorPrimitives.scheme.FrameEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
1541
1583
  handle: (0, _validatorPrimitives.tChannel)(['ElementHandle', 'JSHandle'])
@@ -1812,7 +1854,8 @@ _validatorPrimitives.scheme.WorkerCloseEvent = (0, _validatorPrimitives.tOptiona
1812
1854
  _validatorPrimitives.scheme.WorkerEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
1813
1855
  expression: _validatorPrimitives.tString,
1814
1856
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1815
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1857
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1858
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1816
1859
  });
1817
1860
  _validatorPrimitives.scheme.WorkerEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
1818
1861
  value: (0, _validatorPrimitives.tType)('SerializedValue')
@@ -1820,7 +1863,8 @@ _validatorPrimitives.scheme.WorkerEvaluateExpressionResult = (0, _validatorPrimi
1820
1863
  _validatorPrimitives.scheme.WorkerEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
1821
1864
  expression: _validatorPrimitives.tString,
1822
1865
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1823
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1866
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1867
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1824
1868
  });
1825
1869
  _validatorPrimitives.scheme.WorkerEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
1826
1870
  handle: (0, _validatorPrimitives.tChannel)(['ElementHandle', 'JSHandle'])
@@ -1839,7 +1883,8 @@ _validatorPrimitives.scheme.ElementHandleDisposeResult = (0, _validatorPrimitive
1839
1883
  _validatorPrimitives.scheme.JSHandleEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
1840
1884
  expression: _validatorPrimitives.tString,
1841
1885
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1842
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1886
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1887
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1843
1888
  });
1844
1889
  _validatorPrimitives.scheme.ElementHandleEvaluateExpressionParams = (0, _validatorPrimitives.tType)('JSHandleEvaluateExpressionParams');
1845
1890
  _validatorPrimitives.scheme.JSHandleEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
@@ -1849,7 +1894,8 @@ _validatorPrimitives.scheme.ElementHandleEvaluateExpressionResult = (0, _validat
1849
1894
  _validatorPrimitives.scheme.JSHandleEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
1850
1895
  expression: _validatorPrimitives.tString,
1851
1896
  isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
1852
- arg: (0, _validatorPrimitives.tType)('SerializedArgument')
1897
+ arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
1898
+ isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
1853
1899
  });
1854
1900
  _validatorPrimitives.scheme.ElementHandleEvaluateExpressionHandleParams = (0, _validatorPrimitives.tType)('JSHandleEvaluateExpressionHandleParams');
1855
1901
  _validatorPrimitives.scheme.JSHandleEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
@@ -1951,6 +1997,10 @@ _validatorPrimitives.scheme.ElementHandleFillParams = (0, _validatorPrimitives.t
1951
1997
  _validatorPrimitives.scheme.ElementHandleFillResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
1952
1998
  _validatorPrimitives.scheme.ElementHandleFocusParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
1953
1999
  _validatorPrimitives.scheme.ElementHandleFocusResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
2000
+ _validatorPrimitives.scheme.ElementHandleGenerateLocatorStringParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
2001
+ _validatorPrimitives.scheme.ElementHandleGenerateLocatorStringResult = (0, _validatorPrimitives.tObject)({
2002
+ value: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString)
2003
+ });
1954
2004
  _validatorPrimitives.scheme.ElementHandleGetAttributeParams = (0, _validatorPrimitives.tObject)({
1955
2005
  name: _validatorPrimitives.tString
1956
2006
  });
@@ -2660,6 +2710,7 @@ _validatorPrimitives.scheme.AndroidDeviceLaunchBrowserParams = (0, _validatorPri
2660
2710
  reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
2661
2711
  forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
2662
2712
  acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
2713
+ contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
2663
2714
  baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
2664
2715
  recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
2665
2716
  dir: _validatorPrimitives.tString,
@@ -8,7 +8,6 @@ exports.createMetadataValidator = createMetadataValidator;
8
8
  exports.findValidator = findValidator;
9
9
  exports.maybeFindValidator = maybeFindValidator;
10
10
  exports.tUndefined = exports.tType = exports.tString = exports.tOptional = exports.tObject = exports.tNumber = exports.tEnum = exports.tChannel = exports.tBoolean = exports.tBinary = exports.tArray = exports.tAny = exports.scheme = void 0;
11
- var _utils = require("../utils");
12
11
  /**
13
12
  * Copyright (c) Microsoft Corporation.
14
13
  *
@@ -107,7 +106,7 @@ const tObject = s => {
107
106
  const value = v(arg[key], path ? path + '.' + key : key, context);
108
107
  if (!Object.is(value, undefined)) result[key] = value;
109
108
  }
110
- if ((0, _utils.isUnderTest)()) {
109
+ if (context.isUnderTest()) {
111
110
  for (const [key, value] of Object.entries(arg)) {
112
111
  if (key.startsWith('__testHook')) result[key] = value;
113
112
  }
@@ -4,14 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PlaywrightConnection = void 0;
7
+ var _socksProxy = require("../server/utils/socksProxy");
7
8
  var _server = require("../server");
9
+ var _android = require("../server/android/android");
8
10
  var _browser = require("../server/browser");
11
+ var _debugControllerDispatcher = require("../server/dispatchers/debugControllerDispatcher");
9
12
  var _instrumentation = require("../server/instrumentation");
10
- var _socksProxy = require("../common/socksProxy");
13
+ var _assert = require("../utils/isomorphic/assert");
14
+ var _debug = require("../server/utils/debug");
15
+ var _profiler = require("../server/utils/profiler");
11
16
  var _utils = require("../utils");
12
- var _android = require("../server/android/android");
13
- var _debugControllerDispatcher = require("../server/dispatchers/debugControllerDispatcher");
14
- var _debugLogger = require("../utils/debugLogger");
17
+ var _debugLogger = require("../server/utils/debugLogger");
15
18
  /**
16
19
  * Copyright (c) Microsoft Corporation.
17
20
  *
@@ -44,8 +47,8 @@ class PlaywrightConnection {
44
47
  this._preLaunched = preLaunched;
45
48
  this._options = options;
46
49
  options.launchOptions = filterLaunchOptions(options.launchOptions, options.allowFSPaths);
47
- if (clientType === 'reuse-browser' || clientType === 'pre-launched-browser-or-android') (0, _utils.assert)(preLaunched.playwright);
48
- if (clientType === 'pre-launched-browser-or-android') (0, _utils.assert)(preLaunched.browser || preLaunched.androidDevice);
50
+ if (clientType === 'reuse-browser' || clientType === 'pre-launched-browser-or-android') (0, _assert.assert)(preLaunched.playwright);
51
+ if (clientType === 'pre-launched-browser-or-android') (0, _assert.assert)(preLaunched.browser || preLaunched.androidDevice);
49
52
  this._onClose = onClose;
50
53
  this._id = id;
51
54
  this._profileName = `${new Date().toISOString()}-${clientType}`;
@@ -74,7 +77,7 @@ class PlaywrightConnection {
74
77
  return;
75
78
  }
76
79
  this._root = new _server.RootDispatcher(this._dispatcherConnection, async (scope, options) => {
77
- await (0, _utils.startProfiling)();
80
+ await (0, _profiler.startProfiling)();
78
81
  if (clientType === 'reuse-browser') return await this._initReuseBrowsersMode(scope);
79
82
  if (clientType === 'pre-launched-browser-or-android') return this._preLaunched.browser ? await this._initPreLaunchedBrowserMode(scope) : await this._initPreLaunchedAndroidMode(scope);
80
83
  if (clientType === 'launch-browser') return await this._initLaunchBrowserMode(scope, options);
@@ -88,7 +91,12 @@ class PlaywrightConnection {
88
91
  isServer: true
89
92
  });
90
93
  const ownedSocksProxy = await this._createOwnedSocksProxy(playwright);
91
- const browser = await playwright[this._options.browserName].launch((0, _instrumentation.serverSideCallMetadata)(), this._options.launchOptions);
94
+ let browserName = this._options.browserName;
95
+ if ('bidi' === browserName) {
96
+ var _this$_options$launch;
97
+ if ((_this$_options$launch = this._options.launchOptions) !== null && _this$_options$launch !== void 0 && (_this$_options$launch = _this$_options$launch.channel) !== null && _this$_options$launch !== void 0 && _this$_options$launch.toLocaleLowerCase().includes('firefox')) browserName = 'bidiFirefox';else browserName = 'bidiChromium';
98
+ }
99
+ const browser = await playwright[browserName].launch((0, _instrumentation.serverSideCallMetadata)(), this._options.launchOptions);
92
100
  this._cleanups.push(async () => {
93
101
  for (const browser of playwright.allBrowsers()) await browser.close({
94
102
  reason: 'Connection terminated'
@@ -214,7 +222,7 @@ class PlaywrightConnection {
214
222
  this._root._dispose();
215
223
  _debugLogger.debugLogger.log('server', `[${this._id}] starting cleanup`);
216
224
  for (const cleanup of this._cleanups) await cleanup().catch(() => {});
217
- await (0, _utils.stopProfiling)(this._profileName);
225
+ await (0, _profiler.stopProfiling)(this._profileName);
218
226
  this._onClose();
219
227
  _debugLogger.debugLogger.log('server', `[${this._id}] finished cleanup`);
220
228
  }
@@ -260,7 +268,7 @@ function filterLaunchOptions(options, allowFSPaths) {
260
268
  chromiumSandbox: options.chromiumSandbox,
261
269
  firefoxUserPrefs: options.firefoxUserPrefs,
262
270
  slowMo: options.slowMo,
263
- executablePath: (0, _utils.isUnderTest)() || allowFSPaths ? options.executablePath : undefined,
271
+ executablePath: (0, _debug.isUnderTest)() || allowFSPaths ? options.executablePath : undefined,
264
272
  downloadsPath: allowFSPaths ? options.downloadsPath : undefined
265
273
  };
266
274
  }
@@ -4,12 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PlaywrightServer = void 0;
7
- var _playwright = require("../server/playwright");
8
7
  var _playwrightConnection = require("./playwrightConnection");
9
- var _semaphore = require("../utils/semaphore");
10
- var _debugLogger = require("../utils/debugLogger");
11
- var _utils = require("../utils");
12
- var _wsServer = require("../utils/wsServer");
8
+ var _playwright = require("../server/playwright");
9
+ var _debugLogger = require("../server/utils/debugLogger");
10
+ var _semaphore = require("../utils/isomorphic/semaphore");
11
+ var _wsServer = require("../server/utils/wsServer");
12
+ var _ascii = require("../server/utils/ascii");
13
+ var _userAgent = require("../server/utils/userAgent");
13
14
  /**
14
15
  * Copyright (c) Microsoft Corporation.
15
16
  *
@@ -39,7 +40,7 @@ class PlaywrightServer {
39
40
  const reuseBrowserSemaphore = new _semaphore.Semaphore(1);
40
41
  this._wsServer = new _wsServer.WSServer({
41
42
  onUpgrade: (request, socket) => {
42
- const uaError = (0, _utils.userAgentVersionMatchesErrorMessage)(request.headers['user-agent'] || '');
43
+ const uaError = userAgentVersionMatchesErrorMessage(request.headers['user-agent'] || '');
43
44
  if (uaError) return {
44
45
  error: `HTTP/${request.httpVersion} 428 Precondition Required\r\n\r\n${uaError}`
45
46
  };
@@ -108,4 +109,16 @@ class PlaywrightServer {
108
109
  await this._wsServer.close();
109
110
  }
110
111
  }
111
- exports.PlaywrightServer = PlaywrightServer;
112
+ exports.PlaywrightServer = PlaywrightServer;
113
+ function userAgentVersionMatchesErrorMessage(userAgent) {
114
+ const match = userAgent.match(/^Playwright\/(\d+\.\d+\.\d+)/);
115
+ if (!match) {
116
+ // Cannot parse user agent - be lax.
117
+ return;
118
+ }
119
+ const received = match[1].split('.').slice(0, 2).join('.');
120
+ const expected = (0, _userAgent.getPlaywrightVersion)(true);
121
+ if (received !== expected) {
122
+ return (0, _ascii.wrapInASCIIBox)([`Playwright version mismatch:`, ` - server version: v${expected}`, ` - client version: v${received}`, ``, `If you are using VSCode extension, restart VSCode.`, ``, `If you are connecting to a remote service,`, `keep your local Playwright version in sync`, `with the remote service version.`, ``, `<3 Playwright Team`].join('\n'), 1);
123
+ }
124
+ }
@@ -4,25 +4,28 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AndroidDevice = exports.Android = void 0;
7
- var _utilsBundle = require("../../utilsBundle");
8
7
  var _events = require("events");
9
8
  var _fs = _interopRequireDefault(require("fs"));
10
9
  var _os = _interopRequireDefault(require("os"));
11
10
  var _path = _interopRequireDefault(require("path"));
12
- var _utils = require("../../utils");
13
- var _fileUtils = require("../../utils/fileUtils");
11
+ var _timeoutSettings = require("../timeoutSettings");
12
+ var _pipeTransport = require("../utils/pipeTransport");
13
+ var _crypto = require("../utils/crypto");
14
+ var _debug = require("../utils/debug");
15
+ var _env = require("../utils/env");
16
+ var _task = require("../utils/task");
17
+ var _debugLogger = require("../utils/debugLogger");
18
+ var _utilsBundle = require("../../utilsBundle");
14
19
  var _browserContext = require("../browserContext");
15
- var _progress = require("../progress");
20
+ var _chromiumSwitches = require("../chromium/chromiumSwitches");
16
21
  var _crBrowser = require("../chromium/crBrowser");
22
+ var _fileUtils = require("../utils/fileUtils");
17
23
  var _helper = require("../helper");
18
- var _transport = require("../../protocol/transport");
19
- var _debugLogger = require("../../utils/debugLogger");
20
- var _processLauncher = require("../../utils/processLauncher");
21
- var _timeoutSettings = require("../../common/timeoutSettings");
22
24
  var _instrumentation = require("../instrumentation");
23
- var _chromiumSwitches = require("../chromium/chromiumSwitches");
25
+ var _processLauncher = require("../utils/processLauncher");
26
+ var _progress = require("../progress");
24
27
  var _registry = require("../registry");
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
29
  /**
27
30
  * Copyright Microsoft Corporation. All rights reserved.
28
31
  *
@@ -140,7 +143,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
140
143
  await this.shell(`cmd package uninstall com.microsoft.playwright.androiddriver.test`);
141
144
  (0, _utilsBundle.debug)('pw:android')('Installing the new driver');
142
145
  const executable = _registry.registry.findExecutable('android');
143
- const packageManagerCommand = (0, _utils.getPackageManagerExecCommand)();
146
+ const packageManagerCommand = (0, _env.getPackageManagerExecCommand)();
144
147
  for (const file of ['android-driver.apk', 'android-driver-target.apk']) {
145
148
  const fullName = _path.default.join(executable.directory, file);
146
149
  if (!_fs.default.existsSync(fullName)) throw new Error(`Please install Android driver apk using '${packageManagerCommand} playwright install android'`);
@@ -152,7 +155,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
152
155
  (0, _utilsBundle.debug)('pw:android')('Starting the new driver');
153
156
  this.shell('am instrument -w com.microsoft.playwright.androiddriver.test/androidx.test.runner.AndroidJUnitRunner').catch(e => (0, _utilsBundle.debug)('pw:android')(e));
154
157
  const socket = await this._waitForLocalAbstract('playwright_android_driver_socket');
155
- const transport = new _transport.PipeTransport(socket, socket, socket, 'be');
158
+ const transport = new _pipeTransport.PipeTransport(socket, socket, socket, 'be');
156
159
  transport.onmessage = message => {
157
160
  const response = JSON.parse(message);
158
161
  const {
@@ -213,7 +216,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
213
216
  async launchBrowser(pkg = 'com.android.chrome', options) {
214
217
  (0, _utilsBundle.debug)('pw:android')('Force-stopping', pkg);
215
218
  await this._backend.runCommand(`shell:am force-stop ${pkg}`);
216
- const socketName = (0, _utils.isUnderTest)() ? 'webview_devtools_remote_playwright_test' : 'playwright_' + (0, _utils.createGuid)() + '_devtools_remote';
219
+ const socketName = (0, _debug.isUnderTest)() ? 'webview_devtools_remote_playwright_test' : 'playwright_' + (0, _crypto.createGuid)() + '_devtools_remote';
217
220
  const commandLine = this._defaultArgs(options, socketName).join(' ');
218
221
  (0, _utilsBundle.debug)('pw:android')('Starting', pkg, commandLine);
219
222
  // encode commandLine to base64 to avoid issues (bash encoding) with special characters
@@ -381,7 +384,7 @@ class AndroidBrowser extends _events.EventEmitter {
381
384
  this.device = void 0;
382
385
  this._socket = void 0;
383
386
  this._receiver = void 0;
384
- this._waitForNextTask = (0, _utils.makeWaitForNextTask)();
387
+ this._waitForNextTask = (0, _task.makeWaitForNextTask)();
385
388
  this.onmessage = void 0;
386
389
  this.onclose = void 0;
387
390
  this.setMaxListeners(0);
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.AdbBackend = void 0;
7
- var _utilsBundle = require("../../utilsBundle");
8
- var net = _interopRequireWildcard(require("net"));
9
7
  var _events = require("events");
10
- var _utils = require("../../utils");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
8
+ var _net = _interopRequireDefault(require("net"));
9
+ var _assert = require("../../utils/isomorphic/assert");
10
+ var _crypto = require("../utils/crypto");
11
+ var _utilsBundle = require("../../utilsBundle");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  /**
14
14
  * Copyright Microsoft Corporation. All rights reserved.
15
15
  *
@@ -66,7 +66,7 @@ class AdbDevice {
66
66
  }
67
67
  async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
68
68
  (0, _utilsBundle.debug)('pw:adb:runCommand')(command, serial);
69
- const socket = new BufferedSocketWrapper(command, net.createConnection({
69
+ const socket = new BufferedSocketWrapper(command, _net.default.createConnection({
70
70
  host,
71
71
  port
72
72
  }));
@@ -74,11 +74,11 @@ async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
74
74
  if (serial) {
75
75
  await socket.write(encodeMessage(`host:transport:${serial}`));
76
76
  const status = await socket.read(4);
77
- (0, _utils.assert)(status.toString() === 'OKAY', status.toString());
77
+ (0, _assert.assert)(status.toString() === 'OKAY', status.toString());
78
78
  }
79
79
  await socket.write(encodeMessage(command));
80
80
  const status = await socket.read(4);
81
- (0, _utils.assert)(status.toString() === 'OKAY', status.toString());
81
+ (0, _assert.assert)(status.toString() === 'OKAY', status.toString());
82
82
  let commandOutput;
83
83
  if (!command.startsWith('shell:')) {
84
84
  const remainingLength = parseInt((await socket.read(4)).toString(), 16);
@@ -92,18 +92,18 @@ async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
92
92
  }
93
93
  }
94
94
  async function open(command, host = '127.0.0.1', port = 5037, serial) {
95
- const socket = new BufferedSocketWrapper(command, net.createConnection({
95
+ const socket = new BufferedSocketWrapper(command, _net.default.createConnection({
96
96
  host,
97
97
  port
98
98
  }));
99
99
  if (serial) {
100
100
  await socket.write(encodeMessage(`host:transport:${serial}`));
101
101
  const status = await socket.read(4);
102
- (0, _utils.assert)(status.toString() === 'OKAY', status.toString());
102
+ (0, _assert.assert)(status.toString() === 'OKAY', status.toString());
103
103
  }
104
104
  await socket.write(encodeMessage(command));
105
105
  const status = await socket.read(4);
106
- (0, _utils.assert)(status.toString() === 'OKAY', status.toString());
106
+ (0, _assert.assert)(status.toString() === 'OKAY', status.toString());
107
107
  return socket;
108
108
  }
109
109
  function encodeMessage(message) {
@@ -114,7 +114,7 @@ function encodeMessage(message) {
114
114
  class BufferedSocketWrapper extends _events.EventEmitter {
115
115
  constructor(command, socket) {
116
116
  super();
117
- this.guid = (0, _utils.createGuid)();
117
+ this.guid = (0, _crypto.createGuid)();
118
118
  this._socket = void 0;
119
119
  this._buffer = Buffer.from([]);
120
120
  this._isSocket = false;
@@ -154,7 +154,7 @@ class BufferedSocketWrapper extends _events.EventEmitter {
154
154
  }
155
155
  async read(length) {
156
156
  await this._connectPromise;
157
- (0, _utils.assert)(!this._isSocket, 'Can not read by length in socket mode');
157
+ (0, _assert.assert)(!this._isSocket, 'Can not read by length in socket mode');
158
158
  while (this._buffer.length < length) await new Promise(f => this._notifyReader = f);
159
159
  const result = this._buffer.slice(0, length);
160
160
  this._buffer = this._buffer.slice(length);
@@ -166,7 +166,7 @@ class BufferedSocketWrapper extends _events.EventEmitter {
166
166
  return this._buffer;
167
167
  }
168
168
  becomeSocket() {
169
- (0, _utils.assert)(!this._buffer.length);
169
+ (0, _assert.assert)(!this._buffer.length);
170
170
  this._isSocket = true;
171
171
  }
172
172
  }
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.Artifact = void 0;
7
7
  var _fs = _interopRequireDefault(require("fs"));
8
8
  var _utils = require("../utils");
9
- var _manualPromise = require("../utils/manualPromise");
10
- var _instrumentation = require("./instrumentation");
11
9
  var _errors = require("./errors");
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ var _instrumentation = require("./instrumentation");
11
+ var _manualPromise = require("../utils/isomorphic/manualPromise");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  /**
14
14
  * Copyright (c) Microsoft Corporation.
15
15
  *
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Network = exports.BidiBrowserContext = exports.BidiBrowser = void 0;
7
- var _eventsHelper = require("../../utils/eventsHelper");
7
+ var _eventsHelper = require("../utils/eventsHelper");
8
8
  var _browser = require("../browser");
9
9
  var _browserContext = require("../browserContext");
10
10
  var network = _interopRequireWildcard(require("../network"));
@@ -13,7 +13,7 @@ var _bidiNetworkManager = require("./bidiNetworkManager");
13
13
  var _bidiPage = require("./bidiPage");
14
14
  var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  /**
18
18
  * Copyright (c) Microsoft Corporation.
19
19
  *