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,11 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKExecutionContext = void 0;
|
|
7
|
-
|
|
7
|
+
exports.createHandle = createHandle;
|
|
8
8
|
var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
|
|
9
|
+
var js = _interopRequireWildcard(require("../javascript"));
|
|
10
|
+
var dom = _interopRequireWildcard(require("../dom"));
|
|
9
11
|
var _protocolError = require("../protocolError");
|
|
12
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
10
13
|
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); }
|
|
11
|
-
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 &&
|
|
14
|
+
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; }
|
|
12
15
|
/**
|
|
13
16
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
17
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -46,7 +49,7 @@ class WKExecutionContext {
|
|
|
46
49
|
throw rewriteError(error);
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
|
-
async rawEvaluateHandle(expression) {
|
|
52
|
+
async rawEvaluateHandle(context, expression) {
|
|
50
53
|
try {
|
|
51
54
|
const response = await this._session.send('Runtime.evaluate', {
|
|
52
55
|
expression,
|
|
@@ -54,12 +57,12 @@ class WKExecutionContext {
|
|
|
54
57
|
returnByValue: false
|
|
55
58
|
});
|
|
56
59
|
if (response.wasThrown) throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
57
|
-
return response.result
|
|
60
|
+
return createHandle(context, response.result);
|
|
58
61
|
} catch (error) {
|
|
59
62
|
throw rewriteError(error);
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
|
-
async evaluateWithArguments(expression, returnByValue, utilityScript, values,
|
|
65
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
63
66
|
try {
|
|
64
67
|
const response = await this._session.send('Runtime.callFunctionOn', {
|
|
65
68
|
functionDeclaration: expression,
|
|
@@ -68,8 +71,8 @@ class WKExecutionContext {
|
|
|
68
71
|
objectId: utilityScript._objectId
|
|
69
72
|
}, ...values.map(value => ({
|
|
70
73
|
value
|
|
71
|
-
})), ...
|
|
72
|
-
objectId
|
|
74
|
+
})), ...handles.map(handle => ({
|
|
75
|
+
objectId: handle._objectId
|
|
73
76
|
}))],
|
|
74
77
|
returnByValue,
|
|
75
78
|
emulateUserGesture: true,
|
|
@@ -77,30 +80,27 @@ class WKExecutionContext {
|
|
|
77
80
|
});
|
|
78
81
|
if (response.wasThrown) throw new js.JavaScriptErrorInEvaluate(response.result.description);
|
|
79
82
|
if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(response.result.value);
|
|
80
|
-
return utilityScript._context
|
|
83
|
+
return createHandle(utilityScript._context, response.result);
|
|
81
84
|
} catch (error) {
|
|
82
85
|
throw rewriteError(error);
|
|
83
86
|
}
|
|
84
87
|
}
|
|
85
|
-
async getProperties(
|
|
88
|
+
async getProperties(object) {
|
|
86
89
|
const response = await this._session.send('Runtime.getProperties', {
|
|
87
|
-
objectId,
|
|
90
|
+
objectId: object._objectId,
|
|
88
91
|
ownProperties: true
|
|
89
92
|
});
|
|
90
93
|
const result = new Map();
|
|
91
94
|
for (const property of response.properties) {
|
|
92
95
|
if (!property.enumerable || !property.value) continue;
|
|
93
|
-
result.set(property.name,
|
|
96
|
+
result.set(property.name, createHandle(object._context, property.value));
|
|
94
97
|
}
|
|
95
98
|
return result;
|
|
96
99
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return new js.JSHandle(context, isPromise ? 'promise' : remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
100
|
-
}
|
|
101
|
-
async releaseHandle(objectId) {
|
|
100
|
+
async releaseHandle(handle) {
|
|
101
|
+
if (!handle._objectId) return;
|
|
102
102
|
await this._session.send('Runtime.releaseObject', {
|
|
103
|
-
objectId
|
|
103
|
+
objectId: handle._objectId
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
}
|
|
@@ -128,4 +128,12 @@ function renderPreview(object) {
|
|
|
128
128
|
}
|
|
129
129
|
if (object.subtype === 'array' && object.preview) return js.sparseArrayToString(object.preview.properties);
|
|
130
130
|
return object.description;
|
|
131
|
+
}
|
|
132
|
+
function createHandle(context, remoteObject) {
|
|
133
|
+
if (remoteObject.subtype === 'node') {
|
|
134
|
+
(0, _assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
135
|
+
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
136
|
+
}
|
|
137
|
+
const isPromise = remoteObject.className === 'Promise';
|
|
138
|
+
return new js.JSHandle(context, isPromise ? 'promise' : remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
131
139
|
}
|
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.RawTouchscreenImpl = exports.RawMouseImpl = exports.RawKeyboardImpl = void 0;
|
|
7
|
+
var _utils = require("../../utils");
|
|
7
8
|
var input = _interopRequireWildcard(require("../input"));
|
|
8
9
|
var _macEditingCommands = require("../macEditingCommands");
|
|
9
|
-
var _utils = require("../../utils");
|
|
10
10
|
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); }
|
|
11
|
-
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 &&
|
|
11
|
+
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; }
|
|
12
12
|
/**
|
|
13
13
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
14
14
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKRouteImpl = exports.WKInterceptableRequest = void 0;
|
|
7
|
-
var network = _interopRequireWildcard(require("../network"));
|
|
8
7
|
var _utils = require("../../utils");
|
|
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 2017 Google Inc. All rights reserved.
|
|
13
13
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -5,13 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.WKPage = void 0;
|
|
7
7
|
var _path = _interopRequireDefault(require("path"));
|
|
8
|
-
var _utilsBundle = require("../../utilsBundle");
|
|
9
|
-
var _stackTrace = require("../../utils/stackTrace");
|
|
10
8
|
var _utils = require("../../utils");
|
|
11
|
-
var
|
|
9
|
+
var _headers = require("../../utils/isomorphic/headers");
|
|
10
|
+
var _crypto = require("../utils/crypto");
|
|
11
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
12
|
+
var _hostPlatform = require("../utils/hostPlatform");
|
|
13
|
+
var _stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
14
|
+
var _utilsBundle = require("../../utilsBundle");
|
|
15
|
+
var _browserContext = require("../browserContext");
|
|
12
16
|
var dialog = _interopRequireWildcard(require("../dialog"));
|
|
13
17
|
var dom = _interopRequireWildcard(require("../dom"));
|
|
14
|
-
var
|
|
18
|
+
var _errors = require("../errors");
|
|
15
19
|
var _helper = require("../helper");
|
|
16
20
|
var network = _interopRequireWildcard(require("../network"));
|
|
17
21
|
var _page = require("../page");
|
|
@@ -22,12 +26,10 @@ var _wkInput = require("./wkInput");
|
|
|
22
26
|
var _wkInterceptableRequest = require("./wkInterceptableRequest");
|
|
23
27
|
var _wkProvisionalPage = require("./wkProvisionalPage");
|
|
24
28
|
var _wkWorkers = require("./wkWorkers");
|
|
25
|
-
var _debugLogger = require("
|
|
26
|
-
var _browserContext = require("../browserContext");
|
|
27
|
-
var _errors = require("../errors");
|
|
29
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
28
30
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
29
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
30
|
-
function _interopRequireDefault(
|
|
31
|
+
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; }
|
|
32
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
31
33
|
/**
|
|
32
34
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
33
35
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -114,7 +116,7 @@ class WKPage {
|
|
|
114
116
|
for (const [key, value] of this._browserContext._permissions) promises.push(this._grantPermissions(key, value));
|
|
115
117
|
}
|
|
116
118
|
if (this._browserContext._options.recordVideo) {
|
|
117
|
-
const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0,
|
|
119
|
+
const outputFile = _path.default.join(this._browserContext._options.recordVideo.dir, (0, _crypto.createGuid)() + '.webm');
|
|
118
120
|
promises.push(this._browserContext._ensureVideosPath().then(() => {
|
|
119
121
|
return this._startVideo({
|
|
120
122
|
// validateBrowserContextOptions ensures correct video size.
|
|
@@ -180,7 +182,7 @@ class WKPage {
|
|
|
180
182
|
const contextOptions = this._browserContext._options;
|
|
181
183
|
if (contextOptions.userAgent) promises.push(this.updateUserAgent());
|
|
182
184
|
const emulatedMedia = this._page.emulatedMedia();
|
|
183
|
-
if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors));
|
|
185
|
+
if (emulatedMedia.media || emulatedMedia.colorScheme || emulatedMedia.reducedMotion || emulatedMedia.forcedColors || emulatedMedia.contrast) promises.push(WKPage._setEmulateMedia(session, emulatedMedia.media, emulatedMedia.colorScheme, emulatedMedia.reducedMotion, emulatedMedia.forcedColors, emulatedMedia.contrast));
|
|
184
186
|
const bootstrapScript = this._calculateBootstrapScript();
|
|
185
187
|
if (bootstrapScript.length) promises.push(session.send('Page.setBootstrapScript', {
|
|
186
188
|
source: bootstrapScript
|
|
@@ -198,7 +200,7 @@ class WKPage {
|
|
|
198
200
|
}
|
|
199
201
|
promises.push(this.updateEmulateMedia());
|
|
200
202
|
promises.push(session.send('Network.setExtraHTTPHeaders', {
|
|
201
|
-
headers: (0,
|
|
203
|
+
headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
|
|
202
204
|
}));
|
|
203
205
|
if (contextOptions.offline) promises.push(session.send('Network.setEmulateOfflineState', {
|
|
204
206
|
offline: true
|
|
@@ -306,7 +308,6 @@ class WKPage {
|
|
|
306
308
|
this._page._frameManager.frameAbortedNavigation(this._page.mainFrame()._id, errorText, event.loaderId);
|
|
307
309
|
}
|
|
308
310
|
handleWindowOpen(event) {
|
|
309
|
-
(0, _utils.debugAssert)(!this._nextWindowOpenPopupFeatures);
|
|
310
311
|
this._nextWindowOpenPopupFeatures = event.windowFeatures;
|
|
311
312
|
}
|
|
312
313
|
async _onTargetCreated(event) {
|
|
@@ -454,7 +455,6 @@ class WKPage {
|
|
|
454
455
|
let worldName = null;
|
|
455
456
|
if (contextPayload.type === 'normal') worldName = 'main';else if (contextPayload.type === 'user' && contextPayload.name === UTILITY_WORLD_NAME) worldName = 'utility';
|
|
456
457
|
const context = new dom.FrameExecutionContext(delegate, frame, worldName);
|
|
457
|
-
context[contextDelegateSymbol] = delegate;
|
|
458
458
|
if (worldName) frame._contextCreated(worldName, context);
|
|
459
459
|
this._contextIdToContext.set(contextPayload.id, context);
|
|
460
460
|
}
|
|
@@ -524,7 +524,7 @@ class WKPage {
|
|
|
524
524
|
context = [...this._contextIdToContext.values()].find(c => c.frame === this._page.mainFrame());
|
|
525
525
|
}
|
|
526
526
|
if (!context) return;
|
|
527
|
-
handles.push(
|
|
527
|
+
handles.push((0, _wkExecutionContext.createHandle)(context, p));
|
|
528
528
|
}
|
|
529
529
|
this._lastConsoleMessage = {
|
|
530
530
|
derivedType,
|
|
@@ -568,14 +568,14 @@ class WKPage {
|
|
|
568
568
|
let handle;
|
|
569
569
|
try {
|
|
570
570
|
const context = await this._page._frameManager.frame(event.frameId)._mainContext();
|
|
571
|
-
handle =
|
|
571
|
+
handle = (0, _wkExecutionContext.createHandle)(context, event.element).asElement();
|
|
572
572
|
} catch (e) {
|
|
573
573
|
// During async processing, frame/context may go away. We should not throw.
|
|
574
574
|
return;
|
|
575
575
|
}
|
|
576
576
|
await this._page._onFileChooserOpened(handle);
|
|
577
577
|
}
|
|
578
|
-
static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors) {
|
|
578
|
+
static async _setEmulateMedia(session, mediaType, colorScheme, reducedMotion, forcedColors, contrast) {
|
|
579
579
|
const promises = [];
|
|
580
580
|
promises.push(session.send('Page.setEmulatedMedia', {
|
|
581
581
|
media: mediaType === 'no-override' ? '' : mediaType
|
|
@@ -627,11 +627,27 @@ class WKPage {
|
|
|
627
627
|
promises.push(session.send('Page.setForcedColors', {
|
|
628
628
|
forcedColors: forcedColorsWk
|
|
629
629
|
}));
|
|
630
|
+
let contrastWk = undefined;
|
|
631
|
+
switch (contrast) {
|
|
632
|
+
case 'more':
|
|
633
|
+
contrastWk = 'More';
|
|
634
|
+
break;
|
|
635
|
+
case 'no-preference':
|
|
636
|
+
contrastWk = 'NoPreference';
|
|
637
|
+
break;
|
|
638
|
+
case 'no-override':
|
|
639
|
+
contrastWk = undefined;
|
|
640
|
+
break;
|
|
641
|
+
}
|
|
642
|
+
promises.push(session.send('Page.overrideUserPreference', {
|
|
643
|
+
name: 'PrefersContrast',
|
|
644
|
+
value: contrastWk
|
|
645
|
+
}));
|
|
630
646
|
await Promise.all(promises);
|
|
631
647
|
}
|
|
632
648
|
async updateExtraHTTPHeaders() {
|
|
633
649
|
await this._updateState('Network.setExtraHTTPHeaders', {
|
|
634
|
-
headers: (0,
|
|
650
|
+
headers: (0, _headers.headersArrayToObject)(this._calculateExtraHTTPHeaders(), false /* lowerCase */)
|
|
635
651
|
});
|
|
636
652
|
}
|
|
637
653
|
_calculateExtraHTTPHeaders() {
|
|
@@ -644,7 +660,8 @@ class WKPage {
|
|
|
644
660
|
const colorScheme = emulatedMedia.colorScheme;
|
|
645
661
|
const reducedMotion = emulatedMedia.reducedMotion;
|
|
646
662
|
const forcedColors = emulatedMedia.forcedColors;
|
|
647
|
-
|
|
663
|
+
const contrast = emulatedMedia.contrast;
|
|
664
|
+
await this._forAllSessions(session => WKPage._setEmulateMedia(session, emulatedMedia.media, colorScheme, reducedMotion, forcedColors, contrast));
|
|
648
665
|
}
|
|
649
666
|
async updateEmulatedViewportSize() {
|
|
650
667
|
this._browserContext._validateEmulatedViewport(this._page.viewportSize());
|
|
@@ -831,9 +848,6 @@ class WKPage {
|
|
|
831
848
|
});
|
|
832
849
|
return nodeInfo.ownerFrameId || null;
|
|
833
850
|
}
|
|
834
|
-
isElementHandle(remoteObject) {
|
|
835
|
-
return remoteObject.subtype === 'node';
|
|
836
|
-
}
|
|
837
851
|
async getBoundingBox(handle) {
|
|
838
852
|
const quads = await this.getContentQuads(handle);
|
|
839
853
|
if (!quads || !quads.length) return null;
|
|
@@ -916,18 +930,6 @@ class WKPage {
|
|
|
916
930
|
y: quad[7]
|
|
917
931
|
}]);
|
|
918
932
|
}
|
|
919
|
-
async setInputFiles(handle, files) {
|
|
920
|
-
const objectId = handle._objectId;
|
|
921
|
-
const protocolFiles = files.map(file => ({
|
|
922
|
-
name: file.name,
|
|
923
|
-
type: file.mimeType,
|
|
924
|
-
data: file.buffer
|
|
925
|
-
}));
|
|
926
|
-
await this._session.send('DOM.setInputFiles', {
|
|
927
|
-
objectId,
|
|
928
|
-
files: protocolFiles
|
|
929
|
-
});
|
|
930
|
-
}
|
|
931
933
|
async setInputFilePaths(handle, paths) {
|
|
932
934
|
const pageProxyId = this._pageProxySession.sessionId;
|
|
933
935
|
const objectId = handle._objectId;
|
|
@@ -942,10 +944,10 @@ class WKPage {
|
|
|
942
944
|
async adoptElementHandle(handle, to) {
|
|
943
945
|
const result = await this._session.sendMayFail('DOM.resolveNode', {
|
|
944
946
|
objectId: handle._objectId,
|
|
945
|
-
executionContextId: to
|
|
947
|
+
executionContextId: to.delegate._contextId
|
|
946
948
|
});
|
|
947
949
|
if (!result || result.object.subtype === 'null') throw new Error(dom.kUnableToAdoptErrorMessage);
|
|
948
|
-
return
|
|
950
|
+
return (0, _wkExecutionContext.createHandle)(to, result.object);
|
|
949
951
|
}
|
|
950
952
|
async getAccessibilityTree(needle) {
|
|
951
953
|
return (0, _wkAccessibility.getAccessibilityTree)(this._session, needle);
|
|
@@ -958,10 +960,10 @@ class WKPage {
|
|
|
958
960
|
const context = await parent._mainContext();
|
|
959
961
|
const result = await this._session.send('DOM.resolveNode', {
|
|
960
962
|
frameId: frame._id,
|
|
961
|
-
executionContextId: context
|
|
963
|
+
executionContextId: context.delegate._contextId
|
|
962
964
|
});
|
|
963
965
|
if (!result || result.object.subtype === 'null') throw new Error('Frame has been detached.');
|
|
964
|
-
return
|
|
966
|
+
return (0, _wkExecutionContext.createHandle)(context, result.object);
|
|
965
967
|
}
|
|
966
968
|
_maybeCancelCoopNavigationRequest(provisionalPage) {
|
|
967
969
|
const navigationRequest = provisionalPage.coopNavigationRequest();
|
|
@@ -1203,5 +1205,4 @@ function isLoadedSecurely(url, timing) {
|
|
|
1203
1205
|
if (timing.secureConnectionStart === -1 && timing.connectStart !== -1) return false;
|
|
1204
1206
|
return true;
|
|
1205
1207
|
} catch (_) {}
|
|
1206
|
-
}
|
|
1207
|
-
const contextDelegateSymbol = Symbol('delegate');
|
|
1208
|
+
}
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKProvisionalPage = void 0;
|
|
7
|
-
var _eventsHelper = require("../../utils/eventsHelper");
|
|
8
7
|
var _utils = require("../../utils");
|
|
8
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.WKWorkers = void 0;
|
|
7
|
-
var _eventsHelper = require("
|
|
7
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
8
8
|
var _page = require("../page");
|
|
9
9
|
var _wkConnection = require("./wkConnection");
|
|
10
10
|
var _wkExecutionContext = require("./wkExecutionContext");
|
|
@@ -91,7 +91,7 @@ class WKWorkers {
|
|
|
91
91
|
let derivedType = type || '';
|
|
92
92
|
if (type === 'log') derivedType = level;else if (type === 'timing') derivedType = 'timeEnd';
|
|
93
93
|
const handles = (parameters || []).map(p => {
|
|
94
|
-
return worker._existingExecutionContext
|
|
94
|
+
return (0, _wkExecutionContext.createHandle)(worker._existingExecutionContext, p);
|
|
95
95
|
});
|
|
96
96
|
const location = {
|
|
97
97
|
url: url || '',
|
|
@@ -188,7 +188,8 @@ const emptyFragment = {
|
|
|
188
188
|
role: 'fragment'
|
|
189
189
|
};
|
|
190
190
|
function normalizeWhitespace(text) {
|
|
191
|
-
|
|
191
|
+
// TODO: why is this different from normalizeWhitespace in stringUtils.ts?
|
|
192
|
+
return text.replace(/[\u200b\u00ad]/g, '').replace(/[\r\n\s\t]+/g, ' ').trim();
|
|
192
193
|
}
|
|
193
194
|
function valueOrRegex(value) {
|
|
194
195
|
return value.startsWith('/') && value.endsWith('/') && value.length > 1 ? {
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.assert = assert;
|
|
7
|
+
/**
|
|
8
|
+
* Copyright (c) Microsoft Corporation.
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
function assert(value, message) {
|
|
24
|
+
if (!value) throw new Error(message || 'Assertion error');
|
|
25
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.webColors = exports.noColors = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Copyright (c) Microsoft Corporation.
|
|
9
|
+
*
|
|
10
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
11
|
+
* you may not use this file except in compliance with the License.
|
|
12
|
+
* You may obtain a copy of the License at
|
|
13
|
+
*
|
|
14
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
15
|
+
*
|
|
16
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
17
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
18
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
19
|
+
* See the License for the specific language governing permissions and
|
|
20
|
+
* limitations under the License.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
const webColors = exports.webColors = {
|
|
24
|
+
enabled: true,
|
|
25
|
+
reset: text => applyStyle(0, 0, text),
|
|
26
|
+
bold: text => applyStyle(1, 22, text),
|
|
27
|
+
dim: text => applyStyle(2, 22, text),
|
|
28
|
+
italic: text => applyStyle(3, 23, text),
|
|
29
|
+
underline: text => applyStyle(4, 24, text),
|
|
30
|
+
inverse: text => applyStyle(7, 27, text),
|
|
31
|
+
hidden: text => applyStyle(8, 28, text),
|
|
32
|
+
strikethrough: text => applyStyle(9, 29, text),
|
|
33
|
+
black: text => applyStyle(30, 39, text),
|
|
34
|
+
red: text => applyStyle(31, 39, text),
|
|
35
|
+
green: text => applyStyle(32, 39, text),
|
|
36
|
+
yellow: text => applyStyle(33, 39, text),
|
|
37
|
+
blue: text => applyStyle(34, 39, text),
|
|
38
|
+
magenta: text => applyStyle(35, 39, text),
|
|
39
|
+
cyan: text => applyStyle(36, 39, text),
|
|
40
|
+
white: text => applyStyle(37, 39, text),
|
|
41
|
+
gray: text => applyStyle(90, 39, text),
|
|
42
|
+
grey: text => applyStyle(90, 39, text)
|
|
43
|
+
};
|
|
44
|
+
const noColors = exports.noColors = {
|
|
45
|
+
enabled: false,
|
|
46
|
+
reset: t => t,
|
|
47
|
+
bold: t => t,
|
|
48
|
+
dim: t => t,
|
|
49
|
+
italic: t => t,
|
|
50
|
+
underline: t => t,
|
|
51
|
+
inverse: t => t,
|
|
52
|
+
hidden: t => t,
|
|
53
|
+
strikethrough: t => t,
|
|
54
|
+
black: t => t,
|
|
55
|
+
red: t => t,
|
|
56
|
+
green: t => t,
|
|
57
|
+
yellow: t => t,
|
|
58
|
+
blue: t => t,
|
|
59
|
+
magenta: t => t,
|
|
60
|
+
cyan: t => t,
|
|
61
|
+
white: t => t,
|
|
62
|
+
gray: t => t,
|
|
63
|
+
grey: t => t
|
|
64
|
+
};
|
|
65
|
+
const applyStyle = (open, close, text) => `\u001b[${open}m${text}\u001b[${close}m`;
|
|
@@ -9,7 +9,7 @@ exports.parseCSS = parseCSS;
|
|
|
9
9
|
exports.serializeSelector = serializeSelector;
|
|
10
10
|
var css = _interopRequireWildcard(require("./cssTokenizer"));
|
|
11
11
|
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 &&
|
|
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 && {}.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
13
|
/**
|
|
14
14
|
* Copyright (c) Microsoft Corporation.
|
|
15
15
|
*
|
|
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PythonLocatorFactory = exports.JsonlLocatorFactory = exports.JavaScriptLocatorFactory = exports.JavaLocatorFactory = exports.CSharpLocatorFactory = void 0;
|
|
7
7
|
exports.asLocator = asLocator;
|
|
8
8
|
exports.asLocators = asLocators;
|
|
9
|
-
var _stringUtils = require("./stringUtils");
|
|
10
9
|
var _selectorParser = require("./selectorParser");
|
|
10
|
+
var _stringUtils = require("./stringUtils");
|
|
11
11
|
/**
|
|
12
12
|
* Copyright (c) Microsoft Corporation.
|
|
13
13
|
*
|
|
@@ -47,6 +47,10 @@ function innerAsLocators(factory, parsed, isFrameLocator = false, maxOutputSize
|
|
|
47
47
|
if (part.body === '0') tokens.push([factory.generateLocator(base, 'first', ''), factory.generateLocator(base, 'nth', '0')]);else if (part.body === '-1') tokens.push([factory.generateLocator(base, 'last', ''), factory.generateLocator(base, 'nth', '-1')]);else tokens.push([factory.generateLocator(base, 'nth', part.body)]);
|
|
48
48
|
continue;
|
|
49
49
|
}
|
|
50
|
+
if (part.name === 'visible') {
|
|
51
|
+
tokens.push([factory.generateLocator(base, 'visible', part.body), factory.generateLocator(base, 'default', `visible=${part.body}`)]);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
50
54
|
if (part.name === 'internal:text') {
|
|
51
55
|
const {
|
|
52
56
|
exact,
|
|
@@ -287,6 +291,8 @@ class JavaScriptLocatorFactory {
|
|
|
287
291
|
return `first()`;
|
|
288
292
|
case 'last':
|
|
289
293
|
return `last()`;
|
|
294
|
+
case 'visible':
|
|
295
|
+
return `filter({ visible: ${body === 'true' ? 'true' : 'false'} })`;
|
|
290
296
|
case 'role':
|
|
291
297
|
const attrs = [];
|
|
292
298
|
if (isRegExp(options.name)) {
|
|
@@ -372,6 +378,8 @@ class PythonLocatorFactory {
|
|
|
372
378
|
return `first`;
|
|
373
379
|
case 'last':
|
|
374
380
|
return `last`;
|
|
381
|
+
case 'visible':
|
|
382
|
+
return `filter(visible=${body === 'true' ? 'True' : 'False'})`;
|
|
375
383
|
case 'role':
|
|
376
384
|
const attrs = [];
|
|
377
385
|
if (isRegExp(options.name)) {
|
|
@@ -474,6 +482,8 @@ class JavaLocatorFactory {
|
|
|
474
482
|
return `first()`;
|
|
475
483
|
case 'last':
|
|
476
484
|
return `last()`;
|
|
485
|
+
case 'visible':
|
|
486
|
+
return `filter(new ${clazz}.FilterOptions().setVisible(${body === 'true' ? 'true' : 'false'}))`;
|
|
477
487
|
case 'role':
|
|
478
488
|
const attrs = [];
|
|
479
489
|
if (isRegExp(options.name)) {
|
|
@@ -560,6 +570,8 @@ class CSharpLocatorFactory {
|
|
|
560
570
|
return `First`;
|
|
561
571
|
case 'last':
|
|
562
572
|
return `Last`;
|
|
573
|
+
case 'visible':
|
|
574
|
+
return `Filter(new() { Visible = ${body === 'true' ? 'true' : 'false'} })`;
|
|
563
575
|
case 'role':
|
|
564
576
|
const attrs = [];
|
|
565
577
|
if (isRegExp(options.name)) {
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.locatorOrSelectorAsSelector = locatorOrSelectorAsSelector;
|
|
7
7
|
exports.unsafeLocatorOrSelectorAsSelector = unsafeLocatorOrSelectorAsSelector;
|
|
8
|
-
var _stringUtils = require("./stringUtils");
|
|
9
8
|
var _locatorGenerators = require("./locatorGenerators");
|
|
10
9
|
var _selectorParser = require("./selectorParser");
|
|
10
|
+
var _stringUtils = require("./stringUtils");
|
|
11
11
|
/**
|
|
12
12
|
* Copyright (c) Microsoft Corporation.
|
|
13
13
|
*
|
|
@@ -124,7 +124,7 @@ function transform(template, params, testIdAttributeName) {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
// Transform to selector engines.
|
|
127
|
-
template = template.replace(/\,set([\w]+)\(([^)]+)\)/g, (_, group1, group2) => ',' + group1.toLowerCase() + '=' + group2.toLowerCase()).replace(/framelocator\(([^)]+)\)/g, '$1.internal:control=enter-frame').replace(/contentframe(\(\))?/g, 'internal:control=enter-frame').replace(/locator\(([^)]+),hastext=([^),]+)\)/g, 'locator($1).internal:has-text=$2').replace(/locator\(([^)]+),hasnottext=([^),]+)\)/g, 'locator($1).internal:has-not-text=$2').replace(/locator\(([^)]+),hastext=([^),]+)\)/g, 'locator($1).internal:has-text=$2').replace(/locator\(([^)]+)\)/g, '$1').replace(/getbyrole\(([^)]+)\)/g, 'internal:role=$1').replace(/getbytext\(([^)]+)\)/g, 'internal:text=$1').replace(/getbylabel\(([^)]+)\)/g, 'internal:label=$1').replace(/getbytestid\(([^)]+)\)/g, `internal:testid=[${testIdAttributeName}=$1]`).replace(/getby(placeholder|alt|title)(?:text)?\(([^)]+)\)/g, 'internal:attr=[$1=$2]').replace(/first(\(\))?/g, 'nth=0').replace(/last(\(\))?/g, 'nth=-1').replace(/nth\(([^)]+)\)/g, 'nth=$1').replace(/filter\(,?hastext=([^)]+)\)/g, 'internal:has-text=$1').replace(/filter\(,?hasnottext=([^)]+)\)/g, 'internal:has-not-text=$1').replace(/filter\(,?has2=([^)]+)\)/g, 'internal:has=$1').replace(/filter\(,?hasnot2=([^)]+)\)/g, 'internal:has-not=$1').replace(/,exact=false/g, '').replace(/,exact=true/g, 's').replace(/,includehidden=/g, ',include-hidden=').replace(/\,/g, '][');
|
|
127
|
+
template = template.replace(/\,set([\w]+)\(([^)]+)\)/g, (_, group1, group2) => ',' + group1.toLowerCase() + '=' + group2.toLowerCase()).replace(/framelocator\(([^)]+)\)/g, '$1.internal:control=enter-frame').replace(/contentframe(\(\))?/g, 'internal:control=enter-frame').replace(/locator\(([^)]+),hastext=([^),]+)\)/g, 'locator($1).internal:has-text=$2').replace(/locator\(([^)]+),hasnottext=([^),]+)\)/g, 'locator($1).internal:has-not-text=$2').replace(/locator\(([^)]+),hastext=([^),]+)\)/g, 'locator($1).internal:has-text=$2').replace(/locator\(([^)]+)\)/g, '$1').replace(/getbyrole\(([^)]+)\)/g, 'internal:role=$1').replace(/getbytext\(([^)]+)\)/g, 'internal:text=$1').replace(/getbylabel\(([^)]+)\)/g, 'internal:label=$1').replace(/getbytestid\(([^)]+)\)/g, `internal:testid=[${testIdAttributeName}=$1]`).replace(/getby(placeholder|alt|title)(?:text)?\(([^)]+)\)/g, 'internal:attr=[$1=$2]').replace(/first(\(\))?/g, 'nth=0').replace(/last(\(\))?/g, 'nth=-1').replace(/nth\(([^)]+)\)/g, 'nth=$1').replace(/filter\(,?visible=true\)/g, 'visible=true').replace(/filter\(,?visible=false\)/g, 'visible=false').replace(/filter\(,?hastext=([^)]+)\)/g, 'internal:has-text=$1').replace(/filter\(,?hasnottext=([^)]+)\)/g, 'internal:has-not-text=$1').replace(/filter\(,?has2=([^)]+)\)/g, 'internal:has=$1').replace(/filter\(,?hasnot2=([^)]+)\)/g, 'internal:has-not=$1').replace(/,exact=false/g, '').replace(/,exact=true/g, 's').replace(/,includehidden=/g, ',include-hidden=').replace(/\,/g, '][');
|
|
128
128
|
const parts = template.split('.');
|
|
129
129
|
// Turn "internal:control=enter-frame >> nth=0" into "nth=0 >> internal:control=enter-frame"
|
|
130
130
|
// because these are swapped in locators vs selectors.
|
|
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ManualPromise = exports.LongStandingScope = void 0;
|
|
7
7
|
var _stackTrace = require("./stackTrace");
|
|
8
|
-
let _Symbol$species, _Symbol$toStringTag;
|
|
9
8
|
/**
|
|
10
9
|
* Copyright (c) Microsoft Corporation.
|
|
11
10
|
*
|
|
@@ -21,8 +20,7 @@ let _Symbol$species, _Symbol$toStringTag;
|
|
|
21
20
|
* See the License for the specific language governing permissions and
|
|
22
21
|
* limitations under the License.
|
|
23
22
|
*/
|
|
24
|
-
|
|
25
|
-
_Symbol$toStringTag = Symbol.toStringTag;
|
|
23
|
+
|
|
26
24
|
class ManualPromise extends Promise {
|
|
27
25
|
constructor() {
|
|
28
26
|
let resolve;
|
|
@@ -49,10 +47,10 @@ class ManualPromise extends Promise {
|
|
|
49
47
|
this._isDone = true;
|
|
50
48
|
this._reject(e);
|
|
51
49
|
}
|
|
52
|
-
static get [
|
|
50
|
+
static get [Symbol.species]() {
|
|
53
51
|
return Promise;
|
|
54
52
|
}
|
|
55
|
-
get [
|
|
53
|
+
get [Symbol.toStringTag]() {
|
|
56
54
|
return 'ManualPromise';
|
|
57
55
|
}
|
|
58
56
|
}
|