rebrowser-playwright-core 1.49.1 → 1.52.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.
- package/ThirdPartyNotices.txt +381 -55
- package/bin/reinstall_msedge_beta_linux.sh +6 -0
- package/bin/reinstall_msedge_dev_linux.sh +6 -0
- package/bin/reinstall_msedge_stable_linux.sh +6 -0
- package/browsers.json +28 -13
- package/index.js +0 -1
- package/lib/androidServerImpl.js +42 -48
- package/lib/browserServerImpl.js +60 -64
- package/lib/cli/driver.js +71 -69
- package/lib/cli/program.js +314 -354
- package/lib/cli/programWithTestStub.js +51 -44
- package/lib/client/accessibility.js +31 -32
- package/lib/client/android.js +146 -254
- package/lib/client/api.js +135 -283
- package/lib/client/artifact.js +39 -39
- package/lib/client/browser.js +59 -68
- package/lib/client/browserContext.js +302 -322
- package/lib/client/browserType.js +95 -143
- package/lib/client/cdpSession.js +29 -31
- package/lib/client/channelOwner.js +109 -139
- package/lib/client/clientHelper.js +49 -42
- package/lib/client/clientInstrumentation.js +40 -35
- package/lib/client/clientStackTrace.js +69 -0
- package/lib/client/clock.js +36 -36
- package/lib/client/connection.js +203 -218
- package/lib/client/consoleMessage.js +33 -33
- package/lib/client/coverage.js +25 -22
- package/lib/client/dialog.js +30 -31
- package/lib/client/download.js +25 -25
- package/lib/client/electron.js +74 -76
- package/lib/client/elementHandle.js +126 -163
- package/lib/client/errors.js +53 -53
- package/lib/client/eventEmitter.js +127 -127
- package/lib/client/events.js +72 -68
- package/lib/client/fetch.js +154 -178
- package/lib/client/fileChooser.js +25 -24
- package/lib/client/fileUtils.js +34 -0
- package/lib/client/frame.js +189 -307
- package/lib/client/harRouter.js +44 -56
- package/lib/client/input.js +40 -69
- package/lib/client/jsHandle.js +55 -71
- package/lib/client/jsonPipe.js +27 -23
- package/lib/client/localUtils.js +53 -28
- package/lib/client/locator.js +144 -230
- package/lib/client/network.js +285 -301
- package/lib/client/page.js +273 -312
- package/lib/client/platform.js +74 -0
- package/lib/client/playwright.js +62 -57
- package/lib/client/selectors.js +51 -43
- package/lib/client/stream.js +30 -45
- package/lib/client/timeoutSettings.js +75 -0
- package/lib/client/tracing.js +49 -82
- package/lib/client/types.js +26 -22
- package/lib/client/video.js +35 -27
- package/lib/client/waiter.js +71 -91
- package/lib/client/webError.js +25 -23
- package/lib/client/webSocket.js +111 -0
- package/lib/client/worker.js +48 -56
- package/lib/client/writableStream.js +28 -43
- package/lib/generated/clockSource.js +26 -5
- package/lib/generated/consoleApiSource.js +26 -5
- package/lib/generated/injectedScriptSource.js +26 -5
- package/lib/generated/pollingRecorderSource.js +26 -5
- package/lib/generated/utilityScriptSource.js +26 -5
- package/lib/generated/webSocketMockSource.js +375 -4
- package/lib/inProcessFactory.js +53 -48
- package/lib/inprocess.js +2 -19
- package/lib/outofprocess.js +53 -42
- package/lib/protocol/debug.js +209 -25
- package/lib/protocol/serializers.js +153 -134
- package/lib/protocol/validator.js +2712 -2667
- package/lib/protocol/validatorPrimitives.js +115 -75
- package/lib/remote/playwrightConnection.js +144 -152
- package/lib/remote/playwrightServer.js +106 -77
- package/lib/server/accessibility.js +44 -37
- package/lib/server/android/android.js +216 -206
- package/lib/server/android/backendAdb.js +89 -82
- package/lib/server/artifact.js +78 -55
- package/lib/server/bidi/bidiBrowser.js +227 -158
- package/lib/server/bidi/bidiChromium.js +106 -78
- package/lib/server/bidi/bidiConnection.js +66 -83
- package/lib/server/bidi/bidiExecutionContext.js +161 -97
- package/lib/server/bidi/bidiFirefox.js +76 -68
- package/lib/server/bidi/bidiInput.js +90 -102
- package/lib/server/bidi/bidiNetworkManager.js +141 -159
- package/lib/server/bidi/bidiOverCdp.js +57 -58
- package/lib/server/bidi/bidiPage.js +262 -261
- package/lib/server/bidi/bidiPdf.js +52 -86
- package/lib/server/bidi/third_party/bidiCommands.d.js +22 -0
- package/lib/server/bidi/third_party/bidiDeserializer.js +55 -50
- package/lib/server/bidi/third_party/bidiKeyboard.js +241 -223
- package/lib/server/bidi/third_party/bidiProtocol.js +144 -131
- package/lib/server/bidi/third_party/bidiSerializer.js +67 -63
- package/lib/server/bidi/third_party/firefoxPrefs.js +149 -111
- package/lib/server/browser.js +76 -84
- package/lib/server/browserContext.js +343 -360
- package/lib/server/browserType.js +169 -181
- package/lib/server/callLog.js +82 -0
- package/lib/server/chromium/chromium.js +212 -190
- package/lib/server/chromium/chromiumSwitches.js +99 -44
- package/lib/server/chromium/crAccessibility.js +157 -131
- package/lib/server/chromium/crBrowser.js +262 -280
- package/lib/server/chromium/crConnection.js +121 -178
- package/lib/server/chromium/crCoverage.js +113 -127
- package/lib/server/chromium/crDevTools.js +64 -55
- package/lib/server/chromium/crDragDrop.js +62 -79
- package/lib/server/chromium/crExecutionContext.js +100 -91
- package/lib/server/chromium/crInput.js +101 -88
- package/lib/server/chromium/crNetworkManager.js +269 -370
- package/lib/server/chromium/crPage.js +509 -597
- package/lib/server/chromium/crPdf.js +54 -86
- package/lib/server/chromium/crProtocolHelper.js +92 -80
- package/lib/server/chromium/crServiceWorker.js +85 -69
- package/lib/server/chromium/defaultFontFamilies.js +152 -135
- package/lib/server/chromium/protocol.d.js +16 -0
- package/lib/server/chromium/videoRecorder.js +65 -99
- package/lib/server/clock.js +58 -46
- package/lib/server/codegen/csharp.js +191 -156
- package/lib/server/codegen/java.js +163 -125
- package/lib/server/codegen/javascript.js +166 -143
- package/lib/server/codegen/jsonl.js +33 -29
- package/lib/server/codegen/language.js +75 -52
- package/lib/server/codegen/languages.js +65 -27
- package/lib/server/codegen/python.js +141 -125
- package/lib/server/codegen/types.js +15 -4
- package/lib/server/console.js +28 -32
- package/lib/server/cookieStore.js +105 -86
- package/lib/server/debugController.js +102 -154
- package/lib/server/debugger.js +82 -78
- package/lib/server/deviceDescriptors.js +37 -24
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dialog.js +36 -35
- package/lib/server/dispatchers/androidDispatcher.js +196 -107
- package/lib/server/dispatchers/artifactDispatcher.js +62 -62
- package/lib/server/dispatchers/browserContextDispatcher.js +177 -217
- package/lib/server/dispatchers/browserDispatcher.js +78 -97
- package/lib/server/dispatchers/browserTypeDispatcher.js +35 -35
- package/lib/server/dispatchers/cdpSessionDispatcher.js +32 -36
- package/lib/server/dispatchers/debugControllerDispatcher.js +48 -64
- package/lib/server/dispatchers/dialogDispatcher.js +30 -27
- package/lib/server/dispatchers/dispatcher.js +180 -229
- package/lib/server/dispatchers/electronDispatcher.js +54 -57
- package/lib/server/dispatchers/elementHandlerDispatcher.js +79 -116
- package/lib/server/dispatchers/frameDispatcher.js +93 -162
- package/lib/server/dispatchers/jsHandleDispatcher.js +49 -66
- package/lib/server/dispatchers/jsonPipeDispatcher.js +35 -36
- package/lib/server/dispatchers/localUtilsDispatcher.js +107 -365
- package/lib/server/dispatchers/networkDispatchers.js +92 -109
- package/lib/server/dispatchers/pageDispatcher.js +130 -169
- package/lib/server/dispatchers/playwrightDispatcher.js +69 -76
- package/lib/server/dispatchers/selectorsDispatcher.js +28 -24
- package/lib/server/dispatchers/streamDispatcher.js +42 -44
- package/lib/server/dispatchers/tracingDispatcher.js +36 -41
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +100 -135
- package/lib/server/dispatchers/writableStreamDispatcher.js +54 -39
- package/lib/server/dom.js +424 -443
- package/lib/server/download.js +45 -35
- package/lib/server/electron/electron.js +156 -175
- package/lib/server/electron/loader.js +8 -36
- package/lib/server/errors.js +47 -46
- package/lib/server/fetch.js +302 -331
- package/lib/server/fileChooser.js +25 -24
- package/lib/server/fileUploadUtils.js +66 -57
- package/lib/server/firefox/ffAccessibility.js +153 -131
- package/lib/server/firefox/ffBrowser.js +218 -274
- package/lib/server/firefox/ffConnection.js +63 -84
- package/lib/server/firefox/ffExecutionContext.js +103 -77
- package/lib/server/firefox/ffInput.js +72 -63
- package/lib/server/firefox/ffNetworkManager.js +131 -110
- package/lib/server/firefox/ffPage.js +244 -302
- package/lib/server/firefox/firefox.js +76 -69
- package/lib/server/firefox/protocol.d.js +16 -0
- package/lib/server/formData.js +107 -35
- package/lib/server/frameSelectors.js +77 -111
- package/lib/server/frames.js +719 -855
- package/lib/server/har/harRecorder.js +85 -77
- package/lib/server/har/harTracer.js +288 -224
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +56 -59
- package/lib/server/index.js +59 -106
- package/lib/server/input.js +136 -166
- package/lib/server/instrumentation.js +49 -44
- package/lib/server/javascript.js +157 -151
- package/lib/server/launchApp.js +92 -73
- package/lib/server/localUtils.js +211 -0
- package/lib/server/macEditingCommands.js +141 -137
- package/lib/server/network.js +263 -297
- package/lib/server/page.js +351 -434
- package/lib/server/pageBinding.js +88 -0
- package/lib/server/pipeTransport.js +49 -45
- package/lib/server/playwright.js +60 -67
- package/lib/server/progress.js +56 -51
- package/lib/server/protocolError.js +34 -31
- package/lib/server/recorder/chat.js +161 -0
- package/lib/server/recorder/contextRecorder.js +135 -148
- package/lib/server/recorder/recorderApp.js +129 -132
- package/lib/server/recorder/recorderCollection.js +57 -57
- package/lib/server/recorder/recorderFrontend.js +15 -4
- package/lib/server/recorder/recorderRunner.js +80 -100
- package/lib/server/recorder/recorderUtils.js +59 -72
- package/lib/server/recorder/throttledFile.js +42 -31
- package/lib/server/recorder.js +186 -190
- package/lib/server/registry/browserFetcher.js +107 -100
- package/lib/server/registry/dependencies.js +247 -198
- package/lib/server/registry/index.js +928 -709
- package/lib/server/registry/nativeDeps.js +1073 -461
- package/lib/server/registry/oopDownloadBrowserMain.js +57 -75
- package/lib/server/screenshotter.js +166 -182
- package/lib/server/selectors.js +85 -46
- package/lib/server/socksClientCertificatesInterceptor.js +166 -185
- package/lib/server/socksInterceptor.js +62 -67
- package/lib/server/storageScript.js +154 -0
- package/lib/server/timeoutSettings.js +89 -0
- package/lib/server/trace/recorder/snapshotter.js +70 -88
- package/lib/server/trace/recorder/snapshotterInjected.js +246 -218
- package/lib/server/trace/recorder/tracing.js +324 -327
- package/lib/server/trace/test/inMemorySnapshotter.js +46 -52
- package/lib/server/trace/viewer/traceViewer.js +172 -137
- package/lib/server/transport.js +125 -133
- package/lib/server/types.js +26 -22
- package/lib/server/usKeyboardLayout.js +135 -545
- package/lib/server/utils/ascii.js +44 -0
- package/lib/server/utils/comparators.js +161 -0
- package/lib/server/utils/crypto.js +216 -0
- package/lib/server/utils/debug.js +47 -0
- package/lib/server/utils/debugLogger.js +114 -0
- package/lib/server/utils/env.js +68 -0
- package/lib/server/utils/eventsHelper.js +39 -0
- package/lib/server/utils/expectUtils.js +38 -0
- package/lib/server/utils/fileUtils.js +191 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +109 -0
- package/lib/server/utils/httpServer.js +218 -0
- package/lib/server/utils/image_tools/colorUtils.js +89 -0
- package/lib/{image_tools → server/utils/image_tools}/compare.js +44 -43
- package/lib/server/utils/image_tools/imageChannel.js +78 -0
- package/lib/{image_tools → server/utils/image_tools}/stats.js +40 -40
- package/lib/server/utils/linuxUtils.js +71 -0
- package/lib/server/utils/network.js +217 -0
- package/lib/server/utils/nodePlatform.js +148 -0
- package/lib/server/utils/pipeTransport.js +84 -0
- package/lib/server/utils/processLauncher.js +238 -0
- package/lib/server/utils/profiler.js +65 -0
- package/lib/server/utils/socksProxy.js +511 -0
- package/lib/server/utils/spawnAsync.js +41 -0
- package/lib/server/utils/task.js +51 -0
- package/lib/server/utils/userAgent.js +98 -0
- package/lib/server/utils/wsServer.js +132 -0
- package/lib/server/utils/zipFile.js +74 -0
- package/lib/server/utils/zones.js +57 -0
- package/lib/server/webkit/protocol.d.js +16 -0
- package/lib/server/webkit/webkit.js +76 -63
- package/lib/server/webkit/wkAccessibility.js +161 -118
- package/lib/server/webkit/wkBrowser.js +163 -180
- package/lib/server/webkit/wkConnection.js +59 -83
- package/lib/server/webkit/wkExecutionContext.js +96 -73
- package/lib/server/webkit/wkInput.js +87 -75
- package/lib/server/webkit/wkInterceptableRequest.js +102 -95
- package/lib/server/webkit/wkPage.js +536 -647
- package/lib/server/webkit/wkProvisionalPage.js +45 -56
- package/lib/server/webkit/wkWorkers.js +77 -77
- package/lib/utils/isomorphic/ariaSnapshot.js +245 -128
- package/lib/utils/isomorphic/assert.js +31 -0
- package/lib/utils/isomorphic/builtins.js +90 -0
- package/lib/utils/isomorphic/colors.js +72 -0
- package/lib/utils/isomorphic/cssParser.js +123 -127
- package/lib/utils/isomorphic/cssTokenizer.js +436 -364
- package/lib/utils/isomorphic/headers.js +53 -0
- package/lib/utils/isomorphic/locatorGenerators.js +344 -349
- package/lib/utils/isomorphic/locatorParser.js +103 -106
- package/lib/utils/isomorphic/locatorUtils.js +63 -44
- package/lib/utils/isomorphic/manualPromise.js +115 -0
- package/lib/utils/isomorphic/mimeType.js +453 -22
- package/lib/utils/isomorphic/multimap.js +81 -0
- package/lib/utils/isomorphic/rtti.js +43 -0
- package/lib/utils/isomorphic/selectorParser.js +183 -193
- package/lib/utils/isomorphic/semaphore.js +54 -0
- package/lib/utils/isomorphic/stackTrace.js +158 -0
- package/lib/utils/isomorphic/stringUtils.js +113 -106
- package/lib/utils/isomorphic/time.js +44 -0
- package/lib/utils/isomorphic/timeoutRunner.js +67 -0
- package/lib/utils/isomorphic/traceUtils.js +52 -32
- package/lib/utils/isomorphic/types.js +16 -0
- package/lib/utils/isomorphic/urlMatch.js +114 -71
- package/lib/utils/isomorphic/utilityScriptSerializers.js +248 -0
- package/lib/utils.js +101 -0
- package/lib/utilsBundle.js +101 -76
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +26 -20
- package/lib/vite/recorder/assets/{codeMirrorModule-C5j27SYZ.js → codeMirrorModule-DVQi6prl.js} +13 -13
- package/lib/vite/recorder/assets/index-97EUAAbk.js +184 -0
- package/lib/vite/recorder/assets/{index-iA1aAGZg.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-DwAiTpyC.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DkkRvn5X.js +265 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.QdHITyLI.css +1 -0
- package/lib/vite/traceViewer/index.DvtSwn6E.js +2 -0
- package/lib/vite/traceViewer/index.html +4 -7
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.voC1ZiOQ.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.Sdytl9wc.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +4 -7
- package/lib/zipBundle.js +32 -23
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +819 -127
- package/types/types.d.ts +181 -69
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/common/socksProxy.js +0 -569
- package/lib/common/timeoutSettings.js +0 -73
- package/lib/common/types.js +0 -5
- package/lib/image_tools/colorUtils.js +0 -98
- package/lib/image_tools/imageChannel.js +0 -70
- package/lib/protocol/transport.js +0 -82
- package/lib/server/ariaSnapshot.js +0 -33
- package/lib/server/isomorphic/utilityScriptSerializers.js +0 -226
- package/lib/server/recorder/recorderInTraceViewer.js +0 -144
- package/lib/utils/ascii.js +0 -31
- package/lib/utils/comparators.js +0 -153
- package/lib/utils/crypto.js +0 -171
- package/lib/utils/debug.js +0 -46
- package/lib/utils/debugLogger.js +0 -91
- package/lib/utils/env.js +0 -49
- package/lib/utils/eventsHelper.js +0 -38
- package/lib/utils/expectUtils.js +0 -33
- package/lib/utils/fileUtils.js +0 -205
- package/lib/utils/happy-eyeballs.js +0 -194
- package/lib/utils/headers.js +0 -52
- package/lib/utils/hostPlatform.js +0 -139
- package/lib/utils/httpServer.js +0 -237
- package/lib/utils/index.js +0 -368
- package/lib/utils/isomorphic/recorderUtils.js +0 -227
- package/lib/utils/linuxUtils.js +0 -78
- package/lib/utils/manualPromise.js +0 -109
- package/lib/utils/multimap.js +0 -75
- package/lib/utils/network.js +0 -160
- package/lib/utils/processLauncher.js +0 -248
- package/lib/utils/profiler.js +0 -53
- package/lib/utils/rtti.js +0 -44
- package/lib/utils/semaphore.js +0 -51
- package/lib/utils/sequence.js +0 -64
- package/lib/utils/spawnAsync.js +0 -45
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/task.js +0 -58
- package/lib/utils/time.js +0 -37
- package/lib/utils/timeoutRunner.js +0 -66
- package/lib/utils/traceUtils.js +0 -44
- package/lib/utils/userAgent.js +0 -105
- package/lib/utils/wsServer.js +0 -127
- package/lib/utils/zipFile.js +0 -75
- package/lib/utils/zones.js +0 -71
- package/lib/vite/recorder/assets/index-m0XdVJHe.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-BBCX0spr.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-B4Iw34Ow.js +0 -68
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DFlGYqou.js +0 -9
- package/lib/vite/traceViewer/embedded.CmarehFk.js +0 -2
- package/lib/vite/traceViewer/embedded.html +0 -18
- package/lib/vite/traceViewer/embedded.w7WN2u1R.css +0 -1
- package/lib/vite/traceViewer/index.FBucu_gE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DEOUW62d.css +0 -1
- package/lib/vite/traceViewer/recorder.B_SY1GJM.css +0 -0
- package/lib/vite/traceViewer/recorder.CW_rzcEp.js +0 -2
- package/lib/vite/traceViewer/recorder.html +0 -17
- package/lib/vite/traceViewer/uiMode.CDUVjusr.js +0 -5
- package/lib/vite/traceViewer/workbench.C-zR9ysA.css +0 -1
- /package/lib/vite/recorder/assets/{codeMirrorModule-ez37Vkbh.css → codeMirrorModule-C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{codeMirrorModule.ez37Vkbh.css → codeMirrorModule.C3UTv-Ge.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
package/lib/client/android.js
CHANGED
|
@@ -1,161 +1,125 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.
|
|
4
|
-
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var android_exports = {};
|
|
20
|
+
__export(android_exports, {
|
|
21
|
+
Android: () => Android,
|
|
22
|
+
AndroidDevice: () => AndroidDevice,
|
|
23
|
+
AndroidInput: () => AndroidInput,
|
|
24
|
+
AndroidSocket: () => AndroidSocket,
|
|
25
|
+
AndroidWebView: () => AndroidWebView
|
|
5
26
|
});
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Copyright (c) Microsoft Corporation.
|
|
21
|
-
*
|
|
22
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
23
|
-
* you may not use this file except in compliance with the License.
|
|
24
|
-
* You may obtain a copy of the License at
|
|
25
|
-
*
|
|
26
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
27
|
-
*
|
|
28
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
29
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
30
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
31
|
-
* See the License for the specific language governing permissions and
|
|
32
|
-
* limitations under the License.
|
|
33
|
-
*/
|
|
34
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
|
-
class Android extends _channelOwner.ChannelOwner {
|
|
27
|
+
module.exports = __toCommonJS(android_exports);
|
|
28
|
+
var import_eventEmitter = require("./eventEmitter");
|
|
29
|
+
var import_browserContext = require("./browserContext");
|
|
30
|
+
var import_channelOwner = require("./channelOwner");
|
|
31
|
+
var import_errors = require("./errors");
|
|
32
|
+
var import_events = require("./events");
|
|
33
|
+
var import_waiter = require("./waiter");
|
|
34
|
+
var import_timeoutSettings = require("./timeoutSettings");
|
|
35
|
+
var import_rtti = require("../utils/isomorphic/rtti");
|
|
36
|
+
var import_time = require("../utils/isomorphic/time");
|
|
37
|
+
var import_timeoutRunner = require("../utils/isomorphic/timeoutRunner");
|
|
38
|
+
var import_webSocket = require("./webSocket");
|
|
39
|
+
class Android extends import_channelOwner.ChannelOwner {
|
|
36
40
|
static from(android) {
|
|
37
41
|
return android._object;
|
|
38
42
|
}
|
|
39
43
|
constructor(parent, type, guid, initializer) {
|
|
40
44
|
super(parent, type, guid, initializer);
|
|
41
|
-
this._timeoutSettings =
|
|
42
|
-
this._serverLauncher = void 0;
|
|
43
|
-
this._timeoutSettings = new _timeoutSettings.TimeoutSettings();
|
|
45
|
+
this._timeoutSettings = new import_timeoutSettings.TimeoutSettings(this._platform);
|
|
44
46
|
}
|
|
45
47
|
setDefaultTimeout(timeout) {
|
|
46
48
|
this._timeoutSettings.setDefaultTimeout(timeout);
|
|
47
|
-
this.
|
|
48
|
-
timeout
|
|
49
|
+
this._wrapApiCall(async () => {
|
|
50
|
+
await this._channel.setDefaultTimeoutNoReply({ timeout });
|
|
51
|
+
}, true).catch(() => {
|
|
49
52
|
});
|
|
50
53
|
}
|
|
51
54
|
async devices(options = {}) {
|
|
52
|
-
const {
|
|
53
|
-
|
|
54
|
-
} = await this._channel.devices(options);
|
|
55
|
-
return devices.map(d => AndroidDevice.from(d));
|
|
55
|
+
const { devices } = await this._channel.devices(options);
|
|
56
|
+
return devices.map((d) => AndroidDevice.from(d));
|
|
56
57
|
}
|
|
57
58
|
async launchServer(options = {}) {
|
|
58
|
-
if (!this._serverLauncher)
|
|
59
|
+
if (!this._serverLauncher)
|
|
60
|
+
throw new Error("Launching server is not supported");
|
|
59
61
|
return await this._serverLauncher.launchServer(options);
|
|
60
62
|
}
|
|
61
63
|
async connect(wsEndpoint, options = {}) {
|
|
62
64
|
return await this._wrapApiCall(async () => {
|
|
63
|
-
const deadline = options.timeout ? (0,
|
|
64
|
-
const headers = {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
};
|
|
68
|
-
const localUtils = this._connection.localUtils();
|
|
69
|
-
const connectParams = {
|
|
70
|
-
wsEndpoint,
|
|
71
|
-
headers,
|
|
72
|
-
slowMo: options.slowMo,
|
|
73
|
-
timeout: options.timeout
|
|
74
|
-
};
|
|
75
|
-
const {
|
|
76
|
-
pipe
|
|
77
|
-
} = await localUtils._channel.connect(connectParams);
|
|
78
|
-
const closePipe = () => pipe.close().catch(() => {});
|
|
79
|
-
const connection = new _connection.Connection(localUtils, this._instrumentation);
|
|
80
|
-
connection.markAsRemote();
|
|
81
|
-
connection.on('close', closePipe);
|
|
65
|
+
const deadline = options.timeout ? (0, import_time.monotonicTime)() + options.timeout : 0;
|
|
66
|
+
const headers = { "x-playwright-browser": "android", ...options.headers };
|
|
67
|
+
const connectParams = { wsEndpoint, headers, slowMo: options.slowMo, timeout: options.timeout };
|
|
68
|
+
const connection = await (0, import_webSocket.connectOverWebSocket)(this._connection, connectParams);
|
|
82
69
|
let device;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var _device;
|
|
86
|
-
(_device = device) === null || _device === void 0 || _device._didClose();
|
|
87
|
-
connection.close(closeError);
|
|
88
|
-
};
|
|
89
|
-
pipe.on('closed', onPipeClosed);
|
|
90
|
-
connection.onmessage = message => pipe.send({
|
|
91
|
-
message
|
|
92
|
-
}).catch(onPipeClosed);
|
|
93
|
-
pipe.on('message', ({
|
|
94
|
-
message
|
|
95
|
-
}) => {
|
|
96
|
-
try {
|
|
97
|
-
connection.dispatch(message);
|
|
98
|
-
} catch (e) {
|
|
99
|
-
closeError = String(e);
|
|
100
|
-
closePipe();
|
|
101
|
-
}
|
|
70
|
+
connection.on("close", () => {
|
|
71
|
+
device?._didClose();
|
|
102
72
|
});
|
|
103
|
-
const result = await (0,
|
|
73
|
+
const result = await (0, import_timeoutRunner.raceAgainstDeadline)(async () => {
|
|
104
74
|
const playwright = await connection.initializePlaywright();
|
|
105
75
|
if (!playwright._initializer.preConnectedAndroidDevice) {
|
|
106
|
-
|
|
107
|
-
throw new Error(
|
|
76
|
+
connection.close();
|
|
77
|
+
throw new Error("Malformed endpoint. Did you use Android.launchServer method?");
|
|
108
78
|
}
|
|
109
79
|
device = AndroidDevice.from(playwright._initializer.preConnectedAndroidDevice);
|
|
110
80
|
device._shouldCloseConnectionOnClose = true;
|
|
111
|
-
device.on(
|
|
81
|
+
device.on(import_events.Events.AndroidDevice.Close, () => connection.close());
|
|
112
82
|
return device;
|
|
113
83
|
}, deadline);
|
|
114
84
|
if (!result.timedOut) {
|
|
115
85
|
return result.result;
|
|
116
86
|
} else {
|
|
117
|
-
|
|
87
|
+
connection.close();
|
|
118
88
|
throw new Error(`Timeout ${options.timeout}ms exceeded`);
|
|
119
89
|
}
|
|
120
90
|
});
|
|
121
91
|
}
|
|
122
92
|
}
|
|
123
|
-
|
|
124
|
-
_Symbol$asyncDispose = Symbol.asyncDispose;
|
|
125
|
-
class AndroidDevice extends _channelOwner.ChannelOwner {
|
|
126
|
-
static from(androidDevice) {
|
|
127
|
-
return androidDevice._object;
|
|
128
|
-
}
|
|
93
|
+
class AndroidDevice extends import_channelOwner.ChannelOwner {
|
|
129
94
|
constructor(parent, type, guid, initializer) {
|
|
130
95
|
super(parent, type, guid, initializer);
|
|
131
|
-
this.
|
|
132
|
-
this._webViews = new Map();
|
|
96
|
+
this._webViews = /* @__PURE__ */ new Map();
|
|
133
97
|
this._shouldCloseConnectionOnClose = false;
|
|
134
|
-
this.input = void 0;
|
|
135
98
|
this.input = new AndroidInput(this);
|
|
136
|
-
this._timeoutSettings = new
|
|
137
|
-
this._channel.on(
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this._channel.on('close', () => this._didClose());
|
|
99
|
+
this._timeoutSettings = new import_timeoutSettings.TimeoutSettings(this._platform, parent._timeoutSettings);
|
|
100
|
+
this._channel.on("webViewAdded", ({ webView }) => this._onWebViewAdded(webView));
|
|
101
|
+
this._channel.on("webViewRemoved", ({ socketName }) => this._onWebViewRemoved(socketName));
|
|
102
|
+
this._channel.on("close", () => this._didClose());
|
|
103
|
+
}
|
|
104
|
+
static from(androidDevice) {
|
|
105
|
+
return androidDevice._object;
|
|
144
106
|
}
|
|
145
107
|
_onWebViewAdded(webView) {
|
|
146
108
|
const view = new AndroidWebView(this, webView);
|
|
147
109
|
this._webViews.set(webView.socketName, view);
|
|
148
|
-
this.emit(
|
|
110
|
+
this.emit(import_events.Events.AndroidDevice.WebView, view);
|
|
149
111
|
}
|
|
150
112
|
_onWebViewRemoved(socketName) {
|
|
151
113
|
const view = this._webViews.get(socketName);
|
|
152
114
|
this._webViews.delete(socketName);
|
|
153
|
-
if (view)
|
|
115
|
+
if (view)
|
|
116
|
+
view.emit(import_events.Events.AndroidWebView.Close);
|
|
154
117
|
}
|
|
155
118
|
setDefaultTimeout(timeout) {
|
|
156
119
|
this._timeoutSettings.setDefaultTimeout(timeout);
|
|
157
|
-
this.
|
|
158
|
-
timeout
|
|
120
|
+
this._wrapApiCall(async () => {
|
|
121
|
+
await this._channel.setDefaultTimeoutNoReply({ timeout });
|
|
122
|
+
}, true).catch(() => {
|
|
159
123
|
});
|
|
160
124
|
}
|
|
161
125
|
serial() {
|
|
@@ -168,179 +132,124 @@ class AndroidDevice extends _channelOwner.ChannelOwner {
|
|
|
168
132
|
return [...this._webViews.values()];
|
|
169
133
|
}
|
|
170
134
|
async webView(selector, options) {
|
|
171
|
-
const predicate = v => {
|
|
172
|
-
if (selector.pkg)
|
|
173
|
-
|
|
135
|
+
const predicate = (v) => {
|
|
136
|
+
if (selector.pkg)
|
|
137
|
+
return v.pkg() === selector.pkg;
|
|
138
|
+
if (selector.socketName)
|
|
139
|
+
return v._socketName() === selector.socketName;
|
|
174
140
|
return false;
|
|
175
141
|
};
|
|
176
142
|
const webView = [...this._webViews.values()].find(predicate);
|
|
177
|
-
if (webView)
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
predicate
|
|
181
|
-
});
|
|
143
|
+
if (webView)
|
|
144
|
+
return webView;
|
|
145
|
+
return await this.waitForEvent("webview", { ...options, predicate });
|
|
182
146
|
}
|
|
183
147
|
async wait(selector, options) {
|
|
184
|
-
await this._channel.wait({
|
|
185
|
-
selector: toSelectorChannel(selector),
|
|
186
|
-
...options
|
|
187
|
-
});
|
|
148
|
+
await this._channel.wait({ selector: toSelectorChannel(selector), ...options });
|
|
188
149
|
}
|
|
189
150
|
async fill(selector, text, options) {
|
|
190
|
-
await this._channel.fill({
|
|
191
|
-
selector: toSelectorChannel(selector),
|
|
192
|
-
text,
|
|
193
|
-
...options
|
|
194
|
-
});
|
|
151
|
+
await this._channel.fill({ selector: toSelectorChannel(selector), text, ...options });
|
|
195
152
|
}
|
|
196
153
|
async press(selector, key, options) {
|
|
197
154
|
await this.tap(selector, options);
|
|
198
155
|
await this.input.press(key);
|
|
199
156
|
}
|
|
200
157
|
async tap(selector, options) {
|
|
201
|
-
await this._channel.tap({
|
|
202
|
-
selector: toSelectorChannel(selector),
|
|
203
|
-
...options
|
|
204
|
-
});
|
|
158
|
+
await this._channel.tap({ selector: toSelectorChannel(selector), ...options });
|
|
205
159
|
}
|
|
206
160
|
async drag(selector, dest, options) {
|
|
207
|
-
await this._channel.drag({
|
|
208
|
-
selector: toSelectorChannel(selector),
|
|
209
|
-
dest,
|
|
210
|
-
...options
|
|
211
|
-
});
|
|
161
|
+
await this._channel.drag({ selector: toSelectorChannel(selector), dest, ...options });
|
|
212
162
|
}
|
|
213
163
|
async fling(selector, direction, options) {
|
|
214
|
-
await this._channel.fling({
|
|
215
|
-
selector: toSelectorChannel(selector),
|
|
216
|
-
direction,
|
|
217
|
-
...options
|
|
218
|
-
});
|
|
164
|
+
await this._channel.fling({ selector: toSelectorChannel(selector), direction, ...options });
|
|
219
165
|
}
|
|
220
166
|
async longTap(selector, options) {
|
|
221
|
-
await this._channel.longTap({
|
|
222
|
-
selector: toSelectorChannel(selector),
|
|
223
|
-
...options
|
|
224
|
-
});
|
|
167
|
+
await this._channel.longTap({ selector: toSelectorChannel(selector), ...options });
|
|
225
168
|
}
|
|
226
169
|
async pinchClose(selector, percent, options) {
|
|
227
|
-
await this._channel.pinchClose({
|
|
228
|
-
selector: toSelectorChannel(selector),
|
|
229
|
-
percent,
|
|
230
|
-
...options
|
|
231
|
-
});
|
|
170
|
+
await this._channel.pinchClose({ selector: toSelectorChannel(selector), percent, ...options });
|
|
232
171
|
}
|
|
233
172
|
async pinchOpen(selector, percent, options) {
|
|
234
|
-
await this._channel.pinchOpen({
|
|
235
|
-
selector: toSelectorChannel(selector),
|
|
236
|
-
percent,
|
|
237
|
-
...options
|
|
238
|
-
});
|
|
173
|
+
await this._channel.pinchOpen({ selector: toSelectorChannel(selector), percent, ...options });
|
|
239
174
|
}
|
|
240
175
|
async scroll(selector, direction, percent, options) {
|
|
241
|
-
await this._channel.scroll({
|
|
242
|
-
selector: toSelectorChannel(selector),
|
|
243
|
-
direction,
|
|
244
|
-
percent,
|
|
245
|
-
...options
|
|
246
|
-
});
|
|
176
|
+
await this._channel.scroll({ selector: toSelectorChannel(selector), direction, percent, ...options });
|
|
247
177
|
}
|
|
248
178
|
async swipe(selector, direction, percent, options) {
|
|
249
|
-
await this._channel.swipe({
|
|
250
|
-
selector: toSelectorChannel(selector),
|
|
251
|
-
direction,
|
|
252
|
-
percent,
|
|
253
|
-
...options
|
|
254
|
-
});
|
|
179
|
+
await this._channel.swipe({ selector: toSelectorChannel(selector), direction, percent, ...options });
|
|
255
180
|
}
|
|
256
181
|
async info(selector) {
|
|
257
|
-
return (await this._channel.info({
|
|
258
|
-
selector: toSelectorChannel(selector)
|
|
259
|
-
})).info;
|
|
182
|
+
return (await this._channel.info({ selector: toSelectorChannel(selector) })).info;
|
|
260
183
|
}
|
|
261
184
|
async screenshot(options = {}) {
|
|
262
|
-
const {
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
if (options.path) await _fs.default.promises.writeFile(options.path, binary);
|
|
185
|
+
const { binary } = await this._channel.screenshot();
|
|
186
|
+
if (options.path)
|
|
187
|
+
await this._platform.fs().promises.writeFile(options.path, binary);
|
|
266
188
|
return binary;
|
|
267
189
|
}
|
|
268
|
-
async [
|
|
190
|
+
async [Symbol.asyncDispose]() {
|
|
269
191
|
await this.close();
|
|
270
192
|
}
|
|
271
193
|
async close() {
|
|
272
194
|
try {
|
|
273
|
-
if (this._shouldCloseConnectionOnClose)
|
|
195
|
+
if (this._shouldCloseConnectionOnClose)
|
|
196
|
+
this._connection.close();
|
|
197
|
+
else
|
|
198
|
+
await this._channel.close();
|
|
274
199
|
} catch (e) {
|
|
275
|
-
if ((0,
|
|
200
|
+
if ((0, import_errors.isTargetClosedError)(e))
|
|
201
|
+
return;
|
|
276
202
|
throw e;
|
|
277
203
|
}
|
|
278
204
|
}
|
|
279
205
|
_didClose() {
|
|
280
|
-
this.emit(
|
|
206
|
+
this.emit(import_events.Events.AndroidDevice.Close, this);
|
|
281
207
|
}
|
|
282
208
|
async shell(command) {
|
|
283
|
-
const {
|
|
284
|
-
result
|
|
285
|
-
} = await this._channel.shell({
|
|
286
|
-
command
|
|
287
|
-
});
|
|
209
|
+
const { result } = await this._channel.shell({ command });
|
|
288
210
|
return result;
|
|
289
211
|
}
|
|
290
212
|
async open(command) {
|
|
291
|
-
return AndroidSocket.from((await this._channel.open({
|
|
292
|
-
command
|
|
293
|
-
})).socket);
|
|
213
|
+
return AndroidSocket.from((await this._channel.open({ command })).socket);
|
|
294
214
|
}
|
|
295
215
|
async installApk(file, options) {
|
|
296
|
-
await this._channel.installApk({
|
|
297
|
-
file: await loadFile(file),
|
|
298
|
-
args: options && options.args
|
|
299
|
-
});
|
|
216
|
+
await this._channel.installApk({ file: await loadFile(this._platform, file), args: options && options.args });
|
|
300
217
|
}
|
|
301
218
|
async push(file, path, options) {
|
|
302
|
-
await this._channel.push({
|
|
303
|
-
file: await loadFile(file),
|
|
304
|
-
path,
|
|
305
|
-
mode: options ? options.mode : undefined
|
|
306
|
-
});
|
|
219
|
+
await this._channel.push({ file: await loadFile(this._platform, file), path, mode: options ? options.mode : void 0 });
|
|
307
220
|
}
|
|
308
221
|
async launchBrowser(options = {}) {
|
|
309
|
-
const contextOptions = await (0,
|
|
222
|
+
const contextOptions = await (0, import_browserContext.prepareBrowserContextParams)(this._platform, options);
|
|
310
223
|
const result = await this._channel.launchBrowser(contextOptions);
|
|
311
|
-
const context =
|
|
224
|
+
const context = import_browserContext.BrowserContext.from(result.context);
|
|
312
225
|
context._setOptions(contextOptions, {});
|
|
313
226
|
return context;
|
|
314
227
|
}
|
|
315
228
|
async waitForEvent(event, optionsOrPredicate = {}) {
|
|
316
229
|
return await this._wrapApiCall(async () => {
|
|
317
|
-
const timeout = this._timeoutSettings.timeout(typeof optionsOrPredicate ===
|
|
318
|
-
const predicate = typeof optionsOrPredicate ===
|
|
319
|
-
const waiter =
|
|
230
|
+
const timeout = this._timeoutSettings.timeout(typeof optionsOrPredicate === "function" ? {} : optionsOrPredicate);
|
|
231
|
+
const predicate = typeof optionsOrPredicate === "function" ? optionsOrPredicate : optionsOrPredicate.predicate;
|
|
232
|
+
const waiter = import_waiter.Waiter.createForEvent(this, event);
|
|
320
233
|
waiter.rejectOnTimeout(timeout, `Timeout ${timeout}ms exceeded while waiting for event "${event}"`);
|
|
321
|
-
if (event !==
|
|
234
|
+
if (event !== import_events.Events.AndroidDevice.Close)
|
|
235
|
+
waiter.rejectOnEvent(this, import_events.Events.AndroidDevice.Close, () => new import_errors.TargetClosedError());
|
|
322
236
|
const result = await waiter.waitForEvent(this, event, predicate);
|
|
323
237
|
waiter.dispose();
|
|
324
238
|
return result;
|
|
325
239
|
});
|
|
326
240
|
}
|
|
327
241
|
}
|
|
328
|
-
|
|
329
|
-
class AndroidSocket extends _channelOwner.ChannelOwner {
|
|
242
|
+
class AndroidSocket extends import_channelOwner.ChannelOwner {
|
|
330
243
|
static from(androidDevice) {
|
|
331
244
|
return androidDevice._object;
|
|
332
245
|
}
|
|
333
246
|
constructor(parent, type, guid, initializer) {
|
|
334
247
|
super(parent, type, guid, initializer);
|
|
335
|
-
this._channel.on(
|
|
336
|
-
|
|
337
|
-
}) => this.emit(_events.Events.AndroidSocket.Data, data));
|
|
338
|
-
this._channel.on('close', () => this.emit(_events.Events.AndroidSocket.Close));
|
|
248
|
+
this._channel.on("data", ({ data }) => this.emit(import_events.Events.AndroidSocket.Data, data));
|
|
249
|
+
this._channel.on("close", () => this.emit(import_events.Events.AndroidSocket.Close));
|
|
339
250
|
}
|
|
340
251
|
async write(data) {
|
|
341
|
-
await this._channel.write({
|
|
342
|
-
data
|
|
343
|
-
});
|
|
252
|
+
await this._channel.write({ data });
|
|
344
253
|
}
|
|
345
254
|
async close() {
|
|
346
255
|
await this._channel.close();
|
|
@@ -349,46 +258,31 @@ class AndroidSocket extends _channelOwner.ChannelOwner {
|
|
|
349
258
|
await this.close();
|
|
350
259
|
}
|
|
351
260
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
261
|
+
async function loadFile(platform, file) {
|
|
262
|
+
if ((0, import_rtti.isString)(file))
|
|
263
|
+
return await platform.fs().promises.readFile(file);
|
|
355
264
|
return file;
|
|
356
265
|
}
|
|
357
266
|
class AndroidInput {
|
|
358
267
|
constructor(device) {
|
|
359
|
-
this._device = void 0;
|
|
360
268
|
this._device = device;
|
|
361
269
|
}
|
|
362
270
|
async type(text) {
|
|
363
|
-
await this._device._channel.inputType({
|
|
364
|
-
text
|
|
365
|
-
});
|
|
271
|
+
await this._device._channel.inputType({ text });
|
|
366
272
|
}
|
|
367
273
|
async press(key) {
|
|
368
|
-
await this._device._channel.inputPress({
|
|
369
|
-
key
|
|
370
|
-
});
|
|
274
|
+
await this._device._channel.inputPress({ key });
|
|
371
275
|
}
|
|
372
276
|
async tap(point) {
|
|
373
|
-
await this._device._channel.inputTap({
|
|
374
|
-
point
|
|
375
|
-
});
|
|
277
|
+
await this._device._channel.inputTap({ point });
|
|
376
278
|
}
|
|
377
279
|
async swipe(from, segments, steps) {
|
|
378
|
-
await this._device._channel.inputSwipe({
|
|
379
|
-
segments,
|
|
380
|
-
steps
|
|
381
|
-
});
|
|
280
|
+
await this._device._channel.inputSwipe({ segments, steps });
|
|
382
281
|
}
|
|
383
282
|
async drag(from, to, steps) {
|
|
384
|
-
await this._device._channel.inputDrag({
|
|
385
|
-
from,
|
|
386
|
-
to,
|
|
387
|
-
steps
|
|
388
|
-
});
|
|
283
|
+
await this._device._channel.inputDrag({ from, to, steps });
|
|
389
284
|
}
|
|
390
285
|
}
|
|
391
|
-
exports.AndroidInput = AndroidInput;
|
|
392
286
|
function toSelectorChannel(selector) {
|
|
393
287
|
const {
|
|
394
288
|
checkable,
|
|
@@ -409,10 +303,12 @@ function toSelectorChannel(selector) {
|
|
|
409
303
|
selected,
|
|
410
304
|
text
|
|
411
305
|
} = selector;
|
|
412
|
-
const toRegex = value => {
|
|
413
|
-
if (value ===
|
|
414
|
-
|
|
415
|
-
|
|
306
|
+
const toRegex = (value) => {
|
|
307
|
+
if (value === void 0)
|
|
308
|
+
return void 0;
|
|
309
|
+
if ((0, import_rtti.isRegExp)(value))
|
|
310
|
+
return value.source;
|
|
311
|
+
return "^" + value.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d") + "$";
|
|
416
312
|
};
|
|
417
313
|
return {
|
|
418
314
|
checkable,
|
|
@@ -427,24 +323,16 @@ function toSelectorChannel(selector) {
|
|
|
427
323
|
enabled,
|
|
428
324
|
focusable,
|
|
429
325
|
focused,
|
|
430
|
-
hasChild: hasChild ? {
|
|
431
|
-
|
|
432
|
-
} : undefined,
|
|
433
|
-
hasDescendant: hasDescendant ? {
|
|
434
|
-
selector: toSelectorChannel(hasDescendant.selector),
|
|
435
|
-
maxDepth: hasDescendant.maxDepth
|
|
436
|
-
} : undefined,
|
|
326
|
+
hasChild: hasChild ? { selector: toSelectorChannel(hasChild.selector) } : void 0,
|
|
327
|
+
hasDescendant: hasDescendant ? { selector: toSelectorChannel(hasDescendant.selector), maxDepth: hasDescendant.maxDepth } : void 0,
|
|
437
328
|
longClickable,
|
|
438
329
|
scrollable,
|
|
439
330
|
selected
|
|
440
331
|
};
|
|
441
332
|
}
|
|
442
|
-
class AndroidWebView extends
|
|
333
|
+
class AndroidWebView extends import_eventEmitter.EventEmitter {
|
|
443
334
|
constructor(device, data) {
|
|
444
|
-
super();
|
|
445
|
-
this._device = void 0;
|
|
446
|
-
this._data = void 0;
|
|
447
|
-
this._pagePromise = void 0;
|
|
335
|
+
super(device._platform);
|
|
448
336
|
this._device = device;
|
|
449
337
|
this._data = data;
|
|
450
338
|
}
|
|
@@ -458,16 +346,20 @@ class AndroidWebView extends _events2.EventEmitter {
|
|
|
458
346
|
return this._data.socketName;
|
|
459
347
|
}
|
|
460
348
|
async page() {
|
|
461
|
-
if (!this._pagePromise)
|
|
349
|
+
if (!this._pagePromise)
|
|
350
|
+
this._pagePromise = this._fetchPage();
|
|
462
351
|
return await this._pagePromise;
|
|
463
352
|
}
|
|
464
353
|
async _fetchPage() {
|
|
465
|
-
const {
|
|
466
|
-
|
|
467
|
-
} = await this._device._channel.connectToWebView({
|
|
468
|
-
socketName: this._data.socketName
|
|
469
|
-
});
|
|
470
|
-
return _browserContext.BrowserContext.from(context).pages()[0];
|
|
354
|
+
const { context } = await this._device._channel.connectToWebView({ socketName: this._data.socketName });
|
|
355
|
+
return import_browserContext.BrowserContext.from(context).pages()[0];
|
|
471
356
|
}
|
|
472
357
|
}
|
|
473
|
-
|
|
358
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
359
|
+
0 && (module.exports = {
|
|
360
|
+
Android,
|
|
361
|
+
AndroidDevice,
|
|
362
|
+
AndroidInput,
|
|
363
|
+
AndroidSocket,
|
|
364
|
+
AndroidWebView
|
|
365
|
+
});
|