From 37f62b29954af09ee058f9052927c2724e1fc5c2 Mon Sep 17 00:00:00 2001 From: Radan Ganchev Date: Tue, 17 Mar 2026 14:23:53 +0200 Subject: [PATCH] Disable Chrome cache to save disk space --- server/src/tasks/thumbnail-generators/webpage.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/server/src/tasks/thumbnail-generators/webpage.ts b/server/src/tasks/thumbnail-generators/webpage.ts index e7d499f..de19def 100644 --- a/server/src/tasks/thumbnail-generators/webpage.ts +++ b/server/src/tasks/thumbnail-generators/webpage.ts @@ -1,4 +1,7 @@ import axios from 'axios' +import { mkdtemp, rm } from 'node:fs/promises' +import { join } from 'node:path' +import { tmpdir } from 'node:os' import { OEmbed } from 'tapestry-core/src/oembed.js' import { Size } from 'tapestry-core/src/lib/geometry' import { WEB_SOURCE_PARSERS } from 'tapestry-core/src/web-sources/index.js' @@ -18,10 +21,16 @@ export async function* inNewBrowserPage( perform: (page: Page, context: BrowserContext) => AsyncGenerator, ) { const start = Date.now() - const browser = await puppeteer.launch({ args: config.worker.puppeteerArgs.split(',') }) + const userDataDir = await mkdtemp(join(tmpdir(), 'pptr-')) + const browser = await puppeteer.launch({ + args: config.worker.puppeteerArgs.split(','), + userDataDir, + }) const context = await browser.createBrowserContext() const page = await context.newPage() await page.setUserAgent({ userAgent: USER_AGENT }) + await page.setCacheEnabled(false) + await page.setBypassServiceWorker(true) try { yield* perform(page, context) @@ -31,6 +40,11 @@ export async function* inNewBrowserPage( } catch (e) { console.debug('Error while closing puppeteer browser context', e) } + try { + await rm(userDataDir, { recursive: true, force: true }) + } catch (e) { + console.debug(`Error while removing user data dir ${userDataDir}`, e) + } console.log(`Browser session completed in ${Date.now() - start}ms.`) } }