Add debug.headless option to allow debugging of puppeteer

This commit is contained in:
lowlighter
2021-03-23 23:29:05 +01:00
parent dd2728f7b3
commit 8f4034a5cf
6 changed files with 22 additions and 6 deletions

View File

@@ -27,6 +27,8 @@
const data = {animated:true, base:{}, config:{}, errors:[], plugins:{}, computed:{}}
const imports = {plugins:Plugins, templates:Templates, metadata:conf.metadata, ...utils}
const experimental = new Set(decodeURIComponent(q["experimental.features"] ?? "").split(" ").map(x => x.trim().toLocaleLowerCase()).filter(x => x))
if (conf.settings["debug.headless"])
imports.puppeteer.headless = false
//Partial parts
{

View File

@@ -6,7 +6,7 @@
import util from "util"
import processes from "child_process"
import axios from "axios"
import puppeteer from "puppeteer"
import _puppeteer from "puppeteer"
import git from "simple-git"
import twemojis from "twemoji-parser"
import jimp from "jimp"
@@ -15,13 +15,26 @@
import nodechartist from "node-chartist"
//Exports
export {fs, os, paths, url, util, processes, axios, puppeteer, git, opengraph, rss}
export {fs, os, paths, url, util, processes, axios, git, opengraph, rss}
/**Returns module __dirname */
export function __module(module) {
return paths.join(paths.dirname(url.fileURLToPath(module)))
}
/**Puppeteer instantier */
export const puppeteer = {
async launch() {
return _puppeteer.launch({
headless:this.headless,
executablePath:process.env.PUPPETEER_BROWSER_PATH,
args:this.headless ? ["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"] : [],
ignoreDefaultArgs:["--disable-extensions"]
})
},
headless:true
}
/**Plural formatter */
export function s(value, end = "") {
return value !== 1 ? {y:"ies", "":"s"}[end] : end
@@ -158,7 +171,7 @@
async resize(rendered, {paddings, convert}) {
//Instantiate browser if needed
if (!svg.resize.browser) {
svg.resize.browser = await puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]})
svg.resize.browser = await puppeteer.launch()
console.debug(`metrics/svg/resize > started ${await svg.resize.browser.version()}`)
}
//Format padding

View File

@@ -10,6 +10,7 @@
"port": 3000, "//": "Listening port",
"optimize": true, "//": "SVG optimization",
"debug": false, "//": "Debug logs",
"debug.headless": false, "//": "Debug puppeteer process",
"mocked": false, "//": "Use mocked data instead of live APIs (use 'force' to use mocked token even if real token are defined)",
"repositories": 100, "//": "Number of repositories to use",
"padding": ["6%", "13%"], "//": "Image padding (default)",

View File

@@ -74,7 +74,7 @@
case "playlist":{
//Start puppeteer and navigate to playlist
console.debug(`metrics/compute/${login}/plugins > music > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]})
const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > music > started ${await browser.version()}`)
const page = await browser.newPage()
console.debug(`metrics/compute/${login}/plugins > music > loading page`)

View File

@@ -17,7 +17,7 @@
//Start puppeteer and navigate to skyline.github.com
console.debug(`metrics/compute/${login}/plugins > skyline > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]})
const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > skyline > started ${await browser.version()}`)
const page = await browser.newPage()
await page.setViewport({width, height})

View File

@@ -14,7 +14,7 @@
console.debug(`metrics/compute/${login}/plugins > topics > searching starred topics`)
let topics = []
console.debug(`metrics/compute/${login}/plugins > topics > starting browser`)
const browser = await imports.puppeteer.launch({headless:true, executablePath:process.env.PUPPETEER_BROWSER_PATH, args:["--no-sandbox", "--disable-extensions", "--disable-setuid-sandbox", "--disable-dev-shm-usage"], ignoreDefaultArgs:["--disable-extensions"]})
const browser = await imports.puppeteer.launch()
console.debug(`metrics/compute/${login}/plugins > topics > started ${await browser.version()}`)
const page = await browser.newPage()