28 lines
1.7 KiB
JavaScript
28 lines
1.7 KiB
JavaScript
import { chromium } from 'patchright';
|
|
import { handleSIGINT } from '../src/util.js';
|
|
import { cfg } from '../src/config.js';
|
|
|
|
const context = await chromium.launchPersistentContext(cfg.dir.browser, {
|
|
headless: false, // don't use cfg.headless headless here since SHOW=0 will lead to captcha
|
|
locale: 'en-US', // ignore OS locale to be sure to have english text for locators
|
|
recordVideo: cfg.record ? { dir: 'data/record/', size: { width: cfg.width, height: cfg.height } } : undefined, // will record a .webm video for each page navigated; without size, video would be scaled down to fit 800x800
|
|
handleSIGINT: false, // have to handle ourselves and call context.close(), otherwise recordings from above won't be saved
|
|
// https://peter.sh/experiments/chromium-command-line-switches/
|
|
args: [
|
|
'--hide-crash-restore-bubble',
|
|
'--ignore-gpu-blocklist', // required for OpenGL to be enabled
|
|
],
|
|
});
|
|
|
|
handleSIGINT(context);
|
|
|
|
const page = context.pages().length ? context.pages()[0] : await context.newPage(); // should always exist
|
|
await page.goto('https://get.webgl.org/');
|
|
console.log(await page.locator('h1').innerText());
|
|
await page.goto('https://webglreport.com/?v=2');
|
|
console.log(await page.locator('tr:has-text("Unmasked Renderer")').innerText());
|
|
console.log('Waiting. You can check chrome://gpu as well via noVNC. Press ctrl-c to quit...');
|
|
// without --ignore-gpu-blocklist: OpenGL Disabled, WebGL: Software only, hardware acceleration unavailable.
|
|
// Unmasked Renderer: ANGLE (Mesa, llvmpipe (LLVM 15.0.7 128 bits), OpenGL 4.5)
|
|
// with --ignore-gpu-blocklist: OpenGL Enabled, WebGL: Hardware accelerated
|
|
// Unmasked Renderer: ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (LLVM 10.0.0) (0x0000C0DE)), SwiftShader driver)
|