From d130058b56c327d5e80b37dcad387a7376f51021 Mon Sep 17 00:00:00 2001 From: karishmas6 Date: Sun, 27 Oct 2024 17:39:58 +0530 Subject: [PATCH] wip: pass proxy in the browser context for maxun-core acccessss --- .../browser-management/classes/RemoteBrowser.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/src/browser-management/classes/RemoteBrowser.ts b/server/src/browser-management/classes/RemoteBrowser.ts index e4a305fd..9f6338cf 100644 --- a/server/src/browser-management/classes/RemoteBrowser.ts +++ b/server/src/browser-management/classes/RemoteBrowser.ts @@ -12,6 +12,7 @@ import logger from '../../logger'; import { InterpreterSettings, RemoteBrowserOptions } from "../../types"; import { WorkflowGenerator } from "../../workflow-management/classes/Generator"; import { WorkflowInterpreter } from "../../workflow-management/classes/Interpreter"; +import { getDecryptedProxyConfig } from '../../routes/proxy'; @@ -92,10 +93,26 @@ export class RemoteBrowser { */ public initialize = async (options: RemoteBrowserOptions): Promise => { this.browser = (await options.browser.launch(options.launchOptions)); + const proxyConfig = await getDecryptedProxyConfig('1'); + let proxyOptions: { server: string, username?: string, password?: string } = { server: '' }; + if (proxyConfig.proxy_url) { + proxyOptions = { + server: proxyConfig.proxy_url, + ...(proxyConfig.proxy_username && proxyConfig.proxy_password && { + username: proxyConfig.proxy_username, + password: proxyConfig.proxy_password, + }), + }; + } this.context = await this.browser.newContext( { viewport: { height: 400, width: 900 }, // recordVideo: { dir: 'videos/' } + proxy: { + server: proxyOptions.server, + username: proxyOptions.username ? proxyOptions.username : undefined, + password: proxyOptions.password ? proxyOptions.password : undefined, + } } ); this.currentPage = await this.context.newPage();