patchright-core 1.50.1 → 1.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ThirdPartyNotices.txt +1 -43
- package/browsers.json +22 -10
- package/index.js +0 -1
- package/lib/androidServerImpl.js +4 -4
- package/lib/browserServerImpl.js +18 -9
- package/lib/cli/driver.js +6 -6
- package/lib/cli/program.js +9 -9
- 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 +77 -73
- package/lib/client/browserType.js +30 -64
- package/lib/client/channelOwner.js +23 -20
- package/lib/client/clientHelper.js +5 -7
- package/lib/client/clientStackTrace.js +65 -0
- package/lib/client/connection.js +46 -39
- 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 +60 -61
- package/lib/client/fileUtils.js +31 -0
- package/lib/client/frame.js +30 -29
- 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 +37 -18
- package/lib/client/network.js +40 -40
- package/lib/client/page.js +59 -55
- 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 +10 -7
- package/lib/client/video.js +2 -2
- package/lib/client/waiter.js +5 -6
- package/lib/client/webSocket.js +106 -0
- package/lib/client/worker.js +12 -10
- package/lib/client/writableStream.js +2 -21
- package/lib/generated/consoleApiSource.js +1 -1
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/inProcessFactory.js +6 -3
- package/lib/outofprocess.js +12 -8
- package/lib/protocol/validator.js +64 -13
- package/lib/protocol/validatorPrimitives.js +1 -2
- package/lib/remote/playwrightConnection.js +18 -10
- package/lib/remote/playwrightServer.js +20 -7
- 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 +2 -2
- package/lib/server/bidi/bidiChromium.js +4 -3
- package/lib/server/bidi/bidiConnection.js +1 -1
- package/lib/server/bidi/bidiExecutionContext.js +70 -40
- package/lib/server/bidi/bidiFirefox.js +4 -3
- package/lib/server/bidi/bidiInput.js +5 -8
- package/lib/server/bidi/bidiNetworkManager.js +3 -3
- package/lib/server/bidi/bidiOverCdp.js +2 -2
- package/lib/server/bidi/bidiPage.js +30 -46
- package/lib/server/bidi/third_party/firefoxPrefs.js +19 -3
- package/lib/server/browser.js +2 -2
- package/lib/server/browserContext.js +37 -40
- package/lib/server/browserType.js +18 -17
- package/lib/{utils/sequence.js → server/callLog.js} +18 -3
- package/lib/server/chromium/chromium.js +14 -14
- package/lib/server/chromium/chromiumSwitches.js +32 -1
- package/lib/server/chromium/crBrowser.js +15 -14
- 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 +25 -17
- package/lib/server/chromium/crInput.js +2 -2
- package/lib/server/chromium/crNetworkManager.js +73 -26
- package/lib/server/chromium/crPage.js +22 -23
- 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/javascript.js +1 -1
- package/lib/server/codegen/languages.js +2 -2
- package/lib/server/debugController.js +3 -3
- package/lib/server/deviceDescriptors.js +1 -1
- package/lib/server/deviceDescriptorsSource.json +131 -131
- package/lib/server/dispatchers/androidDispatcher.js +1 -1
- package/lib/server/dispatchers/artifactDispatcher.js +3 -3
- package/lib/server/dispatchers/browserContextDispatcher.js +19 -19
- package/lib/server/dispatchers/browserTypeDispatcher.js +1 -1
- package/lib/server/dispatchers/cdpSessionDispatcher.js +1 -1
- 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 +4 -4
- package/lib/server/dispatchers/jsHandleDispatcher.js +2 -2
- package/lib/server/dispatchers/jsonPipeDispatcher.js +2 -2
- package/lib/server/dispatchers/localUtilsDispatcher.js +25 -298
- package/lib/server/dispatchers/networkDispatchers.js +3 -3
- package/lib/server/dispatchers/pageDispatcher.js +11 -9
- package/lib/server/dispatchers/playwrightDispatcher.js +5 -5
- package/lib/server/dispatchers/streamDispatcher.js +4 -3
- package/lib/server/dispatchers/webSocketRouteDispatcher.js +8 -7
- package/lib/server/dispatchers/writableStreamDispatcher.js +5 -6
- package/lib/server/dom.js +18 -12
- 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 +36 -25
- package/lib/server/fileUploadUtils.js +7 -4
- package/lib/server/firefox/ffBrowser.js +8 -2
- package/lib/server/firefox/ffConnection.js +1 -1
- package/lib/server/firefox/ffExecutionContext.js +25 -17
- package/lib/server/firefox/ffNetworkManager.js +2 -2
- package/lib/server/firefox/ffPage.js +15 -21
- package/lib/server/firefox/firefox.js +7 -9
- package/lib/server/frameSelectors.js +1 -1
- package/lib/server/frames.js +366 -209
- package/lib/server/har/harRecorder.js +4 -4
- package/lib/server/har/harTracer.js +7 -8
- package/lib/server/harBackend.js +157 -0
- package/lib/server/helper.js +2 -2
- package/lib/server/index.js +1 -8
- package/lib/server/input.js +1 -1
- package/lib/server/instrumentation.js +2 -2
- package/lib/server/isomorphic/utilityScriptSerializers.js +3 -0
- package/lib/server/javascript.js +46 -33
- package/lib/server/launchApp.js +2 -2
- package/lib/server/localUtils.js +203 -0
- package/lib/server/network.js +3 -3
- package/lib/server/page.js +41 -22
- package/lib/server/pipeTransport.js +1 -1
- package/lib/server/playwright.js +5 -5
- package/lib/server/progress.js +1 -1
- package/lib/server/protocolError.js +1 -1
- package/lib/server/recorder/contextRecorder.js +3 -3
- package/lib/server/recorder/recorderApp.js +18 -12
- package/lib/server/recorder/recorderCollection.js +3 -3
- package/lib/server/recorder/throttledFile.js +3 -4
- package/lib/server/recorder.js +7 -5
- package/lib/server/registry/browserFetcher.js +9 -7
- package/lib/server/registry/dependencies.js +15 -15
- package/lib/server/registry/index.js +38 -44
- 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/{common → server}/timeoutSettings.js +6 -5
- package/lib/server/trace/recorder/snapshotter.js +9 -8
- package/lib/server/trace/recorder/tracing.js +40 -31
- package/lib/server/trace/test/inMemorySnapshotter.js +4 -4
- package/lib/server/trace/viewer/traceViewer.js +13 -5
- package/lib/server/transport.js +2 -2
- package/lib/{utils → server/utils}/comparators.js +4 -4
- package/lib/{utils → server/utils}/crypto.js +4 -4
- package/lib/{utils → server/utils}/debug.js +4 -12
- package/lib/{utils → server/utils}/debugLogger.js +2 -2
- package/lib/{utils → server/utils}/env.js +4 -0
- package/lib/{utils → server/utils}/expectUtils.js +1 -1
- package/lib/{utils → server/utils}/fileUtils.js +4 -5
- package/lib/{utils/happy-eyeballs.js → server/utils/happyEyeballs.js} +22 -24
- package/lib/{utils → server/utils}/hostPlatform.js +1 -1
- package/lib/{utils → server/utils}/httpServer.js +8 -8
- package/lib/{utils → server/utils}/linuxUtils.js +3 -23
- package/lib/{utils → server/utils}/network.js +4 -4
- package/lib/server/utils/nodePlatform.js +140 -0
- package/lib/{protocol/transport.js → server/utils/pipeTransport.js} +2 -2
- package/lib/{utils → server/utils}/processLauncher.js +5 -5
- package/lib/{utils → server/utils}/profiler.js +5 -6
- package/lib/{common → server/utils}/socksProxy.js +10 -9
- package/lib/{utils → server/utils}/userAgent.js +2 -16
- package/lib/{utils → server/utils}/wsServer.js +3 -3
- package/lib/{utils → server/utils}/zipFile.js +1 -1
- package/lib/{utils → server/utils}/zones.js +9 -24
- package/lib/server/webkit/webkit.js +4 -4
- package/lib/server/webkit/wkBrowser.js +4 -4
- package/lib/server/webkit/wkConnection.js +1 -1
- package/lib/server/webkit/wkExecutionContext.js +25 -17
- package/lib/server/webkit/wkInput.js +2 -2
- package/lib/server/webkit/wkInterceptableRequest.js +2 -2
- package/lib/server/webkit/wkPage.js +41 -40
- package/lib/server/webkit/wkProvisionalPage.js +1 -1
- package/lib/server/webkit/wkWorkers.js +2 -2
- package/lib/utils/isomorphic/ariaSnapshot.js +2 -1
- package/lib/utils/isomorphic/assert.js +25 -0
- package/lib/utils/isomorphic/colors.js +65 -0
- package/lib/utils/isomorphic/cssParser.js +1 -1
- package/lib/utils/isomorphic/locatorGenerators.js +13 -1
- package/lib/utils/isomorphic/locatorParser.js +2 -2
- package/lib/utils/{manualPromise.js → isomorphic/manualPromise.js} +3 -5
- package/lib/utils/isomorphic/mimeType.js +11 -3
- package/lib/utils/{multimap.js → isomorphic/multimap.js} +1 -3
- package/lib/utils/{rtti.js → isomorphic/rtti.js} +2 -5
- package/lib/utils/isomorphic/stackTrace.js +169 -0
- package/lib/utils/isomorphic/stringUtils.js +1 -1
- package/lib/utils/{time.js → isomorphic/time.js} +1 -13
- package/lib/utils/{timeoutRunner.js → isomorphic/timeoutRunner.js} +4 -4
- package/lib/utils/isomorphic/traceUtils.js +23 -0
- package/lib/{utils/index.js → utils.js} +200 -121
- package/lib/utilsBundle.js +1 -25
- package/lib/utilsBundleImpl/index.js +114 -116
- package/lib/vite/htmlReport/index.html +20 -20
- package/lib/vite/recorder/assets/codeMirrorModule-B9YMkrwa.js +24 -0
- package/lib/vite/recorder/assets/index-ELPgmkwA.js +184 -0
- package/lib/vite/recorder/index.html +1 -1
- package/lib/vite/traceViewer/assets/codeMirrorModule-DpJ-EmBQ.js +24 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-DTenqiGw.js +259 -0
- package/lib/vite/traceViewer/assets/{xtermModule-c-SNdYZy.js → xtermModule-BoAIEibi.js} +7 -7
- package/lib/vite/traceViewer/defaultSettingsView.5fN5lw10.css +1 -0
- package/lib/vite/traceViewer/index.CUq7VgrV.js +2 -0
- package/lib/vite/traceViewer/index.html +3 -3
- package/lib/vite/traceViewer/sw.bundle.js +3 -3
- package/lib/vite/traceViewer/uiMode.CHJSAD7F.js +5 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/zipBundleImpl.js +4 -4
- package/package.json +7 -7
- package/types/protocol.d.ts +123 -99
- package/types/types.d.ts +91 -37
- package/lib/utils/stackTrace.js +0 -134
- package/lib/utils/traceUtils.js +0 -44
- package/lib/vite/recorder/assets/codeMirrorModule-CNAqJrkA.js +0 -24
- package/lib/vite/recorder/assets/index-DGS0JLxS.js +0 -184
- package/lib/vite/traceViewer/assets/codeMirrorModule-D55P_UuL.js +0 -24
- package/lib/vite/traceViewer/assets/defaultSettingsView-B-uNoFsX.js +0 -243
- package/lib/vite/traceViewer/defaultSettingsView.2xeEXCXv.css +0 -1
- package/lib/vite/traceViewer/index.BfvuujqP.js +0 -2
- package/lib/vite/traceViewer/uiMode.CStJu6jo.js +0 -5
- /package/lib/{utils → server/utils}/ascii.js +0 -0
- /package/lib/{utils → server/utils}/eventsHelper.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/colorUtils.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/compare.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/imageChannel.js +0 -0
- /package/lib/{image_tools → server/utils/image_tools}/stats.js +0 -0
- /package/lib/{utils → server/utils}/spawnAsync.js +0 -0
- /package/lib/{utils → server/utils}/task.js +0 -0
- /package/lib/utils/{headers.js → isomorphic/headers.js} +0 -0
- /package/lib/utils/{semaphore.js → isomorphic/semaphore.js} +0 -0
- /package/lib/{common → utils/isomorphic}/types.js +0 -0
package/lib/server/dom.js
CHANGED
|
@@ -10,15 +10,15 @@ exports.kUnableToAdoptErrorMessage = void 0;
|
|
|
10
10
|
exports.throwElementIsNotAttached = throwElementIsNotAttached;
|
|
11
11
|
exports.throwRetargetableDOMError = throwRetargetableDOMError;
|
|
12
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
13
|
-
var injectedScriptSource = _interopRequireWildcard(require("../generated/injectedScriptSource"));
|
|
14
|
-
var _protocolError = require("./protocolError");
|
|
15
13
|
var js = _interopRequireWildcard(require("./javascript"));
|
|
16
14
|
var _progress = require("./progress");
|
|
17
15
|
var _utils = require("../utils");
|
|
18
16
|
var _fileUploadUtils = require("./fileUploadUtils");
|
|
17
|
+
var _protocolError = require("./protocolError");
|
|
18
|
+
var injectedScriptSource = _interopRequireWildcard(require("../generated/injectedScriptSource"));
|
|
19
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); }
|
|
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 &&
|
|
21
|
-
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 }; }
|
|
22
22
|
/**
|
|
23
23
|
* Copyright (c) Microsoft Corporation.
|
|
24
24
|
*
|
|
@@ -71,10 +71,6 @@ class FrameExecutionContext extends js.ExecutionContext {
|
|
|
71
71
|
returnByValue: false
|
|
72
72
|
}, arg);
|
|
73
73
|
}
|
|
74
|
-
createHandle(remoteObject) {
|
|
75
|
-
if (this.frame._page._delegate.isElementHandle(remoteObject)) return new ElementHandle(this, remoteObject.objectId);
|
|
76
|
-
return super.createHandle(remoteObject);
|
|
77
|
-
}
|
|
78
74
|
injectedScript() {
|
|
79
75
|
if (!this._injectedScriptPromise) {
|
|
80
76
|
const custom = [];
|
|
@@ -98,7 +94,10 @@ class FrameExecutionContext extends js.ExecutionContext {
|
|
|
98
94
|
);
|
|
99
95
|
})();
|
|
100
96
|
`;
|
|
101
|
-
this._injectedScriptPromise = this.rawEvaluateHandle(source).then(
|
|
97
|
+
this._injectedScriptPromise = this.rawEvaluateHandle(source).then(handle => {
|
|
98
|
+
handle._setPreview('InjectedScript');
|
|
99
|
+
return handle;
|
|
100
|
+
});
|
|
102
101
|
}
|
|
103
102
|
return this._injectedScriptPromise;
|
|
104
103
|
}
|
|
@@ -158,6 +157,13 @@ class ElementHandle extends js.JSHandle {
|
|
|
158
157
|
if (!isFrameElement) return null;
|
|
159
158
|
return this._page._delegate.getContentFrame(this);
|
|
160
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
|
+
}
|
|
161
167
|
async getAttribute(metadata, name) {
|
|
162
168
|
return this._frame.getAttribute(metadata, ':scope', name, {}, this);
|
|
163
169
|
}
|
|
@@ -639,7 +645,7 @@ class ElementHandle extends js.JSHandle {
|
|
|
639
645
|
await this._page._delegate.setInputFilePaths(retargeted, localPathsOrDirectory);
|
|
640
646
|
await waitForInputEvent;
|
|
641
647
|
} else {
|
|
642
|
-
await
|
|
648
|
+
await retargeted.evaluateInUtility(([injected, node, files]) => injected.setInputFiles(node, files), filePayloads);
|
|
643
649
|
}
|
|
644
650
|
return 'done';
|
|
645
651
|
}
|
|
@@ -729,8 +735,8 @@ class ElementHandle extends js.JSHandle {
|
|
|
729
735
|
async boundingBox() {
|
|
730
736
|
return this._page._delegate.getBoundingBox(this);
|
|
731
737
|
}
|
|
732
|
-
async ariaSnapshot() {
|
|
733
|
-
return await this.evaluateInUtility(([injected, element]) => injected.ariaSnapshot(element),
|
|
738
|
+
async ariaSnapshot(options) {
|
|
739
|
+
return await this.evaluateInUtility(([injected, element, options]) => injected.ariaSnapshot(element, options), options);
|
|
734
740
|
}
|
|
735
741
|
async screenshot(metadata, options = {}) {
|
|
736
742
|
const controller = new _progress.ProgressController(metadata, this);
|
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
|
*
|
package/lib/server/fetch.js
CHANGED
|
@@ -8,22 +8,25 @@ 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 _timeoutSettings = require("
|
|
14
|
-
var _userAgent = require("../utils/userAgent");
|
|
13
|
+
var zlib = _interopRequireWildcard(require("zlib"));
|
|
14
|
+
var _timeoutSettings = require("./timeoutSettings");
|
|
15
15
|
var _utils = require("../utils");
|
|
16
|
+
var _crypto = require("./utils/crypto");
|
|
17
|
+
var _userAgent = require("./utils/userAgent");
|
|
16
18
|
var _utilsBundle = require("../utilsBundle");
|
|
17
19
|
var _browserContext = require("./browserContext");
|
|
18
20
|
var _cookieStore = require("./cookieStore");
|
|
19
21
|
var _formData = require("./formData");
|
|
20
|
-
var _happyEyeballs = require("../utils/happy-eyeballs");
|
|
21
22
|
var _instrumentation = require("./instrumentation");
|
|
22
23
|
var _progress = require("./progress");
|
|
23
|
-
var _tracing = require("./trace/recorder/tracing");
|
|
24
24
|
var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
|
|
25
|
-
var
|
|
26
|
-
|
|
25
|
+
var _happyEyeballs = require("./utils/happyEyeballs");
|
|
26
|
+
var _tracing = require("./trace/recorder/tracing");
|
|
27
|
+
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 && {}.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; }
|
|
29
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
30
|
/**
|
|
28
31
|
* Copyright (c) Microsoft Corporation.
|
|
29
32
|
*
|
|
@@ -67,7 +70,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
67
70
|
this.fetchLog.delete(fetchUid);
|
|
68
71
|
}
|
|
69
72
|
_storeResponseBody(body) {
|
|
70
|
-
const uid = (0,
|
|
73
|
+
const uid = (0, _crypto.createGuid)();
|
|
71
74
|
this.fetchResponses.set(uid, body);
|
|
72
75
|
return uid;
|
|
73
76
|
}
|
|
@@ -130,7 +133,8 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
130
133
|
});
|
|
131
134
|
const fetchUid = this._storeResponseBody(fetchResponse.body);
|
|
132
135
|
this.fetchLog.set(fetchUid, controller.metadata.log);
|
|
133
|
-
|
|
136
|
+
const failOnStatusCode = params.failOnStatusCode !== undefined ? params.failOnStatusCode : !!defaults.failOnStatusCode;
|
|
137
|
+
if (failOnStatusCode && (fetchResponse.status < 200 || fetchResponse.status >= 400)) {
|
|
134
138
|
let responseText = '';
|
|
135
139
|
if (fetchResponse.body.byteLength) {
|
|
136
140
|
let text = fetchResponse.body.toString('utf8');
|
|
@@ -172,8 +176,7 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
172
176
|
}
|
|
173
177
|
}
|
|
174
178
|
async _sendRequestWithRetries(progress, url, options, postData, maxRetries) {
|
|
175
|
-
|
|
176
|
-
(_maxRetries = maxRetries) !== null && _maxRetries !== void 0 ? _maxRetries : maxRetries = 0;
|
|
179
|
+
maxRetries !== null && maxRetries !== void 0 ? maxRetries : maxRetries = 0;
|
|
177
180
|
let backoff = 250;
|
|
178
181
|
for (let i = 0; i <= maxRetries; i++) {
|
|
179
182
|
try {
|
|
@@ -230,10 +233,9 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
230
233
|
const request = requestConstructor(url, requestOptions, async response => {
|
|
231
234
|
const responseAt = (0, _utils.monotonicTime)();
|
|
232
235
|
const notifyRequestFinished = body => {
|
|
233
|
-
var _tlsHandshakeAt;
|
|
234
236
|
const endAt = (0, _utils.monotonicTime)();
|
|
235
237
|
// spec: http://www.softwareishard.com/blog/har-12-spec/#timings
|
|
236
|
-
const connectEnd =
|
|
238
|
+
const connectEnd = tlsHandshakeAt !== null && tlsHandshakeAt !== void 0 ? tlsHandshakeAt : tcpConnectionAt;
|
|
237
239
|
const timings = {
|
|
238
240
|
send: requestFinishAt - startAt,
|
|
239
241
|
wait: responseAt - requestFinishAt,
|
|
@@ -357,17 +359,17 @@ class APIRequestContext extends _instrumentation.SdkObject {
|
|
|
357
359
|
let transform;
|
|
358
360
|
const encoding = response.headers['content-encoding'];
|
|
359
361
|
if (encoding === 'gzip' || encoding === 'x-gzip') {
|
|
360
|
-
transform =
|
|
361
|
-
flush:
|
|
362
|
-
finishFlush:
|
|
362
|
+
transform = zlib.createGunzip({
|
|
363
|
+
flush: zlib.constants.Z_SYNC_FLUSH,
|
|
364
|
+
finishFlush: zlib.constants.Z_SYNC_FLUSH
|
|
363
365
|
});
|
|
364
366
|
} else if (encoding === 'br') {
|
|
365
|
-
transform =
|
|
366
|
-
flush:
|
|
367
|
-
finishFlush:
|
|
367
|
+
transform = zlib.createBrotliDecompress({
|
|
368
|
+
flush: zlib.constants.BROTLI_OPERATION_FLUSH,
|
|
369
|
+
finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH
|
|
368
370
|
});
|
|
369
371
|
} else if (encoding === 'deflate') {
|
|
370
|
-
transform =
|
|
372
|
+
transform = zlib.createInflate();
|
|
371
373
|
}
|
|
372
374
|
if (transform) {
|
|
373
375
|
// Brotli and deflate decompressors throw if the input stream is empty.
|
|
@@ -490,6 +492,7 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
|
|
|
490
492
|
return {
|
|
491
493
|
userAgent: this._context._options.userAgent || this._context._browser.userAgent(),
|
|
492
494
|
extraHTTPHeaders: this._context._options.extraHTTPHeaders,
|
|
495
|
+
failOnStatusCode: undefined,
|
|
493
496
|
httpCredentials: this._context._options.httpCredentials,
|
|
494
497
|
proxy: this._context._options.proxy || this._context._browser.options.proxy,
|
|
495
498
|
timeoutSettings: this._context._timeoutSettings,
|
|
@@ -504,8 +507,8 @@ class BrowserContextAPIRequestContext extends APIRequestContext {
|
|
|
504
507
|
async _cookies(url) {
|
|
505
508
|
return await this._context.cookies(url.toString());
|
|
506
509
|
}
|
|
507
|
-
async storageState() {
|
|
508
|
-
return this._context.storageState();
|
|
510
|
+
async storageState(indexedDB) {
|
|
511
|
+
return this._context.storageState(indexedDB);
|
|
509
512
|
}
|
|
510
513
|
}
|
|
511
514
|
exports.BrowserContextAPIRequestContext = BrowserContextAPIRequestContext;
|
|
@@ -526,7 +529,11 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
526
529
|
proxy.server = url;
|
|
527
530
|
}
|
|
528
531
|
if (options.storageState) {
|
|
529
|
-
|
|
532
|
+
var _options$storageState;
|
|
533
|
+
this._origins = (_options$storageState = options.storageState.origins) === null || _options$storageState === void 0 ? void 0 : _options$storageState.map(origin => ({
|
|
534
|
+
indexedDB: [],
|
|
535
|
+
...origin
|
|
536
|
+
}));
|
|
530
537
|
this._cookieStore.addCookies(options.storageState.cookies || []);
|
|
531
538
|
}
|
|
532
539
|
(0, _browserContext.verifyClientCertificates)(options.clientCertificates);
|
|
@@ -534,6 +541,7 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
534
541
|
baseURL: options.baseURL,
|
|
535
542
|
userAgent: options.userAgent || (0, _userAgent.getUserAgent)(),
|
|
536
543
|
extraHTTPHeaders: options.extraHTTPHeaders,
|
|
544
|
+
failOnStatusCode: !!options.failOnStatusCode,
|
|
537
545
|
ignoreHTTPSErrors: !!options.ignoreHTTPSErrors,
|
|
538
546
|
httpCredentials: options.httpCredentials,
|
|
539
547
|
clientCertificates: options.clientCertificates,
|
|
@@ -560,10 +568,13 @@ class GlobalAPIRequestContext extends APIRequestContext {
|
|
|
560
568
|
async _cookies(url) {
|
|
561
569
|
return this._cookieStore.cookies(url);
|
|
562
570
|
}
|
|
563
|
-
async storageState() {
|
|
571
|
+
async storageState(indexedDB = false) {
|
|
564
572
|
return {
|
|
565
573
|
cookies: this._cookieStore.allCookies(),
|
|
566
|
-
origins: this._origins || []
|
|
574
|
+
origins: (this._origins || []).map(origin => ({
|
|
575
|
+
...origin,
|
|
576
|
+
indexedDB: indexedDB ? origin.indexedDB : []
|
|
577
|
+
}))
|
|
567
578
|
};
|
|
568
579
|
}
|
|
569
580
|
}
|
|
@@ -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.
|
|
@@ -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', {
|
|
@@ -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,16 +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
|
|
56
|
+
return createHandle(context, payload.result);
|
|
54
57
|
}
|
|
55
|
-
async evaluateWithArguments(expression, returnByValue, utilityScript, values,
|
|
58
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
56
59
|
const payload = await this._session.send('Runtime.callFunction', {
|
|
57
60
|
functionDeclaration: expression,
|
|
58
61
|
args: [{
|
|
@@ -60,8 +63,8 @@ class FFExecutionContext {
|
|
|
60
63
|
value: undefined
|
|
61
64
|
}, ...values.map(value => ({
|
|
62
65
|
value
|
|
63
|
-
})), ...
|
|
64
|
-
objectId,
|
|
66
|
+
})), ...handles.map(handle => ({
|
|
67
|
+
objectId: handle._objectId,
|
|
65
68
|
value: undefined
|
|
66
69
|
}))],
|
|
67
70
|
returnByValue,
|
|
@@ -69,24 +72,22 @@ class FFExecutionContext {
|
|
|
69
72
|
}).catch(rewriteError);
|
|
70
73
|
checkException(payload.exceptionDetails);
|
|
71
74
|
if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(payload.result.value);
|
|
72
|
-
return utilityScript._context
|
|
75
|
+
return createHandle(utilityScript._context, payload.result);
|
|
73
76
|
}
|
|
74
|
-
async getProperties(
|
|
77
|
+
async getProperties(object) {
|
|
75
78
|
const response = await this._session.send('Runtime.getObjectProperties', {
|
|
76
79
|
executionContextId: this._executionContextId,
|
|
77
|
-
objectId
|
|
80
|
+
objectId: object._objectId
|
|
78
81
|
});
|
|
79
82
|
const result = new Map();
|
|
80
|
-
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));
|
|
81
84
|
return result;
|
|
82
85
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
async releaseHandle(objectId) {
|
|
86
|
+
async releaseHandle(handle) {
|
|
87
|
+
if (!handle._objectId) return;
|
|
87
88
|
await this._session.send('Runtime.disposeObject', {
|
|
88
89
|
executionContextId: this._executionContextId,
|
|
89
|
-
objectId
|
|
90
|
+
objectId: handle._objectId
|
|
90
91
|
});
|
|
91
92
|
}
|
|
92
93
|
}
|
|
@@ -120,4 +121,11 @@ function renderPreview(object) {
|
|
|
120
121
|
if (object.subtype === 'weakset') return 'WeakSet';
|
|
121
122
|
if (object.subtype) return object.subtype[0].toUpperCase() + object.subtype.slice(1);
|
|
122
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));
|
|
123
131
|
}
|
|
@@ -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.
|
|
@@ -4,21 +4,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.UTILITY_WORLD_NAME = exports.FFPage = void 0;
|
|
7
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
7
8
|
var dialog = _interopRequireWildcard(require("../dialog"));
|
|
8
9
|
var dom = _interopRequireWildcard(require("../dom"));
|
|
9
|
-
var _eventsHelper = require("../../utils/eventsHelper");
|
|
10
10
|
var _page = require("../page");
|
|
11
11
|
var _ffAccessibility = require("./ffAccessibility");
|
|
12
12
|
var _ffConnection = require("./ffConnection");
|
|
13
13
|
var _ffExecutionContext = require("./ffExecutionContext");
|
|
14
14
|
var _ffInput = require("./ffInput");
|
|
15
15
|
var _ffNetworkManager = require("./ffNetworkManager");
|
|
16
|
-
var
|
|
17
|
-
var
|
|
16
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
17
|
+
var _stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
18
18
|
var _browserContext = require("../browserContext");
|
|
19
19
|
var _errors = require("../errors");
|
|
20
20
|
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); }
|
|
21
|
-
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 &&
|
|
21
|
+
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; }
|
|
22
22
|
/**
|
|
23
23
|
* Copyright 2019 Google Inc. All rights reserved.
|
|
24
24
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -109,7 +109,6 @@ class FFPage {
|
|
|
109
109
|
let worldName = null;
|
|
110
110
|
if (auxData.name === UTILITY_WORLD_NAME) worldName = 'utility';else if (!auxData.name) worldName = 'main';
|
|
111
111
|
const context = new dom.FrameExecutionContext(delegate, frame, worldName);
|
|
112
|
-
context[contextDelegateSymbol] = delegate;
|
|
113
112
|
if (worldName) frame._contextCreated(worldName, context);
|
|
114
113
|
this._contextIdToContext.set(executionContextId, context);
|
|
115
114
|
}
|
|
@@ -186,7 +185,7 @@ class FFPage {
|
|
|
186
185
|
const context = this._contextIdToContext.get(executionContextId);
|
|
187
186
|
if (!context) return;
|
|
188
187
|
// Juggler reports 'warn' for some internal messages generated by the browser.
|
|
189
|
-
this._page._addConsoleMessage(type === 'warn' ? 'warning' : type, args.map(arg =>
|
|
188
|
+
this._page._addConsoleMessage(type === 'warn' ? 'warning' : type, args.map(arg => (0, _ffExecutionContext.createHandle)(context, arg)), location);
|
|
190
189
|
}
|
|
191
190
|
_onDialogOpened(params) {
|
|
192
191
|
this._page.emitOnContext(_browserContext.BrowserContext.Events.Dialog, new dialog.Dialog(this._page, params.type, params.message, async (accept, promptText) => {
|
|
@@ -211,7 +210,7 @@ class FFPage {
|
|
|
211
210
|
} = payload;
|
|
212
211
|
const context = this._contextIdToContext.get(executionContextId);
|
|
213
212
|
if (!context) return;
|
|
214
|
-
const handle =
|
|
213
|
+
const handle = (0, _ffExecutionContext.createHandle)(context, element).asElement();
|
|
215
214
|
await this._page._onFileChooserOpened(handle);
|
|
216
215
|
}
|
|
217
216
|
async _onWorkerCreated(event) {
|
|
@@ -249,7 +248,7 @@ class FFPage {
|
|
|
249
248
|
location
|
|
250
249
|
} = event;
|
|
251
250
|
const context = worker._existingExecutionContext;
|
|
252
|
-
this._page._addConsoleMessage(type, args.map(arg =>
|
|
251
|
+
this._page._addConsoleMessage(type, args.map(arg => (0, _ffExecutionContext.createHandle)(context, arg)), location);
|
|
253
252
|
});
|
|
254
253
|
// Note: we receive worker exceptions directly from the page.
|
|
255
254
|
}
|
|
@@ -309,12 +308,14 @@ class FFPage {
|
|
|
309
308
|
const colorScheme = emulatedMedia.colorScheme === 'no-override' ? undefined : emulatedMedia.colorScheme;
|
|
310
309
|
const reducedMotion = emulatedMedia.reducedMotion === 'no-override' ? undefined : emulatedMedia.reducedMotion;
|
|
311
310
|
const forcedColors = emulatedMedia.forcedColors === 'no-override' ? undefined : emulatedMedia.forcedColors;
|
|
311
|
+
const contrast = emulatedMedia.contrast === 'no-override' ? undefined : emulatedMedia.contrast;
|
|
312
312
|
await this._session.send('Page.setEmulatedMedia', {
|
|
313
313
|
// Empty string means reset.
|
|
314
314
|
type: emulatedMedia.media === 'no-override' ? '' : emulatedMedia.media,
|
|
315
315
|
colorScheme,
|
|
316
316
|
reducedMotion,
|
|
317
|
-
forcedColors
|
|
317
|
+
forcedColors,
|
|
318
|
+
contrast
|
|
318
319
|
});
|
|
319
320
|
}
|
|
320
321
|
async updateRequestInterception() {
|
|
@@ -420,9 +421,6 @@ class FFPage {
|
|
|
420
421
|
});
|
|
421
422
|
return ownerFrameId || null;
|
|
422
423
|
}
|
|
423
|
-
isElementHandle(remoteObject) {
|
|
424
|
-
return remoteObject.subtype === 'node';
|
|
425
|
-
}
|
|
426
424
|
async getBoundingBox(handle) {
|
|
427
425
|
const quads = await this.getContentQuads(handle);
|
|
428
426
|
if (!quads || !quads.length) return null;
|
|
@@ -492,9 +490,6 @@ class FFPage {
|
|
|
492
490
|
if (!result) return null;
|
|
493
491
|
return result.quads.map(quad => [quad.p1, quad.p2, quad.p3, quad.p4]);
|
|
494
492
|
}
|
|
495
|
-
async setInputFiles(handle, files) {
|
|
496
|
-
await handle.evaluateInUtility(([injected, node, files]) => injected.setInputFiles(node, files), files);
|
|
497
|
-
}
|
|
498
493
|
async setInputFilePaths(handle, files) {
|
|
499
494
|
await this._session.send('Page.setFileInputFiles', {
|
|
500
495
|
frameId: handle._context.frame._id,
|
|
@@ -506,10 +501,10 @@ class FFPage {
|
|
|
506
501
|
const result = await this._session.send('Page.adoptNode', {
|
|
507
502
|
frameId: handle._context.frame._id,
|
|
508
503
|
objectId: handle._objectId,
|
|
509
|
-
executionContextId: to
|
|
504
|
+
executionContextId: to.delegate._executionContextId
|
|
510
505
|
});
|
|
511
506
|
if (!result.remoteObject) throw new Error(dom.kUnableToAdoptErrorMessage);
|
|
512
|
-
return
|
|
507
|
+
return (0, _ffExecutionContext.createHandle)(to, result.remoteObject);
|
|
513
508
|
}
|
|
514
509
|
async getAccessibilityTree(needle) {
|
|
515
510
|
return (0, _ffAccessibility.getAccessibilityTree)(this._session, needle);
|
|
@@ -528,10 +523,10 @@ class FFPage {
|
|
|
528
523
|
const context = await parent._mainContext();
|
|
529
524
|
const result = await this._session.send('Page.adoptNode', {
|
|
530
525
|
frameId: frame._id,
|
|
531
|
-
executionContextId: context
|
|
526
|
+
executionContextId: context.delegate._executionContextId
|
|
532
527
|
});
|
|
533
528
|
if (!result.remoteObject) throw new Error('Frame has been detached.');
|
|
534
|
-
return
|
|
529
|
+
return (0, _ffExecutionContext.createHandle)(context, result.remoteObject);
|
|
535
530
|
}
|
|
536
531
|
shouldToggleStyleSheetToSyncAnimations() {
|
|
537
532
|
return false;
|
|
@@ -540,5 +535,4 @@ class FFPage {
|
|
|
540
535
|
exports.FFPage = FFPage;
|
|
541
536
|
function webSocketId(frameId, wsid) {
|
|
542
537
|
return `${frameId}---${wsid}`;
|
|
543
|
-
}
|
|
544
|
-
const contextDelegateSymbol = Symbol('delegate');
|
|
538
|
+
}
|