@checkly/playwright-core 1.48.22 → 1.51.11-beta.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.
- package/ThirdPartyNotices.txt +60 -48
- package/bin/reinstall_chrome_beta_linux.sh +10 -8
- package/bin/reinstall_chrome_stable_linux.sh +10 -8
- package/bin/reinstall_msedge_beta_linux.sh +17 -9
- package/bin/reinstall_msedge_dev_linux.sh +17 -9
- package/bin/reinstall_msedge_stable_linux.sh +17 -9
- package/browsers.json +33 -12
- package/index.js +0 -1
- package/lib/androidServerImpl.js +5 -5
- package/lib/browserServerImpl.js +18 -9
- package/lib/checkly/secretsFilter.js +1 -1
- package/lib/cli/driver.js +6 -6
- package/lib/cli/program.js +38 -43
- package/lib/cli/programWithTestStub.js +2 -1
- package/lib/client/android.js +37 -58
- package/lib/client/artifact.js +4 -7
- package/lib/client/browser.js +10 -15
- package/lib/client/browserContext.js +69 -62
- package/lib/client/browserType.js +30 -64
- package/lib/client/channelOwner.js +53 -68
- package/lib/client/clientHelper.js +4 -6
- package/lib/client/clientInstrumentation.js +2 -0
- package/lib/client/clientStackTrace.js +65 -0
- package/lib/client/connection.js +48 -41
- package/lib/client/consoleMessage.js +4 -7
- package/lib/client/electron.js +10 -10
- package/lib/client/elementHandle.js +32 -33
- package/lib/client/errors.js +2 -2
- package/lib/client/eventEmitter.js +5 -8
- package/lib/client/fetch.js +61 -62
- package/lib/client/fileUtils.js +31 -0
- package/lib/client/frame.js +22 -23
- package/lib/client/harRouter.js +7 -9
- package/lib/client/jsHandle.js +3 -4
- package/lib/client/localUtils.js +24 -0
- package/lib/client/locator.js +27 -13
- package/lib/client/network.js +44 -37
- package/lib/client/page.js +50 -41
- package/lib/client/platform.js +71 -0
- package/lib/client/playwright.js +21 -1
- package/lib/client/selectors.js +8 -2
- package/lib/client/stream.js +2 -21
- package/lib/client/timeoutSettings.js +65 -0
- package/lib/client/tracing.js +29 -7
- package/lib/client/video.js +2 -2
- package/lib/client/waiter.js +19 -16
- package/lib/client/webSocket.js +106 -0
- package/lib/client/worker.js +4 -4
- package/lib/client/writableStream.js +2 -21
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/generated/recorderSource.js +7 -0
- package/lib/generated/webSocketMockSource.js +1 -1
- package/lib/inProcessFactory.js +8 -3
- package/lib/outofprocess.js +12 -8
- package/lib/protocol/debug.js +1 -1
- package/lib/protocol/validator.js +77 -11
- package/lib/protocol/validatorPrimitives.js +1 -2
- package/lib/remote/playwrightConnection.js +21 -12
- package/lib/remote/playwrightServer.js +22 -8
- package/lib/server/android/android.js +17 -14
- package/lib/server/android/backendAdb.js +14 -14
- package/lib/server/artifact.js +3 -3
- package/lib/server/bidi/bidiBrowser.js +11 -8
- package/lib/server/bidi/bidiChromium.js +5 -4
- package/lib/server/bidi/bidiConnection.js +1 -3
- package/lib/server/bidi/bidiExecutionContext.js +71 -25
- package/lib/server/bidi/bidiFirefox.js +4 -3
- package/lib/server/bidi/bidiInput.js +11 -12
- package/lib/server/bidi/bidiNetworkManager.js +11 -12
- package/lib/server/bidi/bidiOverCdp.js +2 -2
- package/lib/server/bidi/bidiPage.js +39 -66
- package/lib/server/bidi/third_party/bidiKeyboard.js +9 -7
- package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +60 -55
- package/lib/server/browserType.js +22 -18
- package/lib/server/callLog.js +79 -0
- package/lib/server/chromium/chromium.js +20 -16
- package/lib/server/chromium/chromiumSwitches.js +32 -9
- package/lib/server/chromium/crBrowser.js +25 -24
- package/lib/server/chromium/crConnection.js +2 -2
- package/lib/server/chromium/crCoverage.js +1 -1
- package/lib/server/chromium/crDevTools.js +1 -1
- package/lib/server/chromium/crDragDrop.js +1 -1
- package/lib/server/chromium/crExecutionContext.js +26 -35
- package/lib/server/chromium/crInput.js +17 -6
- package/lib/server/chromium/crNetworkManager.js +3 -3
- package/lib/server/chromium/crPage.js +43 -55
- package/lib/server/chromium/crPdf.js +1 -1
- package/lib/server/chromium/crProtocolHelper.js +3 -3
- package/lib/server/chromium/crServiceWorker.js +2 -2
- package/lib/server/chromium/videoRecorder.js +2 -2
- package/lib/server/clock.js +1 -1
- package/lib/server/codegen/csharp.js +21 -16
- package/lib/server/codegen/java.js +17 -9
- package/lib/server/codegen/javascript.js +37 -7
- package/lib/server/codegen/jsonl.js +1 -1
- package/lib/server/codegen/languages.js +2 -2
- package/lib/server/codegen/python.js +14 -17
- package/lib/server/debugController.js +23 -45
- package/lib/server/debugger.js +1 -1
- package/lib/server/deviceDescriptors.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dispatchers/androidDispatcher.js +14 -3
- package/lib/server/dispatchers/artifactDispatcher.js +3 -3
- package/lib/server/dispatchers/browserContextDispatcher.js +21 -32
- package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
- package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
- package/lib/server/dispatchers/debugControllerDispatcher.js +5 -3
- package/lib/server/dispatchers/dispatcher.js +27 -25
- package/lib/server/dispatchers/electronDispatcher.js +3 -3
- package/lib/server/dispatchers/elementHandlerDispatcher.js +7 -2
- package/lib/server/dispatchers/frameDispatcher.js +9 -3
- package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +25 -291
- package/lib/server/dispatchers/networkDispatchers.js +3 -3
- package/lib/server/dispatchers/pageDispatcher.js +10 -8
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/streamDispatcher.js +4 -3
- package/lib/server/dispatchers/tracingDispatcher.js +10 -0
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +18 -18
- package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
- package/lib/server/dom.js +102 -48
- package/lib/server/download.js +1 -1
- package/lib/server/electron/electron.js +17 -16
- package/lib/server/errors.js +1 -1
- package/lib/server/fetch.js +49 -33
- package/lib/server/fileUploadUtils.js +7 -4
- package/lib/server/firefox/ffBrowser.js +17 -9
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +25 -29
- package/lib/server/firefox/ffInput.js +15 -4
- package/lib/server/firefox/ffNetworkManager.js +3 -3
- package/lib/server/firefox/ffPage.js +29 -50
- package/lib/server/firefox/firefox.js +7 -9
- package/lib/server/frameSelectors.js +1 -1
- package/lib/server/frames.js +65 -55
- package/lib/server/har/harRecorder.js +4 -4
- package/lib/server/har/harTracer.js +8 -9
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +2 -2
- package/lib/server/index.js +1 -14
- package/lib/server/input.js +3 -4
- package/lib/server/instrumentation.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
- package/lib/server/javascript.js +26 -33
- package/lib/server/launchApp.js +7 -7
- package/lib/server/localUtils.js +203 -0
- package/lib/server/network.js +5 -5
- package/lib/server/page.js +76 -37
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +5 -5
- package/lib/server/progress.js +1 -4
- package/lib/server/protocolError.js +1 -1
- package/lib/server/recorder/chat.js +177 -0
- package/lib/server/recorder/codeGenerator.js +154 -0
- package/lib/server/recorder/contextRecorder.js +9 -18
- package/lib/server/recorder/csharp.js +311 -0
- package/lib/server/recorder/java.js +249 -0
- package/lib/server/recorder/javascript.js +230 -0
- package/lib/server/recorder/jsonl.js +48 -0
- package/lib/server/recorder/language.js +45 -0
- package/lib/server/recorder/python.js +276 -0
- package/lib/server/recorder/recorderActions.js +6 -0
- package/lib/server/recorder/recorderApp.js +25 -28
- package/lib/server/recorder/recorderCollection.js +9 -21
- package/lib/server/recorder/recorderInTraceViewer.js +1 -1
- package/lib/server/recorder/recorderRunner.js +7 -3
- package/lib/server/recorder/recorderUtils.js +5 -28
- package/lib/server/recorder/throttledFile.js +3 -4
- package/lib/server/recorder/utils.js +46 -0
- package/lib/server/recorder.js +83 -43
- package/lib/server/registry/browserFetcher.js +10 -8
- package/lib/server/registry/dependencies.js +20 -20
- package/lib/server/registry/index.js +215 -61
- package/lib/server/registry/nativeDeps.js +10 -4
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -3
- package/lib/server/screenshotter.js +1 -1
- package/lib/server/selectors.js +3 -3
- package/lib/server/socksClientCertificatesInterceptor.js +8 -8
- package/lib/server/socksInterceptor.js +8 -5
- package/lib/server/storageScript.js +160 -0
- package/lib/server/timeoutSettings.js +74 -0
- package/lib/server/trace/recorder/snapshotter.js +10 -20
- package/lib/server/trace/recorder/snapshotterInjected.js +26 -1
- package/lib/server/trace/recorder/tracing.js +108 -45
- package/lib/server/trace/test/inMemorySnapshotter.js +6 -6
- package/lib/server/trace/viewer/traceViewer.js +21 -7
- package/lib/server/transport.js +3 -2
- package/lib/server/utils/ascii.js +31 -0
- package/lib/server/utils/comparators.js +159 -0
- package/lib/server/utils/crypto.js +171 -0
- package/lib/server/utils/debug.js +38 -0
- package/lib/server/utils/debugLogger.js +93 -0
- package/lib/server/utils/env.js +53 -0
- package/lib/server/utils/eventsHelper.js +38 -0
- package/lib/server/utils/expectUtils.js +33 -0
- package/lib/server/utils/fileUtils.js +204 -0
- package/lib/server/utils/happyEyeballs.js +207 -0
- package/lib/server/utils/hostPlatform.js +145 -0
- package/lib/server/utils/httpServer.js +233 -0
- package/lib/server/utils/image_tools/colorUtils.js +98 -0
- package/lib/server/utils/image_tools/compare.js +108 -0
- package/lib/server/utils/image_tools/imageChannel.js +70 -0
- package/lib/server/utils/image_tools/stats.js +102 -0
- package/lib/server/utils/linuxUtils.js +58 -0
- package/lib/server/utils/network.js +160 -0
- package/lib/server/utils/nodePlatform.js +140 -0
- package/lib/server/utils/pipeTransport.js +82 -0
- package/lib/server/utils/processLauncher.js +248 -0
- package/lib/server/utils/profiler.js +52 -0
- package/lib/server/utils/socksProxy.js +570 -0
- package/lib/server/utils/spawnAsync.js +45 -0
- package/lib/server/utils/task.js +58 -0
- package/lib/server/utils/userAgent.js +91 -0
- package/lib/server/utils/wsServer.js +128 -0
- package/lib/server/utils/zipFile.js +75 -0
- package/lib/server/utils/zones.js +54 -0
- package/lib/server/webkit/webkit.js +4 -4
- package/lib/server/webkit/wkBrowser.js +10 -10
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +26 -30
- package/lib/server/webkit/wkInput.js +17 -7
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +80 -66
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +2 -2
- package/lib/utils/fileUtils.js +1 -1
- package/lib/utils/glob.js +84 -0
- package/lib/utils/isomorphic/ariaSnapshot.js +392 -0
- package/lib/utils/isomorphic/assert.js +25 -0
- package/lib/utils/isomorphic/colors.js +65 -0
- package/lib/utils/isomorphic/cssParser.js +5 -5
- package/lib/utils/isomorphic/headers.js +52 -0
- package/lib/utils/isomorphic/locatorGenerators.js +38 -8
- package/lib/utils/isomorphic/locatorParser.js +19 -13
- package/lib/utils/isomorphic/manualPromise.js +107 -0
- package/lib/utils/isomorphic/mimeType.js +11 -3
- package/lib/utils/isomorphic/multimap.js +73 -0
- package/lib/utils/isomorphic/rtti.js +41 -0
- package/lib/utils/isomorphic/semaphore.js +51 -0
- package/lib/utils/isomorphic/stackTrace.js +169 -0
- package/lib/utils/isomorphic/stringUtils.js +31 -1
- package/lib/utils/isomorphic/time.js +25 -0
- package/lib/utils/isomorphic/timeoutRunner.js +66 -0
- package/lib/utils/isomorphic/traceUtils.js +23 -0
- package/lib/utils/isomorphic/types.js +5 -0
- package/lib/utils/isomorphic/urlMatch.js +7 -5
- package/lib/utils/mimeType.js +30 -0
- package/lib/utils/stackTrace.js +1 -1
- package/lib/utils.js +447 -0
- package/lib/utilsBundle.js +4 -29
- package/lib/utilsBundleImpl/index.js +188 -33
- package/lib/vite/htmlReport/index.html +20 -17
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
- package/lib/vite/recorder/assets/{index-BW-aOBcL.css → index-eHBmevrY.css} +1 -1
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-gU1OOCQO.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-B5n_FjMx.js +1 -0
- package/lib/vite/traceViewer/assets/inspectorTab-6Tru8Mn_.js +235 -0
- package/lib/vite/traceViewer/assets/workbench-B_Nj4NA2.js +25 -0
- package/lib/vite/traceViewer/assets/{xtermModule-BeNbaIVa.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.CO3FR0CX.css +1 -0
- package/lib/vite/traceViewer/{embedded.BkvOrz5Z.js → embedded.DpNPH6mk.js} +2 -2
- package/lib/vite/traceViewer/embedded.html +6 -6
- package/lib/vite/traceViewer/index.CuE3SYGw.js +2 -0
- package/lib/vite/traceViewer/index.html +27 -9
- package/lib/vite/traceViewer/inspectorTab.CXDulcFG.css +1 -0
- package/lib/vite/traceViewer/{recorder.DNMfnSiu.js → recorder.BD-uZJs7.js} +2 -2
- package/lib/vite/traceViewer/recorder.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/{uiMode.CAYqod-m.css → uiMode.BatfzHMG.css} +1 -1
- package/lib/vite/traceViewer/uiMode.DHrNgddz.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +8 -7
- package/lib/vite/traceViewer/workbench.B9vIAzH9.css +1 -0
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +820 -153
- package/types/types.d.ts +285 -82
- package/bin/PrintDeps.exe +0 -0
- package/bin/README.md +0 -2
- package/lib/vite/recorder/assets/codeMirrorModule-d0KhC1qL.js +0 -24
- package/lib/vite/recorder/assets/index-Bxxcmxlu.js +0 -42
- package/lib/vite/traceViewer/assets/codeMirrorModule-pBPtArIT.js +0 -24
- package/lib/vite/traceViewer/assets/codeMirrorModule-tzBrK1V4.js +0 -24
- package/lib/vite/traceViewer/assets/inspectorTab-BuJ3wAX_.js +0 -64
- package/lib/vite/traceViewer/assets/inspectorTab-Soeeuvzv.js +0 -64
- package/lib/vite/traceViewer/assets/testServerConnection-DeE2kSzz.js +0 -1
- package/lib/vite/traceViewer/assets/workbench-DdmJ9AJV.js +0 -9
- package/lib/vite/traceViewer/assets/workbench-lypYlf00.js +0 -9
- package/lib/vite/traceViewer/embedded.DInvAijy.js +0 -2
- package/lib/vite/traceViewer/index.Dha3cgqs.js +0 -2
- package/lib/vite/traceViewer/index._Iolt-uE.js +0 -2
- package/lib/vite/traceViewer/inspectorTab.DLjBDrQR.css +0 -1
- package/lib/vite/traceViewer/recorder.DTSaNaly.js +0 -2
- package/lib/vite/traceViewer/uiMode.BM7yhjzl.js +0 -5
- package/lib/vite/traceViewer/uiMode.Cr1tvTWS.js +0 -5
- package/lib/vite/traceViewer/workbench.DlsCx8k5.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/{embedded.w7WN2u1R.css → embedded.mLhjB5IF.css} +0 -0
- /package/lib/vite/traceViewer/{index.CrbWWHbf.css → index.CFOW-Ezb.css} +0 -0
- /package/lib/vite/traceViewer/{recorder.B_SY1GJM.css → recorder.tn0RQdqM.css} +0 -0
- /package/lib/vite/traceViewer/{xtermModule.DSXBckUd.css → xtermModule.Beg8tuEN.css} +0 -0
package/lib/server/dom.js
CHANGED
|
@@ -7,17 +7,18 @@ exports.NonRecoverableDOMError = exports.FrameExecutionContext = exports.Element
|
|
|
7
7
|
exports.assertDone = assertDone;
|
|
8
8
|
exports.isNonRecoverableDOMError = isNonRecoverableDOMError;
|
|
9
9
|
exports.kUnableToAdoptErrorMessage = void 0;
|
|
10
|
+
exports.throwElementIsNotAttached = throwElementIsNotAttached;
|
|
10
11
|
exports.throwRetargetableDOMError = throwRetargetableDOMError;
|
|
11
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
12
|
-
var injectedScriptSource = _interopRequireWildcard(require("../generated/injectedScriptSource"));
|
|
13
|
-
var _protocolError = require("./protocolError");
|
|
14
13
|
var js = _interopRequireWildcard(require("./javascript"));
|
|
15
14
|
var _progress = require("./progress");
|
|
16
15
|
var _utils = require("../utils");
|
|
17
16
|
var _fileUploadUtils = require("./fileUploadUtils");
|
|
17
|
+
var _protocolError = require("./protocolError");
|
|
18
|
+
var injectedScriptSource = _interopRequireWildcard(require("../generated/injectedScriptSource"));
|
|
18
19
|
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); }
|
|
19
|
-
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 &&
|
|
20
|
-
function _interopRequireDefault(
|
|
20
|
+
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; }
|
|
21
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
22
|
/**
|
|
22
23
|
* Copyright (c) Microsoft Corporation.
|
|
23
24
|
*
|
|
@@ -70,10 +71,6 @@ class FrameExecutionContext extends js.ExecutionContext {
|
|
|
70
71
|
returnByValue: false
|
|
71
72
|
}, arg);
|
|
72
73
|
}
|
|
73
|
-
createHandle(remoteObject) {
|
|
74
|
-
if (this.frame._page._delegate.isElementHandle(remoteObject)) return new ElementHandle(this, remoteObject.objectId);
|
|
75
|
-
return super.createHandle(remoteObject);
|
|
76
|
-
}
|
|
77
74
|
injectedScript() {
|
|
78
75
|
if (!this._injectedScriptPromise) {
|
|
79
76
|
const custom = [];
|
|
@@ -97,7 +94,10 @@ class FrameExecutionContext extends js.ExecutionContext {
|
|
|
97
94
|
);
|
|
98
95
|
})();
|
|
99
96
|
`;
|
|
100
|
-
this._injectedScriptPromise = this.rawEvaluateHandle(source).then(
|
|
97
|
+
this._injectedScriptPromise = this.rawEvaluateHandle(source).then(handle => {
|
|
98
|
+
handle._setPreview('InjectedScript');
|
|
99
|
+
return handle;
|
|
100
|
+
});
|
|
101
101
|
}
|
|
102
102
|
return this._injectedScriptPromise;
|
|
103
103
|
}
|
|
@@ -157,6 +157,13 @@ class ElementHandle extends js.JSHandle {
|
|
|
157
157
|
if (!isFrameElement) return null;
|
|
158
158
|
return this._page._delegate.getContentFrame(this);
|
|
159
159
|
}
|
|
160
|
+
async generateLocatorString() {
|
|
161
|
+
const selector = await this.evaluateInUtility(async ([injected, node]) => {
|
|
162
|
+
return injected.generateSelectorSimple(node);
|
|
163
|
+
}, {});
|
|
164
|
+
if (selector === 'error:notconnected') return;
|
|
165
|
+
return (0, _utils.asLocator)('javascript', selector);
|
|
166
|
+
}
|
|
160
167
|
async getAttribute(metadata, name) {
|
|
161
168
|
return this._frame.getAttribute(metadata, ':scope', name, {}, this);
|
|
162
169
|
}
|
|
@@ -225,17 +232,21 @@ class ElementHandle extends js.JSHandle {
|
|
|
225
232
|
// Allow 1x1 elements. Compensate for rounding errors by comparing with 0.99 instead.
|
|
226
233
|
const filtered = quads.map(quad => intersectQuadWithViewport(quad)).filter(quad => computeQuadArea(quad) > 0.99);
|
|
227
234
|
if (!filtered.length) return 'error:notinviewport';
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
235
|
+
if (this._page._browserContext._browser.options.name === 'firefox') {
|
|
236
|
+
// Firefox internally uses integer coordinates, so 8.x is converted to 8 or 9 when clicking.
|
|
237
|
+
//
|
|
238
|
+
// This does not work nicely for small elements. For example, 1x1 square with corners
|
|
239
|
+
// (8;8) and (9;9) is targeted when clicking at (8;8) but not when clicking at (9;9).
|
|
240
|
+
// So, clicking at (8.x;8.y) will sometimes click at (9;9) and miss the target.
|
|
241
|
+
//
|
|
242
|
+
// Therefore, we try to find an integer point within a quad to make sure we click inside the element.
|
|
243
|
+
for (const quad of filtered) {
|
|
244
|
+
const integerPoint = findIntegerPointInsideQuad(quad);
|
|
245
|
+
if (integerPoint) return integerPoint;
|
|
246
|
+
}
|
|
236
247
|
}
|
|
237
|
-
|
|
238
|
-
return
|
|
248
|
+
// Return the middle point of the first quad.
|
|
249
|
+
return quadMiddlePoint(filtered[0]);
|
|
239
250
|
}
|
|
240
251
|
async _offsetPoint(offset) {
|
|
241
252
|
const [box, border] = await Promise.all([this.boundingBox(), this.evaluateInUtility(([injected, node]) => injected.getElementBorderWidth(node), {}).catch(e => {})]);
|
|
@@ -253,7 +264,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
253
264
|
const waitTime = [0, 20, 100, 100, 500];
|
|
254
265
|
while (progress.isRunning()) {
|
|
255
266
|
if (retry) {
|
|
256
|
-
progress.log(`retrying ${actionName} action${options.trial ? ' (trial run)' : ''}
|
|
267
|
+
progress.log(`retrying ${actionName} action${options.trial ? ' (trial run)' : ''}`);
|
|
257
268
|
const timeout = waitTime[Math.min(retry - 1, waitTime.length - 1)];
|
|
258
269
|
if (timeout) {
|
|
259
270
|
progress.log(` waiting ${timeout}ms`);
|
|
@@ -263,7 +274,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
263
274
|
} else {
|
|
264
275
|
progress.log(`attempting ${actionName} action${options.trial ? ' (trial run)' : ''}`);
|
|
265
276
|
}
|
|
266
|
-
if (!options.
|
|
277
|
+
if (!options.skipActionPreChecks && !options.force) await this._frame._page.performActionPreChecks(progress);
|
|
267
278
|
const result = await action(retry);
|
|
268
279
|
++retry;
|
|
269
280
|
if (result === 'error:notvisible') {
|
|
@@ -294,7 +305,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
294
305
|
}
|
|
295
306
|
async _retryPointerAction(progress, actionName, waitForEnabled, action, options) {
|
|
296
307
|
// Note: do not perform locator handlers checkpoint to avoid moving the mouse in the middle of a drag operation.
|
|
297
|
-
const
|
|
308
|
+
const skipActionPreChecks = actionName === 'move and up';
|
|
298
309
|
return await this._retryAction(progress, actionName, async retry => {
|
|
299
310
|
// By default, we scroll with protocol method to reveal the action point.
|
|
300
311
|
// However, that might not work to scroll from under position:sticky elements
|
|
@@ -314,7 +325,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
314
325
|
return await this._performPointerAction(progress, actionName, waitForEnabled, action, forceScrollOptions, options);
|
|
315
326
|
}, {
|
|
316
327
|
...options,
|
|
317
|
-
|
|
328
|
+
skipActionPreChecks
|
|
318
329
|
});
|
|
319
330
|
}
|
|
320
331
|
async _performPointerAction(progress, actionName, waitForEnabled, action, forceScrollOptions, options) {
|
|
@@ -367,7 +378,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
367
378
|
if (typeof maybePoint === 'string') return maybePoint;
|
|
368
379
|
const point = roundPoint(maybePoint);
|
|
369
380
|
progress.metadata.point = point;
|
|
370
|
-
await
|
|
381
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
371
382
|
let hitTargetInterceptionHandle;
|
|
372
383
|
if (force) {
|
|
373
384
|
progress.log(` forcing action`);
|
|
@@ -433,9 +444,16 @@ class ElementHandle extends js.JSHandle {
|
|
|
433
444
|
progress.log(' navigations have finished');
|
|
434
445
|
return 'done';
|
|
435
446
|
}
|
|
447
|
+
async _markAsTargetElement(metadata) {
|
|
448
|
+
if (!metadata.id) return;
|
|
449
|
+
await this.evaluateInUtility(([injected, node, callId]) => {
|
|
450
|
+
if (node.nodeType === 1 /* Node.ELEMENT_NODE */) injected.markTargetElements(new Set([node]), callId);
|
|
451
|
+
}, metadata.id);
|
|
452
|
+
}
|
|
436
453
|
async hover(metadata, options) {
|
|
437
454
|
const controller = new _progress.ProgressController(metadata, this);
|
|
438
455
|
return controller.run(async progress => {
|
|
456
|
+
await this._markAsTargetElement(metadata);
|
|
439
457
|
const result = await this._hover(progress, options);
|
|
440
458
|
return assertDone(throwRetargetableDOMError(result));
|
|
441
459
|
}, this._page._timeoutSettings.timeout(options));
|
|
@@ -449,6 +467,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
449
467
|
async click(metadata, options = {}) {
|
|
450
468
|
const controller = new _progress.ProgressController(metadata, this);
|
|
451
469
|
return controller.run(async progress => {
|
|
470
|
+
await this._markAsTargetElement(metadata);
|
|
452
471
|
const result = await this._click(progress, {
|
|
453
472
|
...options,
|
|
454
473
|
waitAfter: !options.noWaitAfter
|
|
@@ -462,6 +481,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
462
481
|
async dblclick(metadata, options) {
|
|
463
482
|
const controller = new _progress.ProgressController(metadata, this);
|
|
464
483
|
return controller.run(async progress => {
|
|
484
|
+
await this._markAsTargetElement(metadata);
|
|
465
485
|
const result = await this._dblclick(progress, options);
|
|
466
486
|
return assertDone(throwRetargetableDOMError(result));
|
|
467
487
|
}, this._page._timeoutSettings.timeout(options));
|
|
@@ -475,6 +495,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
475
495
|
async tap(metadata, options = {}) {
|
|
476
496
|
const controller = new _progress.ProgressController(metadata, this);
|
|
477
497
|
return controller.run(async progress => {
|
|
498
|
+
await this._markAsTargetElement(metadata);
|
|
478
499
|
const result = await this._tap(progress, options);
|
|
479
500
|
return assertDone(throwRetargetableDOMError(result));
|
|
480
501
|
}, this._page._timeoutSettings.timeout(options));
|
|
@@ -488,6 +509,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
488
509
|
async selectOption(metadata, elements, values, options) {
|
|
489
510
|
const controller = new _progress.ProgressController(metadata, this);
|
|
490
511
|
return controller.run(async progress => {
|
|
512
|
+
await this._markAsTargetElement(metadata);
|
|
491
513
|
const result = await this._selectOption(progress, elements, values, options);
|
|
492
514
|
return throwRetargetableDOMError(result);
|
|
493
515
|
}, this._page._timeoutSettings.timeout(options));
|
|
@@ -495,7 +517,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
495
517
|
async _selectOption(progress, elements, values, options) {
|
|
496
518
|
let resultingOptions = [];
|
|
497
519
|
await this._retryAction(progress, 'select option', async () => {
|
|
498
|
-
await
|
|
520
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
499
521
|
if (!options.force) progress.log(` waiting for element to be visible and enabled`);
|
|
500
522
|
const optionsToSelect = [...elements, ...values];
|
|
501
523
|
const result = await this.evaluateInUtility(async ([injected, node, {
|
|
@@ -523,6 +545,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
523
545
|
async fill(metadata, value, options = {}) {
|
|
524
546
|
const controller = new _progress.ProgressController(metadata, this);
|
|
525
547
|
return controller.run(async progress => {
|
|
548
|
+
await this._markAsTargetElement(metadata);
|
|
526
549
|
const result = await this._fill(progress, value, options);
|
|
527
550
|
assertDone(throwRetargetableDOMError(result));
|
|
528
551
|
}, this._page._timeoutSettings.timeout(options));
|
|
@@ -530,7 +553,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
530
553
|
async _fill(progress, value, options) {
|
|
531
554
|
progress.log(` fill("${value}")`);
|
|
532
555
|
return await this._retryAction(progress, 'fill', async () => {
|
|
533
|
-
await
|
|
556
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
534
557
|
if (!options.force) progress.log(' waiting for element to be visible, enabled and editable');
|
|
535
558
|
const result = await this.evaluateInUtility(async ([injected, node, {
|
|
536
559
|
value,
|
|
@@ -578,6 +601,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
578
601
|
const inputFileItems = await (0, _fileUploadUtils.prepareFilesForUpload)(this._frame, params);
|
|
579
602
|
const controller = new _progress.ProgressController(metadata, this);
|
|
580
603
|
return controller.run(async progress => {
|
|
604
|
+
await this._markAsTargetElement(metadata);
|
|
581
605
|
const result = await this._setInputFiles(progress, inputFileItems);
|
|
582
606
|
return assertDone(throwRetargetableDOMError(result));
|
|
583
607
|
}, this._page._timeoutSettings.timeout(params));
|
|
@@ -607,7 +631,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
607
631
|
});
|
|
608
632
|
if (result === 'error:notconnected' || !result.asElement()) return 'error:notconnected';
|
|
609
633
|
const retargeted = result.asElement();
|
|
610
|
-
await
|
|
634
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
611
635
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
|
612
636
|
if (localPaths || localDirectory) {
|
|
613
637
|
const localPathsOrDirectory = localDirectory ? [localDirectory] : localPaths;
|
|
@@ -621,13 +645,14 @@ class ElementHandle extends js.JSHandle {
|
|
|
621
645
|
await this._page._delegate.setInputFilePaths(retargeted, localPathsOrDirectory);
|
|
622
646
|
await waitForInputEvent;
|
|
623
647
|
} else {
|
|
624
|
-
await
|
|
648
|
+
await retargeted.evaluateInUtility(([injected, node, files]) => injected.setInputFiles(node, files), filePayloads);
|
|
625
649
|
}
|
|
626
650
|
return 'done';
|
|
627
651
|
}
|
|
628
652
|
async focus(metadata) {
|
|
629
653
|
const controller = new _progress.ProgressController(metadata, this);
|
|
630
654
|
await controller.run(async progress => {
|
|
655
|
+
await this._markAsTargetElement(metadata);
|
|
631
656
|
const result = await this._focus(progress);
|
|
632
657
|
return assertDone(throwRetargetableDOMError(result));
|
|
633
658
|
}, 0);
|
|
@@ -643,13 +668,14 @@ class ElementHandle extends js.JSHandle {
|
|
|
643
668
|
async type(metadata, text, options) {
|
|
644
669
|
const controller = new _progress.ProgressController(metadata, this);
|
|
645
670
|
return controller.run(async progress => {
|
|
671
|
+
await this._markAsTargetElement(metadata);
|
|
646
672
|
const result = await this._type(progress, text, options);
|
|
647
673
|
return assertDone(throwRetargetableDOMError(result));
|
|
648
674
|
}, this._page._timeoutSettings.timeout(options));
|
|
649
675
|
}
|
|
650
676
|
async _type(progress, text, options) {
|
|
651
677
|
progress.log(`elementHandle.type("${text}")`);
|
|
652
|
-
await
|
|
678
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
653
679
|
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
|
654
680
|
if (result !== 'done') return result;
|
|
655
681
|
progress.throwIfAborted(); // Avoid action that has side-effects.
|
|
@@ -659,13 +685,14 @@ class ElementHandle extends js.JSHandle {
|
|
|
659
685
|
async press(metadata, key, options) {
|
|
660
686
|
const controller = new _progress.ProgressController(metadata, this);
|
|
661
687
|
return controller.run(async progress => {
|
|
688
|
+
await this._markAsTargetElement(metadata);
|
|
662
689
|
const result = await this._press(progress, key, options);
|
|
663
690
|
return assertDone(throwRetargetableDOMError(result));
|
|
664
691
|
}, this._page._timeoutSettings.timeout(options));
|
|
665
692
|
}
|
|
666
693
|
async _press(progress, key, options) {
|
|
667
694
|
progress.log(`elementHandle.press("${key}")`);
|
|
668
|
-
await
|
|
695
|
+
await this.instrumentation.onBeforeInputAction(this, progress.metadata);
|
|
669
696
|
return this._page._frameManager.waitForSignalsCreatedBy(progress, !options.noWaitAfter, async () => {
|
|
670
697
|
const result = await this._focus(progress, true /* resetSelectionIfNotFocused */);
|
|
671
698
|
if (result !== 'done') return result;
|
|
@@ -691,8 +718,10 @@ class ElementHandle extends js.JSHandle {
|
|
|
691
718
|
async _setChecked(progress, state, options) {
|
|
692
719
|
const isChecked = async () => {
|
|
693
720
|
const result = await this.evaluateInUtility(([injected, node]) => injected.elementState(node, 'checked'), {});
|
|
694
|
-
|
|
721
|
+
if (result === 'error:notconnected' || result.received === 'error:notconnected') throwElementIsNotAttached();
|
|
722
|
+
return result.matches;
|
|
695
723
|
};
|
|
724
|
+
await this._markAsTargetElement(progress.metadata);
|
|
696
725
|
if ((await isChecked()) === state) return 'done';
|
|
697
726
|
const result = await this._click(progress, {
|
|
698
727
|
...options,
|
|
@@ -706,6 +735,9 @@ class ElementHandle extends js.JSHandle {
|
|
|
706
735
|
async boundingBox() {
|
|
707
736
|
return this._page._delegate.getBoundingBox(this);
|
|
708
737
|
}
|
|
738
|
+
async ariaSnapshot(options) {
|
|
739
|
+
return await this.evaluateInUtility(([injected, element, options]) => injected.ariaSnapshot(element, options), options);
|
|
740
|
+
}
|
|
709
741
|
async screenshot(metadata, options = {}) {
|
|
710
742
|
const controller = new _progress.ProgressController(metadata, this);
|
|
711
743
|
return controller.run(progress => this._page._screenshotter.screenshotElement(progress, this, options), this._page._timeoutSettings.timeout(options));
|
|
@@ -813,9 +845,12 @@ class ElementHandle extends js.JSHandle {
|
|
|
813
845
|
}
|
|
814
846
|
exports.ElementHandle = ElementHandle;
|
|
815
847
|
function throwRetargetableDOMError(result) {
|
|
816
|
-
if (result === 'error:notconnected')
|
|
848
|
+
if (result === 'error:notconnected') throwElementIsNotAttached();
|
|
817
849
|
return result;
|
|
818
850
|
}
|
|
851
|
+
function throwElementIsNotAttached() {
|
|
852
|
+
throw new Error('Element is not attached to the DOM');
|
|
853
|
+
}
|
|
819
854
|
function assertDone(result) {
|
|
820
855
|
// This function converts 'done' to void and ensures typescript catches unhandled errors.
|
|
821
856
|
}
|
|
@@ -825,21 +860,40 @@ function roundPoint(point) {
|
|
|
825
860
|
y: (point.y * 100 | 0) / 100
|
|
826
861
|
};
|
|
827
862
|
}
|
|
828
|
-
function
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
863
|
+
function quadMiddlePoint(quad) {
|
|
864
|
+
const result = {
|
|
865
|
+
x: 0,
|
|
866
|
+
y: 0
|
|
867
|
+
};
|
|
868
|
+
for (const point of quad) {
|
|
869
|
+
result.x += point.x / 4;
|
|
870
|
+
result.y += point.y / 4;
|
|
871
|
+
}
|
|
872
|
+
return result;
|
|
873
|
+
}
|
|
874
|
+
function triangleArea(p1, p2, p3) {
|
|
875
|
+
return Math.abs(p1.x * (p2.y - p3.y) + p2.x * (p3.y - p1.y) + p3.x * (p1.y - p2.y)) / 2;
|
|
876
|
+
}
|
|
877
|
+
function isPointInsideQuad(point, quad) {
|
|
878
|
+
const area1 = triangleArea(point, quad[0], quad[1]) + triangleArea(point, quad[1], quad[2]) + triangleArea(point, quad[2], quad[3]) + triangleArea(point, quad[3], quad[0]);
|
|
879
|
+
const area2 = triangleArea(quad[0], quad[1], quad[2]) + triangleArea(quad[1], quad[2], quad[3]);
|
|
880
|
+
// Check that point is inside the quad.
|
|
881
|
+
if (Math.abs(area1 - area2) > 0.1) return false;
|
|
882
|
+
// Check that point is not on the right/bottom edge, because clicking
|
|
883
|
+
// there does not actually click the element.
|
|
884
|
+
return point.x < Math.max(quad[0].x, quad[1].x, quad[2].x, quad[3].x) && point.y < Math.max(quad[0].y, quad[1].y, quad[2].y, quad[3].y);
|
|
885
|
+
}
|
|
886
|
+
function findIntegerPointInsideQuad(quad) {
|
|
887
|
+
// Try all four rounding directions of the middle point.
|
|
888
|
+
const point = quadMiddlePoint(quad);
|
|
889
|
+
point.x = Math.floor(point.x);
|
|
890
|
+
point.y = Math.floor(point.y);
|
|
891
|
+
if (isPointInsideQuad(point, quad)) return point;
|
|
892
|
+
point.x += 1;
|
|
893
|
+
if (isPointInsideQuad(point, quad)) return point;
|
|
894
|
+
point.y += 1;
|
|
895
|
+
if (isPointInsideQuad(point, quad)) return point;
|
|
896
|
+
point.x -= 1;
|
|
897
|
+
if (isPointInsideQuad(point, quad)) return point;
|
|
844
898
|
}
|
|
845
899
|
const kUnableToAdoptErrorMessage = exports.kUnableToAdoptErrorMessage = 'Unable to adopt element handle from a different document';
|
package/lib/server/download.js
CHANGED
|
@@ -8,7 +8,7 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
8
8
|
var _page = require("./page");
|
|
9
9
|
var _utils = require("../utils");
|
|
10
10
|
var _artifact = require("./artifact");
|
|
11
|
-
function _interopRequireDefault(
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -7,26 +7,27 @@ exports.ElectronApplication = exports.Electron = void 0;
|
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
8
|
var _os = _interopRequireDefault(require("os"));
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
|
+
var readline = _interopRequireWildcard(require("readline"));
|
|
11
|
+
var _timeoutSettings = require("../timeoutSettings");
|
|
12
|
+
var _utils = require("../../utils");
|
|
13
|
+
var _ascii = require("../utils/ascii");
|
|
14
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
15
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
16
|
+
var _browserContext = require("../browserContext");
|
|
10
17
|
var _crBrowser = require("../chromium/crBrowser");
|
|
11
18
|
var _crConnection = require("../chromium/crConnection");
|
|
12
19
|
var _crExecutionContext = require("../chromium/crExecutionContext");
|
|
13
|
-
var js = _interopRequireWildcard(require("../javascript"));
|
|
14
|
-
var _timeoutSettings = require("../../common/timeoutSettings");
|
|
15
|
-
var _utils = require("../../utils");
|
|
16
|
-
var _transport = require("../transport");
|
|
17
|
-
var _processLauncher = require("../../utils/processLauncher");
|
|
18
|
-
var _browserContext = require("../browserContext");
|
|
19
|
-
var _progress = require("../progress");
|
|
20
|
-
var _helper = require("../helper");
|
|
21
|
-
var _eventsHelper = require("../../utils/eventsHelper");
|
|
22
|
-
var readline = _interopRequireWildcard(require("readline"));
|
|
23
|
-
var _debugLogger = require("../../utils/debugLogger");
|
|
24
|
-
var _instrumentation = require("../instrumentation");
|
|
25
20
|
var _crProtocolHelper = require("../chromium/crProtocolHelper");
|
|
26
21
|
var _console = require("../console");
|
|
22
|
+
var _helper = require("../helper");
|
|
23
|
+
var _instrumentation = require("../instrumentation");
|
|
24
|
+
var js = _interopRequireWildcard(require("../javascript"));
|
|
25
|
+
var _processLauncher = require("../utils/processLauncher");
|
|
26
|
+
var _progress = require("../progress");
|
|
27
|
+
var _transport = require("../transport");
|
|
27
28
|
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); }
|
|
28
|
-
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 &&
|
|
29
|
-
function _interopRequireDefault(
|
|
29
|
+
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; }
|
|
30
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
30
31
|
/**
|
|
31
32
|
* Copyright (c) Microsoft Corporation.
|
|
32
33
|
*
|
|
@@ -102,7 +103,7 @@ class ElectronApplication extends _instrumentation.SdkObject {
|
|
|
102
103
|
return;
|
|
103
104
|
}
|
|
104
105
|
if (!this._nodeExecutionContext) return;
|
|
105
|
-
const args = event.args.map(arg => this._nodeExecutionContext
|
|
106
|
+
const args = event.args.map(arg => (0, _crExecutionContext.createHandle)(this._nodeExecutionContext, arg));
|
|
106
107
|
const message = new _console.ConsoleMessage(null, event.type, undefined, args, (0, _crProtocolHelper.toConsoleMessageLocation)(event.stackTrace));
|
|
107
108
|
this.emit(ElectronApplication.Events.Console, message);
|
|
108
109
|
}
|
|
@@ -174,7 +175,7 @@ class Electron extends _instrumentation.SdkObject {
|
|
|
174
175
|
command = require('electron/index.js');
|
|
175
176
|
} catch (error) {
|
|
176
177
|
if ((error === null || error === void 0 ? void 0 : error.code) === 'MODULE_NOT_FOUND') {
|
|
177
|
-
throw new Error('\n' + (0,
|
|
178
|
+
throw new Error('\n' + (0, _ascii.wrapInASCIIBox)(['Electron executablePath not found!', 'Please install it using `npm install -D electron` or set the executablePath to your Electron executable.'].join('\n'), 1));
|
|
178
179
|
}
|
|
179
180
|
throw error;
|
|
180
181
|
}
|
package/lib/server/errors.js
CHANGED
|
@@ -7,8 +7,8 @@ exports.TimeoutError = exports.TargetClosedError = void 0;
|
|
|
7
7
|
exports.isTargetClosedError = isTargetClosedError;
|
|
8
8
|
exports.parseError = parseError;
|
|
9
9
|
exports.serializeError = serializeError;
|
|
10
|
-
var _utils = require("../utils");
|
|
11
10
|
var _serializers = require("../protocol/serializers");
|
|
11
|
+
var _utils = require("../utils");
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|