fix: restricts PDF debug mode to developer mode only
This commit is contained in:
parent
849785b668
commit
fcb40f71c4
2 changed files with 18 additions and 3 deletions
|
|
@ -11,7 +11,7 @@ from frappe.utils.print_utils import convert_uom, parse_float_and_unit
|
|||
class Browser:
|
||||
def __init__(self, generator, print_format, html, options):
|
||||
self.is_print_designer = frappe.get_cached_value("Print Format", print_format, "print_designer")
|
||||
self.debug_mode = bool(cint(frappe.form_dict.get("pdf_debug")))
|
||||
self.debug_mode = frappe.conf.developer_mode and bool(frappe.form_dict.get("pdf_debug"))
|
||||
self.browserID = frappe.utils.random_string(10)
|
||||
generator.add_browser(self.browserID)
|
||||
# sets soup from html
|
||||
|
|
@ -57,6 +57,8 @@ class Browser:
|
|||
self.close()
|
||||
|
||||
generator.remove_browser(self.browserID)
|
||||
if self.debug_mode:
|
||||
generator.detach_debug_browser()
|
||||
|
||||
def open(self, generator):
|
||||
from frappe.utils.pdf_generator.cdp_connection import CDPSocketClient
|
||||
|
|
|
|||
|
|
@ -70,8 +70,8 @@ class ChromePDFGenerator:
|
|||
self.USE_PERSISTENT_CHROMIUM = site_config.get("use_persistent_chromium", False)
|
||||
# time to wait for chromium to start and provide dev tools url used in _set_devtools_url.
|
||||
self.START_TIMEOUT = site_config.get("chromium_start_timeout", 3)
|
||||
# Allow a single PDF request to opt into interactive Chromium debugging.
|
||||
self.debug_mode = bool(cint(frappe.form_dict.get("pdf_debug")))
|
||||
# Allow a single PDF request to opt into interactive Chromium debugging in developer mode only.
|
||||
self.debug_mode = frappe.conf.developer_mode and bool(frappe.form_dict.get("pdf_debug"))
|
||||
|
||||
self._chromium_path = find_or_download_chromium_executable()
|
||||
if self._verify_chromium_installation():
|
||||
|
|
@ -234,6 +234,19 @@ class ChromePDFGenerator:
|
|||
self._devtools_url = None
|
||||
frappe.log("Headless Chromium closed successfully.")
|
||||
|
||||
def detach_debug_browser(self):
|
||||
"""
|
||||
Detach the generator from an interactive debug Chromium process.
|
||||
|
||||
This keeps the debug browser window available for inspection, while ensuring
|
||||
the next PDF request starts with a fresh generator/process instead of reusing
|
||||
the old debug session.
|
||||
"""
|
||||
ChromePDFGenerator._instance = None
|
||||
self._initialized = False
|
||||
self._chromium_process = None
|
||||
self._devtools_url = None
|
||||
|
||||
# not used anywhere in the code. read _set_devtools_url for more info. useful in case we want to take different approch to fetch devtools url.
|
||||
def fetch_devtools_url(self, port):
|
||||
if not port:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue