From 2a6dcaad6d7a5801a51bf0d8bb0c01fb1acdbcee Mon Sep 17 00:00:00 2001 From: CanadaHonk Date: Fri, 7 Apr 2023 00:11:56 +0100 Subject: [PATCH] browser/chromium: implement devtools option --- src/browser/chromium.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/browser/chromium.js b/src/browser/chromium.js index 288118a..345c938 100644 --- a/src/browser/chromium.js +++ b/src/browser/chromium.js @@ -1,3 +1,5 @@ +import { join } from 'path'; + import StartBrowser from '../launcher/start.js'; const presets = { // Presets from OpenAsar @@ -7,10 +9,19 @@ const presets = { // Presets from OpenAsar 'memory': '--in-process-gpu --js-flags="--lite-mode --optimize_for_size --wasm_opt --wasm_lazy_compilation --wasm_lazy_validation --always_compact" --renderer-process-limit=2 --enable-features=QuickIntensiveWakeUpThrottlingAfterLoading' // Less (?) memory usage }; -export default async ({ browserPath, dataPath }, { url, windowSize, allowHTTP, extensions }, extra) => { +export default async ({ browserPath, dataPath }, { url, windowSize, allowHTTP, extensions, devtools }, extra) => { + if (!devtools) { + (async () => { + const fs = await import('fs/promises'); + + fs.writeFile(join(dataPath, 'devtools_app.html'), `

DevTools is disabled

DevTools (disabled)`); + })(); + } + return await StartBrowser(browserPath, [ `--app=${url}`, `--user-data-dir=${dataPath}`, + !devtools ? `--custom-devtools-frontend=${(await import('url')).pathToFileURL(dataPath)}` : '', windowSize ? `--window-size=${windowSize.join(',')}` : '', ![true, 'mixed'].includes(allowHTTP) ? `--enable-strict-mixed-content-checking` : '--allow-running-insecure-content', Array.isArray(extensions) && extensions.length > 0 ? `--load-extension=${(await Promise.all(extensions)).flat().join(',')}` : '',