@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/fetch.js
CHANGED
|
@@ -8,24 +8,26 @@ exports.createProxyAgent = createProxyAgent;
|
|
|
8
8
|
var _http = _interopRequireDefault(require("http"));
|
|
9
9
|
var _https = _interopRequireDefault(require("https"));
|
|
10
10
|
var _stream = require("stream");
|
|
11
|
+
var _tls = require("tls");
|
|
11
12
|
var _url = _interopRequireDefault(require("url"));
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var _timeoutSettings = require("../common/timeoutSettings");
|
|
15
|
-
var _userAgent = require("../utils/userAgent");
|
|
13
|
+
var zlib = _interopRequireWildcard(require("zlib"));
|
|
14
|
+
var _timeoutSettings = require("./timeoutSettings");
|
|
16
15
|
var _utils = require("../utils");
|
|
16
|
+
var _crypto = require("./utils/crypto");
|
|
17
|
+
var _userAgent = require("./utils/userAgent");
|
|
17
18
|
var _utilsBundle = require("../utilsBundle");
|
|
18
19
|
var _browserContext = require("./browserContext");
|
|
19
20
|
var _cookieStore = require("./cookieStore");
|
|
20
21
|
var _formData = require("./formData");
|
|
21
|
-
var _happyEyeballs = require("../utils/happy-eyeballs");
|
|
22
22
|
var _instrumentation = require("./instrumentation");
|
|
23
23
|
var _progress = require("./progress");
|
|
24
|
-
var _tracing = require("./trace/recorder/tracing");
|
|
25
24
|
var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
|
|
26
|
-
var
|
|
25
|
+
var _happyEyeballs = require("./utils/happyEyeballs");
|
|
26
|
+
var _tracing = require("./trace/recorder/tracing");
|
|
27
27
|
var _fetch = require("../checkly/fetch");
|
|
28
|
-
function
|
|
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); }
|
|
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 }; }
|
|
29
31
|
/**
|
|
30
32
|
* Copyright (c) Microsoft Corporation.
|
|
31
33
|
*
|
|
@@ -69,7 +71,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
69
71
|
this.fetchLog.delete(fetchUid);
|
|
70
72
|
}
|
|
71
73
|
_storeResponseBody(body) {
|
|
72
|
-
const uid = (0,
|
|
74
|
+
const uid = (0, _crypto.createGuid)();
|
|
73
75
|
this.fetchResponses.set(uid, body);
|
|
74
76
|
return uid;
|
|
75
77
|
}
|
|
@@ -93,7 +95,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
93
95
|
value
|
|
94
96
|
} of params.headers) setHeader(headers, name, value);
|
|
95
97
|
}
|
|
96
|
-
const requestUrl = new URL(
|
|
98
|
+
const requestUrl = new URL((0, _utils.constructURLBasedOnBaseURL)(defaults.baseURL, params.url));
|
|
97
99
|
if (params.encodedParams) {
|
|
98
100
|
requestUrl.search = params.encodedParams;
|
|
99
101
|
} else if (params.params) {
|
|
@@ -134,7 +136,8 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
134
136
|
});
|
|
135
137
|
const fetchUid = this._storeResponseBody(fetchResponse.body);
|
|
136
138
|
this.fetchLog.set(fetchUid, controller.metadata.log);
|
|
137
|
-
|
|
139
|
+
const failOnStatusCode = params.failOnStatusCode !== undefined ? params.failOnStatusCode : !!defaults.failOnStatusCode;
|
|
140
|
+
if (failOnStatusCode && (fetchResponse.status < 200 || fetchResponse.status >= 400)) {
|
|
138
141
|
let responseText = '';
|
|
139
142
|
if (fetchResponse.body.byteLength) {
|
|
140
143
|
let text = fetchResponse.body.toString('utf8');
|
|
@@ -184,8 +187,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
184
187
|
}
|
|
185
188
|
}
|
|
186
189
|
async _sendRequestWithRetries(progress, url, options, postData, maxRetries) {
|
|
187
|
-
|
|
188
|
-
(_maxRetries = maxRetries) !== null && _maxRetries !== void 0 ? _maxRetries : maxRetries = 0;
|
|
190
|
+
maxRetries !== null && maxRetries !== void 0 ? maxRetries : maxRetries = 0;
|
|
189
191
|
let backoff = 250;
|
|
190
192
|
for (let i = 0; i <= maxRetries; i++) {
|
|
191
193
|
try {
|
|
@@ -231,6 +233,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
231
233
|
};
|
|
232
234
|
const checklyTimings = (0, _fetch.initializeTimings)();
|
|
233
235
|
const startAt = (0, _utils.monotonicTime)();
|
|
236
|
+
let reusedSocketAt;
|
|
234
237
|
let dnsLookupAt;
|
|
235
238
|
let tcpConnectionAt;
|
|
236
239
|
let tlsHandshakeAt;
|
|
@@ -241,20 +244,20 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
241
244
|
const listeners = [];
|
|
242
245
|
const request = requestConstructor(url, requestOptions, async response => {
|
|
243
246
|
const responseAt = (0, _utils.monotonicTime)();
|
|
244
|
-
checklyTimings.values.response =
|
|
247
|
+
checklyTimings.values.response = performance.now() - checklyTimings.values.startTimeNow;
|
|
245
248
|
const notifyRequestFinished = body => {
|
|
246
|
-
var _tlsHandshakeAt;
|
|
247
249
|
const endAt = (0, _utils.monotonicTime)();
|
|
248
250
|
// spec: http://www.softwareishard.com/blog/har-12-spec/#timings
|
|
251
|
+
const connectEnd = tlsHandshakeAt !== null && tlsHandshakeAt !== void 0 ? tlsHandshakeAt : tcpConnectionAt;
|
|
249
252
|
const timings = {
|
|
250
253
|
send: requestFinishAt - startAt,
|
|
251
254
|
wait: responseAt - requestFinishAt,
|
|
252
255
|
receive: endAt - responseAt,
|
|
253
256
|
dns: dnsLookupAt ? dnsLookupAt - startAt : -1,
|
|
254
|
-
connect:
|
|
257
|
+
connect: connectEnd ? connectEnd - startAt : -1,
|
|
255
258
|
// "If [ssl] is defined then the time is also included in the connect field "
|
|
256
259
|
ssl: tlsHandshakeAt ? tlsHandshakeAt - tcpConnectionAt : -1,
|
|
257
|
-
blocked: -1
|
|
260
|
+
blocked: reusedSocketAt ? reusedSocketAt - startAt : -1
|
|
258
261
|
};
|
|
259
262
|
const requestFinishedEvent = {
|
|
260
263
|
requestEvent,
|
|
@@ -355,7 +358,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
355
358
|
response.on('aborted', () => reject(new Error('aborted')));
|
|
356
359
|
const chunks = [];
|
|
357
360
|
const notifyBodyFinished = () => {
|
|
358
|
-
checklyTimings.values.endAt =
|
|
361
|
+
checklyTimings.values.endAt = performance.now();
|
|
359
362
|
const body = Buffer.concat(chunks);
|
|
360
363
|
notifyRequestFinished(body);
|
|
361
364
|
fulfill({
|
|
@@ -367,10 +370,9 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
367
370
|
timings: {
|
|
368
371
|
//@ts-ignore
|
|
369
372
|
values: {
|
|
370
|
-
...checklyTimings.values
|
|
371
|
-
..._happyEyeballs.httpHappyEyeballsTimings.values
|
|
373
|
+
...checklyTimings.values
|
|
372
374
|
},
|
|
373
|
-
agent:
|
|
375
|
+
agent: checklyTimings.agent
|
|
374
376
|
}
|
|
375
377
|
});
|
|
376
378
|
};
|
|
@@ -378,17 +380,17 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
378
380
|
let transform;
|
|
379
381
|
const encoding = response.headers['content-encoding'];
|
|
380
382
|
if (encoding === 'gzip' || encoding === 'x-gzip') {
|
|
381
|
-
transform =
|
|
382
|
-
flush:
|
|
383
|
-
finishFlush:
|
|
383
|
+
transform = zlib.createGunzip({
|
|
384
|
+
flush: zlib.constants.Z_SYNC_FLUSH,
|
|
385
|
+
finishFlush: zlib.constants.Z_SYNC_FLUSH
|
|
384
386
|
});
|
|
385
387
|
} else if (encoding === 'br') {
|
|
386
|
-
transform =
|
|
387
|
-
flush:
|
|
388
|
-
finishFlush:
|
|
388
|
+
transform = zlib.createBrotliDecompress({
|
|
389
|
+
flush: zlib.constants.BROTLI_OPERATION_FLUSH,
|
|
390
|
+
finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH
|
|
389
391
|
});
|
|
390
392
|
} else if (encoding === 'deflate') {
|
|
391
|
-
transform =
|
|
393
|
+
transform = zlib.createInflate();
|
|
392
394
|
}
|
|
393
395
|
if (transform) {
|
|
394
396
|
// Brotli and deflate decompressors throw if the input stream is empty.
|
|
@@ -411,6 +413,11 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
411
413
|
}));
|
|
412
414
|
request.on('close', () => _utils.eventsHelper.removeEventListeners(listeners));
|
|
413
415
|
request.on('socket', socket => {
|
|
416
|
+
if (request.reusedSocket) {
|
|
417
|
+
reusedSocketAt = (0, _utils.monotonicTime)();
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
|
|
414
421
|
// happy eyeballs don't emit lookup and connect events, so we use our custom ones
|
|
415
422
|
const happyEyeBallsTimings = (0, _happyEyeballs.timingForSocket)(socket);
|
|
416
423
|
dnsLookupAt = happyEyeBallsTimings.dnsLookupAt;
|
|
@@ -507,6 +514,7 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
|
|
|
507
514
|
return {
|
|
508
515
|
userAgent: this._context._options.userAgent || this._context._browser.userAgent(),
|
|
509
516
|
extraHTTPHeaders: this._context._options.extraHTTPHeaders,
|
|
517
|
+
failOnStatusCode: undefined,
|
|
510
518
|
httpCredentials: this._context._options.httpCredentials,
|
|
511
519
|
proxy: this._context._options.proxy || this._context._browser.options.proxy,
|
|
512
520
|
timeoutSettings: this._context._timeoutSettings,
|
|
@@ -521,8 +529,8 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
|
|
|
521
529
|
async _cookies(url) {
|
|
522
530
|
return await this._context.cookies(url.toString());
|
|
523
531
|
}
|
|
524
|
-
async storageState() {
|
|
525
|
-
return this._context.storageState();
|
|
532
|
+
async storageState(indexedDB) {
|
|
533
|
+
return this._context.storageState(indexedDB);
|
|
526
534
|
}
|
|
527
535
|
}
|
|
528
536
|
exports.BrowserContextAPIRequestContext = BrowserContextAPIRequestContext;
|
|
@@ -544,7 +552,11 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
544
552
|
if (options.clientCertificates) throw new Error('Cannot specify both proxy and clientCertificates');
|
|
545
553
|
}
|
|
546
554
|
if (options.storageState) {
|
|
547
|
-
|
|
555
|
+
var _options$storageState;
|
|
556
|
+
this._origins = (_options$storageState = options.storageState.origins) === null || _options$storageState === void 0 ? void 0 : _options$storageState.map(origin => ({
|
|
557
|
+
indexedDB: [],
|
|
558
|
+
...origin
|
|
559
|
+
}));
|
|
548
560
|
this._cookieStore.addCookies(options.storageState.cookies || []);
|
|
549
561
|
}
|
|
550
562
|
(0, _browserContext.verifyClientCertificates)(options.clientCertificates);
|
|
@@ -552,6 +564,7 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
552
564
|
baseURL: options.baseURL,
|
|
553
565
|
userAgent: options.userAgent || (0, _userAgent.getUserAgent)(),
|
|
554
566
|
extraHTTPHeaders: options.extraHTTPHeaders,
|
|
567
|
+
failOnStatusCode: !!options.failOnStatusCode,
|
|
555
568
|
ignoreHTTPSErrors: !!options.ignoreHTTPSErrors,
|
|
556
569
|
httpCredentials: options.httpCredentials,
|
|
557
570
|
clientCertificates: options.clientCertificates,
|
|
@@ -578,10 +591,13 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
578
591
|
async _cookies(url) {
|
|
579
592
|
return this._cookieStore.cookies(url);
|
|
580
593
|
}
|
|
581
|
-
async storageState() {
|
|
594
|
+
async storageState(indexedDB = false) {
|
|
582
595
|
return {
|
|
583
596
|
cookies: this._cookieStore.allCookies(),
|
|
584
|
-
origins: this._origins || []
|
|
597
|
+
origins: (this._origins || []).map(origin => ({
|
|
598
|
+
...origin,
|
|
599
|
+
indexedDB: indexedDB ? origin.indexedDB : []
|
|
600
|
+
}))
|
|
585
601
|
};
|
|
586
602
|
}
|
|
587
603
|
}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.fileUploadSizeLimit = void 0;
|
|
6
7
|
exports.prepareFilesForUpload = prepareFilesForUpload;
|
|
7
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
9
|
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
var
|
|
10
|
+
var _assert = require("../utils/isomorphic/assert");
|
|
10
11
|
var _utilsBundle = require("../utilsBundle");
|
|
11
|
-
function _interopRequireDefault(
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
13
|
/**
|
|
13
14
|
* Copyright (c) Microsoft Corporation.
|
|
14
15
|
*
|
|
@@ -25,9 +26,11 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
25
26
|
* limitations under the License.
|
|
26
27
|
*/
|
|
27
28
|
|
|
29
|
+
// Keep in sync with the client.
|
|
30
|
+
const fileUploadSizeLimit = exports.fileUploadSizeLimit = 50 * 1024 * 1024;
|
|
28
31
|
async function filesExceedUploadLimit(files) {
|
|
29
32
|
const sizes = await Promise.all(files.map(async file => (await _fs.default.promises.stat(file)).size));
|
|
30
|
-
return sizes.reduce((total, size) => total + size, 0) >=
|
|
33
|
+
return sizes.reduce((total, size) => total + size, 0) >= fileUploadSizeLimit;
|
|
31
34
|
}
|
|
32
35
|
async function prepareFilesForUpload(frame, params) {
|
|
33
36
|
var _fileBuffers;
|
|
@@ -44,7 +47,7 @@ async function prepareFilesForUpload(frame, params) {
|
|
|
44
47
|
if (streams) localPaths = streams.map(c => c.path());
|
|
45
48
|
if (directoryStream) localDirectory = directoryStream.path();
|
|
46
49
|
if (localPaths) {
|
|
47
|
-
for (const p of localPaths) (0,
|
|
50
|
+
for (const p of localPaths) (0, _assert.assert)(_path.default.isAbsolute(p) && _path.default.resolve(p) === p, 'Paths provided to localPaths must be absolute and fully resolved.');
|
|
48
51
|
}
|
|
49
52
|
let fileBuffers = payloads;
|
|
50
53
|
if (!frame._page._browserContext._browser._isCollocatedWithServer) {
|
|
@@ -4,16 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FFBrowserContext = exports.FFBrowser = void 0;
|
|
7
|
-
var _errors = require("../errors");
|
|
8
7
|
var _utils = require("../../utils");
|
|
9
8
|
var _browser = require("../browser");
|
|
10
9
|
var _browserContext = require("../browserContext");
|
|
10
|
+
var _errors = require("../errors");
|
|
11
11
|
var network = _interopRequireWildcard(require("../network"));
|
|
12
12
|
var _page = require("../page");
|
|
13
13
|
var _ffConnection = require("./ffConnection");
|
|
14
14
|
var _ffPage = require("./ffPage");
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
16
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
17
17
|
/**
|
|
18
18
|
* Copyright 2018 Google Inc. All rights reserved.
|
|
19
19
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -132,13 +132,13 @@ class FFBrowser extends _browser.Browser {
|
|
|
132
132
|
|
|
133
133
|
// Abort the navigation that turned into download.
|
|
134
134
|
ffPage._page._frameManager.frameAbortedNavigation(payload.frameId, 'Download is starting');
|
|
135
|
-
let originPage = ffPage.
|
|
135
|
+
let originPage = ffPage._page.initializedOrUndefined();
|
|
136
136
|
// If it's a new window download, report it on the opener page.
|
|
137
137
|
if (!originPage) {
|
|
138
138
|
// Resume the page creation with an error. The page will automatically close right
|
|
139
139
|
// after the download begins.
|
|
140
140
|
ffPage._markAsError(new Error('Starting new page download'));
|
|
141
|
-
if (ffPage._opener) originPage = ffPage._opener.
|
|
141
|
+
if (ffPage._opener) originPage = ffPage._opener._page.initializedOrUndefined();
|
|
142
142
|
}
|
|
143
143
|
if (!originPage) return;
|
|
144
144
|
this._downloadCreated(originPage, payload.uuid, payload.url, payload.suggestedFileName);
|
|
@@ -244,6 +244,12 @@ class FFBrowserContext extends _browserContext.BrowserContext {
|
|
|
244
244
|
forcedColors: this._options.forcedColors !== undefined ? this._options.forcedColors : 'none'
|
|
245
245
|
}));
|
|
246
246
|
}
|
|
247
|
+
if (this._options.contrast !== 'no-override') {
|
|
248
|
+
promises.push(this._browser.session.send('Browser.setContrast', {
|
|
249
|
+
browserContextId,
|
|
250
|
+
contrast: this._options.contrast !== undefined ? this._options.contrast : 'no-preference'
|
|
251
|
+
}));
|
|
252
|
+
}
|
|
247
253
|
if (this._options.recordVideo) {
|
|
248
254
|
promises.push(this._ensureVideosPath().then(() => {
|
|
249
255
|
return this._browser.session.send('Browser.setVideoRecordingOptions', {
|
|
@@ -268,10 +274,10 @@ class FFBrowserContext extends _browserContext.BrowserContext {
|
|
|
268
274
|
_ffPages() {
|
|
269
275
|
return Array.from(this._browser._ffPages.values()).filter(ffPage => ffPage._browserContext === this);
|
|
270
276
|
}
|
|
271
|
-
|
|
272
|
-
return this._ffPages().map(ffPage => ffPage.
|
|
277
|
+
possiblyUninitializedPages() {
|
|
278
|
+
return this._ffPages().map(ffPage => ffPage._page);
|
|
273
279
|
}
|
|
274
|
-
async
|
|
280
|
+
async doCreateNewPage() {
|
|
275
281
|
(0, _browserContext.assertBrowserContextIsNotOwned)(this);
|
|
276
282
|
const {
|
|
277
283
|
targetId
|
|
@@ -281,7 +287,7 @@ class FFBrowserContext extends _browserContext.BrowserContext {
|
|
|
281
287
|
if (e.message.includes('Failed to override timezone')) throw new Error(`Invalid timezone ID: ${this._options.timezoneId}`);
|
|
282
288
|
throw e;
|
|
283
289
|
});
|
|
284
|
-
return this._browser._ffPages.get(targetId);
|
|
290
|
+
return this._browser._ffPages.get(targetId)._page;
|
|
285
291
|
}
|
|
286
292
|
async doGetCookies(urls) {
|
|
287
293
|
const {
|
|
@@ -457,4 +463,6 @@ function toJugglerProxyOptions(proxy) {
|
|
|
457
463
|
|
|
458
464
|
// Prefs for quick fixes that didn't make it to the build.
|
|
459
465
|
// Should all be moved to `playwright.cfg`.
|
|
460
|
-
const kBandaidFirefoxUserPrefs = {
|
|
466
|
+
const kBandaidFirefoxUserPrefs = {
|
|
467
|
+
'dom.fetchKeepalive.enabled': false
|
|
468
|
+
};
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.kBrowserCloseMessageId = exports.FFSession = exports.FFConnection = exports.ConnectionEvents = void 0;
|
|
7
7
|
var _events = require("events");
|
|
8
|
-
var _debugLogger = require("
|
|
8
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
9
9
|
var _helper = require("../helper");
|
|
10
10
|
var _protocolError = require("../protocolError");
|
|
11
11
|
/**
|
|
@@ -4,12 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FFExecutionContext = void 0;
|
|
7
|
-
|
|
8
|
-
var
|
|
7
|
+
exports.createHandle = createHandle;
|
|
8
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
9
|
+
var _stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
9
10
|
var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
|
|
11
|
+
var js = _interopRequireWildcard(require("../javascript"));
|
|
12
|
+
var dom = _interopRequireWildcard(require("../dom"));
|
|
10
13
|
var _protocolError = require("../protocolError");
|
|
11
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
15
|
+
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; }
|
|
13
16
|
/**
|
|
14
17
|
* Copyright 2019 Google Inc. All rights reserved.
|
|
15
18
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -43,28 +46,16 @@ class FFExecutionContext {
|
|
|
43
46
|
checkException(payload.exceptionDetails);
|
|
44
47
|
return payload.result.value;
|
|
45
48
|
}
|
|
46
|
-
async rawEvaluateHandle(expression) {
|
|
49
|
+
async rawEvaluateHandle(context, expression) {
|
|
47
50
|
const payload = await this._session.send('Runtime.evaluate', {
|
|
48
51
|
expression,
|
|
49
52
|
returnByValue: false,
|
|
50
53
|
executionContextId: this._executionContextId
|
|
51
54
|
}).catch(rewriteError);
|
|
52
55
|
checkException(payload.exceptionDetails);
|
|
53
|
-
return payload.result
|
|
54
|
-
}
|
|
55
|
-
rawCallFunctionNoReply(func, ...args) {
|
|
56
|
-
this._session.send('Runtime.callFunction', {
|
|
57
|
-
functionDeclaration: func.toString(),
|
|
58
|
-
args: args.map(a => a instanceof js.JSHandle ? {
|
|
59
|
-
objectId: a._objectId
|
|
60
|
-
} : {
|
|
61
|
-
value: a
|
|
62
|
-
}),
|
|
63
|
-
returnByValue: true,
|
|
64
|
-
executionContextId: this._executionContextId
|
|
65
|
-
}).catch(() => {});
|
|
56
|
+
return createHandle(context, payload.result);
|
|
66
57
|
}
|
|
67
|
-
async evaluateWithArguments(expression, returnByValue, utilityScript, values,
|
|
58
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
68
59
|
const payload = await this._session.send('Runtime.callFunction', {
|
|
69
60
|
functionDeclaration: expression,
|
|
70
61
|
args: [{
|
|
@@ -72,8 +63,8 @@ class FFExecutionContext {
|
|
|
72
63
|
value: undefined
|
|
73
64
|
}, ...values.map(value => ({
|
|
74
65
|
value
|
|
75
|
-
})), ...
|
|
76
|
-
objectId,
|
|
66
|
+
})), ...handles.map(handle => ({
|
|
67
|
+
objectId: handle._objectId,
|
|
77
68
|
value: undefined
|
|
78
69
|
}))],
|
|
79
70
|
returnByValue,
|
|
@@ -81,24 +72,22 @@ class FFExecutionContext {
|
|
|
81
72
|
}).catch(rewriteError);
|
|
82
73
|
checkException(payload.exceptionDetails);
|
|
83
74
|
if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(payload.result.value);
|
|
84
|
-
return utilityScript._context
|
|
75
|
+
return createHandle(utilityScript._context, payload.result);
|
|
85
76
|
}
|
|
86
|
-
async getProperties(
|
|
77
|
+
async getProperties(object) {
|
|
87
78
|
const response = await this._session.send('Runtime.getObjectProperties', {
|
|
88
79
|
executionContextId: this._executionContextId,
|
|
89
|
-
objectId
|
|
80
|
+
objectId: object._objectId
|
|
90
81
|
});
|
|
91
82
|
const result = new Map();
|
|
92
|
-
for (const property of response.properties) result.set(property.name,
|
|
83
|
+
for (const property of response.properties) result.set(property.name, createHandle(object._context, property.value));
|
|
93
84
|
return result;
|
|
94
85
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
async releaseHandle(objectId) {
|
|
86
|
+
async releaseHandle(handle) {
|
|
87
|
+
if (!handle._objectId) return;
|
|
99
88
|
await this._session.send('Runtime.disposeObject', {
|
|
100
89
|
executionContextId: this._executionContextId,
|
|
101
|
-
objectId
|
|
90
|
+
objectId: handle._objectId
|
|
102
91
|
});
|
|
103
92
|
}
|
|
104
93
|
}
|
|
@@ -132,4 +121,11 @@ function renderPreview(object) {
|
|
|
132
121
|
if (object.subtype === 'weakset') return 'WeakSet';
|
|
133
122
|
if (object.subtype) return object.subtype[0].toUpperCase() + object.subtype.slice(1);
|
|
134
123
|
if ('value' in object) return String(object.value);
|
|
124
|
+
}
|
|
125
|
+
function createHandle(context, remoteObject) {
|
|
126
|
+
if (remoteObject.subtype === 'node') {
|
|
127
|
+
(0, _assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
128
|
+
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
129
|
+
}
|
|
130
|
+
return new js.JSHandle(context, remoteObject.subtype || remoteObject.type || '', renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
135
131
|
}
|
|
@@ -47,12 +47,18 @@ class RawKeyboardImpl {
|
|
|
47
47
|
this._client = void 0;
|
|
48
48
|
this._client = client;
|
|
49
49
|
}
|
|
50
|
-
async keydown(modifiers,
|
|
50
|
+
async keydown(modifiers, keyName, description, autoRepeat) {
|
|
51
|
+
let text = description.text;
|
|
51
52
|
// Firefox will figure out Enter by itself
|
|
52
53
|
if (text === '\r') text = '';
|
|
54
|
+
const {
|
|
55
|
+
code,
|
|
56
|
+
key,
|
|
57
|
+
location
|
|
58
|
+
} = description;
|
|
53
59
|
await this._client.send('Page.dispatchKeyEvent', {
|
|
54
60
|
type: 'keydown',
|
|
55
|
-
keyCode: keyCodeWithoutLocation,
|
|
61
|
+
keyCode: description.keyCodeWithoutLocation,
|
|
56
62
|
code,
|
|
57
63
|
key,
|
|
58
64
|
repeat: autoRepeat,
|
|
@@ -60,11 +66,16 @@ class RawKeyboardImpl {
|
|
|
60
66
|
text
|
|
61
67
|
});
|
|
62
68
|
}
|
|
63
|
-
async keyup(modifiers,
|
|
69
|
+
async keyup(modifiers, keyName, description) {
|
|
70
|
+
const {
|
|
71
|
+
code,
|
|
72
|
+
key,
|
|
73
|
+
location
|
|
74
|
+
} = description;
|
|
64
75
|
await this._client.send('Page.dispatchKeyEvent', {
|
|
65
76
|
type: 'keyup',
|
|
66
77
|
key,
|
|
67
|
-
keyCode: keyCodeWithoutLocation,
|
|
78
|
+
keyCode: description.keyCodeWithoutLocation,
|
|
68
79
|
code,
|
|
69
80
|
location,
|
|
70
81
|
repeat: false
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.FFNetworkManager = void 0;
|
|
7
|
-
var _eventsHelper = require("
|
|
7
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
8
8
|
var network = _interopRequireWildcard(require("../network"));
|
|
9
9
|
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); }
|
|
10
|
-
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 &&
|
|
10
|
+
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; }
|
|
11
11
|
/**
|
|
12
12
|
* Copyright 2019 Google Inc. All rights reserved.
|
|
13
13
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -161,7 +161,7 @@ const causeToResourceType = {
|
|
|
161
161
|
TYPE_XSLT: 'other',
|
|
162
162
|
TYPE_BEACON: 'other',
|
|
163
163
|
TYPE_FETCH: 'fetch',
|
|
164
|
-
TYPE_IMAGESET: '
|
|
164
|
+
TYPE_IMAGESET: 'image',
|
|
165
165
|
TYPE_WEB_MANIFEST: 'manifest'
|
|
166
166
|
};
|
|
167
167
|
const internalCauseToResourceType = {
|