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
package/lib/inProcessFactory.js
CHANGED
|
@@ -4,10 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.createInProcessPlaywright = createInProcessPlaywright;
|
|
7
|
+
var _androidServerImpl = require("./androidServerImpl");
|
|
8
|
+
var _browserServerImpl = require("./browserServerImpl");
|
|
7
9
|
var _server = require("./server");
|
|
10
|
+
var _nodePlatform = require("./server/utils/nodePlatform");
|
|
8
11
|
var _connection = require("./client/connection");
|
|
9
|
-
var
|
|
10
|
-
var _androidServerImpl = require("./androidServerImpl");
|
|
12
|
+
var _selectors = require("./client/selectors");
|
|
11
13
|
/**
|
|
12
14
|
* Copyright (c) Microsoft Corporation.
|
|
13
15
|
*
|
|
@@ -28,7 +30,8 @@ function createInProcessPlaywright() {
|
|
|
28
30
|
const playwright = (0, _server.createPlaywright)({
|
|
29
31
|
sdkLanguage: process.env.PW_LANG_NAME || 'javascript'
|
|
30
32
|
});
|
|
31
|
-
|
|
33
|
+
(0, _selectors.setPlatformForSelectors)(_nodePlatform.nodePlatform);
|
|
34
|
+
const clientConnection = new _connection.Connection(_nodePlatform.nodePlatform);
|
|
32
35
|
clientConnection.useRawBuffers();
|
|
33
36
|
const dispatcherConnection = new _server.DispatcherConnection(true /* local */);
|
|
34
37
|
|
package/lib/outofprocess.js
CHANGED
|
@@ -4,13 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.start = start;
|
|
7
|
-
var _connection = require("./client/connection");
|
|
8
|
-
var _transport = require("./protocol/transport");
|
|
9
7
|
var childProcess = _interopRequireWildcard(require("child_process"));
|
|
10
|
-
var
|
|
11
|
-
var
|
|
8
|
+
var _path = _interopRequireDefault(require("path"));
|
|
9
|
+
var _connection = require("./client/connection");
|
|
10
|
+
var _pipeTransport = require("./server/utils/pipeTransport");
|
|
11
|
+
var _manualPromise = require("./utils/isomorphic/manualPromise");
|
|
12
|
+
var _nodePlatform = require("./server/utils/nodePlatform");
|
|
13
|
+
var _selectors = require("./client/selectors");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
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); }
|
|
13
|
-
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; }
|
|
14
17
|
/**
|
|
15
18
|
* Copyright (c) Microsoft Corporation.
|
|
16
19
|
*
|
|
@@ -28,6 +31,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
28
31
|
*/
|
|
29
32
|
|
|
30
33
|
async function start(env = {}) {
|
|
34
|
+
(0, _selectors.setPlatformForSelectors)(_nodePlatform.nodePlatform);
|
|
31
35
|
const client = new PlaywrightClient(env);
|
|
32
36
|
const playwright = await client._playwright;
|
|
33
37
|
playwright.driverProcess = client._driverProcess;
|
|
@@ -41,7 +45,7 @@ class PlaywrightClient {
|
|
|
41
45
|
this._playwright = void 0;
|
|
42
46
|
this._driverProcess = void 0;
|
|
43
47
|
this._closePromise = new _manualPromise.ManualPromise();
|
|
44
|
-
this._driverProcess = childProcess.fork(
|
|
48
|
+
this._driverProcess = childProcess.fork(_path.default.join(__dirname, '..', 'cli.js'), ['run-driver'], {
|
|
45
49
|
stdio: 'pipe',
|
|
46
50
|
detached: true,
|
|
47
51
|
env: {
|
|
@@ -51,8 +55,8 @@ class PlaywrightClient {
|
|
|
51
55
|
});
|
|
52
56
|
this._driverProcess.unref();
|
|
53
57
|
this._driverProcess.stderr.on('data', data => process.stderr.write(data));
|
|
54
|
-
const connection = new _connection.Connection(
|
|
55
|
-
const transport = new
|
|
58
|
+
const connection = new _connection.Connection(_nodePlatform.nodePlatform);
|
|
59
|
+
const transport = new _pipeTransport.PipeTransport(this._driverProcess.stdin, this._driverProcess.stdout);
|
|
56
60
|
connection.onmessage = message => transport.send(JSON.stringify(message));
|
|
57
61
|
transport.onmessage = message => connection.dispatch(JSON.parse(message));
|
|
58
62
|
transport.onclose = () => this._closePromise.resolve();
|
|
@@ -168,9 +168,38 @@ _validatorPrimitives.scheme.NameValue = (0, _validatorPrimitives.tObject)({
|
|
|
168
168
|
name: _validatorPrimitives.tString,
|
|
169
169
|
value: _validatorPrimitives.tString
|
|
170
170
|
});
|
|
171
|
+
_validatorPrimitives.scheme.IndexedDBDatabase = (0, _validatorPrimitives.tObject)({
|
|
172
|
+
name: _validatorPrimitives.tString,
|
|
173
|
+
version: _validatorPrimitives.tNumber,
|
|
174
|
+
stores: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
|
|
175
|
+
name: _validatorPrimitives.tString,
|
|
176
|
+
autoIncrement: _validatorPrimitives.tBoolean,
|
|
177
|
+
keyPath: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
178
|
+
keyPathArray: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)),
|
|
179
|
+
records: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
|
|
180
|
+
key: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
|
|
181
|
+
keyEncoded: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
|
|
182
|
+
value: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny),
|
|
183
|
+
valueEncoded: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tAny)
|
|
184
|
+
})),
|
|
185
|
+
indexes: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
|
|
186
|
+
name: _validatorPrimitives.tString,
|
|
187
|
+
keyPath: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
188
|
+
keyPathArray: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)),
|
|
189
|
+
multiEntry: _validatorPrimitives.tBoolean,
|
|
190
|
+
unique: _validatorPrimitives.tBoolean
|
|
191
|
+
}))
|
|
192
|
+
}))
|
|
193
|
+
});
|
|
194
|
+
_validatorPrimitives.scheme.SetOriginStorage = (0, _validatorPrimitives.tObject)({
|
|
195
|
+
origin: _validatorPrimitives.tString,
|
|
196
|
+
localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue')),
|
|
197
|
+
indexedDB: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('IndexedDBDatabase')))
|
|
198
|
+
});
|
|
171
199
|
_validatorPrimitives.scheme.OriginStorage = (0, _validatorPrimitives.tObject)({
|
|
172
200
|
origin: _validatorPrimitives.tString,
|
|
173
|
-
localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue'))
|
|
201
|
+
localStorage: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue')),
|
|
202
|
+
indexedDB: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('IndexedDBDatabase')))
|
|
174
203
|
});
|
|
175
204
|
_validatorPrimitives.scheme.SerializedError = (0, _validatorPrimitives.tObject)({
|
|
176
205
|
error: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
@@ -231,7 +260,9 @@ _validatorPrimitives.scheme.APIRequestContextFetchLogParams = (0, _validatorPrim
|
|
|
231
260
|
_validatorPrimitives.scheme.APIRequestContextFetchLogResult = (0, _validatorPrimitives.tObject)({
|
|
232
261
|
log: (0, _validatorPrimitives.tArray)(_validatorPrimitives.tString)
|
|
233
262
|
});
|
|
234
|
-
_validatorPrimitives.scheme.APIRequestContextStorageStateParams = (0, _validatorPrimitives.
|
|
263
|
+
_validatorPrimitives.scheme.APIRequestContextStorageStateParams = (0, _validatorPrimitives.tObject)({
|
|
264
|
+
indexedDB: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
265
|
+
});
|
|
235
266
|
_validatorPrimitives.scheme.APIRequestContextStorageStateResult = (0, _validatorPrimitives.tObject)({
|
|
236
267
|
cookies: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie')),
|
|
237
268
|
origins: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage'))
|
|
@@ -365,6 +396,7 @@ _validatorPrimitives.scheme.PlaywrightNewRequestParams = (0, _validatorPrimitive
|
|
|
365
396
|
userAgent: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
366
397
|
ignoreHTTPSErrors: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
367
398
|
extraHTTPHeaders: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NameValue'))),
|
|
399
|
+
failOnStatusCode: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
368
400
|
clientCertificates: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tObject)({
|
|
369
401
|
origin: _validatorPrimitives.tString,
|
|
370
402
|
cert: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBinary),
|
|
@@ -387,7 +419,7 @@ _validatorPrimitives.scheme.PlaywrightNewRequestParams = (0, _validatorPrimitive
|
|
|
387
419
|
timeout: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tNumber),
|
|
388
420
|
storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
389
421
|
cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie'))),
|
|
390
|
-
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('
|
|
422
|
+
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
|
|
391
423
|
})),
|
|
392
424
|
tracesDir: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString)
|
|
393
425
|
});
|
|
@@ -608,6 +640,7 @@ _validatorPrimitives.scheme.BrowserTypeLaunchPersistentContextParams = (0, _vali
|
|
|
608
640
|
reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
|
|
609
641
|
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
|
|
610
642
|
acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
|
|
643
|
+
contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
|
|
611
644
|
baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
612
645
|
recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
613
646
|
dir: _validatorPrimitives.tString,
|
|
@@ -694,6 +727,7 @@ _validatorPrimitives.scheme.BrowserNewContextParams = (0, _validatorPrimitives.t
|
|
|
694
727
|
reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
|
|
695
728
|
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
|
|
696
729
|
acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
|
|
730
|
+
contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
|
|
697
731
|
baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
698
732
|
recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
699
733
|
dir: _validatorPrimitives.tString,
|
|
@@ -713,7 +747,7 @@ _validatorPrimitives.scheme.BrowserNewContextParams = (0, _validatorPrimitives.t
|
|
|
713
747
|
})),
|
|
714
748
|
storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
715
749
|
cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetNetworkCookie'))),
|
|
716
|
-
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('
|
|
750
|
+
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
|
|
717
751
|
}))
|
|
718
752
|
});
|
|
719
753
|
_validatorPrimitives.scheme.BrowserNewContextResult = (0, _validatorPrimitives.tObject)({
|
|
@@ -763,6 +797,7 @@ _validatorPrimitives.scheme.BrowserNewContextForReuseParams = (0, _validatorPrim
|
|
|
763
797
|
reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
|
|
764
798
|
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
|
|
765
799
|
acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
|
|
800
|
+
contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
|
|
766
801
|
baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
767
802
|
recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
768
803
|
dir: _validatorPrimitives.tString,
|
|
@@ -782,7 +817,7 @@ _validatorPrimitives.scheme.BrowserNewContextForReuseParams = (0, _validatorPrim
|
|
|
782
817
|
})),
|
|
783
818
|
storageState: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
784
819
|
cookies: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetNetworkCookie'))),
|
|
785
|
-
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('
|
|
820
|
+
origins: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('SetOriginStorage')))
|
|
786
821
|
}))
|
|
787
822
|
});
|
|
788
823
|
_validatorPrimitives.scheme.BrowserNewContextForReuseResult = (0, _validatorPrimitives.tObject)({
|
|
@@ -986,7 +1021,9 @@ _validatorPrimitives.scheme.BrowserContextSetOfflineParams = (0, _validatorPrimi
|
|
|
986
1021
|
offline: _validatorPrimitives.tBoolean
|
|
987
1022
|
});
|
|
988
1023
|
_validatorPrimitives.scheme.BrowserContextSetOfflineResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
989
|
-
_validatorPrimitives.scheme.BrowserContextStorageStateParams = (0, _validatorPrimitives.
|
|
1024
|
+
_validatorPrimitives.scheme.BrowserContextStorageStateParams = (0, _validatorPrimitives.tObject)({
|
|
1025
|
+
indexedDB: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1026
|
+
});
|
|
990
1027
|
_validatorPrimitives.scheme.BrowserContextStorageStateResult = (0, _validatorPrimitives.tObject)({
|
|
991
1028
|
cookies: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('NetworkCookie')),
|
|
992
1029
|
origins: (0, _validatorPrimitives.tArray)((0, _validatorPrimitives.tType)('OriginStorage'))
|
|
@@ -1143,7 +1180,8 @@ _validatorPrimitives.scheme.PageEmulateMediaParams = (0, _validatorPrimitives.tO
|
|
|
1143
1180
|
media: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['screen', 'print', 'no-override'])),
|
|
1144
1181
|
colorScheme: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['dark', 'light', 'no-preference', 'no-override'])),
|
|
1145
1182
|
reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
|
|
1146
|
-
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override']))
|
|
1183
|
+
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
|
|
1184
|
+
contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override']))
|
|
1147
1185
|
});
|
|
1148
1186
|
_validatorPrimitives.scheme.PageEmulateMediaResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
1149
1187
|
_validatorPrimitives.scheme.PageExposeBindingParams = (0, _validatorPrimitives.tObject)({
|
|
@@ -1455,6 +1493,8 @@ _validatorPrimitives.scheme.FrameAddStyleTagResult = (0, _validatorPrimitives.tO
|
|
|
1455
1493
|
});
|
|
1456
1494
|
_validatorPrimitives.scheme.FrameAriaSnapshotParams = (0, _validatorPrimitives.tObject)({
|
|
1457
1495
|
selector: _validatorPrimitives.tString,
|
|
1496
|
+
id: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1497
|
+
mode: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['raw', 'regex'])),
|
|
1458
1498
|
timeout: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tNumber)
|
|
1459
1499
|
});
|
|
1460
1500
|
_validatorPrimitives.scheme.FrameAriaSnapshotResult = (0, _validatorPrimitives.tObject)({
|
|
@@ -1527,7 +1567,8 @@ _validatorPrimitives.scheme.FrameDispatchEventResult = (0, _validatorPrimitives.
|
|
|
1527
1567
|
_validatorPrimitives.scheme.FrameEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
|
|
1528
1568
|
expression: _validatorPrimitives.tString,
|
|
1529
1569
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1530
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1570
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1571
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1531
1572
|
});
|
|
1532
1573
|
_validatorPrimitives.scheme.FrameEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
|
|
1533
1574
|
value: (0, _validatorPrimitives.tType)('SerializedValue')
|
|
@@ -1535,7 +1576,8 @@ _validatorPrimitives.scheme.FrameEvaluateExpressionResult = (0, _validatorPrimit
|
|
|
1535
1576
|
_validatorPrimitives.scheme.FrameEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
|
|
1536
1577
|
expression: _validatorPrimitives.tString,
|
|
1537
1578
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1538
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1579
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1580
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1539
1581
|
});
|
|
1540
1582
|
_validatorPrimitives.scheme.FrameEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
|
|
1541
1583
|
handle: (0, _validatorPrimitives.tChannel)(['ElementHandle', 'JSHandle'])
|
|
@@ -1812,7 +1854,8 @@ _validatorPrimitives.scheme.WorkerCloseEvent = (0, _validatorPrimitives.tOptiona
|
|
|
1812
1854
|
_validatorPrimitives.scheme.WorkerEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
|
|
1813
1855
|
expression: _validatorPrimitives.tString,
|
|
1814
1856
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1815
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1857
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1858
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1816
1859
|
});
|
|
1817
1860
|
_validatorPrimitives.scheme.WorkerEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
|
|
1818
1861
|
value: (0, _validatorPrimitives.tType)('SerializedValue')
|
|
@@ -1820,7 +1863,8 @@ _validatorPrimitives.scheme.WorkerEvaluateExpressionResult = (0, _validatorPrimi
|
|
|
1820
1863
|
_validatorPrimitives.scheme.WorkerEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
|
|
1821
1864
|
expression: _validatorPrimitives.tString,
|
|
1822
1865
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1823
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1866
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1867
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1824
1868
|
});
|
|
1825
1869
|
_validatorPrimitives.scheme.WorkerEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
|
|
1826
1870
|
handle: (0, _validatorPrimitives.tChannel)(['ElementHandle', 'JSHandle'])
|
|
@@ -1839,7 +1883,8 @@ _validatorPrimitives.scheme.ElementHandleDisposeResult = (0, _validatorPrimitive
|
|
|
1839
1883
|
_validatorPrimitives.scheme.JSHandleEvaluateExpressionParams = (0, _validatorPrimitives.tObject)({
|
|
1840
1884
|
expression: _validatorPrimitives.tString,
|
|
1841
1885
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1842
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1886
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1887
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1843
1888
|
});
|
|
1844
1889
|
_validatorPrimitives.scheme.ElementHandleEvaluateExpressionParams = (0, _validatorPrimitives.tType)('JSHandleEvaluateExpressionParams');
|
|
1845
1890
|
_validatorPrimitives.scheme.JSHandleEvaluateExpressionResult = (0, _validatorPrimitives.tObject)({
|
|
@@ -1849,7 +1894,8 @@ _validatorPrimitives.scheme.ElementHandleEvaluateExpressionResult = (0, _validat
|
|
|
1849
1894
|
_validatorPrimitives.scheme.JSHandleEvaluateExpressionHandleParams = (0, _validatorPrimitives.tObject)({
|
|
1850
1895
|
expression: _validatorPrimitives.tString,
|
|
1851
1896
|
isFunction: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean),
|
|
1852
|
-
arg: (0, _validatorPrimitives.tType)('SerializedArgument')
|
|
1897
|
+
arg: (0, _validatorPrimitives.tType)('SerializedArgument'),
|
|
1898
|
+
isolatedContext: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tBoolean)
|
|
1853
1899
|
});
|
|
1854
1900
|
_validatorPrimitives.scheme.ElementHandleEvaluateExpressionHandleParams = (0, _validatorPrimitives.tType)('JSHandleEvaluateExpressionHandleParams');
|
|
1855
1901
|
_validatorPrimitives.scheme.JSHandleEvaluateExpressionHandleResult = (0, _validatorPrimitives.tObject)({
|
|
@@ -1951,6 +1997,10 @@ _validatorPrimitives.scheme.ElementHandleFillParams = (0, _validatorPrimitives.t
|
|
|
1951
1997
|
_validatorPrimitives.scheme.ElementHandleFillResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
1952
1998
|
_validatorPrimitives.scheme.ElementHandleFocusParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
1953
1999
|
_validatorPrimitives.scheme.ElementHandleFocusResult = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
2000
|
+
_validatorPrimitives.scheme.ElementHandleGenerateLocatorStringParams = (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({}));
|
|
2001
|
+
_validatorPrimitives.scheme.ElementHandleGenerateLocatorStringResult = (0, _validatorPrimitives.tObject)({
|
|
2002
|
+
value: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString)
|
|
2003
|
+
});
|
|
1954
2004
|
_validatorPrimitives.scheme.ElementHandleGetAttributeParams = (0, _validatorPrimitives.tObject)({
|
|
1955
2005
|
name: _validatorPrimitives.tString
|
|
1956
2006
|
});
|
|
@@ -2660,6 +2710,7 @@ _validatorPrimitives.scheme.AndroidDeviceLaunchBrowserParams = (0, _validatorPri
|
|
|
2660
2710
|
reducedMotion: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['reduce', 'no-preference', 'no-override'])),
|
|
2661
2711
|
forcedColors: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['active', 'none', 'no-override'])),
|
|
2662
2712
|
acceptDownloads: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['accept', 'deny', 'internal-browser-default'])),
|
|
2713
|
+
contrast: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tEnum)(['no-preference', 'more', 'no-override'])),
|
|
2663
2714
|
baseURL: (0, _validatorPrimitives.tOptional)(_validatorPrimitives.tString),
|
|
2664
2715
|
recordVideo: (0, _validatorPrimitives.tOptional)((0, _validatorPrimitives.tObject)({
|
|
2665
2716
|
dir: _validatorPrimitives.tString,
|
|
@@ -8,7 +8,6 @@ exports.createMetadataValidator = createMetadataValidator;
|
|
|
8
8
|
exports.findValidator = findValidator;
|
|
9
9
|
exports.maybeFindValidator = maybeFindValidator;
|
|
10
10
|
exports.tUndefined = exports.tType = exports.tString = exports.tOptional = exports.tObject = exports.tNumber = exports.tEnum = exports.tChannel = exports.tBoolean = exports.tBinary = exports.tArray = exports.tAny = exports.scheme = void 0;
|
|
11
|
-
var _utils = require("../utils");
|
|
12
11
|
/**
|
|
13
12
|
* Copyright (c) Microsoft Corporation.
|
|
14
13
|
*
|
|
@@ -107,7 +106,7 @@ const tObject = s => {
|
|
|
107
106
|
const value = v(arg[key], path ? path + '.' + key : key, context);
|
|
108
107
|
if (!Object.is(value, undefined)) result[key] = value;
|
|
109
108
|
}
|
|
110
|
-
if (
|
|
109
|
+
if (context.isUnderTest()) {
|
|
111
110
|
for (const [key, value] of Object.entries(arg)) {
|
|
112
111
|
if (key.startsWith('__testHook')) result[key] = value;
|
|
113
112
|
}
|
|
@@ -4,14 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.PlaywrightConnection = void 0;
|
|
7
|
+
var _socksProxy = require("../server/utils/socksProxy");
|
|
7
8
|
var _server = require("../server");
|
|
9
|
+
var _android = require("../server/android/android");
|
|
8
10
|
var _browser = require("../server/browser");
|
|
11
|
+
var _debugControllerDispatcher = require("../server/dispatchers/debugControllerDispatcher");
|
|
9
12
|
var _instrumentation = require("../server/instrumentation");
|
|
10
|
-
var
|
|
13
|
+
var _assert = require("../utils/isomorphic/assert");
|
|
14
|
+
var _debug = require("../server/utils/debug");
|
|
15
|
+
var _profiler = require("../server/utils/profiler");
|
|
11
16
|
var _utils = require("../utils");
|
|
12
|
-
var
|
|
13
|
-
var _debugControllerDispatcher = require("../server/dispatchers/debugControllerDispatcher");
|
|
14
|
-
var _debugLogger = require("../utils/debugLogger");
|
|
17
|
+
var _debugLogger = require("../server/utils/debugLogger");
|
|
15
18
|
/**
|
|
16
19
|
* Copyright (c) Microsoft Corporation.
|
|
17
20
|
*
|
|
@@ -44,8 +47,8 @@ class PlaywrightConnection {
|
|
|
44
47
|
this._preLaunched = preLaunched;
|
|
45
48
|
this._options = options;
|
|
46
49
|
options.launchOptions = filterLaunchOptions(options.launchOptions, options.allowFSPaths);
|
|
47
|
-
if (clientType === 'reuse-browser' || clientType === 'pre-launched-browser-or-android') (0,
|
|
48
|
-
if (clientType === 'pre-launched-browser-or-android') (0,
|
|
50
|
+
if (clientType === 'reuse-browser' || clientType === 'pre-launched-browser-or-android') (0, _assert.assert)(preLaunched.playwright);
|
|
51
|
+
if (clientType === 'pre-launched-browser-or-android') (0, _assert.assert)(preLaunched.browser || preLaunched.androidDevice);
|
|
49
52
|
this._onClose = onClose;
|
|
50
53
|
this._id = id;
|
|
51
54
|
this._profileName = `${new Date().toISOString()}-${clientType}`;
|
|
@@ -74,7 +77,7 @@ class PlaywrightConnection {
|
|
|
74
77
|
return;
|
|
75
78
|
}
|
|
76
79
|
this._root = new _server.RootDispatcher(this._dispatcherConnection, async (scope, options) => {
|
|
77
|
-
await (0,
|
|
80
|
+
await (0, _profiler.startProfiling)();
|
|
78
81
|
if (clientType === 'reuse-browser') return await this._initReuseBrowsersMode(scope);
|
|
79
82
|
if (clientType === 'pre-launched-browser-or-android') return this._preLaunched.browser ? await this._initPreLaunchedBrowserMode(scope) : await this._initPreLaunchedAndroidMode(scope);
|
|
80
83
|
if (clientType === 'launch-browser') return await this._initLaunchBrowserMode(scope, options);
|
|
@@ -88,7 +91,12 @@ class PlaywrightConnection {
|
|
|
88
91
|
isServer: true
|
|
89
92
|
});
|
|
90
93
|
const ownedSocksProxy = await this._createOwnedSocksProxy(playwright);
|
|
91
|
-
|
|
94
|
+
let browserName = this._options.browserName;
|
|
95
|
+
if ('bidi' === browserName) {
|
|
96
|
+
var _this$_options$launch;
|
|
97
|
+
if ((_this$_options$launch = this._options.launchOptions) !== null && _this$_options$launch !== void 0 && (_this$_options$launch = _this$_options$launch.channel) !== null && _this$_options$launch !== void 0 && _this$_options$launch.toLocaleLowerCase().includes('firefox')) browserName = 'bidiFirefox';else browserName = 'bidiChromium';
|
|
98
|
+
}
|
|
99
|
+
const browser = await playwright[browserName].launch((0, _instrumentation.serverSideCallMetadata)(), this._options.launchOptions);
|
|
92
100
|
this._cleanups.push(async () => {
|
|
93
101
|
for (const browser of playwright.allBrowsers()) await browser.close({
|
|
94
102
|
reason: 'Connection terminated'
|
|
@@ -214,7 +222,7 @@ class PlaywrightConnection {
|
|
|
214
222
|
this._root._dispose();
|
|
215
223
|
_debugLogger.debugLogger.log('server', `[${this._id}] starting cleanup`);
|
|
216
224
|
for (const cleanup of this._cleanups) await cleanup().catch(() => {});
|
|
217
|
-
await (0,
|
|
225
|
+
await (0, _profiler.stopProfiling)(this._profileName);
|
|
218
226
|
this._onClose();
|
|
219
227
|
_debugLogger.debugLogger.log('server', `[${this._id}] finished cleanup`);
|
|
220
228
|
}
|
|
@@ -260,7 +268,7 @@ function filterLaunchOptions(options, allowFSPaths) {
|
|
|
260
268
|
chromiumSandbox: options.chromiumSandbox,
|
|
261
269
|
firefoxUserPrefs: options.firefoxUserPrefs,
|
|
262
270
|
slowMo: options.slowMo,
|
|
263
|
-
executablePath: (0,
|
|
271
|
+
executablePath: (0, _debug.isUnderTest)() || allowFSPaths ? options.executablePath : undefined,
|
|
264
272
|
downloadsPath: allowFSPaths ? options.downloadsPath : undefined
|
|
265
273
|
};
|
|
266
274
|
}
|
|
@@ -4,12 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.PlaywrightServer = void 0;
|
|
7
|
-
var _playwright = require("../server/playwright");
|
|
8
7
|
var _playwrightConnection = require("./playwrightConnection");
|
|
9
|
-
var
|
|
10
|
-
var _debugLogger = require("../utils/debugLogger");
|
|
11
|
-
var
|
|
12
|
-
var _wsServer = require("../utils/wsServer");
|
|
8
|
+
var _playwright = require("../server/playwright");
|
|
9
|
+
var _debugLogger = require("../server/utils/debugLogger");
|
|
10
|
+
var _semaphore = require("../utils/isomorphic/semaphore");
|
|
11
|
+
var _wsServer = require("../server/utils/wsServer");
|
|
12
|
+
var _ascii = require("../server/utils/ascii");
|
|
13
|
+
var _userAgent = require("../server/utils/userAgent");
|
|
13
14
|
/**
|
|
14
15
|
* Copyright (c) Microsoft Corporation.
|
|
15
16
|
*
|
|
@@ -39,7 +40,7 @@ class PlaywrightServer {
|
|
|
39
40
|
const reuseBrowserSemaphore = new _semaphore.Semaphore(1);
|
|
40
41
|
this._wsServer = new _wsServer.WSServer({
|
|
41
42
|
onUpgrade: (request, socket) => {
|
|
42
|
-
const uaError =
|
|
43
|
+
const uaError = userAgentVersionMatchesErrorMessage(request.headers['user-agent'] || '');
|
|
43
44
|
if (uaError) return {
|
|
44
45
|
error: `HTTP/${request.httpVersion} 428 Precondition Required\r\n\r\n${uaError}`
|
|
45
46
|
};
|
|
@@ -108,4 +109,16 @@ class PlaywrightServer {
|
|
|
108
109
|
await this._wsServer.close();
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
|
-
exports.PlaywrightServer = PlaywrightServer;
|
|
112
|
+
exports.PlaywrightServer = PlaywrightServer;
|
|
113
|
+
function userAgentVersionMatchesErrorMessage(userAgent) {
|
|
114
|
+
const match = userAgent.match(/^Playwright\/(\d+\.\d+\.\d+)/);
|
|
115
|
+
if (!match) {
|
|
116
|
+
// Cannot parse user agent - be lax.
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const received = match[1].split('.').slice(0, 2).join('.');
|
|
120
|
+
const expected = (0, _userAgent.getPlaywrightVersion)(true);
|
|
121
|
+
if (received !== expected) {
|
|
122
|
+
return (0, _ascii.wrapInASCIIBox)([`Playwright version mismatch:`, ` - server version: v${expected}`, ` - client version: v${received}`, ``, `If you are using VSCode extension, restart VSCode.`, ``, `If you are connecting to a remote service,`, `keep your local Playwright version in sync`, `with the remote service version.`, ``, `<3 Playwright Team`].join('\n'), 1);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -4,25 +4,28 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AndroidDevice = exports.Android = void 0;
|
|
7
|
-
var _utilsBundle = require("../../utilsBundle");
|
|
8
7
|
var _events = require("events");
|
|
9
8
|
var _fs = _interopRequireDefault(require("fs"));
|
|
10
9
|
var _os = _interopRequireDefault(require("os"));
|
|
11
10
|
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var
|
|
13
|
-
var
|
|
11
|
+
var _timeoutSettings = require("../timeoutSettings");
|
|
12
|
+
var _pipeTransport = require("../utils/pipeTransport");
|
|
13
|
+
var _crypto = require("../utils/crypto");
|
|
14
|
+
var _debug = require("../utils/debug");
|
|
15
|
+
var _env = require("../utils/env");
|
|
16
|
+
var _task = require("../utils/task");
|
|
17
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
18
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
14
19
|
var _browserContext = require("../browserContext");
|
|
15
|
-
var
|
|
20
|
+
var _chromiumSwitches = require("../chromium/chromiumSwitches");
|
|
16
21
|
var _crBrowser = require("../chromium/crBrowser");
|
|
22
|
+
var _fileUtils = require("../utils/fileUtils");
|
|
17
23
|
var _helper = require("../helper");
|
|
18
|
-
var _transport = require("../../protocol/transport");
|
|
19
|
-
var _debugLogger = require("../../utils/debugLogger");
|
|
20
|
-
var _processLauncher = require("../../utils/processLauncher");
|
|
21
|
-
var _timeoutSettings = require("../../common/timeoutSettings");
|
|
22
24
|
var _instrumentation = require("../instrumentation");
|
|
23
|
-
var
|
|
25
|
+
var _processLauncher = require("../utils/processLauncher");
|
|
26
|
+
var _progress = require("../progress");
|
|
24
27
|
var _registry = require("../registry");
|
|
25
|
-
function _interopRequireDefault(
|
|
28
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
26
29
|
/**
|
|
27
30
|
* Copyright Microsoft Corporation. All rights reserved.
|
|
28
31
|
*
|
|
@@ -140,7 +143,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
|
|
|
140
143
|
await this.shell(`cmd package uninstall com.microsoft.playwright.androiddriver.test`);
|
|
141
144
|
(0, _utilsBundle.debug)('pw:android')('Installing the new driver');
|
|
142
145
|
const executable = _registry.registry.findExecutable('android');
|
|
143
|
-
const packageManagerCommand = (0,
|
|
146
|
+
const packageManagerCommand = (0, _env.getPackageManagerExecCommand)();
|
|
144
147
|
for (const file of ['android-driver.apk', 'android-driver-target.apk']) {
|
|
145
148
|
const fullName = _path.default.join(executable.directory, file);
|
|
146
149
|
if (!_fs.default.existsSync(fullName)) throw new Error(`Please install Android driver apk using '${packageManagerCommand} playwright install android'`);
|
|
@@ -152,7 +155,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
|
|
|
152
155
|
(0, _utilsBundle.debug)('pw:android')('Starting the new driver');
|
|
153
156
|
this.shell('am instrument -w com.microsoft.playwright.androiddriver.test/androidx.test.runner.AndroidJUnitRunner').catch(e => (0, _utilsBundle.debug)('pw:android')(e));
|
|
154
157
|
const socket = await this._waitForLocalAbstract('playwright_android_driver_socket');
|
|
155
|
-
const transport = new
|
|
158
|
+
const transport = new _pipeTransport.PipeTransport(socket, socket, socket, 'be');
|
|
156
159
|
transport.onmessage = message => {
|
|
157
160
|
const response = JSON.parse(message);
|
|
158
161
|
const {
|
|
@@ -213,7 +216,7 @@ class AndroidDevice extends _instrumentation.SdkObject {
|
|
|
213
216
|
async launchBrowser(pkg = 'com.android.chrome', options) {
|
|
214
217
|
(0, _utilsBundle.debug)('pw:android')('Force-stopping', pkg);
|
|
215
218
|
await this._backend.runCommand(`shell:am force-stop ${pkg}`);
|
|
216
|
-
const socketName = (0,
|
|
219
|
+
const socketName = (0, _debug.isUnderTest)() ? 'webview_devtools_remote_playwright_test' : 'playwright_' + (0, _crypto.createGuid)() + '_devtools_remote';
|
|
217
220
|
const commandLine = this._defaultArgs(options, socketName).join(' ');
|
|
218
221
|
(0, _utilsBundle.debug)('pw:android')('Starting', pkg, commandLine);
|
|
219
222
|
// encode commandLine to base64 to avoid issues (bash encoding) with special characters
|
|
@@ -381,7 +384,7 @@ class AndroidBrowser extends _events.EventEmitter {
|
|
|
381
384
|
this.device = void 0;
|
|
382
385
|
this._socket = void 0;
|
|
383
386
|
this._receiver = void 0;
|
|
384
|
-
this._waitForNextTask = (0,
|
|
387
|
+
this._waitForNextTask = (0, _task.makeWaitForNextTask)();
|
|
385
388
|
this.onmessage = void 0;
|
|
386
389
|
this.onclose = void 0;
|
|
387
390
|
this.setMaxListeners(0);
|
|
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AdbBackend = void 0;
|
|
7
|
-
var _utilsBundle = require("../../utilsBundle");
|
|
8
|
-
var net = _interopRequireWildcard(require("net"));
|
|
9
7
|
var _events = require("events");
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
var _net = _interopRequireDefault(require("net"));
|
|
9
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
10
|
+
var _crypto = require("../utils/crypto");
|
|
11
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
/**
|
|
14
14
|
* Copyright Microsoft Corporation. All rights reserved.
|
|
15
15
|
*
|
|
@@ -66,7 +66,7 @@ class AdbDevice {
|
|
|
66
66
|
}
|
|
67
67
|
async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
|
|
68
68
|
(0, _utilsBundle.debug)('pw:adb:runCommand')(command, serial);
|
|
69
|
-
const socket = new BufferedSocketWrapper(command,
|
|
69
|
+
const socket = new BufferedSocketWrapper(command, _net.default.createConnection({
|
|
70
70
|
host,
|
|
71
71
|
port
|
|
72
72
|
}));
|
|
@@ -74,11 +74,11 @@ async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
|
|
|
74
74
|
if (serial) {
|
|
75
75
|
await socket.write(encodeMessage(`host:transport:${serial}`));
|
|
76
76
|
const status = await socket.read(4);
|
|
77
|
-
(0,
|
|
77
|
+
(0, _assert.assert)(status.toString() === 'OKAY', status.toString());
|
|
78
78
|
}
|
|
79
79
|
await socket.write(encodeMessage(command));
|
|
80
80
|
const status = await socket.read(4);
|
|
81
|
-
(0,
|
|
81
|
+
(0, _assert.assert)(status.toString() === 'OKAY', status.toString());
|
|
82
82
|
let commandOutput;
|
|
83
83
|
if (!command.startsWith('shell:')) {
|
|
84
84
|
const remainingLength = parseInt((await socket.read(4)).toString(), 16);
|
|
@@ -92,18 +92,18 @@ async function runCommand(command, host = '127.0.0.1', port = 5037, serial) {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
async function open(command, host = '127.0.0.1', port = 5037, serial) {
|
|
95
|
-
const socket = new BufferedSocketWrapper(command,
|
|
95
|
+
const socket = new BufferedSocketWrapper(command, _net.default.createConnection({
|
|
96
96
|
host,
|
|
97
97
|
port
|
|
98
98
|
}));
|
|
99
99
|
if (serial) {
|
|
100
100
|
await socket.write(encodeMessage(`host:transport:${serial}`));
|
|
101
101
|
const status = await socket.read(4);
|
|
102
|
-
(0,
|
|
102
|
+
(0, _assert.assert)(status.toString() === 'OKAY', status.toString());
|
|
103
103
|
}
|
|
104
104
|
await socket.write(encodeMessage(command));
|
|
105
105
|
const status = await socket.read(4);
|
|
106
|
-
(0,
|
|
106
|
+
(0, _assert.assert)(status.toString() === 'OKAY', status.toString());
|
|
107
107
|
return socket;
|
|
108
108
|
}
|
|
109
109
|
function encodeMessage(message) {
|
|
@@ -114,7 +114,7 @@ function encodeMessage(message) {
|
|
|
114
114
|
class BufferedSocketWrapper extends _events.EventEmitter {
|
|
115
115
|
constructor(command, socket) {
|
|
116
116
|
super();
|
|
117
|
-
this.guid = (0,
|
|
117
|
+
this.guid = (0, _crypto.createGuid)();
|
|
118
118
|
this._socket = void 0;
|
|
119
119
|
this._buffer = Buffer.from([]);
|
|
120
120
|
this._isSocket = false;
|
|
@@ -154,7 +154,7 @@ class BufferedSocketWrapper extends _events.EventEmitter {
|
|
|
154
154
|
}
|
|
155
155
|
async read(length) {
|
|
156
156
|
await this._connectPromise;
|
|
157
|
-
(0,
|
|
157
|
+
(0, _assert.assert)(!this._isSocket, 'Can not read by length in socket mode');
|
|
158
158
|
while (this._buffer.length < length) await new Promise(f => this._notifyReader = f);
|
|
159
159
|
const result = this._buffer.slice(0, length);
|
|
160
160
|
this._buffer = this._buffer.slice(length);
|
|
@@ -166,7 +166,7 @@ class BufferedSocketWrapper extends _events.EventEmitter {
|
|
|
166
166
|
return this._buffer;
|
|
167
167
|
}
|
|
168
168
|
becomeSocket() {
|
|
169
|
-
(0,
|
|
169
|
+
(0, _assert.assert)(!this._buffer.length);
|
|
170
170
|
this._isSocket = true;
|
|
171
171
|
}
|
|
172
172
|
}
|
package/lib/server/artifact.js
CHANGED
|
@@ -6,10 +6,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.Artifact = void 0;
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
8
|
var _utils = require("../utils");
|
|
9
|
-
var _manualPromise = require("../utils/manualPromise");
|
|
10
|
-
var _instrumentation = require("./instrumentation");
|
|
11
9
|
var _errors = require("./errors");
|
|
12
|
-
|
|
10
|
+
var _instrumentation = require("./instrumentation");
|
|
11
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
/**
|
|
14
14
|
* Copyright (c) Microsoft Corporation.
|
|
15
15
|
*
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Network = exports.BidiBrowserContext = exports.BidiBrowser = void 0;
|
|
7
|
-
var _eventsHelper = require("
|
|
7
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
8
8
|
var _browser = require("../browser");
|
|
9
9
|
var _browserContext = require("../browserContext");
|
|
10
10
|
var network = _interopRequireWildcard(require("../network"));
|
|
@@ -13,7 +13,7 @@ var _bidiNetworkManager = require("./bidiNetworkManager");
|
|
|
13
13
|
var _bidiPage = require("./bidiPage");
|
|
14
14
|
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
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 (c) Microsoft Corporation.
|
|
19
19
|
*
|