Skip to content

Commit 27960f1

Browse files
committed
no sandbox
1 parent d9d7206 commit 27960f1

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

packages/web-platform/web-mcp-server/src/createPuppeteer.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,33 @@
1-
import puppeteer from 'puppeteer';
1+
import puppeteer, { type Browser, type Page } from 'puppeteer';
22

3-
const browser = await puppeteer.launch({ headless: true });
4-
export async function createPuppeteerPage(url: string) {
5-
const page = await browser.newPage();
3+
let browser: Browser | null = null;
4+
5+
export async function getBrowser(): Promise<Browser> {
6+
if (browser) {
7+
return browser;
8+
}
9+
try {
10+
browser = await puppeteer.launch({
11+
headless: true,
12+
args: ['--no-sandbox', '--disable-setuid-sandbox'],
13+
});
14+
return browser;
15+
} catch (error) {
16+
console.error('Failed to launch Puppeteer browser:', error);
17+
throw error; // Re-throw the error to be caught by the caller
18+
}
19+
}
20+
21+
export async function closeBrowser(): Promise<void> {
22+
if (browser) {
23+
await browser.close();
24+
browser = null;
25+
}
26+
}
27+
28+
export async function createPuppeteerPage(url: string): Promise<Page> {
29+
const currentBrowser = await getBrowser();
30+
const page = await currentBrowser.newPage();
631
try {
732
await page.goto(url, {
833
waitUntil: 'networkidle0',

0 commit comments

Comments
 (0)