From 45e40a566181d517a74dee44199d1dbe61195e92 Mon Sep 17 00:00:00 2001 From: Benjamin Nussbaum Date: Tue, 8 Jul 2025 12:35:33 +0200 Subject: [PATCH] Introduce feature flag for Browsershot waitUntilNetworkIdle --- app/Services/ImageGenerationService.php | 24 ++++++++++++++++-------- config/app.php | 1 + 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/Services/ImageGenerationService.php b/app/Services/ImageGenerationService.php index dada1cb..ce8ce64 100644 --- a/app/Services/ImageGenerationService.php +++ b/app/Services/ImageGenerationService.php @@ -28,21 +28,29 @@ class ImageGenerationService // Generate PNG if (config('app.puppeteer_mode') === 'sidecar-aws') { try { - BrowsershotLambda::html($markup) - ->windowSize(800, 480) - ->waitUntilNetworkIdle() - ->save($pngPath); + $browsershot = BrowsershotLambda::html($markup) + ->windowSize(800, 480); + + if (config('app.puppeteer_wait_for_network_idle')) { + $browsershot->waitUntilNetworkIdle(); + } + + $browsershot->save($pngPath); } catch (Exception $e) { Log::error('Failed to generate PNG: '.$e->getMessage()); throw new RuntimeException('Failed to generate PNG: '.$e->getMessage(), 0, $e); } } else { try { - Browsershot::html($markup) + $browsershot = Browsershot::html($markup) ->setOption('args', config('app.puppeteer_docker') ? ['--no-sandbox', '--disable-setuid-sandbox', '--disable-gpu'] : []) - ->windowSize(800, 480) - ->waitUntilNetworkIdle() - ->save($pngPath); + ->windowSize(800, 480); + + if (config('app.puppeteer_wait_for_network_idle')) { + $browsershot->waitUntilNetworkIdle(); + } + ray($browsershot); + $browsershot->save($pngPath); } catch (Exception $e) { Log::error('Failed to generate PNG: '.$e->getMessage()); throw new RuntimeException('Failed to generate PNG: '.$e->getMessage(), 0, $e); diff --git a/config/app.php b/config/app.php index bd50723..8282215 100644 --- a/config/app.php +++ b/config/app.php @@ -130,6 +130,7 @@ return [ 'force_https' => env('FORCE_HTTPS', false), 'puppeteer_docker' => env('PUPPETEER_DOCKER', false), 'puppeteer_mode' => env('PUPPETEER_MODE', 'local'), + 'puppeteer_wait_for_network_idle' => env('PUPPETEER_WAIT_FOR_NETWORK_IDLE', false), 'notifications' => [ 'battery_low' => [