🚀 Auto-deploy: BotVPS atualizado em 02/05/2026 15:37:40
This commit is contained in:
137
node_modules/playwright-core/lib/server/screencast.js
generated
vendored
Normal file
137
node_modules/playwright-core/lib/server/screencast.js
generated
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
"use strict";
|
||||
var __defProp = Object.defineProperty;
|
||||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
||||
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
||||
var __export = (target, all) => {
|
||||
for (var name in all)
|
||||
__defProp(target, name, { get: all[name], enumerable: true });
|
||||
};
|
||||
var __copyProps = (to, from, except, desc) => {
|
||||
if (from && typeof from === "object" || typeof from === "function") {
|
||||
for (let key of __getOwnPropNames(from))
|
||||
if (!__hasOwnProp.call(to, key) && key !== except)
|
||||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
||||
}
|
||||
return to;
|
||||
};
|
||||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
||||
var screencast_exports = {};
|
||||
__export(screencast_exports, {
|
||||
Screencast: () => Screencast
|
||||
});
|
||||
module.exports = __toCommonJS(screencast_exports);
|
||||
var import_utils = require("../utils");
|
||||
var import_utils2 = require("../utils");
|
||||
class Screencast {
|
||||
constructor(page) {
|
||||
this._clients = /* @__PURE__ */ new Set();
|
||||
this.page = page;
|
||||
this.page.instrumentation.addListener(this, page.browserContext);
|
||||
}
|
||||
async handlePageOrContextClose() {
|
||||
const clients = [...this._clients];
|
||||
this._clients.clear();
|
||||
for (const client of clients) {
|
||||
if (client.gracefulClose)
|
||||
await client.gracefulClose();
|
||||
}
|
||||
}
|
||||
dispose() {
|
||||
for (const client of this._clients)
|
||||
client.dispose();
|
||||
this._clients.clear();
|
||||
this.page.instrumentation.removeListener(this);
|
||||
}
|
||||
showActions(options) {
|
||||
this._actions = options;
|
||||
}
|
||||
hideActions() {
|
||||
this._actions = void 0;
|
||||
}
|
||||
addClient(client) {
|
||||
this._clients.add(client);
|
||||
if (this._clients.size === 1)
|
||||
this._startScreencast(client.size, client.quality);
|
||||
return { size: this._size };
|
||||
}
|
||||
removeClient(client) {
|
||||
if (!this._clients.has(client))
|
||||
return;
|
||||
this._clients.delete(client);
|
||||
if (!this._clients.size)
|
||||
this._stopScreencast();
|
||||
}
|
||||
size() {
|
||||
return this._size;
|
||||
}
|
||||
_startScreencast(size, quality) {
|
||||
this._size = size;
|
||||
if (!this._size) {
|
||||
const viewport = this.page.browserContext._options.viewport || { width: 800, height: 600 };
|
||||
const scale = Math.min(1, 800 / Math.max(viewport.width, viewport.height));
|
||||
this._size = {
|
||||
width: Math.floor(viewport.width * scale),
|
||||
height: Math.floor(viewport.height * scale)
|
||||
};
|
||||
}
|
||||
this._size = {
|
||||
width: this._size.width & ~1,
|
||||
height: this._size.height & ~1
|
||||
};
|
||||
this.page.delegate.startScreencast({
|
||||
width: this._size.width,
|
||||
height: this._size.height,
|
||||
quality: quality ?? 90
|
||||
});
|
||||
}
|
||||
_stopScreencast() {
|
||||
this.page.delegate.stopScreencast();
|
||||
}
|
||||
onScreencastFrame(frame, ack) {
|
||||
const asyncResults = [];
|
||||
for (const client of this._clients) {
|
||||
const result = client.onFrame(frame);
|
||||
if (result)
|
||||
asyncResults.push(result);
|
||||
}
|
||||
if (ack) {
|
||||
if (!asyncResults.length)
|
||||
ack();
|
||||
else
|
||||
Promise.race(asyncResults).then(ack);
|
||||
}
|
||||
}
|
||||
async onBeforeCall(sdkObject, metadata, parentId) {
|
||||
if (!this._actions)
|
||||
return;
|
||||
metadata.annotate = true;
|
||||
}
|
||||
async onBeforeInputAction(sdkObject, metadata) {
|
||||
if (!this._actions)
|
||||
return;
|
||||
const page = sdkObject.attribution.page;
|
||||
if (!page)
|
||||
return;
|
||||
const actionTitle = (0, import_utils.renderTitleForCall)(metadata);
|
||||
const utility = await page.mainFrame()._utilityContext();
|
||||
await utility.evaluate(async (options) => {
|
||||
const { injected, duration } = options;
|
||||
injected.setScreencastAnnotation(options);
|
||||
await new Promise((f) => injected.utils.builtins.setTimeout(f, duration));
|
||||
injected.setScreencastAnnotation(null);
|
||||
}, {
|
||||
injected: await utility.injectedScript(),
|
||||
duration: this._actions?.duration ?? 500,
|
||||
point: metadata.point,
|
||||
box: metadata.box,
|
||||
actionTitle,
|
||||
position: this._actions?.position,
|
||||
fontSize: this._actions?.fontSize
|
||||
}).catch((e) => import_utils2.debugLogger.log("error", e));
|
||||
}
|
||||
}
|
||||
// Annotate the CommonJS export names for ESM import in node:
|
||||
0 && (module.exports = {
|
||||
Screencast
|
||||
});
|
||||
Reference in New Issue
Block a user