From fcbf3ce37ca8f90a3e36d524a3274ffc063a40e3 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 14 Apr 2024 15:26:02 +0200 Subject: Adding upstream version 0.10.2+dfsg1. Signed-off-by: Daniel Baumann --- application/forms/ChromeBinaryForm.php | 94 ++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 application/forms/ChromeBinaryForm.php (limited to 'application/forms') diff --git a/application/forms/ChromeBinaryForm.php b/application/forms/ChromeBinaryForm.php new file mode 100644 index 0000000..c72d933 --- /dev/null +++ b/application/forms/ChromeBinaryForm.php @@ -0,0 +1,94 @@ +setName('pdfexport_binary'); + $this->setSubmitLabel($this->translate('Save Changes')); + } + + public function createElements(array $formData) + { + $this->addElement('text', 'chrome_binary', [ + 'label' => $this->translate('Local Binary'), + 'placeholder' => '/usr/bin/google-chrome', + 'validators' => [new Zend_Validate_Callback(function ($value) { + $chrome = (new HeadlessChrome()) + ->setBinary($value); + + try { + $version = $chrome->getVersion(); + } catch (Exception $e) { + $this->getElement('chrome_binary')->addError($e->getMessage()); + return true; + } + + if ($version < 59) { + $this->getElement('chrome_binary')->addError(sprintf( + $this->translate( + 'Chrome/Chromium supporting headless mode required' + . ' which is provided since version 59. Version detected: %s' + ), + $version + )); + } + + return true; + })] + ]); + + $this->addElement('checkbox', 'chrome_force_temp_storage', [ + 'label' => $this->translate('Force local temp storage') + ]); + + $this->addElement('text', 'chrome_host', [ + 'label' => $this->translate('Remote Host'), + 'validators' => [new Zend_Validate_Callback(function ($value) { + if ($value === null) { + return true; + } + + $port = $this->getValue('chrome_port') ?: 9222; + + $chrome = (new HeadlessChrome()) + ->setRemote($value, $port); + + try { + $version = $chrome->getVersion(); + } catch (Exception $e) { + $this->getElement('chrome_host')->addError($e->getMessage()); + return true; + } + + if ($version < 59) { + $this->getElement('chrome_host')->addError(sprintf( + $this->translate( + 'Chrome/Chromium supporting headless mode required' + . ' which is provided since version 59. Version detected: %s' + ), + $version + )); + } + + return true; + })] + ]); + + $this->addElement('number', 'chrome_port', [ + 'label' => $this->translate('Remote Port'), + 'placeholder' => 9222, + 'min' => 1, + 'max' => 65535 + ]); + } +} -- cgit v1.2.3