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
|
@@ -6,11 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.BidiChromium = void 0;
|
|
7
7
|
var _os = _interopRequireDefault(require("os"));
|
|
8
8
|
var _utils = require("../../utils");
|
|
9
|
+
var _ascii = require("../utils/ascii");
|
|
9
10
|
var _browserType = require("../browserType");
|
|
10
|
-
var _chromiumSwitches = require("../chromium/chromiumSwitches");
|
|
11
11
|
var _bidiBrowser = require("./bidiBrowser");
|
|
12
12
|
var _bidiConnection = require("./bidiConnection");
|
|
13
|
-
|
|
13
|
+
var _chromiumSwitches = require("../chromium/chromiumSwitches");
|
|
14
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
15
|
/**
|
|
15
16
|
* Copyright (c) Microsoft Corporation.
|
|
16
17
|
*
|
|
@@ -42,7 +43,7 @@ class BidiChromium extends _browserType.BrowserType {
|
|
|
42
43
|
}
|
|
43
44
|
doRewriteStartupLog(error) {
|
|
44
45
|
if (!error.logs) return error;
|
|
45
|
-
if (error.logs.includes('Missing X server')) error.logs = '\n' + (0,
|
|
46
|
+
if (error.logs.includes('Missing X server')) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
|
|
46
47
|
// These error messages are taken from Chromium source code as of July, 2020:
|
|
47
48
|
// https://github.com/chromium/chromium/blob/70565f67e79f79e17663ad1337dc6e63ee207ce9/content/browser/zygote_host/zygote_host_impl_linux.cc
|
|
48
49
|
if (!error.logs.includes('crbug.com/357670') && !error.logs.includes('No usable sandbox!') && !error.logs.includes('crbug.com/638180')) return error;
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.kBrowserCloseMessageId = exports.BidiSession = exports.BidiConnection = void 0;
|
|
7
7
|
var _events = require("events");
|
|
8
|
-
var _debugLogger = require("
|
|
8
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
9
9
|
var _helper = require("../helper");
|
|
10
10
|
var _protocolError = require("../protocolError");
|
|
11
11
|
/**
|
|
@@ -4,13 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BidiExecutionContext = void 0;
|
|
7
|
+
exports.createHandle = createHandle;
|
|
8
|
+
var _utils = require("../../utils");
|
|
7
9
|
var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
|
|
8
10
|
var js = _interopRequireWildcard(require("../javascript"));
|
|
11
|
+
var dom = _interopRequireWildcard(require("../dom"));
|
|
9
12
|
var _bidiDeserializer = require("./third_party/bidiDeserializer");
|
|
10
13
|
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
11
14
|
var _bidiSerializer = require("./third_party/bidiSerializer");
|
|
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
|
*
|
|
@@ -59,7 +62,7 @@ class BidiExecutionContext {
|
|
|
59
62
|
if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
|
|
60
63
|
throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
|
|
61
64
|
}
|
|
62
|
-
async rawEvaluateHandle(expression) {
|
|
65
|
+
async rawEvaluateHandle(context, expression) {
|
|
63
66
|
const response = await this._session.send('script.evaluate', {
|
|
64
67
|
expression,
|
|
65
68
|
target: this._target,
|
|
@@ -73,20 +76,20 @@ class BidiExecutionContext {
|
|
|
73
76
|
userActivation: true
|
|
74
77
|
});
|
|
75
78
|
if (response.type === 'success') {
|
|
76
|
-
if ('handle' in response.result) return response.result
|
|
79
|
+
if ('handle' in response.result) return createHandle(context, response.result);
|
|
77
80
|
throw new js.JavaScriptErrorInEvaluate('Cannot get handle: ' + JSON.stringify(response.result));
|
|
78
81
|
}
|
|
79
82
|
if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
|
|
80
83
|
throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
|
|
81
84
|
}
|
|
82
|
-
async evaluateWithArguments(functionDeclaration, returnByValue, utilityScript, values,
|
|
85
|
+
async evaluateWithArguments(functionDeclaration, returnByValue, utilityScript, values, handles) {
|
|
83
86
|
const response = await this._session.send('script.callFunction', {
|
|
84
87
|
functionDeclaration,
|
|
85
88
|
target: this._target,
|
|
86
89
|
arguments: [{
|
|
87
90
|
handle: utilityScript._objectId
|
|
88
|
-
}, ...values.map(_bidiSerializer.BidiSerializer.serialize), ...
|
|
89
|
-
handle
|
|
91
|
+
}, ...values.map(_bidiSerializer.BidiSerializer.serialize), ...handles.map(handle => ({
|
|
92
|
+
handle: handle._objectId
|
|
90
93
|
}))],
|
|
91
94
|
resultOwnership: returnByValue ? undefined : bidi.Script.ResultOwnership.Root,
|
|
92
95
|
// Necessary for the handle to be returned.
|
|
@@ -100,53 +103,72 @@ class BidiExecutionContext {
|
|
|
100
103
|
if (response.type === 'exception') throw new js.JavaScriptErrorInEvaluate(response.exceptionDetails.text + '\nFull val: ' + JSON.stringify(response.exceptionDetails));
|
|
101
104
|
if (response.type === 'success') {
|
|
102
105
|
if (returnByValue) return (0, _utilityScriptSerializers.parseEvaluationResultValue)(_bidiDeserializer.BidiDeserializer.deserialize(response.result));
|
|
103
|
-
|
|
104
|
-
return utilityScript._context.createHandle({
|
|
105
|
-
objectId,
|
|
106
|
-
...response.result
|
|
107
|
-
});
|
|
106
|
+
return createHandle(utilityScript._context, response.result);
|
|
108
107
|
}
|
|
109
108
|
throw new js.JavaScriptErrorInEvaluate('Unexpected response type: ' + JSON.stringify(response));
|
|
110
109
|
}
|
|
111
|
-
async getProperties(
|
|
112
|
-
const
|
|
113
|
-
|
|
110
|
+
async getProperties(handle) {
|
|
111
|
+
const names = await handle.evaluate(object => {
|
|
112
|
+
const names = [];
|
|
113
|
+
const descriptors = Object.getOwnPropertyDescriptors(object);
|
|
114
|
+
for (const name in descriptors) {
|
|
115
|
+
var _descriptors$name;
|
|
116
|
+
if ((_descriptors$name = descriptors[name]) !== null && _descriptors$name !== void 0 && _descriptors$name.enumerable) names.push(name);
|
|
117
|
+
}
|
|
118
|
+
return names;
|
|
114
119
|
});
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
for (const name in descriptors) {
|
|
120
|
-
var _descriptors$name;
|
|
121
|
-
if ((_descriptors$name = descriptors[name]) !== null && _descriptors$name !== void 0 && _descriptors$name.enumerable) names.push(name);
|
|
122
|
-
}
|
|
123
|
-
return names;
|
|
124
|
-
});
|
|
125
|
-
const values = await Promise.all(names.map(name => handle.evaluateHandle((object, name) => object[name], name)));
|
|
126
|
-
const map = new Map();
|
|
127
|
-
for (let i = 0; i < names.length; i++) map.set(names[i], values[i]);
|
|
128
|
-
return map;
|
|
129
|
-
} finally {
|
|
130
|
-
handle.dispose();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
createHandle(context, jsRemoteObject) {
|
|
134
|
-
const remoteObject = jsRemoteObject;
|
|
135
|
-
return new js.JSHandle(context, remoteObject.type, renderPreview(remoteObject), jsRemoteObject.objectId, remoteObjectValue(remoteObject));
|
|
120
|
+
const values = await Promise.all(names.map(name => handle.evaluateHandle((object, name) => object[name], name)));
|
|
121
|
+
const map = new Map();
|
|
122
|
+
for (let i = 0; i < names.length; i++) map.set(names[i], values[i]);
|
|
123
|
+
return map;
|
|
136
124
|
}
|
|
137
|
-
async releaseHandle(
|
|
125
|
+
async releaseHandle(handle) {
|
|
126
|
+
if (!handle._objectId) return;
|
|
138
127
|
await this._session.send('script.disown', {
|
|
139
128
|
target: this._target,
|
|
140
|
-
handles: [
|
|
129
|
+
handles: [handle._objectId]
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
async nodeIdForElementHandle(handle) {
|
|
133
|
+
const shared = await this._remoteValueForReference({
|
|
134
|
+
handle: handle._objectId
|
|
135
|
+
});
|
|
136
|
+
// TODO: store sharedId in the handle.
|
|
137
|
+
if (!('sharedId' in shared)) throw new Error('Element is not a node');
|
|
138
|
+
return {
|
|
139
|
+
sharedId: shared.sharedId
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
async remoteObjectForNodeId(context, nodeId) {
|
|
143
|
+
const result = await this._remoteValueForReference(nodeId, true);
|
|
144
|
+
if (!('handle' in result)) throw new Error('Can\'t get remote object for nodeId');
|
|
145
|
+
return createHandle(context, result);
|
|
146
|
+
}
|
|
147
|
+
async contentFrameIdForFrame(handle) {
|
|
148
|
+
const contentWindow = await this._rawCallFunction('e => e.contentWindow', {
|
|
149
|
+
handle: handle._objectId
|
|
141
150
|
});
|
|
151
|
+
if ((contentWindow === null || contentWindow === void 0 ? void 0 : contentWindow.type) === 'window') return contentWindow.value.context;
|
|
152
|
+
return null;
|
|
142
153
|
}
|
|
143
|
-
async
|
|
154
|
+
async frameIdForWindowHandle(handle) {
|
|
155
|
+
if (!handle._objectId) throw new Error('JSHandle is not a DOM node handle');
|
|
156
|
+
const contentWindow = await this._remoteValueForReference({
|
|
157
|
+
handle: handle._objectId
|
|
158
|
+
});
|
|
159
|
+
if (contentWindow.type === 'window') return contentWindow.value.context;
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
async _remoteValueForReference(reference, createHandle) {
|
|
163
|
+
return await this._rawCallFunction('e => e', reference, createHandle);
|
|
164
|
+
}
|
|
165
|
+
async _rawCallFunction(functionDeclaration, arg, createHandle) {
|
|
144
166
|
const response = await this._session.send('script.callFunction', {
|
|
145
167
|
functionDeclaration,
|
|
146
168
|
target: this._target,
|
|
147
169
|
arguments: [arg],
|
|
148
|
-
|
|
149
|
-
|
|
170
|
+
// "Root" is necessary for the handle to be returned.
|
|
171
|
+
resultOwnership: createHandle ? bidi.Script.ResultOwnership.Root : bidi.Script.ResultOwnership.None,
|
|
150
172
|
serializationOptions: {
|
|
151
173
|
maxObjectDepth: 0,
|
|
152
174
|
maxDomDepth: 0
|
|
@@ -172,4 +194,12 @@ function remoteObjectValue(remoteObject) {
|
|
|
172
194
|
if (remoteObject.type === 'number' && typeof remoteObject.value === 'string') return js.parseUnserializableValue(remoteObject.value);
|
|
173
195
|
if ('value' in remoteObject) return remoteObject.value;
|
|
174
196
|
return undefined;
|
|
197
|
+
}
|
|
198
|
+
function createHandle(context, remoteObject) {
|
|
199
|
+
if (remoteObject.type === 'node') {
|
|
200
|
+
(0, _utils.assert)(context instanceof dom.FrameExecutionContext);
|
|
201
|
+
return new dom.ElementHandle(context, remoteObject.handle);
|
|
202
|
+
}
|
|
203
|
+
const objectId = 'handle' in remoteObject ? remoteObject.handle : undefined;
|
|
204
|
+
return new js.JSHandle(context, remoteObject.type, renderPreview(remoteObject), objectId, remoteObjectValue(remoteObject));
|
|
175
205
|
}
|
|
@@ -7,11 +7,12 @@ exports.BidiFirefox = void 0;
|
|
|
7
7
|
var _os = _interopRequireDefault(require("os"));
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
9
|
var _utils = require("../../utils");
|
|
10
|
+
var _ascii = require("../utils/ascii");
|
|
10
11
|
var _browserType = require("../browserType");
|
|
11
12
|
var _bidiBrowser = require("./bidiBrowser");
|
|
12
13
|
var _bidiConnection = require("./bidiConnection");
|
|
13
14
|
var _firefoxPrefs = require("./third_party/firefoxPrefs");
|
|
14
|
-
function _interopRequireDefault(
|
|
15
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
16
|
/**
|
|
16
17
|
* Copyright (c) Microsoft Corporation.
|
|
17
18
|
*
|
|
@@ -39,8 +40,8 @@ class BidiFirefox extends _browserType.BrowserType {
|
|
|
39
40
|
doRewriteStartupLog(error) {
|
|
40
41
|
if (!error.logs) return error;
|
|
41
42
|
// https://github.com/microsoft/playwright/issues/6500
|
|
42
|
-
if (error.logs.includes(`as root in a regular user's session is not supported.`)) error.logs = '\n' + (0,
|
|
43
|
-
if (error.logs.includes('no DISPLAY environment variable specified')) error.logs = '\n' + (0,
|
|
43
|
+
if (error.logs.includes(`as root in a regular user's session is not supported.`)) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(`Firefox is unable to launch if the $HOME folder isn't owned by the current user.\nWorkaround: Set the HOME=/root environment variable${process.env.GITHUB_ACTION ? ' in your GitHub Actions workflow file' : ''} when running Playwright.`, 1);
|
|
44
|
+
if (error.logs.includes('no DISPLAY environment variable specified')) error.logs = '\n' + (0, _ascii.wrapInASCIIBox)(_browserType.kNoXServerRunningError, 1);
|
|
44
45
|
return error;
|
|
45
46
|
}
|
|
46
47
|
amendEnvironment(env, userDataDir, executable, browserArguments) {
|
|
@@ -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 bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
8
|
-
var _bidiKeyboard = require("./third_party/bidiKeyboard");
|
|
9
7
|
var _input = require("../input");
|
|
8
|
+
var _bidiKeyboard = require("./third_party/bidiKeyboard");
|
|
9
|
+
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
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 (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -84,9 +84,6 @@ class RawMouseImpl {
|
|
|
84
84
|
this._session = session;
|
|
85
85
|
}
|
|
86
86
|
async move(x, y, button, buttons, modifiers, forClick) {
|
|
87
|
-
// Bidi throws when x/y are not integers.
|
|
88
|
-
x = Math.round(x);
|
|
89
|
-
y = Math.round(y);
|
|
90
87
|
await this._performActions([{
|
|
91
88
|
type: 'pointerMove',
|
|
92
89
|
x,
|
|
@@ -107,8 +104,8 @@ class RawMouseImpl {
|
|
|
107
104
|
}
|
|
108
105
|
async wheel(x, y, buttons, modifiers, deltaX, deltaY) {
|
|
109
106
|
// Bidi throws when x/y are not integers.
|
|
110
|
-
x = Math.
|
|
111
|
-
y = Math.
|
|
107
|
+
x = Math.floor(x);
|
|
108
|
+
y = Math.floor(y);
|
|
112
109
|
await this._session.send('input.performActions', {
|
|
113
110
|
context: this._session.sessionId,
|
|
114
111
|
actions: [{
|
|
@@ -5,12 +5,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.BidiNetworkManager = void 0;
|
|
7
7
|
exports.bidiBytesValueToString = bidiBytesValueToString;
|
|
8
|
-
var _eventsHelper = require("
|
|
8
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
9
|
+
var _cookieStore = require("../cookieStore");
|
|
9
10
|
var network = _interopRequireWildcard(require("../network"));
|
|
10
11
|
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
11
|
-
var _cookieStore = require("../cookieStore");
|
|
12
12
|
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 &&
|
|
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 && {}.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
14
|
/**
|
|
15
15
|
* Copyright (c) Microsoft Corporation.
|
|
16
16
|
*
|
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.connectBidiOverCdp = connectBidiOverCdp;
|
|
7
7
|
var bidiMapper = _interopRequireWildcard(require("chromium-bidi/lib/cjs/bidiMapper/BidiMapper"));
|
|
8
8
|
var bidiCdpConnection = _interopRequireWildcard(require("chromium-bidi/lib/cjs/cdp/CdpConnection"));
|
|
9
|
-
var _debugLogger = require("
|
|
9
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
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 (c) Microsoft Corporation.
|
|
14
14
|
*
|
|
@@ -4,19 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BidiPage = void 0;
|
|
7
|
-
var _eventsHelper = require("../../utils/eventsHelper");
|
|
8
7
|
var _utils = require("../../utils");
|
|
9
|
-
var
|
|
8
|
+
var _eventsHelper = require("../utils/eventsHelper");
|
|
9
|
+
var _browserContext = require("../browserContext");
|
|
10
10
|
var dialog = _interopRequireWildcard(require("../dialog"));
|
|
11
|
+
var dom = _interopRequireWildcard(require("../dom"));
|
|
11
12
|
var _page = require("../page");
|
|
12
|
-
var _bidiInput = require("./bidiInput");
|
|
13
|
-
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
14
13
|
var _bidiExecutionContext = require("./bidiExecutionContext");
|
|
14
|
+
var _bidiInput = require("./bidiInput");
|
|
15
15
|
var _bidiNetworkManager = require("./bidiNetworkManager");
|
|
16
|
-
var _browserContext = require("../browserContext");
|
|
17
16
|
var _bidiPdf = require("./bidiPdf");
|
|
17
|
+
var bidi = _interopRequireWildcard(require("./third_party/bidiProtocol"));
|
|
18
18
|
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); }
|
|
19
|
-
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 &&
|
|
19
|
+
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; }
|
|
20
20
|
/**
|
|
21
21
|
* Copyright (c) Microsoft Corporation.
|
|
22
22
|
*
|
|
@@ -101,7 +101,6 @@ class BidiPage {
|
|
|
101
101
|
if (realmInfo.type !== 'window') return;
|
|
102
102
|
const frame = this._page._frameManager.frame(realmInfo.context);
|
|
103
103
|
if (!frame) return;
|
|
104
|
-
const delegate = new _bidiExecutionContext.BidiExecutionContext(this._session, realmInfo);
|
|
105
104
|
let worldName;
|
|
106
105
|
if (!realmInfo.sandbox) {
|
|
107
106
|
worldName = 'main';
|
|
@@ -112,8 +111,8 @@ class BidiPage {
|
|
|
112
111
|
} else {
|
|
113
112
|
return;
|
|
114
113
|
}
|
|
114
|
+
const delegate = new _bidiExecutionContext.BidiExecutionContext(this._session, realmInfo);
|
|
115
115
|
const context = new dom.FrameExecutionContext(delegate, frame, worldName);
|
|
116
|
-
context[contextDelegateSymbol] = delegate;
|
|
117
116
|
frame._contextCreated(worldName, context);
|
|
118
117
|
this._realmToContext.set(realmInfo.realm, context);
|
|
119
118
|
}
|
|
@@ -202,10 +201,7 @@ class BidiPage {
|
|
|
202
201
|
lineNumber: 1,
|
|
203
202
|
columnNumber: 1
|
|
204
203
|
};
|
|
205
|
-
this._page._addConsoleMessage(entry.method, entry.args.map(arg =>
|
|
206
|
-
objectId: arg.handle,
|
|
207
|
-
...arg
|
|
208
|
-
})), location, params.text || undefined);
|
|
204
|
+
this._page._addConsoleMessage(entry.method, entry.args.map(arg => (0, _bidiExecutionContext.createHandle)(context, arg)), location, params.text || undefined);
|
|
209
205
|
}
|
|
210
206
|
async navigateFrame(frame, url, referrer) {
|
|
211
207
|
const {
|
|
@@ -352,21 +348,20 @@ class BidiPage {
|
|
|
352
348
|
}
|
|
353
349
|
async getContentFrame(handle) {
|
|
354
350
|
const executionContext = toBidiExecutionContext(handle._context);
|
|
355
|
-
const
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
if (contentWindow.type === 'window') {
|
|
359
|
-
const frameId = contentWindow.value.context;
|
|
360
|
-
const result = this._page._frameManager.frame(frameId);
|
|
361
|
-
return result;
|
|
362
|
-
}
|
|
363
|
-
return null;
|
|
351
|
+
const frameId = await executionContext.contentFrameIdForFrame(handle);
|
|
352
|
+
if (!frameId) return null;
|
|
353
|
+
return this._page._frameManager.frame(frameId);
|
|
364
354
|
}
|
|
365
355
|
async getOwnerFrame(handle) {
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
356
|
+
// TODO: switch to utility world?
|
|
357
|
+
const windowHandle = await handle.evaluateHandle(node => {
|
|
358
|
+
var _node$ownerDocument;
|
|
359
|
+
const doc = (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 ? _node$ownerDocument : node;
|
|
360
|
+
return doc.defaultView;
|
|
361
|
+
});
|
|
362
|
+
if (!windowHandle) return null;
|
|
363
|
+
const executionContext = toBidiExecutionContext(handle._context);
|
|
364
|
+
return executionContext.frameIdForWindowHandle(windowHandle);
|
|
370
365
|
}
|
|
371
366
|
async getBoundingBox(handle) {
|
|
372
367
|
const box = await handle.evaluate(element => {
|
|
@@ -449,29 +444,19 @@ class BidiPage {
|
|
|
449
444
|
}));
|
|
450
445
|
return quads;
|
|
451
446
|
}
|
|
452
|
-
async setInputFiles(handle, files) {
|
|
453
|
-
throw new Error('Method not implemented.');
|
|
454
|
-
}
|
|
455
447
|
async setInputFilePaths(handle, paths) {
|
|
456
|
-
|
|
448
|
+
const fromContext = toBidiExecutionContext(handle._context);
|
|
449
|
+
await this._session.send('input.setFiles', {
|
|
450
|
+
context: this._session.sessionId,
|
|
451
|
+
element: await fromContext.nodeIdForElementHandle(handle),
|
|
452
|
+
files: paths
|
|
453
|
+
});
|
|
457
454
|
}
|
|
458
455
|
async adoptElementHandle(handle, to) {
|
|
459
456
|
const fromContext = toBidiExecutionContext(handle._context);
|
|
460
|
-
const
|
|
461
|
-
handle: handle._objectId
|
|
462
|
-
});
|
|
463
|
-
// TODO: store sharedId in the handle.
|
|
464
|
-
if (!('sharedId' in shared)) throw new Error('Element is not a node');
|
|
465
|
-
const sharedId = shared.sharedId;
|
|
457
|
+
const nodeId = await fromContext.nodeIdForElementHandle(handle);
|
|
466
458
|
const executionContext = toBidiExecutionContext(to);
|
|
467
|
-
|
|
468
|
-
sharedId
|
|
469
|
-
});
|
|
470
|
-
if ('handle' in result) return to.createHandle({
|
|
471
|
-
objectId: result.handle,
|
|
472
|
-
...result
|
|
473
|
-
});
|
|
474
|
-
throw new Error('Failed to adopt element handle.');
|
|
459
|
+
return await executionContext.remoteObjectForNodeId(to, nodeId);
|
|
475
460
|
}
|
|
476
461
|
async getAccessibilityTree(needle) {
|
|
477
462
|
throw new Error('Method not implemented.');
|
|
@@ -513,6 +498,5 @@ function addMainBinding(callback) {
|
|
|
513
498
|
globalThis['__playwright__binding__'] = callback;
|
|
514
499
|
}
|
|
515
500
|
function toBidiExecutionContext(executionContext) {
|
|
516
|
-
return executionContext
|
|
517
|
-
}
|
|
518
|
-
const contextDelegateSymbol = Symbol('delegate');
|
|
501
|
+
return executionContext.delegate;
|
|
502
|
+
}
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.createProfile = createProfile;
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
8
|
var _path = _interopRequireDefault(require("path"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
/**
|
|
11
11
|
* @license
|
|
12
12
|
* Copyright 2023 Google Inc.
|
|
@@ -47,6 +47,13 @@ function defaultProfilePreferences(extraPrefs) {
|
|
|
47
47
|
// console
|
|
48
48
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1543115
|
|
49
49
|
'browser.dom.window.dump.enabled': true,
|
|
50
|
+
// Make sure newtab weather doesn't hit the network to retrieve weather data.
|
|
51
|
+
'browser.newtabpage.activity-stream.discoverystream.region-weather-config': '',
|
|
52
|
+
// Make sure newtab wallpapers don't hit the network to retrieve wallpaper data.
|
|
53
|
+
'browser.newtabpage.activity-stream.newtabWallpapers.enabled': false,
|
|
54
|
+
'browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled': false,
|
|
55
|
+
// Make sure Topsites doesn't hit the network to retrieve sponsored tiles.
|
|
56
|
+
'browser.newtabpage.activity-stream.showSponsoredTopSites': false,
|
|
50
57
|
// Disable topstories
|
|
51
58
|
'browser.newtabpage.activity-stream.feeds.system.topstories': false,
|
|
52
59
|
// Always display a blank page
|
|
@@ -112,6 +119,13 @@ function defaultProfilePreferences(extraPrefs) {
|
|
|
112
119
|
// Disable slow script dialogues
|
|
113
120
|
'dom.max_chrome_script_run_time': 0,
|
|
114
121
|
'dom.max_script_run_time': 0,
|
|
122
|
+
// Disable background timer throttling to allow tests to run in parallel
|
|
123
|
+
// without a decrease in performance.
|
|
124
|
+
'dom.min_background_timeout_value': 0,
|
|
125
|
+
'dom.min_background_timeout_value_without_budget_throttling': 0,
|
|
126
|
+
'dom.timeout.enable_budget_timer_throttling': false,
|
|
127
|
+
// Disable HTTPS-First upgrades
|
|
128
|
+
'dom.security.https_first': false,
|
|
115
129
|
// Only load extensions from the application and user profile
|
|
116
130
|
// AddonManager.SCOPE_PROFILE + AddonManager.SCOPE_APPLICATION
|
|
117
131
|
'extensions.autoDisableScopes': 0,
|
|
@@ -141,10 +155,14 @@ function defaultProfilePreferences(extraPrefs) {
|
|
|
141
155
|
'hangmonitor.timeout': 0,
|
|
142
156
|
// Show chrome errors and warnings in the error console
|
|
143
157
|
'javascript.options.showInConsole': true,
|
|
158
|
+
// Do not throttle rendering (requestAnimationFrame) in background tabs
|
|
159
|
+
'layout.testing.top-level-always-active': true,
|
|
144
160
|
// Disable download and usage of OpenH264: and Widevine plugins
|
|
145
161
|
'media.gmp-manager.updateEnabled': false,
|
|
146
162
|
// Disable the GFX sanity window
|
|
147
163
|
'media.sanity-test.disabled': true,
|
|
164
|
+
// Disable connectivity service pings
|
|
165
|
+
'network.connectivity-service.enabled': false,
|
|
148
166
|
// Disable experimental feature that is only available in Nightly
|
|
149
167
|
'network.cookie.sameSite.laxByDefault': false,
|
|
150
168
|
// Do not prompt for temporary redirects
|
|
@@ -169,8 +187,6 @@ function defaultProfilePreferences(extraPrefs) {
|
|
|
169
187
|
'security.fileuri.strict_origin_policy': false,
|
|
170
188
|
// Do not wait for the notification button security delay
|
|
171
189
|
'security.notification_enable_delay': 0,
|
|
172
|
-
// Ensure blocklist updates do not hit the network
|
|
173
|
-
'services.settings.server': `http://${server}/dummy/blocklist/`,
|
|
174
190
|
// Do not automatically fill sign-in forms with known usernames and
|
|
175
191
|
// passwords
|
|
176
192
|
'signon.autofillForms': false,
|
package/lib/server/browser.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Browser = void 0;
|
|
7
|
+
var _artifact = require("./artifact");
|
|
7
8
|
var _browserContext = require("./browserContext");
|
|
8
|
-
var _page = require("./page");
|
|
9
9
|
var _download = require("./download");
|
|
10
10
|
var _instrumentation = require("./instrumentation");
|
|
11
|
-
var
|
|
11
|
+
var _page = require("./page");
|
|
12
12
|
var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
|
|
13
13
|
/**
|
|
14
14
|
* Copyright (c) Microsoft Corporation.
|