Merge branch 'develop' into all-record

This commit is contained in:
Karishma Shukla
2025-04-30 19:39:00 +05:30
committed by GitHub
8 changed files with 120 additions and 41 deletions

View File

@@ -224,9 +224,15 @@ const onMousemove = async (socket: AuthenticatedSocket, coordinates: Coordinates
*/
const handleMousemove = async (generator: WorkflowGenerator, page: Page, { x, y }: Coordinates) => {
try {
if (page.isClosed()) {
logger.log('debug', `Ignoring mousemove event: page is closed`);
return;
}
await page.mouse.move(x, y);
throttle(async () => {
await generator.generateDataForHighlighter(page, { x, y });
if (!page.isClosed()) {
await generator.generateDataForHighlighter(page, { x, y });
}
}, 100)();
logger.log('debug', `Moved over position x:${x}, y:${y}`);
} catch (e) {
@@ -402,7 +408,7 @@ const handleChangeUrl = async (generator: WorkflowGenerator, page: Page, url: st
if (url) {
await generator.onChangeUrl(url, page);
try {
await page.goto(url);
await page.goto(url, { waitUntil: 'networkidle', timeout: 10000 });
logger.log('debug', `Went to ${url}`);
} catch (e) {
const { message } = e as Error;
@@ -514,4 +520,4 @@ const registerInputHandlers = (socket: Socket) => {
socket.on("action", (data) => onGenerateAction(authSocket, data));
};
export default registerInputHandlers;
export default registerInputHandlers;

View File

@@ -93,7 +93,7 @@ async function resetBrowserState(browser: RemoteBrowser): Promise<boolean> {
}
// Navigate to blank page to reset state
await currentPage.goto('about:blank');
await currentPage.goto('about:blank', { waitUntil: 'networkidle', timeout: 10000 });
// Clear browser storage
await currentPage.evaluate(() => {

View File

@@ -10,6 +10,7 @@ import {
getRemoteBrowserCurrentUrl,
getRemoteBrowserCurrentTabs,
getActiveBrowserIdByState,
destroyRemoteBrowser,
} from '../browser-management/controller';
import { chromium } from 'playwright-extra';
import stealthPlugin from 'puppeteer-extra-plugin-stealth';
@@ -146,8 +147,8 @@ router.get('/stop/:browserId', requireSignIn, async (req: AuthenticatedRequest,
});
if (!jobId) {
const browserId = initializeRemoteBrowserForRecording(req.user.id);
return res.send( browserId );
await destroyRemoteBrowser(req.params.browserId, req.user.id);
return res.send(false);
}
logger.log('info', `Queued browser destruction job: ${jobId}, waiting for completion...`);