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
|
@@ -9,26 +9,29 @@ exports.normalizeProxySettings = normalizeProxySettings;
|
|
|
9
9
|
exports.validateBrowserContextOptions = validateBrowserContextOptions;
|
|
10
10
|
exports.verifyClientCertificates = verifyClientCertificates;
|
|
11
11
|
exports.verifyGeolocation = verifyGeolocation;
|
|
12
|
-
var _timeoutSettings = require("../common/timeoutSettings");
|
|
13
|
-
var _utils = require("../utils");
|
|
14
|
-
var _fileUtils = require("../utils/fileUtils");
|
|
15
|
-
var _helper = require("./helper");
|
|
16
|
-
var network = _interopRequireWildcard(require("./network"));
|
|
17
|
-
var _page6 = require("./page");
|
|
18
|
-
var _path = _interopRequireDefault(require("path"));
|
|
19
12
|
var _fs = _interopRequireDefault(require("fs"));
|
|
20
|
-
var
|
|
13
|
+
var _path = _interopRequireDefault(require("path"));
|
|
14
|
+
var _timeoutSettings = require("./timeoutSettings");
|
|
15
|
+
var _crypto = require("./utils/crypto");
|
|
16
|
+
var _debug = require("./utils/debug");
|
|
17
|
+
var _clock = require("./clock");
|
|
21
18
|
var _debugger = require("./debugger");
|
|
22
|
-
var
|
|
19
|
+
var _fetch = require("./fetch");
|
|
20
|
+
var _fileUtils = require("./utils/fileUtils");
|
|
23
21
|
var _harRecorder = require("./har/harRecorder");
|
|
22
|
+
var _helper = require("./helper");
|
|
23
|
+
var _instrumentation = require("./instrumentation");
|
|
24
|
+
var utilityScriptSerializers = _interopRequireWildcard(require("./isomorphic/utilityScriptSerializers"));
|
|
25
|
+
var network = _interopRequireWildcard(require("./network"));
|
|
26
|
+
var _page6 = require("./page");
|
|
24
27
|
var _recorder = require("./recorder");
|
|
25
|
-
var consoleApiSource = _interopRequireWildcard(require("../generated/consoleApiSource"));
|
|
26
|
-
var _fetch = require("./fetch");
|
|
27
|
-
var _clock = require("./clock");
|
|
28
28
|
var _recorderApp = require("./recorder/recorderApp");
|
|
29
|
-
|
|
29
|
+
var storageScript = _interopRequireWildcard(require("./storageScript"));
|
|
30
|
+
var consoleApiSource = _interopRequireWildcard(require("../generated/consoleApiSource"));
|
|
31
|
+
var _tracing = require("./trace/recorder/tracing");
|
|
30
32
|
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); }
|
|
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 &&
|
|
33
|
+
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; }
|
|
34
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
32
35
|
/**
|
|
33
36
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
34
37
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -102,7 +105,7 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
102
105
|
this._debugger = new _debugger.Debugger(this);
|
|
103
106
|
|
|
104
107
|
// When PWDEBUG=1, show inspector for each context.
|
|
105
|
-
if ((0,
|
|
108
|
+
if ((0, _debug.debugMode)() === 'inspector') await _recorder.Recorder.show(this, _recorderApp.RecorderApp.factory(this), {
|
|
106
109
|
pauseOnNextStatement: true
|
|
107
110
|
});
|
|
108
111
|
|
|
@@ -111,7 +114,7 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
111
114
|
this._debugger.on(_debugger.Debugger.Events.PausedStateChanged, () => {
|
|
112
115
|
if (this._debugger.isPaused()) _recorder.Recorder.showInspectorNoReply(this, _recorderApp.RecorderApp.factory(this));
|
|
113
116
|
});
|
|
114
|
-
if ((0,
|
|
117
|
+
if ((0, _debug.debugMode)() === 'console') await this.extendInjectedScript(consoleApiSource.source);
|
|
115
118
|
if (this._options.serviceWorkers === 'block') await this.addInitScript(`navigator.serviceWorker.register = async () => { };`);
|
|
116
119
|
if (this._options.permissions) await this.grantPermissions(this._options.permissions);
|
|
117
120
|
}
|
|
@@ -399,24 +402,25 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
399
402
|
addVisitedOrigin(origin) {
|
|
400
403
|
this._origins.add(origin);
|
|
401
404
|
}
|
|
402
|
-
async storageState() {
|
|
405
|
+
async storageState(indexedDB = false) {
|
|
403
406
|
const result = {
|
|
404
407
|
cookies: await this.cookies(),
|
|
405
408
|
origins: []
|
|
406
409
|
};
|
|
407
410
|
const originsToSave = new Set(this._origins);
|
|
411
|
+
const collectScript = `(${storageScript.collect})((${utilityScriptSerializers.source})(), ${this._browser.options.name === 'firefox'}, ${indexedDB})`;
|
|
408
412
|
|
|
409
413
|
// First try collecting storage stage from existing pages.
|
|
410
414
|
for (const page of this.pages()) {
|
|
411
415
|
const origin = page.mainFrame().origin();
|
|
412
416
|
if (!origin || !originsToSave.has(origin)) continue;
|
|
413
417
|
try {
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
if (storage.localStorage.length) result.origins.push({
|
|
418
|
+
var _storage$indexedDB;
|
|
419
|
+
const storage = await page.mainFrame().nonStallingEvaluateInExistingContext(collectScript, 'utility');
|
|
420
|
+
if (storage.localStorage.length || (_storage$indexedDB = storage.indexedDB) !== null && _storage$indexedDB !== void 0 && _storage$indexedDB.length) result.origins.push({
|
|
418
421
|
origin,
|
|
419
|
-
localStorage: storage.localStorage
|
|
422
|
+
localStorage: storage.localStorage,
|
|
423
|
+
indexedDB: storage.indexedDB
|
|
420
424
|
});
|
|
421
425
|
originsToSave.delete(origin);
|
|
422
426
|
} catch {
|
|
@@ -435,19 +439,17 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
435
439
|
return true;
|
|
436
440
|
});
|
|
437
441
|
for (const origin of originsToSave) {
|
|
438
|
-
|
|
439
|
-
origin,
|
|
440
|
-
localStorage: []
|
|
441
|
-
};
|
|
442
|
+
var _storage$indexedDB2;
|
|
442
443
|
const frame = page.mainFrame();
|
|
443
444
|
await frame.goto(internalMetadata, origin);
|
|
444
|
-
const storage = await frame.evaluateExpression(
|
|
445
|
-
localStorage: Object.keys(localStorage).map(name => ({ name, value: localStorage.getItem(name) })),
|
|
446
|
-
})`, {
|
|
445
|
+
const storage = await frame.evaluateExpression(collectScript, {
|
|
447
446
|
world: 'utility'
|
|
448
447
|
});
|
|
449
|
-
|
|
450
|
-
|
|
448
|
+
if (storage.localStorage.length || (_storage$indexedDB2 = storage.indexedDB) !== null && _storage$indexedDB2 !== void 0 && _storage$indexedDB2.length) result.origins.push({
|
|
449
|
+
origin,
|
|
450
|
+
localStorage: storage.localStorage,
|
|
451
|
+
indexedDB: storage.indexedDB
|
|
452
|
+
});
|
|
451
453
|
}
|
|
452
454
|
await page.close(internalMetadata);
|
|
453
455
|
}
|
|
@@ -505,14 +507,9 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
505
507
|
for (const originState of state.origins) {
|
|
506
508
|
const frame = page.mainFrame();
|
|
507
509
|
await frame.goto(metadata, originState.origin);
|
|
508
|
-
await frame.evaluateExpression(`
|
|
509
|
-
originState => {
|
|
510
|
-
for (const { name, value } of (originState.localStorage || []))
|
|
511
|
-
localStorage.setItem(name, value);
|
|
512
|
-
}`, {
|
|
513
|
-
isFunction: true,
|
|
510
|
+
await frame.evaluateExpression(`(${storageScript.restore})(${JSON.stringify(originState)}, (${utilityScriptSerializers.source})())`, {
|
|
514
511
|
world: 'utility'
|
|
515
|
-
}
|
|
512
|
+
});
|
|
516
513
|
}
|
|
517
514
|
await page.close(internalMetadata);
|
|
518
515
|
}
|
|
@@ -533,7 +530,7 @@ class BrowserContext extends _instrumentation.SdkObject {
|
|
|
533
530
|
await Promise.all(this.pages().map(page => page.safeNonStallingEvaluateInAllFrames(expression, world, options)));
|
|
534
531
|
}
|
|
535
532
|
async _harStart(page, options) {
|
|
536
|
-
const harId = (0,
|
|
533
|
+
const harId = (0, _crypto.createGuid)();
|
|
537
534
|
this._harRecorders.set(harId, new _harRecorder.HarRecorder(this, page, options));
|
|
538
535
|
return harId;
|
|
539
536
|
}
|
|
@@ -658,7 +655,7 @@ function normalizeProxySettings(proxy) {
|
|
|
658
655
|
bypass
|
|
659
656
|
};
|
|
660
657
|
}
|
|
661
|
-
const paramsThatAllowContextReuse = ['colorScheme', 'forcedColors', 'reducedMotion', 'screen', 'userAgent', 'viewport'];
|
|
658
|
+
const paramsThatAllowContextReuse = ['colorScheme', 'forcedColors', 'reducedMotion', 'contrast', 'screen', 'userAgent', 'viewport'];
|
|
662
659
|
const defaultNewContextParamValues = {
|
|
663
660
|
noDefaultViewport: false,
|
|
664
661
|
ignoreHTTPSErrors: false,
|
|
@@ -5,25 +5,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.kNoXServerRunningError = exports.BrowserType = exports.BrowserReadyState = void 0;
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
-
var
|
|
8
|
+
var _os = _interopRequireDefault(require("os"));
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
10
|
var _browserContext = require("./browserContext");
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var _timeoutSettings = require("../common/timeoutSettings");
|
|
17
|
-
var _utils = require("../utils");
|
|
18
|
-
var _fileUtils = require("../utils/fileUtils");
|
|
11
|
+
var _timeoutSettings = require("./timeoutSettings");
|
|
12
|
+
var _debug = require("./utils/debug");
|
|
13
|
+
var _assert = require("../utils/isomorphic/assert");
|
|
14
|
+
var _manualPromise = require("../utils/isomorphic/manualPromise");
|
|
15
|
+
var _fileUtils = require("./utils/fileUtils");
|
|
19
16
|
var _helper = require("./helper");
|
|
20
|
-
var _debugLogger = require("../utils/debugLogger");
|
|
21
17
|
var _instrumentation = require("./instrumentation");
|
|
18
|
+
var _pipeTransport = require("./pipeTransport");
|
|
19
|
+
var _processLauncher = require("./utils/processLauncher");
|
|
20
|
+
var _progress = require("./progress");
|
|
22
21
|
var _protocolError = require("./protocolError");
|
|
22
|
+
var _registry = require("./registry");
|
|
23
23
|
var _socksClientCertificatesInterceptor = require("./socksClientCertificatesInterceptor");
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function _interopRequireDefault(
|
|
24
|
+
var _transport = require("./transport");
|
|
25
|
+
var _debugLogger = require("./utils/debugLogger");
|
|
26
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
27
27
|
/**
|
|
28
28
|
* Copyright (c) Microsoft Corporation.
|
|
29
29
|
*
|
|
@@ -43,7 +43,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
43
43
|
const kNoXServerRunningError = exports.kNoXServerRunningError = 'Looks like you launched a headed browser without having a XServer running.\n' + 'Set either \'headless: true\' or use \'xvfb-run <your-playwright-app>\' before running Playwright.\n\n<3 Playwright Team';
|
|
44
44
|
class BrowserReadyState {
|
|
45
45
|
constructor() {
|
|
46
|
-
this._wsEndpoint = new
|
|
46
|
+
this._wsEndpoint = new _manualPromise.ManualPromise();
|
|
47
47
|
}
|
|
48
48
|
onBrowserExit() {
|
|
49
49
|
// Unblock launch when browser prematurely exits.
|
|
@@ -178,16 +178,17 @@ class BrowserType extends _instrumentation.SdkObject {
|
|
|
178
178
|
const env = options.env ? (0, _processLauncher.envArrayToObject)(options.env) : process.env;
|
|
179
179
|
await this._createArtifactDirs(options);
|
|
180
180
|
const tempDirectories = [];
|
|
181
|
-
const artifactsDir = await _fs.default.promises.mkdtemp(_path.default.join(
|
|
181
|
+
const artifactsDir = await _fs.default.promises.mkdtemp(_path.default.join(_os.default.tmpdir(), 'playwright-artifacts-'));
|
|
182
182
|
tempDirectories.push(artifactsDir);
|
|
183
183
|
if (userDataDir) {
|
|
184
|
+
(0, _assert.assert)(_path.default.isAbsolute(userDataDir), 'userDataDir must be an absolute path');
|
|
184
185
|
// Firefox bails if the profile directory does not exist, Chrome creates it. We ensure consistent behavior here.
|
|
185
186
|
if (!(await (0, _fileUtils.existsAsync)(userDataDir))) await _fs.default.promises.mkdir(userDataDir, {
|
|
186
187
|
recursive: true,
|
|
187
188
|
mode: 0o700
|
|
188
189
|
});
|
|
189
190
|
} else {
|
|
190
|
-
userDataDir = await _fs.default.promises.mkdtemp(_path.default.join(
|
|
191
|
+
userDataDir = await _fs.default.promises.mkdtemp(_path.default.join(_os.default.tmpdir(), `playwright_${this._name}dev_profile-`));
|
|
191
192
|
tempDirectories.push(userDataDir);
|
|
192
193
|
}
|
|
193
194
|
await this.prepareUserDataDir(options, userDataDir);
|
|
@@ -293,7 +294,7 @@ class BrowserType extends _instrumentation.SdkObject {
|
|
|
293
294
|
downloadsPath,
|
|
294
295
|
proxy
|
|
295
296
|
} = options;
|
|
296
|
-
if ((0,
|
|
297
|
+
if ((0, _debug.debugMode)()) headless = false;
|
|
297
298
|
if (downloadsPath && !_path.default.isAbsolute(downloadsPath)) downloadsPath = _path.default.join(process.cwd(), downloadsPath);
|
|
298
299
|
if (this.attribution.playwright.options.socksProxyPort) proxy = {
|
|
299
300
|
server: `socks5://127.0.0.1:${this.attribution.playwright.options.socksProxyPort}`
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.compressCallLog = compressCallLog;
|
|
7
|
+
exports.findRepeatedSubsequencesForTest = void 0;
|
|
7
8
|
/**
|
|
8
9
|
* Copyright (c) Microsoft Corporation.
|
|
9
10
|
*
|
|
10
|
-
* Licensed under the Apache License, Version 2.0 (the
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the 'License");
|
|
11
12
|
* you may not use this file except in compliance with the License.
|
|
12
13
|
* You may obtain a copy of the License at
|
|
13
14
|
*
|
|
@@ -20,6 +21,19 @@ exports.findRepeatedSubsequences = findRepeatedSubsequences;
|
|
|
20
21
|
* limitations under the License.
|
|
21
22
|
*/
|
|
22
23
|
|
|
24
|
+
function compressCallLog(log) {
|
|
25
|
+
const lines = [];
|
|
26
|
+
for (const block of findRepeatedSubsequences(log)) {
|
|
27
|
+
for (let i = 0; i < block.sequence.length; i++) {
|
|
28
|
+
const line = block.sequence[i];
|
|
29
|
+
const leadingWhitespace = line.match(/^\s*/);
|
|
30
|
+
const whitespacePrefix = ' ' + (leadingWhitespace === null || leadingWhitespace === void 0 ? void 0 : leadingWhitespace[0]) || '';
|
|
31
|
+
const countPrefix = `${block.count} × `;
|
|
32
|
+
if (block.count > 1 && i === 0) lines.push(whitespacePrefix + countPrefix + line.trim());else if (block.count > 1) lines.push(whitespacePrefix + ' '.repeat(countPrefix.length - 2) + '- ' + line.trim());else lines.push(whitespacePrefix + '- ' + line.trim());
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return lines;
|
|
36
|
+
}
|
|
23
37
|
function findRepeatedSubsequences(s) {
|
|
24
38
|
const n = s.length;
|
|
25
39
|
const result = [];
|
|
@@ -61,4 +75,5 @@ function findRepeatedSubsequences(s) {
|
|
|
61
75
|
i += maxRepeatLength * maxRepeatCount; // Move index forward
|
|
62
76
|
}
|
|
63
77
|
return result;
|
|
64
|
-
}
|
|
78
|
+
}
|
|
79
|
+
const findRepeatedSubsequencesForTest = exports.findRepeatedSubsequencesForTest = findRepeatedSubsequences;
|
|
@@ -7,27 +7,27 @@ exports.Chromium = void 0;
|
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
8
|
var _os = _interopRequireDefault(require("os"));
|
|
9
9
|
var _path = _interopRequireDefault(require("path"));
|
|
10
|
+
var _chromiumSwitches = require("./chromiumSwitches");
|
|
10
11
|
var _crBrowser = require("./crBrowser");
|
|
11
|
-
var _processLauncher = require("../../utils/processLauncher");
|
|
12
12
|
var _crConnection = require("./crConnection");
|
|
13
|
+
var _timeoutSettings = require("../timeoutSettings");
|
|
14
|
+
var _utils = require("../../utils");
|
|
15
|
+
var _ascii = require("../utils/ascii");
|
|
16
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
17
|
+
var _manualPromise = require("../../utils/isomorphic/manualPromise");
|
|
18
|
+
var _network = require("../utils/network");
|
|
19
|
+
var _userAgent = require("../utils/userAgent");
|
|
20
|
+
var _browserContext = require("../browserContext");
|
|
13
21
|
var _browserType = require("../browserType");
|
|
22
|
+
var _helper = require("../helper");
|
|
23
|
+
var _registry = require("../registry");
|
|
14
24
|
var _transport = require("../transport");
|
|
15
25
|
var _crDevTools = require("./crDevTools");
|
|
16
26
|
var _browser = require("../browser");
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var _ascii = require("../../utils/ascii");
|
|
20
|
-
var _utils = require("../../utils");
|
|
21
|
-
var _fileUtils = require("../../utils/fileUtils");
|
|
22
|
-
var _debugLogger = require("../../utils/debugLogger");
|
|
27
|
+
var _fileUtils = require("../utils/fileUtils");
|
|
28
|
+
var _processLauncher = require("../utils/processLauncher");
|
|
23
29
|
var _progress = require("../progress");
|
|
24
|
-
|
|
25
|
-
var _helper = require("../helper");
|
|
26
|
-
var _registry = require("../registry");
|
|
27
|
-
var _manualPromise = require("../../utils/manualPromise");
|
|
28
|
-
var _browserContext = require("../browserContext");
|
|
29
|
-
var _chromiumSwitches = require("./chromiumSwitches");
|
|
30
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
30
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
31
31
|
/**
|
|
32
32
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
33
33
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -23,13 +23,44 @@ exports.chromiumSwitches = void 0;
|
|
|
23
23
|
|
|
24
24
|
// No dependencies as it is used from the Electron loader.
|
|
25
25
|
|
|
26
|
+
const disabledFeatures = [
|
|
27
|
+
// See https://github.com/microsoft/playwright/pull/10380
|
|
28
|
+
'AcceptCHFrame',
|
|
29
|
+
// See https://github.com/microsoft/playwright/pull/10679
|
|
30
|
+
'AutoExpandDetailsElement',
|
|
31
|
+
// See https://github.com/microsoft/playwright/issues/14047
|
|
32
|
+
'AvoidUnnecessaryBeforeUnloadCheckSync',
|
|
33
|
+
// See https://github.com/microsoft/playwright/pull/12992
|
|
34
|
+
'CertificateTransparencyComponentUpdater',
|
|
35
|
+
// This makes Page.frameScheduledNavigation arrive much later after a click,
|
|
36
|
+
// making our navigation auto-wait after click not working.
|
|
37
|
+
// Can be removed once we deperecate noWaitAfter.
|
|
38
|
+
// See https://github.com/microsoft/playwright/pull/34372.
|
|
39
|
+
'DeferRendererTasksAfterInput', 'DestroyProfileOnBrowserClose',
|
|
40
|
+
// See https://github.com/microsoft/playwright/pull/13854
|
|
41
|
+
'DialMediaRouteProvider',
|
|
42
|
+
// Chromium is disabling manifest version 2. Allow testing it as long as Chromium can actually run it.
|
|
43
|
+
// Disabled in https://chromium-review.googlesource.com/c/chromium/src/+/6265903.
|
|
44
|
+
'ExtensionManifestV2Disabled', 'GlobalMediaControls',
|
|
45
|
+
// See https://github.com/microsoft/playwright/pull/27605
|
|
46
|
+
'HttpsUpgrades', 'ImprovedCookieControls', 'LazyFrameLoading',
|
|
47
|
+
// Hides the Lens feature in the URL address bar. Its not working in unofficial builds.
|
|
48
|
+
'LensOverlay',
|
|
49
|
+
// See https://github.com/microsoft/playwright/pull/8162
|
|
50
|
+
'MediaRouter',
|
|
51
|
+
// See https://github.com/microsoft/playwright/issues/28023
|
|
52
|
+
'PaintHolding',
|
|
53
|
+
// See https://github.com/microsoft/playwright/issues/32230
|
|
54
|
+
'ThirdPartyStoragePartitioning',
|
|
55
|
+
// See https://github.com/microsoft/playwright/issues/16126
|
|
56
|
+
'Translate'];
|
|
26
57
|
const chromiumSwitches = exports.chromiumSwitches = ['--disable-field-trial-config',
|
|
27
58
|
// https://source.chromium.org/chromium/chromium/src/+/main:testing/variations/README.md
|
|
28
59
|
'--disable-background-networking', '--disable-background-timer-throttling', '--disable-backgrounding-occluded-windows',
|
|
29
60
|
// Avoids surprises like main request not being intercepted during page.goBack().
|
|
30
61
|
'--disable-breakpad',
|
|
31
62
|
// Avoids unneeded network activity after startup.
|
|
32
|
-
'--no-default-browser-check', '--disable-dev-shm-usage', '--disable-hang-monitor', '--disable-prompt-on-repost', '--disable-renderer-backgrounding', '--force-color-profile=srgb', '--no-first-run', '--password-store=basic', '--use-mock-keychain',
|
|
63
|
+
'--no-default-browser-check', '--disable-dev-shm-usage', '--disable-features=' + disabledFeatures.join(','), '--disable-hang-monitor', '--disable-prompt-on-repost', '--disable-renderer-backgrounding', '--force-color-profile=srgb', '--no-first-run', '--password-store=basic', '--use-mock-keychain',
|
|
33
64
|
// See https://chromium-review.googlesource.com/c/chromium/src/+/2436773
|
|
34
65
|
'--no-service-autorun', '--export-tagged-pdf',
|
|
35
66
|
// https://chromium-review.googlesource.com/c/chromium/src/+/4853540
|
|
@@ -5,20 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.CRBrowserContext = exports.CRBrowser = void 0;
|
|
7
7
|
var _path = _interopRequireDefault(require("path"));
|
|
8
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
9
|
+
var _crypto = require("../utils/crypto");
|
|
10
|
+
var _artifact = require("../artifact");
|
|
8
11
|
var _browser = require("../browser");
|
|
9
12
|
var _browserContext = require("../browserContext");
|
|
10
|
-
var
|
|
13
|
+
var _frames = require("../frames");
|
|
11
14
|
var network = _interopRequireWildcard(require("../network"));
|
|
12
15
|
var _page = require("../page");
|
|
13
|
-
var _frames = require("../frames");
|
|
14
16
|
var _crConnection = require("./crConnection");
|
|
15
17
|
var _crPage = require("./crPage");
|
|
16
18
|
var _crProtocolHelper = require("./crProtocolHelper");
|
|
17
19
|
var _crServiceWorker = require("./crServiceWorker");
|
|
18
|
-
var _artifact = require("../artifact");
|
|
19
20
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
20
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
21
|
-
function _interopRequireDefault(
|
|
21
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
22
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
22
23
|
/**
|
|
23
24
|
* Copyright 2017 Google Inc. All rights reserved.
|
|
24
25
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -143,7 +144,7 @@ class CRBrowser extends _browser.Browser {
|
|
|
143
144
|
}) {
|
|
144
145
|
if (targetInfo.type === 'browser') return;
|
|
145
146
|
const session = this._session.createChildSession(sessionId);
|
|
146
|
-
(0,
|
|
147
|
+
(0, _assert.assert)(targetInfo.browserContextId, 'targetInfo: ' + JSON.stringify(targetInfo, null, 2));
|
|
147
148
|
let context = this._contexts.get(targetInfo.browserContextId) || null;
|
|
148
149
|
if (!context) {
|
|
149
150
|
// TODO: auto attach only to pages from our contexts.
|
|
@@ -159,9 +160,9 @@ class CRBrowser extends _browser.Browser {
|
|
|
159
160
|
session.detach().catch(() => {});
|
|
160
161
|
return;
|
|
161
162
|
}
|
|
162
|
-
(0,
|
|
163
|
-
(0,
|
|
164
|
-
(0,
|
|
163
|
+
(0, _assert.assert)(!this._crPages.has(targetInfo.targetId), 'Duplicate target ' + targetInfo.targetId);
|
|
164
|
+
(0, _assert.assert)(!this._backgroundPages.has(targetInfo.targetId), 'Duplicate target ' + targetInfo.targetId);
|
|
165
|
+
(0, _assert.assert)(!this._serviceWorkers.has(targetInfo.targetId), 'Duplicate target ' + targetInfo.targetId);
|
|
165
166
|
if (targetInfo.type === 'background_page') {
|
|
166
167
|
const backgroundPage = new _crPage.CRPage(session, targetInfo.targetId, context, null, {
|
|
167
168
|
hasUIWindow: false,
|
|
@@ -258,7 +259,7 @@ class CRBrowser extends _browser.Browser {
|
|
|
258
259
|
return await this._connection.createBrowserSession();
|
|
259
260
|
}
|
|
260
261
|
async startTracing(page, options = {}) {
|
|
261
|
-
(0,
|
|
262
|
+
(0, _assert.assert)(!this._tracingRecording, 'Cannot start recording trace while already recording trace.');
|
|
262
263
|
this._tracingClient = page ? page._delegate._mainFrameSession._client : this._session;
|
|
263
264
|
const defaultCategories = ['-*', 'devtools.timeline', 'v8.execute', 'disabled-by-default-devtools.timeline', 'disabled-by-default-devtools.timeline.frame', 'toplevel', 'blink.console', 'blink.user_timing', 'latencyInfo', 'disabled-by-default-devtools.timeline.stack', 'disabled-by-default-v8.cpu_profiler', 'disabled-by-default-v8.cpu_profiler.hires'];
|
|
264
265
|
const {
|
|
@@ -273,9 +274,9 @@ class CRBrowser extends _browser.Browser {
|
|
|
273
274
|
});
|
|
274
275
|
}
|
|
275
276
|
async stopTracing() {
|
|
276
|
-
(0,
|
|
277
|
+
(0, _assert.assert)(this._tracingClient, 'Tracing was not started.');
|
|
277
278
|
const [event] = await Promise.all([new Promise(f => this._tracingClient.once('Tracing.tracingComplete', f)), this._tracingClient.send('Tracing.end')]);
|
|
278
|
-
const tracingPath = _path.default.join(this.options.artifactsDir, (0,
|
|
279
|
+
const tracingPath = _path.default.join(this.options.artifactsDir, (0, _crypto.createGuid)() + '.crtrace');
|
|
279
280
|
await (0, _crProtocolHelper.saveProtocolStream)(this._tracingClient, event.stream, tracingPath);
|
|
280
281
|
this._tracingRecording = false;
|
|
281
282
|
const artifact = new _artifact.Artifact(this, tracingPath);
|
|
@@ -297,7 +298,7 @@ class CRBrowserContext extends _browserContext.BrowserContext {
|
|
|
297
298
|
this._authenticateProxyViaCredentials();
|
|
298
299
|
}
|
|
299
300
|
async _initialize() {
|
|
300
|
-
(0,
|
|
301
|
+
(0, _assert.assert)(!Array.from(this._browser._crPages.values()).some(page => page._browserContext === this));
|
|
301
302
|
const promises = [super._initialize()];
|
|
302
303
|
if (this._browser.options.name !== 'clank' && this._options.acceptDownloads !== 'internal-browser-default') {
|
|
303
304
|
promises.push(this._browser._session.send('Browser.setDownloadBehavior', {
|
|
@@ -335,7 +336,7 @@ class CRBrowserContext extends _browserContext.BrowserContext {
|
|
|
335
336
|
const page = this._browser._crPages.get(key);
|
|
336
337
|
if (page._opener) newKeys.delete(key);
|
|
337
338
|
}
|
|
338
|
-
(0,
|
|
339
|
+
(0, _assert.assert)(newKeys.size === 1);
|
|
339
340
|
[targetId] = [...newKeys];
|
|
340
341
|
}
|
|
341
342
|
return this._browser._crPages.get(targetId)._page;
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.kBrowserCloseMessageId = exports.ConnectionEvents = exports.CRSession = exports.CRConnection = exports.CDPSession = void 0;
|
|
7
|
-
var _utils = require("../../utils");
|
|
8
7
|
var _events = require("events");
|
|
9
|
-
var
|
|
8
|
+
var _utils = require("../../utils");
|
|
9
|
+
var _debugLogger = require("../utils/debugLogger");
|
|
10
10
|
var _helper = require("../helper");
|
|
11
11
|
var _protocolError = require("../protocolError");
|
|
12
12
|
/**
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CRCoverage = 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 2017 Google Inc. All rights reserved.
|
|
11
11
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.CRDevTools = void 0;
|
|
7
7
|
var _fs = _interopRequireDefault(require("fs"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DragManager = void 0;
|
|
7
|
-
var _utils = require("../../utils");
|
|
8
7
|
var _crProtocolHelper = require("./crProtocolHelper");
|
|
8
|
+
var _utils = require("../../utils");
|
|
9
9
|
/**
|
|
10
10
|
* Copyright (c) Microsoft Corporation.
|
|
11
11
|
*
|
|
@@ -4,13 +4,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CRExecutionContext = void 0;
|
|
7
|
+
exports.createHandle = createHandle;
|
|
8
|
+
var _assert = require("../../utils/isomorphic/assert");
|
|
7
9
|
var _crProtocolHelper = require("./crProtocolHelper");
|
|
8
|
-
var
|
|
9
|
-
var _stackTrace = require("../../utils/stackTrace");
|
|
10
|
+
var _stackTrace = require("../../utils/isomorphic/stackTrace");
|
|
10
11
|
var _utilityScriptSerializers = require("../isomorphic/utilityScriptSerializers");
|
|
12
|
+
var js = _interopRequireWildcard(require("../javascript"));
|
|
13
|
+
var dom = _interopRequireWildcard(require("../dom"));
|
|
11
14
|
var _protocolError = require("../protocolError");
|
|
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 2017 Google Inc. All rights reserved.
|
|
16
19
|
* Modifications copyright (c) Microsoft Corporation.
|
|
@@ -47,7 +50,7 @@ class CRExecutionContext {
|
|
|
47
50
|
if (exceptionDetails) throw new js.JavaScriptErrorInEvaluate((0, _crProtocolHelper.getExceptionMessage)(exceptionDetails));
|
|
48
51
|
return remoteObject.value;
|
|
49
52
|
}
|
|
50
|
-
async rawEvaluateHandle(expression) {
|
|
53
|
+
async rawEvaluateHandle(context, expression) {
|
|
51
54
|
const {
|
|
52
55
|
exceptionDetails,
|
|
53
56
|
result: remoteObject
|
|
@@ -56,9 +59,9 @@ class CRExecutionContext {
|
|
|
56
59
|
contextId: this._contextId
|
|
57
60
|
}).catch(rewriteError);
|
|
58
61
|
if (exceptionDetails) throw new js.JavaScriptErrorInEvaluate((0, _crProtocolHelper.getExceptionMessage)(exceptionDetails));
|
|
59
|
-
return remoteObject
|
|
62
|
+
return createHandle(context, remoteObject);
|
|
60
63
|
}
|
|
61
|
-
async evaluateWithArguments(expression, returnByValue, utilityScript, values,
|
|
64
|
+
async evaluateWithArguments(expression, returnByValue, utilityScript, values, handles) {
|
|
62
65
|
const {
|
|
63
66
|
exceptionDetails,
|
|
64
67
|
result: remoteObject
|
|
@@ -69,33 +72,31 @@ class CRExecutionContext {
|
|
|
69
72
|
objectId: utilityScript._objectId
|
|
70
73
|
}, ...values.map(value => ({
|
|
71
74
|
value
|
|
72
|
-
})), ...
|
|
73
|
-
objectId
|
|
75
|
+
})), ...handles.map(handle => ({
|
|
76
|
+
objectId: handle._objectId
|
|
74
77
|
}))],
|
|
75
78
|
returnByValue,
|
|
76
79
|
awaitPromise: true,
|
|
77
80
|
userGesture: true
|
|
78
81
|
}).catch(rewriteError);
|
|
79
82
|
if (exceptionDetails) throw new js.JavaScriptErrorInEvaluate((0, _crProtocolHelper.getExceptionMessage)(exceptionDetails));
|
|
80
|
-
return returnByValue ? (0, _utilityScriptSerializers.parseEvaluationResultValue)(remoteObject.value) : utilityScript._context
|
|
83
|
+
return returnByValue ? (0, _utilityScriptSerializers.parseEvaluationResultValue)(remoteObject.value) : createHandle(utilityScript._context, remoteObject);
|
|
81
84
|
}
|
|
82
|
-
async getProperties(
|
|
85
|
+
async getProperties(object) {
|
|
83
86
|
const response = await this._client.send('Runtime.getProperties', {
|
|
84
|
-
objectId,
|
|
87
|
+
objectId: object._objectId,
|
|
85
88
|
ownProperties: true
|
|
86
89
|
});
|
|
87
90
|
const result = new Map();
|
|
88
91
|
for (const property of response.result) {
|
|
89
92
|
if (!property.enumerable || !property.value) continue;
|
|
90
|
-
result.set(property.name,
|
|
93
|
+
result.set(property.name, createHandle(object._context, property.value));
|
|
91
94
|
}
|
|
92
95
|
return result;
|
|
93
96
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
async releaseHandle(objectId) {
|
|
98
|
-
await (0, _crProtocolHelper.releaseObject)(this._client, objectId);
|
|
97
|
+
async releaseHandle(handle) {
|
|
98
|
+
if (!handle._objectId) return;
|
|
99
|
+
await (0, _crProtocolHelper.releaseObject)(this._client, handle._objectId);
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
exports.CRExecutionContext = CRExecutionContext;
|
|
@@ -129,4 +130,11 @@ function renderPreview(object) {
|
|
|
129
130
|
}
|
|
130
131
|
if (object.subtype === 'array' && object.preview) return js.sparseArrayToString(object.preview.properties);
|
|
131
132
|
return object.description;
|
|
133
|
+
}
|
|
134
|
+
function createHandle(context, remoteObject) {
|
|
135
|
+
if (remoteObject.subtype === 'node') {
|
|
136
|
+
(0, _assert.assert)(context instanceof dom.FrameExecutionContext);
|
|
137
|
+
return new dom.ElementHandle(context, remoteObject.objectId);
|
|
138
|
+
}
|
|
139
|
+
return new js.JSHandle(context, remoteObject.subtype || remoteObject.type, renderPreview(remoteObject), remoteObject.objectId, potentiallyUnserializableValue(remoteObject));
|
|
132
140
|
}
|
|
@@ -4,12 +4,12 @@ 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
|
var _crProtocolHelper = require("./crProtocolHelper");
|
|
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 2017 Google Inc. All rights reserved.
|
|
15
15
|
* Modifications copyright (c) Microsoft Corporation.
|