@checkly/playwright-core 1.48.22 → 1.51.11-beta.2
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 +7888 -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
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.addStackToTracingNoReply = addStackToTracingNoReply;
|
|
7
|
+
exports.harClose = harClose;
|
|
8
|
+
exports.harLookup = harLookup;
|
|
9
|
+
exports.harOpen = harOpen;
|
|
10
|
+
exports.harUnzip = harUnzip;
|
|
11
|
+
exports.traceDiscarded = traceDiscarded;
|
|
12
|
+
exports.tracingStarted = tracingStarted;
|
|
13
|
+
exports.zip = zip;
|
|
14
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
15
|
+
var _os = _interopRequireDefault(require("os"));
|
|
16
|
+
var _path = _interopRequireDefault(require("path"));
|
|
17
|
+
var _crypto = require("./utils/crypto");
|
|
18
|
+
var _harBackend = require("./harBackend");
|
|
19
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
20
|
+
var _zipFile = require("./utils/zipFile");
|
|
21
|
+
var _zipBundle = require("../zipBundle");
|
|
22
|
+
var _traceUtils = require("../utils/isomorphic/traceUtils");
|
|
23
|
+
var _assert = require("../utils/isomorphic/assert");
|
|
24
|
+
var _fileUtils = require("./utils/fileUtils");
|
|
25
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
|
+
/**
|
|
27
|
+
* Copyright (c) Microsoft Corporation.
|
|
28
|
+
*
|
|
29
|
+
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
30
|
+
* you may not use this file except in compliance with the License.
|
|
31
|
+
* You may obtain a copy of the License at
|
|
32
|
+
*
|
|
33
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
34
|
+
*
|
|
35
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
36
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
37
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
38
|
+
* See the License for the specific language governing permissions and
|
|
39
|
+
* limitations under the License.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
async function zip(stackSessions, params) {
|
|
43
|
+
const promise = new _manualPromise.ManualPromise();
|
|
44
|
+
const zipFile = new _zipBundle.yazl.ZipFile();
|
|
45
|
+
zipFile.on('error', error => promise.reject(error));
|
|
46
|
+
const addFile = (file, name) => {
|
|
47
|
+
try {
|
|
48
|
+
if (_fs.default.statSync(file).isFile()) zipFile.addFile(file, name);
|
|
49
|
+
} catch (e) {}
|
|
50
|
+
};
|
|
51
|
+
for (const entry of params.entries) addFile(entry.value, entry.name);
|
|
52
|
+
|
|
53
|
+
// Add stacks and the sources.
|
|
54
|
+
const stackSession = params.stacksId ? stackSessions.get(params.stacksId) : undefined;
|
|
55
|
+
if (stackSession !== null && stackSession !== void 0 && stackSession.callStacks.length) {
|
|
56
|
+
await stackSession.writer;
|
|
57
|
+
if (process.env.PW_LIVE_TRACE_STACKS) {
|
|
58
|
+
zipFile.addFile(stackSession.file, 'trace.stacks');
|
|
59
|
+
} else {
|
|
60
|
+
const buffer = Buffer.from(JSON.stringify((0, _traceUtils.serializeClientSideCallMetadata)(stackSession.callStacks)));
|
|
61
|
+
zipFile.addBuffer(buffer, 'trace.stacks');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Collect sources from stacks.
|
|
66
|
+
if (params.includeSources) {
|
|
67
|
+
const sourceFiles = new Set();
|
|
68
|
+
for (const {
|
|
69
|
+
stack
|
|
70
|
+
} of (stackSession === null || stackSession === void 0 ? void 0 : stackSession.callStacks) || []) {
|
|
71
|
+
if (!stack) continue;
|
|
72
|
+
for (const {
|
|
73
|
+
file
|
|
74
|
+
} of stack) sourceFiles.add(file);
|
|
75
|
+
}
|
|
76
|
+
for (const sourceFile of sourceFiles) addFile(sourceFile, 'resources/src@' + (await (0, _crypto.calculateSha1)(sourceFile)) + '.txt');
|
|
77
|
+
}
|
|
78
|
+
if (params.mode === 'write') {
|
|
79
|
+
// New file, just compress the entries.
|
|
80
|
+
await _fs.default.promises.mkdir(_path.default.dirname(params.zipFile), {
|
|
81
|
+
recursive: true
|
|
82
|
+
});
|
|
83
|
+
zipFile.end(undefined, () => {
|
|
84
|
+
zipFile.outputStream.pipe(_fs.default.createWriteStream(params.zipFile)).on('close', () => promise.resolve()).on('error', error => promise.reject(error));
|
|
85
|
+
});
|
|
86
|
+
await promise;
|
|
87
|
+
await deleteStackSession(stackSessions, params.stacksId);
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// File already exists. Repack and add new entries.
|
|
92
|
+
const tempFile = params.zipFile + '.tmp';
|
|
93
|
+
await _fs.default.promises.rename(params.zipFile, tempFile);
|
|
94
|
+
_zipBundle.yauzl.open(tempFile, (err, inZipFile) => {
|
|
95
|
+
if (err) {
|
|
96
|
+
promise.reject(err);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
(0, _assert.assert)(inZipFile);
|
|
100
|
+
let pendingEntries = inZipFile.entryCount;
|
|
101
|
+
inZipFile.on('entry', entry => {
|
|
102
|
+
inZipFile.openReadStream(entry, (err, readStream) => {
|
|
103
|
+
if (err) {
|
|
104
|
+
promise.reject(err);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
zipFile.addReadStream(readStream, entry.fileName);
|
|
108
|
+
if (--pendingEntries === 0) {
|
|
109
|
+
zipFile.end(undefined, () => {
|
|
110
|
+
zipFile.outputStream.pipe(_fs.default.createWriteStream(params.zipFile)).on('close', () => {
|
|
111
|
+
_fs.default.promises.unlink(tempFile).then(() => {
|
|
112
|
+
promise.resolve();
|
|
113
|
+
}).catch(error => promise.reject(error));
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
await promise;
|
|
121
|
+
await deleteStackSession(stackSessions, params.stacksId);
|
|
122
|
+
}
|
|
123
|
+
async function deleteStackSession(stackSessions, stacksId) {
|
|
124
|
+
const session = stacksId ? stackSessions.get(stacksId) : undefined;
|
|
125
|
+
if (!session) return;
|
|
126
|
+
await session.writer;
|
|
127
|
+
if (session.tmpDir) await (0, _fileUtils.removeFolders)([session.tmpDir]);
|
|
128
|
+
stackSessions.delete(stacksId);
|
|
129
|
+
}
|
|
130
|
+
async function harOpen(harBackends, params) {
|
|
131
|
+
let harBackend;
|
|
132
|
+
if (params.file.endsWith('.zip')) {
|
|
133
|
+
const zipFile = new _zipFile.ZipFile(params.file);
|
|
134
|
+
const entryNames = await zipFile.entries();
|
|
135
|
+
const harEntryName = entryNames.find(e => e.endsWith('.har'));
|
|
136
|
+
if (!harEntryName) return {
|
|
137
|
+
error: 'Specified archive does not have a .har file'
|
|
138
|
+
};
|
|
139
|
+
const har = await zipFile.read(harEntryName);
|
|
140
|
+
const harFile = JSON.parse(har.toString());
|
|
141
|
+
harBackend = new _harBackend.HarBackend(harFile, null, zipFile);
|
|
142
|
+
} else {
|
|
143
|
+
const harFile = JSON.parse(await _fs.default.promises.readFile(params.file, 'utf-8'));
|
|
144
|
+
harBackend = new _harBackend.HarBackend(harFile, _path.default.dirname(params.file), null);
|
|
145
|
+
}
|
|
146
|
+
harBackends.set(harBackend.id, harBackend);
|
|
147
|
+
return {
|
|
148
|
+
harId: harBackend.id
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
async function harLookup(harBackends, params) {
|
|
152
|
+
const harBackend = harBackends.get(params.harId);
|
|
153
|
+
if (!harBackend) return {
|
|
154
|
+
action: 'error',
|
|
155
|
+
message: `Internal error: har was not opened`
|
|
156
|
+
};
|
|
157
|
+
return await harBackend.lookup(params.url, params.method, params.headers, params.postData, params.isNavigationRequest);
|
|
158
|
+
}
|
|
159
|
+
async function harClose(harBackends, params) {
|
|
160
|
+
const harBackend = harBackends.get(params.harId);
|
|
161
|
+
if (harBackend) {
|
|
162
|
+
harBackends.delete(harBackend.id);
|
|
163
|
+
harBackend.dispose();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
async function harUnzip(params) {
|
|
167
|
+
const dir = _path.default.dirname(params.zipFile);
|
|
168
|
+
const zipFile = new _zipFile.ZipFile(params.zipFile);
|
|
169
|
+
for (const entry of await zipFile.entries()) {
|
|
170
|
+
const buffer = await zipFile.read(entry);
|
|
171
|
+
if (entry === 'har.har') await _fs.default.promises.writeFile(params.harFile, buffer);else await _fs.default.promises.writeFile(_path.default.join(dir, entry), buffer);
|
|
172
|
+
}
|
|
173
|
+
zipFile.close();
|
|
174
|
+
await _fs.default.promises.unlink(params.zipFile);
|
|
175
|
+
}
|
|
176
|
+
async function tracingStarted(stackSessions, params) {
|
|
177
|
+
let tmpDir = undefined;
|
|
178
|
+
if (!params.tracesDir) tmpDir = await _fs.default.promises.mkdtemp(_path.default.join(_os.default.tmpdir(), 'playwright-tracing-'));
|
|
179
|
+
const traceStacksFile = _path.default.join(params.tracesDir || tmpDir, params.traceName + '.stacks');
|
|
180
|
+
stackSessions.set(traceStacksFile, {
|
|
181
|
+
callStacks: [],
|
|
182
|
+
file: traceStacksFile,
|
|
183
|
+
writer: Promise.resolve(),
|
|
184
|
+
tmpDir
|
|
185
|
+
});
|
|
186
|
+
return {
|
|
187
|
+
stacksId: traceStacksFile
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
async function traceDiscarded(stackSessions, params) {
|
|
191
|
+
await deleteStackSession(stackSessions, params.stacksId);
|
|
192
|
+
}
|
|
193
|
+
async function addStackToTracingNoReply(stackSessions, params) {
|
|
194
|
+
for (const session of stackSessions.values()) {
|
|
195
|
+
session.callStacks.push(params.callData);
|
|
196
|
+
if (process.env.PW_LIVE_TRACE_STACKS) {
|
|
197
|
+
session.writer = session.writer.then(() => {
|
|
198
|
+
const buffer = Buffer.from(JSON.stringify((0, _traceUtils.serializeClientSideCallMetadata)(session.callStacks)));
|
|
199
|
+
return _fs.default.promises.writeFile(session.file, buffer);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
package/lib/server/network.js
CHANGED
|
@@ -7,16 +7,16 @@ exports.WebSocket = exports.Route = exports.Response = exports.Request = void 0;
|
|
|
7
7
|
exports.filterCookies = filterCookies;
|
|
8
8
|
exports.kMaxCookieExpiresDateInSeconds = void 0;
|
|
9
9
|
exports.mergeHeaders = mergeHeaders;
|
|
10
|
-
exports.
|
|
10
|
+
exports.parseURL = parseURL;
|
|
11
11
|
exports.rewriteCookies = rewriteCookies;
|
|
12
12
|
exports.singleHeader = singleHeader;
|
|
13
13
|
exports.statusText = statusText;
|
|
14
14
|
exports.stripFragmentFromUrl = stripFragmentFromUrl;
|
|
15
15
|
var _utils = require("../utils");
|
|
16
|
-
var _manualPromise = require("../utils/manualPromise");
|
|
17
|
-
var _instrumentation = require("./instrumentation");
|
|
18
|
-
var _fetch = require("./fetch");
|
|
19
16
|
var _browserContext = require("./browserContext");
|
|
17
|
+
var _fetch = require("./fetch");
|
|
18
|
+
var _instrumentation = require("./instrumentation");
|
|
19
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
20
20
|
/**
|
|
21
21
|
* Copyright (c) Microsoft Corporation.
|
|
22
22
|
*
|
|
@@ -75,7 +75,7 @@ function rewriteCookies(cookies) {
|
|
|
75
75
|
return copy;
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
function
|
|
78
|
+
function parseURL(url) {
|
|
79
79
|
try {
|
|
80
80
|
return new URL(url);
|
|
81
81
|
} catch (e) {
|
package/lib/server/page.js
CHANGED
|
@@ -4,26 +4,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Worker = exports.PageBinding = exports.Page = exports.InitScript = void 0;
|
|
7
|
-
var
|
|
8
|
-
var input = _interopRequireWildcard(require("./input"));
|
|
9
|
-
var js = _interopRequireWildcard(require("./javascript"));
|
|
10
|
-
var _screenshotter = require("./screenshotter");
|
|
11
|
-
var _timeoutSettings = require("../common/timeoutSettings");
|
|
7
|
+
var accessibility = _interopRequireWildcard(require("./accessibility"));
|
|
12
8
|
var _browserContext = require("./browserContext");
|
|
13
9
|
var _console = require("./console");
|
|
14
|
-
var
|
|
10
|
+
var _errors = require("./errors");
|
|
15
11
|
var _fileChooser = require("./fileChooser");
|
|
12
|
+
var frames = _interopRequireWildcard(require("./frames"));
|
|
13
|
+
var _helper = require("./helper");
|
|
14
|
+
var input = _interopRequireWildcard(require("./input"));
|
|
15
|
+
var _instrumentation = require("./instrumentation");
|
|
16
|
+
var _utilityScriptSerializers = require("./isomorphic/utilityScriptSerializers");
|
|
17
|
+
var js = _interopRequireWildcard(require("./javascript"));
|
|
16
18
|
var _progress = require("./progress");
|
|
19
|
+
var _screenshotter = require("./screenshotter");
|
|
20
|
+
var _timeoutSettings = require("./timeoutSettings");
|
|
17
21
|
var _utils = require("../utils");
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var _instrumentation = require("./instrumentation");
|
|
22
|
+
var _crypto = require("./utils/crypto");
|
|
23
|
+
var _comparators = require("./utils/comparators");
|
|
24
|
+
var _debugLogger = require("./utils/debugLogger");
|
|
22
25
|
var _selectorParser = require("../utils/isomorphic/selectorParser");
|
|
23
|
-
var
|
|
24
|
-
var
|
|
26
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
27
|
+
var _callLog = require("./callLog");
|
|
25
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); }
|
|
26
|
-
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 _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; }
|
|
27
30
|
/**
|
|
28
31
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
29
32
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -46,7 +49,8 @@ class Page extends _instrumentation.SdkObject {
|
|
|
46
49
|
super(browserContext, 'page');
|
|
47
50
|
this._closedState = 'open';
|
|
48
51
|
this._closedPromise = new _manualPromise.ManualPromise();
|
|
49
|
-
this._initialized =
|
|
52
|
+
this._initialized = void 0;
|
|
53
|
+
this._initializedPromise = new _manualPromise.ManualPromise();
|
|
50
54
|
this._eventsToEmitAfterInitialized = [];
|
|
51
55
|
this._crashed = false;
|
|
52
56
|
this.openScope = new _utils.LongStandingScope();
|
|
@@ -71,7 +75,6 @@ class Page extends _instrumentation.SdkObject {
|
|
|
71
75
|
this._clientRequestInterceptor = void 0;
|
|
72
76
|
this._serverRequestInterceptor = void 0;
|
|
73
77
|
this._ownedContext = void 0;
|
|
74
|
-
this._pageIsError = void 0;
|
|
75
78
|
this._video = null;
|
|
76
79
|
this._opener = void 0;
|
|
77
80
|
this._isServerSideOnly = false;
|
|
@@ -95,19 +98,21 @@ class Page extends _instrumentation.SdkObject {
|
|
|
95
98
|
if (delegate.pdf) this.pdf = delegate.pdf.bind(delegate);
|
|
96
99
|
this.coverage = delegate.coverage ? delegate.coverage() : null;
|
|
97
100
|
}
|
|
98
|
-
async
|
|
99
|
-
if (
|
|
100
|
-
|
|
101
|
-
|
|
101
|
+
async reportAsNew(opener, error = undefined, contextEvent = _browserContext.BrowserContext.Events.Page) {
|
|
102
|
+
if (opener) {
|
|
103
|
+
const openerPageOrError = await opener.waitForInitializedOrError();
|
|
104
|
+
if (openerPageOrError instanceof Page && !openerPageOrError.isClosed()) this._opener = openerPageOrError;
|
|
105
|
+
}
|
|
106
|
+
this._markInitialized(error, contextEvent);
|
|
102
107
|
}
|
|
103
|
-
|
|
108
|
+
_markInitialized(error = undefined, contextEvent = _browserContext.BrowserContext.Events.Page) {
|
|
104
109
|
if (error) {
|
|
105
110
|
// Initialization error could have happened because of
|
|
106
111
|
// context/browser closure. Just ignore the page.
|
|
107
112
|
if (this._browserContext.isClosingOrClosed()) return;
|
|
108
|
-
this.
|
|
113
|
+
this._frameManager.createDummyMainFrameIfNeeded();
|
|
109
114
|
}
|
|
110
|
-
this._initialized =
|
|
115
|
+
this._initialized = error || this;
|
|
111
116
|
this.emitOnContext(contextEvent, this);
|
|
112
117
|
for (const {
|
|
113
118
|
event,
|
|
@@ -119,10 +124,17 @@ class Page extends _instrumentation.SdkObject {
|
|
|
119
124
|
// in that case we fire another Close event to ensure that each reported Page will have
|
|
120
125
|
// corresponding Close event after it is reported on the context.
|
|
121
126
|
if (this.isClosed()) this.emit(Page.Events.Close);else this.instrumentation.onPageOpen(this);
|
|
127
|
+
|
|
128
|
+
// Note: it is important to resolve _initializedPromise at the end,
|
|
129
|
+
// so that anyone who awaits waitForInitializedOrError got a ready and reported page.
|
|
130
|
+
this._initializedPromise.resolve(this._initialized);
|
|
122
131
|
}
|
|
123
132
|
initializedOrUndefined() {
|
|
124
133
|
return this._initialized ? this : undefined;
|
|
125
134
|
}
|
|
135
|
+
waitForInitializedOrError() {
|
|
136
|
+
return this._initializedPromise;
|
|
137
|
+
}
|
|
126
138
|
emitOnContext(event, ...args) {
|
|
127
139
|
if (this._isServerSideOnly) return;
|
|
128
140
|
this._browserContext.emit(event, ...args);
|
|
@@ -308,7 +320,29 @@ class Page extends _instrumentation.SdkObject {
|
|
|
308
320
|
unregisterLocatorHandler(uid) {
|
|
309
321
|
this._locatorHandlers.delete(uid);
|
|
310
322
|
}
|
|
311
|
-
async
|
|
323
|
+
async performActionPreChecks(progress) {
|
|
324
|
+
await this._performWaitForNavigationCheck(progress);
|
|
325
|
+
progress.throwIfAborted();
|
|
326
|
+
await this._performLocatorHandlersCheckpoint(progress);
|
|
327
|
+
progress.throwIfAborted();
|
|
328
|
+
// Wait once again, just in case a locator handler caused a navigation.
|
|
329
|
+
await this._performWaitForNavigationCheck(progress);
|
|
330
|
+
}
|
|
331
|
+
async _performWaitForNavigationCheck(progress) {
|
|
332
|
+
var _mainFrame$pendingDoc;
|
|
333
|
+
if (process.env.PLAYWRIGHT_SKIP_NAVIGATION_CHECK) return;
|
|
334
|
+
const mainFrame = this._frameManager.mainFrame();
|
|
335
|
+
if (!mainFrame || !mainFrame.pendingDocument()) return;
|
|
336
|
+
const url = (_mainFrame$pendingDoc = mainFrame.pendingDocument()) === null || _mainFrame$pendingDoc === void 0 || (_mainFrame$pendingDoc = _mainFrame$pendingDoc.request) === null || _mainFrame$pendingDoc === void 0 ? void 0 : _mainFrame$pendingDoc.url();
|
|
337
|
+
const toUrl = url ? `" ${(0, _utils.trimStringWithEllipsis)(url, 200)}"` : '';
|
|
338
|
+
progress.log(` waiting for${toUrl} navigation to finish...`);
|
|
339
|
+
await _helper.helper.waitForEvent(progress, mainFrame, frames.Frame.Events.InternalNavigation, e => {
|
|
340
|
+
if (!e.isPublic) return false;
|
|
341
|
+
if (!e.error) progress.log(` navigated to "${(0, _utils.trimStringWithEllipsis)(mainFrame.url(), 200)}"`);
|
|
342
|
+
return true;
|
|
343
|
+
}).promise;
|
|
344
|
+
}
|
|
345
|
+
async _performLocatorHandlersCheckpoint(progress) {
|
|
312
346
|
// Do not run locator handlers from inside locator handler callbacks to avoid deadlocks.
|
|
313
347
|
if (this._locatorHandlerRunningCounter) return;
|
|
314
348
|
for (const [uid, handler] of this._locatorHandlers) {
|
|
@@ -346,16 +380,18 @@ class Page extends _instrumentation.SdkObject {
|
|
|
346
380
|
if (options.colorScheme !== undefined) this._emulatedMedia.colorScheme = options.colorScheme;
|
|
347
381
|
if (options.reducedMotion !== undefined) this._emulatedMedia.reducedMotion = options.reducedMotion;
|
|
348
382
|
if (options.forcedColors !== undefined) this._emulatedMedia.forcedColors = options.forcedColors;
|
|
383
|
+
if (options.contrast !== undefined) this._emulatedMedia.contrast = options.contrast;
|
|
349
384
|
await this._delegate.updateEmulateMedia();
|
|
350
385
|
}
|
|
351
386
|
emulatedMedia() {
|
|
352
|
-
var _contextOptions$color, _contextOptions$reduc, _contextOptions$force;
|
|
387
|
+
var _contextOptions$color, _contextOptions$reduc, _contextOptions$force, _contextOptions$contr;
|
|
353
388
|
const contextOptions = this._browserContext._options;
|
|
354
389
|
return {
|
|
355
390
|
media: this._emulatedMedia.media || 'no-override',
|
|
356
391
|
colorScheme: this._emulatedMedia.colorScheme !== undefined ? this._emulatedMedia.colorScheme : (_contextOptions$color = contextOptions.colorScheme) !== null && _contextOptions$color !== void 0 ? _contextOptions$color : 'light',
|
|
357
392
|
reducedMotion: this._emulatedMedia.reducedMotion !== undefined ? this._emulatedMedia.reducedMotion : (_contextOptions$reduc = contextOptions.reducedMotion) !== null && _contextOptions$reduc !== void 0 ? _contextOptions$reduc : 'no-preference',
|
|
358
|
-
forcedColors: this._emulatedMedia.forcedColors !== undefined ? this._emulatedMedia.forcedColors : (_contextOptions$force = contextOptions.forcedColors) !== null && _contextOptions$force !== void 0 ? _contextOptions$force : 'none'
|
|
393
|
+
forcedColors: this._emulatedMedia.forcedColors !== undefined ? this._emulatedMedia.forcedColors : (_contextOptions$force = contextOptions.forcedColors) !== null && _contextOptions$force !== void 0 ? _contextOptions$force : 'none',
|
|
394
|
+
contrast: this._emulatedMedia.contrast !== undefined ? this._emulatedMedia.contrast : (_contextOptions$contr = contextOptions.contrast) !== null && _contextOptions$contr !== void 0 ? _contextOptions$contr : 'no-preference'
|
|
359
395
|
};
|
|
360
396
|
}
|
|
361
397
|
async setViewportSize(viewportSize) {
|
|
@@ -384,8 +420,8 @@ class Page extends _instrumentation.SdkObject {
|
|
|
384
420
|
async bringToFront() {
|
|
385
421
|
await this._delegate.bringToFront();
|
|
386
422
|
}
|
|
387
|
-
async addInitScript(source) {
|
|
388
|
-
const initScript = new InitScript(source);
|
|
423
|
+
async addInitScript(source, name) {
|
|
424
|
+
const initScript = new InitScript(source, false /* internal */, name);
|
|
389
425
|
this.initScripts.push(initScript);
|
|
390
426
|
await this._delegate.addInitScript(initScript);
|
|
391
427
|
}
|
|
@@ -409,7 +445,7 @@ class Page extends _instrumentation.SdkObject {
|
|
|
409
445
|
const rafrafScreenshot = locator ? async (progress, timeout) => {
|
|
410
446
|
return await locator.frame.rafrafTimeoutScreenshotElementWithProgress(progress, locator.selector, timeout, options || {});
|
|
411
447
|
} : async (progress, timeout) => {
|
|
412
|
-
await this.
|
|
448
|
+
await this.performActionPreChecks(progress);
|
|
413
449
|
await this.mainFrame().rafrafTimeout(timeout);
|
|
414
450
|
return await this._screenshotter.screenshotPage(progress, options || {});
|
|
415
451
|
};
|
|
@@ -472,19 +508,23 @@ class Page extends _instrumentation.SdkObject {
|
|
|
472
508
|
progress.log(`screenshot matched expectation`);
|
|
473
509
|
return {};
|
|
474
510
|
}
|
|
475
|
-
if (areEqualScreenshots(actual, options.expected,
|
|
511
|
+
if (areEqualScreenshots(actual, options.expected, undefined)) {
|
|
476
512
|
progress.log(`screenshot matched expectation`);
|
|
477
513
|
return {};
|
|
478
514
|
}
|
|
479
515
|
throw new Error(intermediateResult.errorMessage);
|
|
480
516
|
}, callTimeout).catch(e => {
|
|
517
|
+
var _intermediateResult;
|
|
481
518
|
// Q: Why not throw upon isSessionClosedError(e) as in other places?
|
|
482
519
|
// A: We want user to receive a friendly diff between actual and expected/previous.
|
|
483
520
|
if (js.isJavaScriptErrorInEvaluate(e) || (0, _selectorParser.isInvalidSelectorError)(e)) throw e;
|
|
521
|
+
let errorMessage = e.message;
|
|
522
|
+
if (e instanceof _errors.TimeoutError && (_intermediateResult = intermediateResult) !== null && _intermediateResult !== void 0 && _intermediateResult.previous) errorMessage = `Failed to take two consecutive stable screenshots.`;
|
|
484
523
|
return {
|
|
485
|
-
log: e.message ? [...metadata.log, e.message] : metadata.log,
|
|
524
|
+
log: (0, _callLog.compressCallLog)(e.message ? [...metadata.log, e.message] : metadata.log),
|
|
486
525
|
...intermediateResult,
|
|
487
|
-
errorMessage
|
|
526
|
+
errorMessage,
|
|
527
|
+
timedOut: e instanceof _errors.TimeoutError
|
|
488
528
|
};
|
|
489
529
|
});
|
|
490
530
|
}
|
|
@@ -505,10 +545,6 @@ class Page extends _instrumentation.SdkObject {
|
|
|
505
545
|
if (!runBeforeUnload) await this._closedPromise;
|
|
506
546
|
if (this._ownedContext) await this._ownedContext.close(options);
|
|
507
547
|
}
|
|
508
|
-
_setIsError(error) {
|
|
509
|
-
this._pageIsError = error;
|
|
510
|
-
this._frameManager.createDummyMainFrameIfNeeded();
|
|
511
|
-
}
|
|
512
548
|
isClosed() {
|
|
513
549
|
return this._closedState === 'closed';
|
|
514
550
|
}
|
|
@@ -610,6 +646,7 @@ class Worker extends _instrumentation.SdkObject {
|
|
|
610
646
|
_createExecutionContext(delegate) {
|
|
611
647
|
this._existingExecutionContext = new js.ExecutionContext(this, delegate, 'worker');
|
|
612
648
|
this._executionContextCallback(this._existingExecutionContext);
|
|
649
|
+
return this._existingExecutionContext;
|
|
613
650
|
}
|
|
614
651
|
url() {
|
|
615
652
|
return this._url;
|
|
@@ -754,10 +791,11 @@ function addPageBinding(playwrightBinding, bindingName, needsHandle, utilityScri
|
|
|
754
791
|
globalThis[bindingName].__installed = true;
|
|
755
792
|
}
|
|
756
793
|
class InitScript {
|
|
757
|
-
constructor(source, internal) {
|
|
794
|
+
constructor(source, internal, name) {
|
|
758
795
|
this.source = void 0;
|
|
759
796
|
this.internal = void 0;
|
|
760
|
-
|
|
797
|
+
this.name = void 0;
|
|
798
|
+
const guid = (0, _crypto.createGuid)();
|
|
761
799
|
this.source = `(() => {
|
|
762
800
|
globalThis.__pwInitScripts = globalThis.__pwInitScripts || {};
|
|
763
801
|
const hasInitScript = globalThis.__pwInitScripts[${JSON.stringify(guid)}];
|
|
@@ -767,6 +805,7 @@ class InitScript {
|
|
|
767
805
|
${source}
|
|
768
806
|
})();`;
|
|
769
807
|
this.internal = !!internal;
|
|
808
|
+
this.name = name;
|
|
770
809
|
}
|
|
771
810
|
}
|
|
772
811
|
exports.InitScript = InitScript;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.PipeTransport = void 0;
|
|
7
7
|
var _utils = require("../utils");
|
|
8
|
-
var _debugLogger = require("
|
|
8
|
+
var _debugLogger = require("./utils/debugLogger");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright 2018 Google Inc. All rights reserved.
|
|
11
11
|
* Modifications copyright (c) Microsoft Corporation.
|
package/lib/server/playwright.js
CHANGED
|
@@ -5,18 +5,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.Playwright = void 0;
|
|
7
7
|
exports.createPlaywright = createPlaywright;
|
|
8
|
+
var _utils = require("../utils");
|
|
8
9
|
var _android = require("./android/android");
|
|
9
10
|
var _backendAdb = require("./android/backendAdb");
|
|
11
|
+
var _bidiChromium = require("./bidi/bidiChromium");
|
|
12
|
+
var _bidiFirefox = require("./bidi/bidiFirefox");
|
|
10
13
|
var _chromium = require("./chromium/chromium");
|
|
14
|
+
var _debugController = require("./debugController");
|
|
11
15
|
var _electron = require("./electron/electron");
|
|
12
16
|
var _firefox = require("./firefox/firefox");
|
|
17
|
+
var _instrumentation = require("./instrumentation");
|
|
13
18
|
var _selectors = require("./selectors");
|
|
14
19
|
var _webkit = require("./webkit/webkit");
|
|
15
|
-
var _instrumentation = require("./instrumentation");
|
|
16
|
-
var _utils = require("../utils");
|
|
17
|
-
var _debugController = require("./debugController");
|
|
18
|
-
var _bidiChromium = require("./bidi/bidiChromium");
|
|
19
|
-
var _bidiFirefox = require("./bidi/bidiFirefox");
|
|
20
20
|
/**
|
|
21
21
|
* Copyright (c) Microsoft Corporation.
|
|
22
22
|
*
|
package/lib/server/progress.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ProgressController = void 0;
|
|
7
7
|
var _errors = require("./errors");
|
|
8
8
|
var _utils = require("../utils");
|
|
9
|
-
var _manualPromise = require("../utils/manualPromise");
|
|
9
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|
|
@@ -70,9 +70,6 @@ class ProgressController {
|
|
|
70
70
|
throwIfAborted: () => {
|
|
71
71
|
if (this._state === 'aborted') throw new AbortedError();
|
|
72
72
|
},
|
|
73
|
-
beforeInputAction: async element => {
|
|
74
|
-
await this.instrumentation.onBeforeInputAction(this.sdkObject, this.metadata, element);
|
|
75
|
-
},
|
|
76
73
|
metadata: this.metadata
|
|
77
74
|
};
|
|
78
75
|
const timeoutError = new _errors.TimeoutError(`Timeout ${this._timeout}ms exceeded.`);
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ProtocolError = void 0;
|
|
7
7
|
exports.isProtocolError = isProtocolError;
|
|
8
8
|
exports.isSessionClosedError = isSessionClosedError;
|
|
9
|
-
var _stackTrace = require("../utils/stackTrace");
|
|
9
|
+
var _stackTrace = require("../utils/isomorphic/stackTrace");
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|