@checkly/playwright-core 1.41.2-beta.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 (305) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +5 -0
  3. package/README.md +3 -0
  4. package/ThirdPartyNotices.txt +1513 -0
  5. package/bin/PrintDeps.exe +0 -0
  6. package/bin/README.md +2 -0
  7. package/bin/install_media_pack.ps1 +5 -0
  8. package/bin/reinstall_chrome_beta_linux.sh +40 -0
  9. package/bin/reinstall_chrome_beta_mac.sh +13 -0
  10. package/bin/reinstall_chrome_beta_win.ps1 +23 -0
  11. package/bin/reinstall_chrome_stable_linux.sh +40 -0
  12. package/bin/reinstall_chrome_stable_mac.sh +12 -0
  13. package/bin/reinstall_chrome_stable_win.ps1 +23 -0
  14. package/bin/reinstall_msedge_beta_linux.sh +40 -0
  15. package/bin/reinstall_msedge_beta_mac.sh +11 -0
  16. package/bin/reinstall_msedge_beta_win.ps1 +22 -0
  17. package/bin/reinstall_msedge_dev_linux.sh +40 -0
  18. package/bin/reinstall_msedge_dev_mac.sh +11 -0
  19. package/bin/reinstall_msedge_dev_win.ps1 +22 -0
  20. package/bin/reinstall_msedge_stable_linux.sh +40 -0
  21. package/bin/reinstall_msedge_stable_mac.sh +11 -0
  22. package/bin/reinstall_msedge_stable_win.ps1 +23 -0
  23. package/browsers.json +64 -0
  24. package/cli.js +17 -0
  25. package/index.d.ts +17 -0
  26. package/index.js +33 -0
  27. package/index.mjs +28 -0
  28. package/lib/androidServerImpl.js +69 -0
  29. package/lib/browserServerImpl.js +92 -0
  30. package/lib/cli/driver.js +97 -0
  31. package/lib/cli/program.js +582 -0
  32. package/lib/cli/programWithTestStub.js +67 -0
  33. package/lib/client/accessibility.js +50 -0
  34. package/lib/client/android.js +473 -0
  35. package/lib/client/api.js +272 -0
  36. package/lib/client/artifact.js +79 -0
  37. package/lib/client/browser.js +145 -0
  38. package/lib/client/browserContext.js +509 -0
  39. package/lib/client/browserType.js +233 -0
  40. package/lib/client/cdpSession.js +53 -0
  41. package/lib/client/channelOwner.js +229 -0
  42. package/lib/client/clientHelper.js +57 -0
  43. package/lib/client/clientInstrumentation.js +40 -0
  44. package/lib/client/connection.js +327 -0
  45. package/lib/client/consoleMessage.js +55 -0
  46. package/lib/client/coverage.js +41 -0
  47. package/lib/client/dialog.js +57 -0
  48. package/lib/client/download.js +62 -0
  49. package/lib/client/electron.js +130 -0
  50. package/lib/client/elementHandle.js +291 -0
  51. package/lib/client/errors.js +77 -0
  52. package/lib/client/events.js +93 -0
  53. package/lib/client/fetch.js +343 -0
  54. package/lib/client/fileChooser.js +45 -0
  55. package/lib/client/frame.js +506 -0
  56. package/lib/client/harRouter.js +93 -0
  57. package/lib/client/input.js +111 -0
  58. package/lib/client/jsHandle.js +123 -0
  59. package/lib/client/jsonPipe.js +35 -0
  60. package/lib/client/localUtils.js +35 -0
  61. package/lib/client/locator.js +432 -0
  62. package/lib/client/network.js +601 -0
  63. package/lib/client/page.js +707 -0
  64. package/lib/client/playwright.js +74 -0
  65. package/lib/client/selectors.js +67 -0
  66. package/lib/client/stream.js +54 -0
  67. package/lib/client/tracing.js +135 -0
  68. package/lib/client/types.js +24 -0
  69. package/lib/client/video.js +51 -0
  70. package/lib/client/waiter.js +158 -0
  71. package/lib/client/webError.js +37 -0
  72. package/lib/client/worker.js +71 -0
  73. package/lib/client/writableStream.js +54 -0
  74. package/lib/common/socksProxy.js +569 -0
  75. package/lib/common/timeoutSettings.js +73 -0
  76. package/lib/common/types.js +5 -0
  77. package/lib/generated/consoleApiSource.js +7 -0
  78. package/lib/generated/injectedScriptSource.js +7 -0
  79. package/lib/generated/recorderSource.js +7 -0
  80. package/lib/generated/utilityScriptSource.js +7 -0
  81. package/lib/image_tools/colorUtils.js +98 -0
  82. package/lib/image_tools/compare.js +108 -0
  83. package/lib/image_tools/imageChannel.js +70 -0
  84. package/lib/image_tools/stats.js +102 -0
  85. package/lib/inProcessFactory.js +54 -0
  86. package/lib/inprocess.js +20 -0
  87. package/lib/outofprocess.js +67 -0
  88. package/lib/protocol/debug.js +27 -0
  89. package/lib/protocol/serializers.js +172 -0
  90. package/lib/protocol/transport.js +82 -0
  91. package/lib/protocol/validator.js +2599 -0
  92. package/lib/protocol/validatorPrimitives.js +139 -0
  93. package/lib/remote/playwrightConnection.js +274 -0
  94. package/lib/remote/playwrightServer.js +110 -0
  95. package/lib/server/accessibility.js +62 -0
  96. package/lib/server/android/android.js +441 -0
  97. package/lib/server/android/backendAdb.js +172 -0
  98. package/lib/server/artifact.js +104 -0
  99. package/lib/server/browser.js +129 -0
  100. package/lib/server/browserContext.js +609 -0
  101. package/lib/server/browserType.js +300 -0
  102. package/lib/server/chromium/appIcon.png +0 -0
  103. package/lib/server/chromium/chromium.js +346 -0
  104. package/lib/server/chromium/chromiumSwitches.js +41 -0
  105. package/lib/server/chromium/crAccessibility.js +237 -0
  106. package/lib/server/chromium/crBrowser.js +521 -0
  107. package/lib/server/chromium/crConnection.js +228 -0
  108. package/lib/server/chromium/crCoverage.js +246 -0
  109. package/lib/server/chromium/crDevTools.js +104 -0
  110. package/lib/server/chromium/crDragDrop.js +144 -0
  111. package/lib/server/chromium/crExecutionContext.js +156 -0
  112. package/lib/server/chromium/crInput.js +171 -0
  113. package/lib/server/chromium/crNetworkManager.js +723 -0
  114. package/lib/server/chromium/crPage.js +1173 -0
  115. package/lib/server/chromium/crPdf.js +147 -0
  116. package/lib/server/chromium/crProtocolHelper.js +131 -0
  117. package/lib/server/chromium/crServiceWorker.js +115 -0
  118. package/lib/server/chromium/defaultFontFamilies.js +145 -0
  119. package/lib/server/chromium/videoRecorder.js +155 -0
  120. package/lib/server/console.js +59 -0
  121. package/lib/server/cookieStore.js +112 -0
  122. package/lib/server/debugController.js +236 -0
  123. package/lib/server/debugger.js +132 -0
  124. package/lib/server/deviceDescriptors.js +21 -0
  125. package/lib/server/deviceDescriptorsSource.json +1549 -0
  126. package/lib/server/dialog.js +70 -0
  127. package/lib/server/dispatchers/androidDispatcher.js +193 -0
  128. package/lib/server/dispatchers/artifactDispatcher.js +118 -0
  129. package/lib/server/dispatchers/browserContextDispatcher.js +306 -0
  130. package/lib/server/dispatchers/browserDispatcher.js +170 -0
  131. package/lib/server/dispatchers/browserTypeDispatcher.js +55 -0
  132. package/lib/server/dispatchers/cdpSessionDispatcher.js +48 -0
  133. package/lib/server/dispatchers/debugControllerDispatcher.js +103 -0
  134. package/lib/server/dispatchers/dialogDispatcher.js +44 -0
  135. package/lib/server/dispatchers/dispatcher.js +400 -0
  136. package/lib/server/dispatchers/electronDispatcher.js +80 -0
  137. package/lib/server/dispatchers/elementHandlerDispatcher.js +228 -0
  138. package/lib/server/dispatchers/frameDispatcher.js +287 -0
  139. package/lib/server/dispatchers/jsHandleDispatcher.js +102 -0
  140. package/lib/server/dispatchers/jsonPipeDispatcher.js +61 -0
  141. package/lib/server/dispatchers/localUtilsDispatcher.js +399 -0
  142. package/lib/server/dispatchers/networkDispatchers.js +221 -0
  143. package/lib/server/dispatchers/pageDispatcher.js +363 -0
  144. package/lib/server/dispatchers/playwrightDispatcher.js +105 -0
  145. package/lib/server/dispatchers/selectorsDispatcher.js +36 -0
  146. package/lib/server/dispatchers/streamDispatcher.js +62 -0
  147. package/lib/server/dispatchers/tracingDispatcher.js +54 -0
  148. package/lib/server/dispatchers/writableStreamDispatcher.js +55 -0
  149. package/lib/server/dom.js +808 -0
  150. package/lib/server/download.js +53 -0
  151. package/lib/server/electron/electron.js +254 -0
  152. package/lib/server/electron/loader.js +57 -0
  153. package/lib/server/errors.js +68 -0
  154. package/lib/server/fetch.js +611 -0
  155. package/lib/server/fileChooser.js +42 -0
  156. package/lib/server/fileUploadUtils.js +71 -0
  157. package/lib/server/firefox/ffAccessibility.js +215 -0
  158. package/lib/server/firefox/ffBrowser.js +447 -0
  159. package/lib/server/firefox/ffConnection.js +168 -0
  160. package/lib/server/firefox/ffExecutionContext.js +138 -0
  161. package/lib/server/firefox/ffInput.js +150 -0
  162. package/lib/server/firefox/ffNetworkManager.js +231 -0
  163. package/lib/server/firefox/ffPage.js +558 -0
  164. package/lib/server/firefox/firefox.js +91 -0
  165. package/lib/server/formData.js +75 -0
  166. package/lib/server/frameSelectors.js +171 -0
  167. package/lib/server/frames.js +1597 -0
  168. package/lib/server/har/harRecorder.js +139 -0
  169. package/lib/server/har/harTracer.js +539 -0
  170. package/lib/server/helper.js +103 -0
  171. package/lib/server/index.js +96 -0
  172. package/lib/server/input.js +301 -0
  173. package/lib/server/instrumentation.js +74 -0
  174. package/lib/server/isomorphic/utilityScriptSerializers.js +212 -0
  175. package/lib/server/javascript.js +305 -0
  176. package/lib/server/launchApp.js +90 -0
  177. package/lib/server/macEditingCommands.js +139 -0
  178. package/lib/server/network.js +607 -0
  179. package/lib/server/page.js +793 -0
  180. package/lib/server/pipeTransport.js +85 -0
  181. package/lib/server/playwright.js +82 -0
  182. package/lib/server/progress.js +102 -0
  183. package/lib/server/protocolError.js +49 -0
  184. package/lib/server/recorder/codeGenerator.js +153 -0
  185. package/lib/server/recorder/csharp.js +310 -0
  186. package/lib/server/recorder/java.js +216 -0
  187. package/lib/server/recorder/javascript.js +229 -0
  188. package/lib/server/recorder/jsonl.js +47 -0
  189. package/lib/server/recorder/language.js +44 -0
  190. package/lib/server/recorder/python.js +275 -0
  191. package/lib/server/recorder/recorderActions.js +5 -0
  192. package/lib/server/recorder/recorderApp.js +181 -0
  193. package/lib/server/recorder/recorderUtils.js +48 -0
  194. package/lib/server/recorder/utils.js +45 -0
  195. package/lib/server/recorder.js +700 -0
  196. package/lib/server/registry/browserFetcher.js +168 -0
  197. package/lib/server/registry/dependencies.js +322 -0
  198. package/lib/server/registry/index.js +925 -0
  199. package/lib/server/registry/nativeDeps.js +383 -0
  200. package/lib/server/registry/oopDownloadBrowserMain.js +138 -0
  201. package/lib/server/screenshotter.js +354 -0
  202. package/lib/server/selectors.js +73 -0
  203. package/lib/server/socksInterceptor.js +100 -0
  204. package/lib/server/trace/recorder/snapshotter.js +168 -0
  205. package/lib/server/trace/recorder/snapshotterInjected.js +493 -0
  206. package/lib/server/trace/recorder/tracing.js +552 -0
  207. package/lib/server/trace/test/inMemorySnapshotter.js +93 -0
  208. package/lib/server/trace/viewer/traceViewer.js +229 -0
  209. package/lib/server/transport.js +191 -0
  210. package/lib/server/types.js +24 -0
  211. package/lib/server/usKeyboardLayout.js +555 -0
  212. package/lib/server/webkit/webkit.js +87 -0
  213. package/lib/server/webkit/wkAccessibility.js +194 -0
  214. package/lib/server/webkit/wkBrowser.js +328 -0
  215. package/lib/server/webkit/wkConnection.js +173 -0
  216. package/lib/server/webkit/wkExecutionContext.js +146 -0
  217. package/lib/server/webkit/wkInput.js +169 -0
  218. package/lib/server/webkit/wkInterceptableRequest.js +158 -0
  219. package/lib/server/webkit/wkPage.js +1198 -0
  220. package/lib/server/webkit/wkProvisionalPage.js +59 -0
  221. package/lib/server/webkit/wkWorkers.js +104 -0
  222. package/lib/third_party/diff_match_patch.js +2222 -0
  223. package/lib/third_party/pixelmatch.js +255 -0
  224. package/lib/utils/ascii.js +31 -0
  225. package/lib/utils/comparators.js +171 -0
  226. package/lib/utils/crypto.js +33 -0
  227. package/lib/utils/debug.js +46 -0
  228. package/lib/utils/debugLogger.js +89 -0
  229. package/lib/utils/env.js +47 -0
  230. package/lib/utils/eventsHelper.js +38 -0
  231. package/lib/utils/fileUtils.js +66 -0
  232. package/lib/utils/glob.js +83 -0
  233. package/lib/utils/happy-eyeballs.js +154 -0
  234. package/lib/utils/headers.js +52 -0
  235. package/lib/utils/hostPlatform.js +124 -0
  236. package/lib/utils/httpServer.js +195 -0
  237. package/lib/utils/index.js +324 -0
  238. package/lib/utils/isomorphic/cssParser.js +250 -0
  239. package/lib/utils/isomorphic/cssTokenizer.js +979 -0
  240. package/lib/utils/isomorphic/locatorGenerators.js +651 -0
  241. package/lib/utils/isomorphic/locatorParser.js +179 -0
  242. package/lib/utils/isomorphic/locatorUtils.js +62 -0
  243. package/lib/utils/isomorphic/selectorParser.js +397 -0
  244. package/lib/utils/isomorphic/stringUtils.js +107 -0
  245. package/lib/utils/isomorphic/traceUtils.js +39 -0
  246. package/lib/utils/linuxUtils.js +78 -0
  247. package/lib/utils/manualPromise.js +109 -0
  248. package/lib/utils/mimeType.js +29 -0
  249. package/lib/utils/multimap.js +75 -0
  250. package/lib/utils/network.js +189 -0
  251. package/lib/utils/processLauncher.js +248 -0
  252. package/lib/utils/profiler.js +53 -0
  253. package/lib/utils/rtti.js +41 -0
  254. package/lib/utils/semaphore.js +51 -0
  255. package/lib/utils/spawnAsync.js +45 -0
  256. package/lib/utils/stackTrace.js +123 -0
  257. package/lib/utils/task.js +58 -0
  258. package/lib/utils/time.js +37 -0
  259. package/lib/utils/timeoutRunner.js +131 -0
  260. package/lib/utils/traceUtils.js +44 -0
  261. package/lib/utils/userAgent.js +105 -0
  262. package/lib/utils/wsServer.js +125 -0
  263. package/lib/utils/zipFile.js +75 -0
  264. package/lib/utils/zones.js +99 -0
  265. package/lib/utilsBundle.js +81 -0
  266. package/lib/utilsBundleImpl/index.js +51 -0
  267. package/lib/utilsBundleImpl/xdg-open +1066 -0
  268. package/lib/vite/htmlReport/index.html +66 -0
  269. package/lib/vite/recorder/assets/codeMirrorModule-Hs9-1ZG4.css +1 -0
  270. package/lib/vite/recorder/assets/codeMirrorModule-I9ks4y7D.js +24 -0
  271. package/lib/vite/recorder/assets/codicon-zGuYmc9o.ttf +0 -0
  272. package/lib/vite/recorder/assets/index-ljsTwXtJ.css +1 -0
  273. package/lib/vite/recorder/assets/index-yg8ypzl6.js +47 -0
  274. package/lib/vite/recorder/index.html +29 -0
  275. package/lib/vite/recorder/playwright-logo.svg +9 -0
  276. package/lib/vite/traceViewer/assets/codeMirrorModule-GluP1cQ1.js +24 -0
  277. package/lib/vite/traceViewer/assets/codeMirrorModule-fqJB1XDu.js +24 -0
  278. package/lib/vite/traceViewer/assets/codeMirrorModule-y3M3aAqy.js +24 -0
  279. package/lib/vite/traceViewer/assets/wsPort-Rvwd4WC-.js +69 -0
  280. package/lib/vite/traceViewer/assets/wsPort-dlD7vDkY.js +69 -0
  281. package/lib/vite/traceViewer/assets/wsPort-qOE2NWrO.js +69 -0
  282. package/lib/vite/traceViewer/assets/xtermModule-Yt6xwiJ_.js +9 -0
  283. package/lib/vite/traceViewer/codeMirrorModule.Hs9-1ZG4.css +1 -0
  284. package/lib/vite/traceViewer/codicon.zGuYmc9o.ttf +0 -0
  285. package/lib/vite/traceViewer/index.-g_5lMbJ.css +1 -0
  286. package/lib/vite/traceViewer/index.4X7zDysg.js +2 -0
  287. package/lib/vite/traceViewer/index.HkJgzlGy.js +2 -0
  288. package/lib/vite/traceViewer/index.html +26 -0
  289. package/lib/vite/traceViewer/index.kRjx5sAJ.js +2 -0
  290. package/lib/vite/traceViewer/playwright-logo.svg +9 -0
  291. package/lib/vite/traceViewer/snapshot.html +21 -0
  292. package/lib/vite/traceViewer/sw.bundle.js +4 -0
  293. package/lib/vite/traceViewer/uiMode.1Wcp_Kto.js +10 -0
  294. package/lib/vite/traceViewer/uiMode.GTNzARcV.js +10 -0
  295. package/lib/vite/traceViewer/uiMode.html +17 -0
  296. package/lib/vite/traceViewer/uiMode.pWy0Re7G.css +1 -0
  297. package/lib/vite/traceViewer/uiMode.zV-7Lf9v.js +10 -0
  298. package/lib/vite/traceViewer/wsPort.kSgQKQ0y.css +1 -0
  299. package/lib/vite/traceViewer/xtermModule.0lwXJFHT.css +32 -0
  300. package/lib/zipBundle.js +25 -0
  301. package/lib/zipBundleImpl.js +5 -0
  302. package/package.json +43 -0
  303. package/types/protocol.d.ts +20304 -0
  304. package/types/structs.d.ts +45 -0
  305. package/types/types.d.ts +20626 -0
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ConnectedBrowserDispatcher = exports.BrowserDispatcher = void 0;
7
+ var _browser = require("../browser");
8
+ var _browserContextDispatcher = require("./browserContextDispatcher");
9
+ var _cdpSessionDispatcher = require("./cdpSessionDispatcher");
10
+ var _dispatcher = require("./dispatcher");
11
+ var _browserContext = require("../browserContext");
12
+ var _selectors = require("../selectors");
13
+ var _artifactDispatcher = require("./artifactDispatcher");
14
+ /**
15
+ * Copyright (c) Microsoft Corporation.
16
+ *
17
+ * Licensed under the Apache License, Version 2.0 (the 'License");
18
+ * you may not use this file except in compliance with the License.
19
+ * You may obtain a copy of the License at
20
+ *
21
+ * http://www.apache.org/licenses/LICENSE-2.0
22
+ *
23
+ * Unless required by applicable law or agreed to in writing, software
24
+ * distributed under the License is distributed on an "AS IS" BASIS,
25
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
26
+ * See the License for the specific language governing permissions and
27
+ * limitations under the License.
28
+ */
29
+
30
+ class BrowserDispatcher extends _dispatcher.Dispatcher {
31
+ constructor(scope, browser) {
32
+ super(scope, browser, 'Browser', {
33
+ version: browser.version(),
34
+ name: browser.options.name
35
+ });
36
+ this._type_Browser = true;
37
+ this.addObjectListener(_browser.Browser.Events.Disconnected, () => this._didClose());
38
+ }
39
+ _didClose() {
40
+ this._dispatchEvent('close');
41
+ this._dispose();
42
+ }
43
+ async newContext(params, metadata) {
44
+ const context = await this._object.newContext(metadata, params);
45
+ return {
46
+ context: new _browserContextDispatcher.BrowserContextDispatcher(this, context)
47
+ };
48
+ }
49
+ async newContextForReuse(params, metadata) {
50
+ return await newContextForReuse(this._object, this, params, null, metadata);
51
+ }
52
+ async stopPendingOperations(params, metadata) {
53
+ await this._object.stopPendingOperations(params.reason);
54
+ }
55
+ async close(params, metadata) {
56
+ metadata.potentiallyClosesScope = true;
57
+ await this._object.close(params);
58
+ }
59
+ async killForTests(_, metadata) {
60
+ metadata.potentiallyClosesScope = true;
61
+ await this._object.killForTests();
62
+ }
63
+ async defaultUserAgentForTest() {
64
+ return {
65
+ userAgent: this._object.userAgent()
66
+ };
67
+ }
68
+ async newBrowserCDPSession() {
69
+ if (!this._object.options.isChromium) throw new Error(`CDP session is only available in Chromium`);
70
+ const crBrowser = this._object;
71
+ return {
72
+ session: new _cdpSessionDispatcher.CDPSessionDispatcher(this, await crBrowser.newBrowserCDPSession())
73
+ };
74
+ }
75
+ async startTracing(params) {
76
+ if (!this._object.options.isChromium) throw new Error(`Tracing is only available in Chromium`);
77
+ const crBrowser = this._object;
78
+ await crBrowser.startTracing(params.page ? params.page._object : undefined, params);
79
+ }
80
+ async stopTracing() {
81
+ if (!this._object.options.isChromium) throw new Error(`Tracing is only available in Chromium`);
82
+ const crBrowser = this._object;
83
+ return {
84
+ artifact: _artifactDispatcher.ArtifactDispatcher.from(this, await crBrowser.stopTracing())
85
+ };
86
+ }
87
+ }
88
+
89
+ // This class implements multiplexing browser dispatchers over a single Browser instance.
90
+ exports.BrowserDispatcher = BrowserDispatcher;
91
+ class ConnectedBrowserDispatcher extends _dispatcher.Dispatcher {
92
+ constructor(scope, browser) {
93
+ super(scope, browser, 'Browser', {
94
+ version: browser.version(),
95
+ name: browser.options.name
96
+ });
97
+ // When we have a remotely-connected browser, each client gets a fresh Selector instance,
98
+ // so that two clients do not interfere between each other.
99
+ this._type_Browser = true;
100
+ this._contexts = new Set();
101
+ this.selectors = void 0;
102
+ this.selectors = new _selectors.Selectors();
103
+ }
104
+ async newContext(params, metadata) {
105
+ if (params.recordVideo) params.recordVideo.dir = this._object.options.artifactsDir;
106
+ const context = await this._object.newContext(metadata, params);
107
+ this._contexts.add(context);
108
+ context.setSelectors(this.selectors);
109
+ context.on(_browserContext.BrowserContext.Events.Close, () => this._contexts.delete(context));
110
+ return {
111
+ context: new _browserContextDispatcher.BrowserContextDispatcher(this, context)
112
+ };
113
+ }
114
+ async newContextForReuse(params, metadata) {
115
+ return await newContextForReuse(this._object, this, params, this.selectors, metadata);
116
+ }
117
+ async stopPendingOperations(params, metadata) {
118
+ await this._object.stopPendingOperations(params.reason);
119
+ }
120
+ async close() {
121
+ // Client should not send us Browser.close.
122
+ }
123
+ async killForTests() {
124
+ // Client should not send us Browser.killForTests.
125
+ }
126
+ async defaultUserAgentForTest() {
127
+ throw new Error('Client should not send us Browser.defaultUserAgentForTest');
128
+ }
129
+ async newBrowserCDPSession() {
130
+ if (!this._object.options.isChromium) throw new Error(`CDP session is only available in Chromium`);
131
+ const crBrowser = this._object;
132
+ return {
133
+ session: new _cdpSessionDispatcher.CDPSessionDispatcher(this, await crBrowser.newBrowserCDPSession())
134
+ };
135
+ }
136
+ async startTracing(params) {
137
+ if (!this._object.options.isChromium) throw new Error(`Tracing is only available in Chromium`);
138
+ const crBrowser = this._object;
139
+ await crBrowser.startTracing(params.page ? params.page._object : undefined, params);
140
+ }
141
+ async stopTracing() {
142
+ if (!this._object.options.isChromium) throw new Error(`Tracing is only available in Chromium`);
143
+ const crBrowser = this._object;
144
+ return {
145
+ artifact: _artifactDispatcher.ArtifactDispatcher.from(this, await crBrowser.stopTracing())
146
+ };
147
+ }
148
+ async cleanupContexts() {
149
+ await Promise.all(Array.from(this._contexts).map(context => context.close({
150
+ reason: 'Global context cleanup (connection terminated)'
151
+ })));
152
+ }
153
+ }
154
+ exports.ConnectedBrowserDispatcher = ConnectedBrowserDispatcher;
155
+ async function newContextForReuse(browser, scope, params, selectors, metadata) {
156
+ const {
157
+ context,
158
+ needsReset
159
+ } = await browser.newContextForReuse(params, metadata);
160
+ if (needsReset) {
161
+ const oldContextDispatcher = (0, _dispatcher.existingDispatcher)(context);
162
+ if (oldContextDispatcher) oldContextDispatcher._dispose();
163
+ await context.resetForReuse(metadata, params);
164
+ }
165
+ if (selectors) context.setSelectors(selectors);
166
+ const contextDispatcher = new _browserContextDispatcher.BrowserContextDispatcher(scope, context);
167
+ return {
168
+ context: contextDispatcher
169
+ };
170
+ }
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BrowserTypeDispatcher = void 0;
7
+ var _browserDispatcher = require("./browserDispatcher");
8
+ var _dispatcher = require("./dispatcher");
9
+ var _browserContextDispatcher = require("./browserContextDispatcher");
10
+ /**
11
+ * Copyright (c) Microsoft Corporation.
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the 'License");
14
+ * you may not use this file except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License.
24
+ */
25
+
26
+ class BrowserTypeDispatcher extends _dispatcher.Dispatcher {
27
+ constructor(scope, browserType) {
28
+ super(scope, browserType, 'BrowserType', {
29
+ executablePath: browserType.executablePath(),
30
+ name: browserType.name()
31
+ });
32
+ this._type_BrowserType = true;
33
+ }
34
+ async launch(params, metadata) {
35
+ const browser = await this._object.launch(metadata, params);
36
+ return {
37
+ browser: new _browserDispatcher.BrowserDispatcher(this, browser)
38
+ };
39
+ }
40
+ async launchPersistentContext(params, metadata) {
41
+ const browserContext = await this._object.launchPersistentContext(metadata, params.userDataDir, params);
42
+ return {
43
+ context: new _browserContextDispatcher.BrowserContextDispatcher(this, browserContext)
44
+ };
45
+ }
46
+ async connectOverCDP(params, metadata) {
47
+ const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params, params.timeout);
48
+ const browserDispatcher = new _browserDispatcher.BrowserDispatcher(this, browser);
49
+ return {
50
+ browser: browserDispatcher,
51
+ defaultContext: browser._defaultContext ? new _browserContextDispatcher.BrowserContextDispatcher(browserDispatcher, browser._defaultContext) : undefined
52
+ };
53
+ }
54
+ }
55
+ exports.BrowserTypeDispatcher = BrowserTypeDispatcher;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CDPSessionDispatcher = void 0;
7
+ var _crConnection = require("../chromium/crConnection");
8
+ var _dispatcher = require("./dispatcher");
9
+ /**
10
+ * Copyright (c) Microsoft Corporation.
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the 'License");
13
+ * you may not use this file except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ */
24
+
25
+ class CDPSessionDispatcher extends _dispatcher.Dispatcher {
26
+ constructor(scope, cdpSession) {
27
+ super(scope, cdpSession, 'CDPSession', {});
28
+ this._type_CDPSession = true;
29
+ this.addObjectListener(_crConnection.CDPSession.Events.Event, ({
30
+ method,
31
+ params
32
+ }) => this._dispatchEvent('event', {
33
+ method,
34
+ params
35
+ }));
36
+ this.addObjectListener(_crConnection.CDPSession.Events.Closed, () => this._dispose());
37
+ }
38
+ async send(params) {
39
+ return {
40
+ result: await this._object.send(params.method, params.params)
41
+ };
42
+ }
43
+ async detach(_, metadata) {
44
+ metadata.potentiallyClosesScope = true;
45
+ await this._object.detach();
46
+ }
47
+ }
48
+ exports.CDPSessionDispatcher = CDPSessionDispatcher;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DebugControllerDispatcher = void 0;
7
+ var _utils = require("../../utils");
8
+ var _debugController = require("../debugController");
9
+ var _dispatcher = require("./dispatcher");
10
+ /**
11
+ * Copyright (c) Microsoft Corporation.
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the 'License");
14
+ * you may not use this file except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License.
24
+ */
25
+
26
+ class DebugControllerDispatcher extends _dispatcher.Dispatcher {
27
+ constructor(connection, debugController) {
28
+ super(connection, debugController, 'DebugController', {});
29
+ this._type_DebugController = void 0;
30
+ this._listeners = void 0;
31
+ this._type_DebugController = true;
32
+ this._listeners = [_utils.eventsHelper.addEventListener(this._object, _debugController.DebugController.Events.StateChanged, params => {
33
+ this._dispatchEvent('stateChanged', params);
34
+ }), _utils.eventsHelper.addEventListener(this._object, _debugController.DebugController.Events.InspectRequested, ({
35
+ selector,
36
+ locator
37
+ }) => {
38
+ this._dispatchEvent('inspectRequested', {
39
+ selector,
40
+ locator
41
+ });
42
+ }), _utils.eventsHelper.addEventListener(this._object, _debugController.DebugController.Events.SourceChanged, ({
43
+ text,
44
+ header,
45
+ footer,
46
+ actions
47
+ }) => {
48
+ this._dispatchEvent('sourceChanged', {
49
+ text,
50
+ header,
51
+ footer,
52
+ actions
53
+ });
54
+ }), _utils.eventsHelper.addEventListener(this._object, _debugController.DebugController.Events.Paused, ({
55
+ paused
56
+ }) => {
57
+ this._dispatchEvent('paused', {
58
+ paused
59
+ });
60
+ }), _utils.eventsHelper.addEventListener(this._object, _debugController.DebugController.Events.SetModeRequested, ({
61
+ mode
62
+ }) => {
63
+ this._dispatchEvent('setModeRequested', {
64
+ mode
65
+ });
66
+ })];
67
+ }
68
+ async initialize(params) {
69
+ this._object.initialize(params.codegenId, params.sdkLanguage);
70
+ }
71
+ async setReportStateChanged(params) {
72
+ this._object.setReportStateChanged(params.enabled);
73
+ }
74
+ async resetForReuse() {
75
+ await this._object.resetForReuse();
76
+ }
77
+ async navigate(params) {
78
+ await this._object.navigate(params.url);
79
+ }
80
+ async setRecorderMode(params) {
81
+ await this._object.setRecorderMode(params);
82
+ }
83
+ async highlight(params) {
84
+ await this._object.highlight(params.selector);
85
+ }
86
+ async hideHighlight() {
87
+ await this._object.hideHighlight();
88
+ }
89
+ async resume() {
90
+ await this._object.resume();
91
+ }
92
+ async kill() {
93
+ await this._object.kill();
94
+ }
95
+ async closeAllBrowsers() {
96
+ await this._object.closeAllBrowsers();
97
+ }
98
+ _onDispose() {
99
+ _utils.eventsHelper.removeEventListeners(this._listeners);
100
+ this._object.dispose();
101
+ }
102
+ }
103
+ exports.DebugControllerDispatcher = DebugControllerDispatcher;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DialogDispatcher = void 0;
7
+ var _dispatcher = require("./dispatcher");
8
+ var _pageDispatcher = require("./pageDispatcher");
9
+ /**
10
+ * Copyright (c) Microsoft Corporation.
11
+ *
12
+ * Licensed under the Apache License, Version 2.0 (the 'License");
13
+ * you may not use this file except in compliance with the License.
14
+ * You may obtain a copy of the License at
15
+ *
16
+ * http://www.apache.org/licenses/LICENSE-2.0
17
+ *
18
+ * Unless required by applicable law or agreed to in writing, software
19
+ * distributed under the License is distributed on an "AS IS" BASIS,
20
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21
+ * See the License for the specific language governing permissions and
22
+ * limitations under the License.
23
+ */
24
+
25
+ class DialogDispatcher extends _dispatcher.Dispatcher {
26
+ constructor(scope, dialog) {
27
+ const page = _pageDispatcher.PageDispatcher.fromNullable(scope, dialog.page().initializedOrUndefined());
28
+ // Prefer scoping to the page, unless we don't have one.
29
+ super(page || scope, dialog, 'Dialog', {
30
+ page,
31
+ type: dialog.type(),
32
+ message: dialog.message(),
33
+ defaultValue: dialog.defaultValue()
34
+ });
35
+ this._type_Dialog = true;
36
+ }
37
+ async accept(params) {
38
+ await this._object.accept(params.promptText);
39
+ }
40
+ async dismiss() {
41
+ await this._object.dismiss();
42
+ }
43
+ }
44
+ exports.DialogDispatcher = DialogDispatcher;