patchright-core 1.50.1 → 1.51.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 +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
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AndroidSocketDispatcher = exports.AndroidDispatcher = exports.AndroidDeviceDispatcher = void 0;
|
|
7
|
+
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
7
8
|
var _dispatcher = require("./dispatcher");
|
|
8
9
|
var _android = require("../android/android");
|
|
9
|
-
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ArtifactDispatcher = void 0;
|
|
7
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
7
8
|
var _dispatcher = require("./dispatcher");
|
|
8
9
|
var _streamDispatcher = require("./streamDispatcher");
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
var _fileUtils = require("../utils/fileUtils");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -4,26 +4,26 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BrowserContextDispatcher = void 0;
|
|
7
|
+
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
7
9
|
var _browserContext = require("../browserContext");
|
|
10
|
+
var _artifactDispatcher = require("./artifactDispatcher");
|
|
11
|
+
var _cdpSessionDispatcher = require("./cdpSessionDispatcher");
|
|
12
|
+
var _dialogDispatcher = require("./dialogDispatcher");
|
|
8
13
|
var _dispatcher = require("./dispatcher");
|
|
9
|
-
var
|
|
14
|
+
var _elementHandlerDispatcher = require("./elementHandlerDispatcher");
|
|
10
15
|
var _networkDispatchers = require("./networkDispatchers");
|
|
16
|
+
var _pageDispatcher = require("./pageDispatcher");
|
|
11
17
|
var _crBrowser = require("../chromium/crBrowser");
|
|
12
|
-
var
|
|
18
|
+
var _errors = require("../errors");
|
|
13
19
|
var _recorder = require("../recorder");
|
|
14
|
-
var _artifactDispatcher = require("./artifactDispatcher");
|
|
15
20
|
var _tracingDispatcher = require("./tracingDispatcher");
|
|
16
|
-
var
|
|
17
|
-
var path = _interopRequireWildcard(require("path"));
|
|
18
|
-
var _utils = require("../../utils");
|
|
21
|
+
var _webSocketRouteDispatcher = require("./webSocketRouteDispatcher");
|
|
19
22
|
var _writableStreamDispatcher = require("./writableStreamDispatcher");
|
|
20
|
-
var
|
|
21
|
-
var
|
|
22
|
-
var _elementHandlerDispatcher = require("./elementHandlerDispatcher");
|
|
23
|
+
var _crypto = require("../utils/crypto");
|
|
24
|
+
var _urlMatch = require("../../utils/isomorphic/urlMatch");
|
|
23
25
|
var _recorderApp = require("../recorder/recorderApp");
|
|
24
|
-
|
|
25
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
26
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.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; }
|
|
26
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
27
|
/**
|
|
28
28
|
* Copyright (c) Microsoft Corporation.
|
|
29
29
|
*
|
|
@@ -186,19 +186,19 @@ class BrowserContextDispatcher extends _dispatcher.Dispatcher {
|
|
|
186
186
|
}
|
|
187
187
|
async createTempFiles(params) {
|
|
188
188
|
const dir = this._context._browser.options.artifactsDir;
|
|
189
|
-
const tmpDir =
|
|
190
|
-
const tempDirWithRootName = params.rootDirName ?
|
|
191
|
-
await
|
|
189
|
+
const tmpDir = _path.default.join(dir, 'upload-' + (0, _crypto.createGuid)());
|
|
190
|
+
const tempDirWithRootName = params.rootDirName ? _path.default.join(tmpDir, _path.default.basename(params.rootDirName)) : tmpDir;
|
|
191
|
+
await _fs.default.promises.mkdir(tempDirWithRootName, {
|
|
192
192
|
recursive: true
|
|
193
193
|
});
|
|
194
194
|
this._context._tempDirs.push(tmpDir);
|
|
195
195
|
return {
|
|
196
196
|
rootDir: params.rootDirName ? new _writableStreamDispatcher.WritableStreamDispatcher(this, tempDirWithRootName) : undefined,
|
|
197
197
|
writableStreams: await Promise.all(params.items.map(async item => {
|
|
198
|
-
await
|
|
198
|
+
await _fs.default.promises.mkdir(_path.default.dirname(_path.default.join(tempDirWithRootName, item.name)), {
|
|
199
199
|
recursive: true
|
|
200
200
|
});
|
|
201
|
-
const file =
|
|
201
|
+
const file = _fs.default.createWriteStream(_path.default.join(tempDirWithRootName, item.name));
|
|
202
202
|
return new _writableStreamDispatcher.WritableStreamDispatcher(this, file, item.lastModifiedMs);
|
|
203
203
|
}))
|
|
204
204
|
};
|
|
@@ -273,7 +273,7 @@ class BrowserContextDispatcher extends _dispatcher.Dispatcher {
|
|
|
273
273
|
}
|
|
274
274
|
const urlMatchers = params.patterns.map(pattern => pattern.regexSource ? new RegExp(pattern.regexSource, pattern.regexFlags) : pattern.glob);
|
|
275
275
|
await this._context.setRequestInterceptor((route, request) => {
|
|
276
|
-
const matchesSome = urlMatchers.some(urlMatch => (0,
|
|
276
|
+
const matchesSome = urlMatchers.some(urlMatch => (0, _urlMatch.urlMatches)(this._context._options.baseURL, request.url(), urlMatch));
|
|
277
277
|
if (!matchesSome) return false;
|
|
278
278
|
this._dispatchEvent('route', {
|
|
279
279
|
route: _networkDispatchers.RouteDispatcher.from(_networkDispatchers.RequestDispatcher.from(this, request), route)
|
|
@@ -286,7 +286,7 @@ class BrowserContextDispatcher extends _dispatcher.Dispatcher {
|
|
|
286
286
|
if (params.patterns.length) await _webSocketRouteDispatcher.WebSocketRouteDispatcher.installIfNeeded(this._context);
|
|
287
287
|
}
|
|
288
288
|
async storageState(params, metadata) {
|
|
289
|
-
return await this._context.storageState();
|
|
289
|
+
return await this._context.storageState(params.indexedDB);
|
|
290
290
|
}
|
|
291
291
|
async close(params, metadata) {
|
|
292
292
|
metadata.potentiallyClosesScope = true;
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BrowserTypeDispatcher = void 0;
|
|
7
|
+
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
7
8
|
var _browserDispatcher = require("./browserDispatcher");
|
|
8
9
|
var _dispatcher = require("./dispatcher");
|
|
9
|
-
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
10
10
|
/**
|
|
11
11
|
* Copyright (c) Microsoft Corporation.
|
|
12
12
|
*
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CDPSessionDispatcher = void 0;
|
|
7
|
-
var _crConnection = require("../chromium/crConnection");
|
|
8
7
|
var _dispatcher = require("./dispatcher");
|
|
8
|
+
var _crConnection = require("../chromium/crConnection");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -7,12 +7,14 @@ exports.dispatcherSymbol = exports.RootDispatcher = exports.DispatcherConnection
|
|
|
7
7
|
exports.existingDispatcher = existingDispatcher;
|
|
8
8
|
exports.setMaxDispatchersForTest = setMaxDispatchersForTest;
|
|
9
9
|
var _events = require("events");
|
|
10
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
10
11
|
var _validator = require("../../protocol/validator");
|
|
11
12
|
var _utils = require("../../utils");
|
|
13
|
+
var _debug = require("../utils/debug");
|
|
12
14
|
var _errors = require("../errors");
|
|
13
15
|
var _instrumentation = require("../instrumentation");
|
|
14
|
-
var _eventsHelper = require("../..//utils/eventsHelper");
|
|
15
16
|
var _protocolError = require("../protocolError");
|
|
17
|
+
var _callLog = require("../callLog");
|
|
16
18
|
/**
|
|
17
19
|
* Copyright (c) Microsoft Corporation.
|
|
18
20
|
*
|
|
@@ -39,8 +41,8 @@ function setMaxDispatchersForTest(value) {
|
|
|
39
41
|
maxDispatchersOverride = value;
|
|
40
42
|
}
|
|
41
43
|
function maxDispatchersForBucket(gcBucket) {
|
|
42
|
-
var _ref
|
|
43
|
-
return (_ref =
|
|
44
|
+
var _ref;
|
|
45
|
+
return (_ref = maxDispatchersOverride !== null && maxDispatchersOverride !== void 0 ? maxDispatchersOverride : {
|
|
44
46
|
'JSHandle': 100000,
|
|
45
47
|
'ElementHandle': 100000
|
|
46
48
|
}[gcBucket]) !== null && _ref !== void 0 ? _ref : 10000;
|
|
@@ -101,7 +103,7 @@ class Dispatcher extends _events.EventEmitter {
|
|
|
101
103
|
}
|
|
102
104
|
_dispatchEvent(method, params) {
|
|
103
105
|
if (this._disposed) {
|
|
104
|
-
if ((0,
|
|
106
|
+
if ((0, _debug.isUnderTest)()) throw new Error(`${this._guid} is sending "${String(method)}" event after being disposed`);
|
|
105
107
|
// Just ignore this event outside of tests.
|
|
106
108
|
return;
|
|
107
109
|
}
|
|
@@ -171,10 +173,7 @@ class DispatcherConnection {
|
|
|
171
173
|
}
|
|
172
174
|
sendEvent(dispatcher, event, params) {
|
|
173
175
|
const validator = (0, _validator.findValidator)(dispatcher._type, event, 'Event');
|
|
174
|
-
params = validator(params, '',
|
|
175
|
-
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
176
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
177
|
-
});
|
|
176
|
+
params = validator(params, '', this._validatorToWireContext());
|
|
178
177
|
this.onmessage({
|
|
179
178
|
guid: dispatcher._guid,
|
|
180
179
|
method: event,
|
|
@@ -183,10 +182,7 @@ class DispatcherConnection {
|
|
|
183
182
|
}
|
|
184
183
|
sendCreate(parent, type, guid, initializer) {
|
|
185
184
|
const validator = (0, _validator.findValidator)(type, '', 'Initializer');
|
|
186
|
-
initializer = validator(initializer, '',
|
|
187
|
-
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
188
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
189
|
-
});
|
|
185
|
+
initializer = validator(initializer, '', this._validatorToWireContext());
|
|
190
186
|
this.onmessage({
|
|
191
187
|
guid: parent._guid,
|
|
192
188
|
method: '__create__',
|
|
@@ -215,6 +211,20 @@ class DispatcherConnection {
|
|
|
215
211
|
}
|
|
216
212
|
});
|
|
217
213
|
}
|
|
214
|
+
_validatorToWireContext() {
|
|
215
|
+
return {
|
|
216
|
+
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
217
|
+
binary: this._isLocal ? 'buffer' : 'toBase64',
|
|
218
|
+
isUnderTest: _debug.isUnderTest
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
_validatorFromWireContext() {
|
|
222
|
+
return {
|
|
223
|
+
tChannelImpl: this._tChannelImplFromWire.bind(this),
|
|
224
|
+
binary: this._isLocal ? 'buffer' : 'fromBase64',
|
|
225
|
+
isUnderTest: _debug.isUnderTest
|
|
226
|
+
};
|
|
227
|
+
}
|
|
218
228
|
_tChannelImplFromWire(names, arg, path, context) {
|
|
219
229
|
if (arg && typeof arg === 'object' && typeof arg.guid === 'string') {
|
|
220
230
|
const guid = arg.guid;
|
|
@@ -278,14 +288,9 @@ class DispatcherConnection {
|
|
|
278
288
|
let validMetadata;
|
|
279
289
|
try {
|
|
280
290
|
const validator = (0, _validator.findValidator)(dispatcher._type, method, 'Params');
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
});
|
|
285
|
-
validMetadata = metadataValidator(metadata, '', {
|
|
286
|
-
tChannelImpl: this._tChannelImplFromWire.bind(this),
|
|
287
|
-
binary: this._isLocal ? 'buffer' : 'fromBase64'
|
|
288
|
-
});
|
|
291
|
+
const validatorContext = this._validatorFromWireContext();
|
|
292
|
+
validParams = validator(params, '', validatorContext);
|
|
293
|
+
validMetadata = metadataValidator(metadata, '', validatorContext);
|
|
289
294
|
if (typeof dispatcher[method] !== 'function') throw new Error(`Mismatching dispatcher: "${dispatcher._type}" does not implement "${method}"`);
|
|
290
295
|
} catch (e) {
|
|
291
296
|
this.onmessage({
|
|
@@ -360,10 +365,7 @@ class DispatcherConnection {
|
|
|
360
365
|
try {
|
|
361
366
|
const result = await dispatcher._handleCommand(callMetadata, method, validParams);
|
|
362
367
|
const validator = (0, _validator.findValidator)(dispatcher._type, method, 'Result');
|
|
363
|
-
response.result = validator(result, '',
|
|
364
|
-
tChannelImpl: this._tChannelImplToWire.bind(this),
|
|
365
|
-
binary: this._isLocal ? 'buffer' : 'toBase64'
|
|
366
|
-
});
|
|
368
|
+
response.result = validator(result, '', this._validatorToWireContext());
|
|
367
369
|
callMetadata.result = result;
|
|
368
370
|
} catch (e) {
|
|
369
371
|
if ((0, _errors.isTargetClosedError)(e) && sdkObject) {
|
|
@@ -384,7 +386,7 @@ class DispatcherConnection {
|
|
|
384
386
|
callMetadata.endTime = (0, _utils.monotonicTime)();
|
|
385
387
|
await (sdkObject === null || sdkObject === void 0 ? void 0 : sdkObject.instrumentation.onAfterCall(sdkObject, callMetadata));
|
|
386
388
|
}
|
|
387
|
-
if (response.error) response.log = (0,
|
|
389
|
+
if (response.error) response.log = (0, _callLog.compressCallLog)(callMetadata.log);
|
|
388
390
|
this.onmessage(response);
|
|
389
391
|
}
|
|
390
392
|
}
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ElectronDispatcher = exports.ElectronApplicationDispatcher = void 0;
|
|
7
|
-
var _dispatcher = require("./dispatcher");
|
|
8
|
-
var _electron = require("../electron/electron");
|
|
9
7
|
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
10
|
-
var
|
|
8
|
+
var _dispatcher = require("./dispatcher");
|
|
11
9
|
var _elementHandlerDispatcher = require("./elementHandlerDispatcher");
|
|
10
|
+
var _jsHandleDispatcher = require("./jsHandleDispatcher");
|
|
11
|
+
var _electron = require("../electron/electron");
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ElementHandleDispatcher = void 0;
|
|
7
|
+
var _browserContextDispatcher = require("./browserContextDispatcher");
|
|
7
8
|
var _dispatcher = require("./dispatcher");
|
|
8
|
-
var _jsHandleDispatcher = require("./jsHandleDispatcher");
|
|
9
9
|
var _frameDispatcher = require("./frameDispatcher");
|
|
10
|
-
var
|
|
10
|
+
var _jsHandleDispatcher = require("./jsHandleDispatcher");
|
|
11
11
|
var _pageDispatcher = require("./pageDispatcher");
|
|
12
12
|
/**
|
|
13
13
|
* Copyright (c) Microsoft Corporation.
|
|
@@ -56,6 +56,11 @@ class ElementHandleDispatcher extends _jsHandleDispatcher.JSHandleDispatcher {
|
|
|
56
56
|
frame: frame ? _frameDispatcher.FrameDispatcher.from(this._browserContextDispatcher(), frame) : undefined
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
+
async generateLocatorString(params, metadata) {
|
|
60
|
+
return {
|
|
61
|
+
value: await this._elementHandle.generateLocatorString()
|
|
62
|
+
};
|
|
63
|
+
}
|
|
59
64
|
async getAttribute(params, metadata) {
|
|
60
65
|
const value = await this._elementHandle.getAttribute(metadata, params.name);
|
|
61
66
|
return {
|
|
@@ -9,7 +9,6 @@ var _dispatcher = require("./dispatcher");
|
|
|
9
9
|
var _elementHandlerDispatcher = require("./elementHandlerDispatcher");
|
|
10
10
|
var _jsHandleDispatcher = require("./jsHandleDispatcher");
|
|
11
11
|
var _networkDispatchers = require("./networkDispatchers");
|
|
12
|
-
var _utils = require("../../utils");
|
|
13
12
|
var _ariaSnapshot = require("../../utils/isomorphic/ariaSnapshot");
|
|
14
13
|
var _utilsBundle = require("../../utilsBundle");
|
|
15
14
|
/**
|
|
@@ -41,7 +40,6 @@ class FrameDispatcher extends _dispatcher.Dispatcher {
|
|
|
41
40
|
// Main frames are gc'ed separately from any other frames, so that
|
|
42
41
|
// methods on Page that redirect to the main frame remain operational.
|
|
43
42
|
// Note: we cannot check parentFrame() here because it may be null after the frame has been detached.
|
|
44
|
-
(0, _utils.debugAssert)(frame._page.mainFrame(), 'Cannot determine whether the frame is a main frame');
|
|
45
43
|
const gcBucket = frame._page.mainFrame() === frame ? 'MainFrame' : 'Frame';
|
|
46
44
|
const pageDispatcher = (0, _dispatcher.existingDispatcher)(frame._page);
|
|
47
45
|
super(pageDispatcher || scope, frame, 'Frame', {
|
|
@@ -91,14 +89,16 @@ class FrameDispatcher extends _dispatcher.Dispatcher {
|
|
|
91
89
|
async evaluateExpression(params, metadata) {
|
|
92
90
|
return {
|
|
93
91
|
value: (0, _jsHandleDispatcher.serializeResult)(await this._frame.evaluateExpression(params.expression, {
|
|
94
|
-
isFunction: params.isFunction
|
|
92
|
+
isFunction: params.isFunction,
|
|
93
|
+
world: params.isolatedContext ? 'utility' : 'main'
|
|
95
94
|
}, (0, _jsHandleDispatcher.parseArgument)(params.arg)))
|
|
96
95
|
};
|
|
97
96
|
}
|
|
98
97
|
async evaluateExpressionHandle(params, metadata) {
|
|
99
98
|
return {
|
|
100
99
|
handle: _elementHandlerDispatcher.ElementHandleDispatcher.fromJSHandle(this, await this._frame.evaluateExpressionHandle(params.expression, {
|
|
101
|
-
isFunction: params.isFunction
|
|
100
|
+
isFunction: params.isFunction,
|
|
101
|
+
world: params.isolatedContext ? 'utility' : 'main'
|
|
102
102
|
}, (0, _jsHandleDispatcher.parseArgument)(params.arg)))
|
|
103
103
|
};
|
|
104
104
|
}
|
|
@@ -41,13 +41,13 @@ class JSHandleDispatcher extends _dispatcher.Dispatcher {
|
|
|
41
41
|
return {
|
|
42
42
|
value: serializeResult(await this._object.evaluateExpression(params.expression, {
|
|
43
43
|
isFunction: params.isFunction
|
|
44
|
-
}, parseArgument(params.arg)))
|
|
44
|
+
}, parseArgument(params.arg), params.isolatedContext))
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
47
|
async evaluateExpressionHandle(params) {
|
|
48
48
|
const jsHandle = await this._object.evaluateExpressionHandle(params.expression, {
|
|
49
49
|
isFunction: params.isFunction
|
|
50
|
-
}, parseArgument(params.arg));
|
|
50
|
+
}, parseArgument(params.arg), params.isolatedContext);
|
|
51
51
|
return {
|
|
52
52
|
handle: _elementHandlerDispatcher.ElementHandleDispatcher.fromJSHandle(this.parentScope(), jsHandle)
|
|
53
53
|
};
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.JsonPipeDispatcher = void 0;
|
|
7
7
|
var _dispatcher = require("./dispatcher");
|
|
8
|
-
var
|
|
8
|
+
var _crypto = require("../utils/crypto");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -25,7 +25,7 @@ var _utils = require("../../utils");
|
|
|
25
25
|
class JsonPipeDispatcher extends _dispatcher.Dispatcher {
|
|
26
26
|
constructor(scope) {
|
|
27
27
|
super(scope, {
|
|
28
|
-
guid: 'jsonPipe@' + (0,
|
|
28
|
+
guid: 'jsonPipe@' + (0, _crypto.createGuid)()
|
|
29
29
|
}, 'JsonPipe', {});
|
|
30
30
|
this._type_JsonPipe = true;
|
|
31
31
|
}
|