@smoothdeploy/playwright-core 1.57.1 → 1.58.1-beta-1770452953000
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.
Potentially problematic release.
This version of @smoothdeploy/playwright-core might be problematic. Click here for more details.
- package/ThirdPartyNotices.txt +3223 -308
- package/browsers.json +21 -22
- package/lib/cli/program.js +4 -5
- package/lib/client/api.js +3 -0
- package/lib/client/browser.js +3 -5
- package/lib/client/browserContext.js +35 -0
- package/lib/client/browserType.js +4 -3
- package/lib/client/channelOwner.js +4 -3
- package/lib/client/clientInstrumentation.js +10 -0
- package/lib/client/connection.js +4 -0
- package/lib/client/elementHandle.js +3 -0
- package/lib/client/events.js +3 -0
- package/lib/client/fetch.js +3 -4
- package/lib/client/frame.js +1 -0
- package/lib/client/page.js +28 -1
- package/lib/client/pageAgent.js +64 -0
- package/lib/client/platform.js +3 -0
- package/lib/generated/injectedScriptSource.js +1 -1
- package/lib/generated/pollingRecorderSource.js +1 -1
- package/lib/mcpBundle.js +84 -0
- package/lib/mcpBundleImpl/index.js +147 -0
- package/lib/protocol/serializers.js +5 -0
- package/lib/protocol/validator.js +92 -3
- package/lib/remote/playwrightServer.js +1 -2
- package/lib/server/agent/actionRunner.js +335 -0
- package/lib/server/agent/actions.js +128 -0
- package/lib/server/agent/codegen.js +111 -0
- package/lib/server/agent/context.js +150 -0
- package/lib/server/agent/expectTools.js +156 -0
- package/lib/server/agent/pageAgent.js +204 -0
- package/lib/server/agent/performTools.js +262 -0
- package/lib/server/agent/tool.js +109 -0
- package/lib/server/artifact.js +1 -1
- package/lib/server/bidi/bidiBrowser.js +56 -12
- package/lib/server/bidi/bidiChromium.js +6 -11
- package/lib/server/bidi/bidiConnection.js +1 -0
- package/lib/server/bidi/bidiDeserializer.js +116 -0
- package/lib/server/bidi/bidiExecutionContext.js +75 -29
- package/lib/server/bidi/bidiFirefox.js +6 -8
- package/lib/server/bidi/bidiNetworkManager.js +1 -1
- package/lib/server/bidi/bidiPage.js +39 -28
- package/lib/server/bidi/third_party/bidiProtocolCore.js +1 -0
- package/lib/server/browserContext.js +32 -25
- package/lib/server/browserType.js +12 -4
- package/lib/server/chromium/chromium.js +14 -21
- package/lib/server/chromium/chromiumSwitches.js +2 -2
- package/lib/server/chromium/crBrowser.js +22 -12
- package/lib/server/chromium/crConnection.js +0 -5
- package/lib/server/chromium/crDevTools.js +0 -2
- package/lib/server/chromium/crNetworkManager.js +43 -2
- package/lib/server/chromium/crPage.js +19 -87
- package/lib/server/codegen/javascript.js +6 -29
- package/lib/server/deviceDescriptorsSource.json +56 -56
- package/lib/server/dispatchers/browserContextDispatcher.js +3 -0
- package/lib/server/dispatchers/dispatcher.js +6 -13
- package/lib/server/dispatchers/frameDispatcher.js +1 -1
- package/lib/server/dispatchers/pageAgentDispatcher.js +96 -0
- package/lib/server/dispatchers/pageDispatcher.js +4 -0
- package/lib/server/dom.js +12 -3
- package/lib/server/electron/electron.js +5 -2
- package/lib/server/firefox/ffBrowser.js +10 -20
- package/lib/server/firefox/ffConnection.js +0 -5
- package/lib/server/firefox/ffNetworkManager.js +2 -2
- package/lib/server/firefox/ffPage.js +15 -18
- package/lib/server/firefox/firefox.js +6 -8
- package/lib/server/frameSelectors.js +9 -3
- package/lib/server/frames.js +49 -33
- package/lib/server/instrumentation.js +3 -0
- package/lib/server/network.js +50 -12
- package/lib/server/page.js +33 -89
- package/lib/server/progress.js +26 -6
- package/lib/server/recorder/recorderApp.js +79 -100
- package/lib/server/recorder.js +55 -0
- package/lib/server/registry/browserFetcher.js +6 -4
- package/lib/server/registry/index.js +172 -149
- package/lib/server/registry/oopDownloadBrowserMain.js +3 -0
- package/lib/server/screencast.js +190 -0
- package/lib/server/screenshotCompositor.js +153 -0
- package/lib/server/trace/recorder/snapshotterInjected.js +21 -1
- package/lib/server/trace/recorder/tracing.js +21 -21
- package/lib/server/trace/viewer/traceParser.js +72 -0
- package/lib/server/trace/viewer/traceViewer.js +17 -13
- package/lib/server/utils/expectUtils.js +87 -2
- package/lib/server/utils/httpServer.js +4 -19
- package/lib/server/utils/network.js +37 -28
- package/lib/server/utils/nodePlatform.js +6 -0
- package/lib/server/videoRecorder.js +124 -0
- package/lib/server/webkit/webkit.js +4 -6
- package/lib/server/webkit/wkBrowser.js +2 -6
- package/lib/server/webkit/wkConnection.js +1 -6
- package/lib/server/webkit/wkInterceptableRequest.js +29 -1
- package/lib/server/webkit/wkPage.js +75 -46
- package/lib/utils/isomorphic/ariaSnapshot.js +60 -2
- package/lib/utils/isomorphic/lruCache.js +51 -0
- package/lib/utils/isomorphic/protocolMetainfo.js +9 -1
- package/lib/utils/isomorphic/stringUtils.js +49 -0
- package/lib/utils/isomorphic/trace/entries.js +16 -0
- package/lib/utils/isomorphic/trace/snapshotRenderer.js +499 -0
- package/lib/utils/isomorphic/trace/snapshotServer.js +120 -0
- package/lib/utils/isomorphic/trace/snapshotStorage.js +89 -0
- package/lib/utils/isomorphic/trace/traceLoader.js +131 -0
- package/lib/utils/isomorphic/trace/traceModel.js +365 -0
- package/lib/utils/isomorphic/trace/traceModernizer.js +400 -0
- package/lib/utils/isomorphic/trace/versions/traceV3.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV4.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV5.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV6.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV7.js +16 -0
- package/lib/utils/isomorphic/trace/versions/traceV8.js +16 -0
- package/lib/utils/isomorphic/yaml.js +84 -0
- package/lib/utils.js +2 -0
- package/lib/utilsBundle.js +2 -5
- package/lib/utilsBundleImpl/index.js +165 -165
- package/lib/vite/htmlReport/index.html +21 -21
- package/lib/vite/recorder/assets/{codeMirrorModule-C3UTv-Ge.css → codeMirrorModule-DYBRYzYX.css} +1 -1
- package/lib/vite/recorder/assets/codeMirrorModule-DadYNm1I.js +32 -0
- package/lib/vite/recorder/assets/{index-Ri0uHF7I.css → index-BSjZa4pk.css} +1 -1
- package/lib/vite/recorder/assets/index-BhTWtUlo.js +193 -0
- package/lib/vite/recorder/index.html +2 -2
- package/lib/vite/traceViewer/assets/codeMirrorModule-8UJPCtp4.js +16884 -0
- package/lib/vite/{recorder/assets/codeMirrorModule-BoWUGj0J.js → traceViewer/assets/codeMirrorModule-BNr6yhVP.js} +1 -1
- package/lib/vite/traceViewer/assets/codeMirrorModule-Dimjuz94.js +32 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-DkmsYcws.js +32 -0
- package/lib/vite/traceViewer/assets/codeMirrorModule-DySgctgr.js +16884 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-B1vuWQsF.js +266 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-CtEsdeVH.js +266 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-D4fm31R-.js +34087 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-JtyB0yzL.js +34087 -0
- package/lib/vite/traceViewer/assets/defaultSettingsView-tEZf-LNj.js +266 -0
- package/lib/vite/traceViewer/assets/xtermModule-DDw6eROI.js +6168 -0
- package/lib/vite/traceViewer/codeMirrorModule.DYBRYzYX.css +1 -0
- package/lib/vite/traceViewer/codeMirrorModule.DuST8d_k.css +344 -0
- package/lib/vite/traceViewer/defaultSettingsView.5FCqBwKs.css +3986 -0
- package/lib/vite/traceViewer/defaultSettingsView.7ch9cixO.css +1 -0
- package/lib/vite/traceViewer/index.BQs8gGhY.js +249 -0
- package/lib/vite/traceViewer/index.BVu7tZDe.css +1 -0
- package/lib/vite/traceViewer/index.BoLn624r.js +2 -0
- package/lib/vite/traceViewer/index.Bq_EaK8x.js +249 -0
- package/lib/vite/traceViewer/index.C8YVh4B5.js +2 -0
- package/lib/vite/traceViewer/index.Cr7-GRf8.js +2 -0
- package/lib/vite/traceViewer/index.G-7UhDxt.css +164 -0
- package/lib/vite/traceViewer/index.html +4 -4
- package/lib/vite/traceViewer/sw.bundle.js +5 -3
- package/lib/vite/traceViewer/uiMode.-Kflt2XM.css +1440 -0
- package/lib/vite/traceViewer/uiMode.BTRKnokb.js +5 -0
- package/lib/vite/traceViewer/uiMode.CEZ5RVHh.js +5 -0
- package/lib/vite/traceViewer/uiMode.CIWF23si.js +1829 -0
- package/lib/vite/traceViewer/uiMode.Wi-DvIEY.js +1829 -0
- package/lib/vite/traceViewer/uiMode.html +3 -3
- package/lib/vite/traceViewer/uiMode.zEH1ejvz.js +5 -0
- package/lib/vite/traceViewer/xtermModule.BKlWQB97.css +218 -0
- package/package.json +3 -1
- package/types/protocol.d.ts +738 -159
- package/types/types.d.ts +25 -38
- package/lib/vite/recorder/assets/index-DJqDAOZp.js +0 -193
package/lib/server/recorder.js
CHANGED
|
@@ -35,6 +35,8 @@ module.exports = __toCommonJS(recorder_exports);
|
|
|
35
35
|
var import_events = __toESM(require("events"));
|
|
36
36
|
var import_fs = __toESM(require("fs"));
|
|
37
37
|
var import_utils = require("../utils");
|
|
38
|
+
var import_utilsBundle = require("../utilsBundle");
|
|
39
|
+
var import_screenshotCompositor = require("./screenshotCompositor");
|
|
38
40
|
var import_browserContext = require("./browserContext");
|
|
39
41
|
var import_debugger = require("./debugger");
|
|
40
42
|
var import_recorderUtils = require("./recorder/recorderUtils");
|
|
@@ -75,6 +77,7 @@ class Recorder extends import_events.default {
|
|
|
75
77
|
this._listeners = [];
|
|
76
78
|
this._enabled = false;
|
|
77
79
|
this._callLogs = [];
|
|
80
|
+
this._screenshotCache = /* @__PURE__ */ new Map();
|
|
78
81
|
this._context = context;
|
|
79
82
|
this._params = params;
|
|
80
83
|
this._mode = params.mode || "none";
|
|
@@ -449,8 +452,59 @@ class Recorder extends import_events.default {
|
|
|
449
452
|
};
|
|
450
453
|
return actionInContext;
|
|
451
454
|
}
|
|
455
|
+
async _captureScreenshot(frame, actionInContext) {
|
|
456
|
+
const action = actionInContext.action;
|
|
457
|
+
const selector = "selector" in action ? action.selector : null;
|
|
458
|
+
const page = frame._page;
|
|
459
|
+
const timestamp = Date.now();
|
|
460
|
+
if (!selector || !("selector" in actionInContext.action))
|
|
461
|
+
return;
|
|
462
|
+
const cached = this._screenshotCache.get(selector);
|
|
463
|
+
if (cached) {
|
|
464
|
+
actionInContext.action.screenshot = cached.screenshot;
|
|
465
|
+
actionInContext.action.screenshotElement = cached.screenshotElement;
|
|
466
|
+
return;
|
|
467
|
+
}
|
|
468
|
+
try {
|
|
469
|
+
const elementHandle = await frame.selectors.query(selector, { strict: false });
|
|
470
|
+
if (!elementHandle)
|
|
471
|
+
return;
|
|
472
|
+
const box = await elementHandle.boundingBox();
|
|
473
|
+
if (!box)
|
|
474
|
+
return;
|
|
475
|
+
const cssViewport = await page.mainFrame().evaluateExpression(
|
|
476
|
+
"({width: window.innerWidth, height: window.innerHeight})"
|
|
477
|
+
).catch(() => null);
|
|
478
|
+
const controller = new import_progress.ProgressController();
|
|
479
|
+
await controller.run(async (progress) => {
|
|
480
|
+
const rawBuffer = await page.screenshot(progress, {
|
|
481
|
+
animations: "disabled",
|
|
482
|
+
type: "png",
|
|
483
|
+
style: "x-pw-glass { display: none !important; }"
|
|
484
|
+
});
|
|
485
|
+
const { full, cropped } = (0, import_screenshotCompositor.compositeHighlight)(rawBuffer, box, cssViewport);
|
|
486
|
+
const fullJpeg = import_utilsBundle.jpegjs.encode(full, 50);
|
|
487
|
+
const croppedJpeg = import_utilsBundle.jpegjs.encode(cropped, 80);
|
|
488
|
+
const screenshot = {
|
|
489
|
+
buffer: Buffer.from(fullJpeg.data).toString("base64"),
|
|
490
|
+
mimeType: "image/jpeg",
|
|
491
|
+
timestamp
|
|
492
|
+
};
|
|
493
|
+
const screenshotElement = {
|
|
494
|
+
buffer: Buffer.from(croppedJpeg.data).toString("base64"),
|
|
495
|
+
mimeType: "image/jpeg",
|
|
496
|
+
timestamp
|
|
497
|
+
};
|
|
498
|
+
actionInContext.action.screenshot = screenshot;
|
|
499
|
+
actionInContext.action.screenshotElement = screenshotElement;
|
|
500
|
+
this._screenshotCache.set(selector, { screenshot, screenshotElement });
|
|
501
|
+
});
|
|
502
|
+
} catch (e) {
|
|
503
|
+
}
|
|
504
|
+
}
|
|
452
505
|
async _performAction(frame, action) {
|
|
453
506
|
const actionInContext = await this._createActionInContext(frame, action);
|
|
507
|
+
await this._captureScreenshot(frame, actionInContext);
|
|
454
508
|
this._signalProcessor.addAction(actionInContext);
|
|
455
509
|
if (actionInContext.action.name !== "openPage" && actionInContext.action.name !== "closePage")
|
|
456
510
|
await (0, import_recorderRunner.performAction)(this._pageAliases, actionInContext);
|
|
@@ -458,6 +512,7 @@ class Recorder extends import_events.default {
|
|
|
458
512
|
}
|
|
459
513
|
async _recordAction(frame, action) {
|
|
460
514
|
const actionInContext = await this._createActionInContext(frame, action);
|
|
515
|
+
await this._captureScreenshot(frame, actionInContext);
|
|
461
516
|
this._signalProcessor.addAction(actionInContext);
|
|
462
517
|
}
|
|
463
518
|
_onFrameNavigated(frame, page) {
|
|
@@ -42,10 +42,13 @@ var import_userAgent = require("../utils/userAgent");
|
|
|
42
42
|
var import_utilsBundle = require("../../utilsBundle");
|
|
43
43
|
var import_fileUtils = require("../utils/fileUtils");
|
|
44
44
|
var import__ = require(".");
|
|
45
|
-
async function downloadBrowserWithProgressBar(title, browserDirectory, executablePath, downloadURLs, downloadFileName, downloadSocketTimeout) {
|
|
45
|
+
async function downloadBrowserWithProgressBar(title, browserDirectory, executablePath, downloadURLs, downloadFileName, downloadSocketTimeout, force) {
|
|
46
46
|
if (await (0, import_fileUtils.existsAsync)((0, import__.browserDirectoryToMarkerFilePath)(browserDirectory))) {
|
|
47
47
|
import_debugLogger.debugLogger.log("install", `${title} is already downloaded.`);
|
|
48
|
-
|
|
48
|
+
if (force)
|
|
49
|
+
import_debugLogger.debugLogger.log("install", `force-downloading ${title}.`);
|
|
50
|
+
else
|
|
51
|
+
return;
|
|
49
52
|
}
|
|
50
53
|
const uniqueTempDir = await import_fs.default.promises.mkdtemp(import_path.default.join(import_os.default.tmpdir(), "playwright-download-"));
|
|
51
54
|
const zipPath = import_path.default.join(uniqueTempDir, downloadFileName);
|
|
@@ -63,7 +66,7 @@ async function downloadBrowserWithProgressBar(title, browserDirectory, executabl
|
|
|
63
66
|
if (await (0, import_fileUtils.existsAsync)(zipPath))
|
|
64
67
|
await import_fs.default.promises.unlink(zipPath);
|
|
65
68
|
if (await (0, import_fileUtils.existsAsync)(browserDirectory))
|
|
66
|
-
await
|
|
69
|
+
await (0, import_fileUtils.removeFolders)([browserDirectory]);
|
|
67
70
|
const errorMessage = error?.message || "";
|
|
68
71
|
import_debugLogger.debugLogger.log("install", `attempt #${attempt} - ERROR: ${errorMessage}`);
|
|
69
72
|
if (attempt >= retryCount)
|
|
@@ -77,7 +80,6 @@ async function downloadBrowserWithProgressBar(title, browserDirectory, executabl
|
|
|
77
80
|
await (0, import_fileUtils.removeFolders)([uniqueTempDir]);
|
|
78
81
|
}
|
|
79
82
|
logPolitely(`${title} downloaded to ${browserDirectory}`);
|
|
80
|
-
return true;
|
|
81
83
|
}
|
|
82
84
|
function downloadBrowserWithProgressBarOutOfProcess(title, browserDirectory, url, zipPath, executablePath, socketTimeout) {
|
|
83
85
|
const cp = childProcess.fork(import_path.default.join(__dirname, "oopDownloadBrowserMain.js"));
|