From 7616dee99417acedfe18c1d0ad7896617dcbdfcf Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 19 Apr 2026 21:58:00 +0200 Subject: [PATCH] fix: improve error handling and streamline screenshot response in index.php --- web/index.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/web/index.php b/web/index.php index 2f81bbe..68bd5bf 100755 --- a/web/index.php +++ b/web/index.php @@ -6,6 +6,10 @@ use Facebook\WebDriver\Remote\DesiredCapabilities; define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(__FILE__) . DS . '..'); +// increase PHP timeout - rendering can take 60s+ +set_time_limit(120); +ignore_user_abort(true); + require_once(ROOT . DS . 'src' . DS . 'config.inc.php'); require_once(ROOT . DS . 'src' . DS . 'helpers.php'); require_once(ROOT . DS . 'src' . DS . 'http2pic.class.php'); @@ -71,13 +75,11 @@ switch ($url[0]) { addToLog("$ip\tRequested $target with viewport " . $viewportLabel . " and js " . ($js ? 'enabled' : 'disabled')); // take screenshot and send to user + $screenshot = $driver->takeScreenshot(); header('Content-Type: image/png'); - echo $driver->takeScreenshot(); + header('Content-Length: ' . strlen($screenshot)); + echo $screenshot; } catch (Exception $e) { - // ensure driver is closed to free ChromeDriver memory - if ($driver instanceof \Facebook\WebDriver\Remote\RemoteWebDriver) { - try { $driver->quit(); } catch (Exception $qe) {} - } header('HTTP/1.0 500 Internal Server Error'); addToLog("$ip\tRequested $target but resulted in error:\t" . $e->getMessage()); echo 'Error: ' . $e->getMessage();