[LON-CAPA-cvs] cvs: loncom /node.js/axe browser.js

raeburn raeburn at source.lon-capa.org
Sun Jul 19 23:48:11 EDT 2026


raeburn		Mon Jul 20 03:48:11 2026 EDT

  Modified files:              
    /loncom/node.js/axe	browser.js 
  Log:
  - Support distros in which path to headless browser is /usr/bin/chromium 
    as well as those in which it is /usr/bin/chromium-browser.
  
  
Index: loncom/node.js/axe/browser.js
diff -u loncom/node.js/axe/browser.js:1.1 loncom/node.js/axe/browser.js:1.2
--- loncom/node.js/axe/browser.js:1.1	Thu Jul 16 00:31:10 2026
+++ loncom/node.js/axe/browser.js	Mon Jul 20 03:48:11 2026
@@ -1,5 +1,5 @@
 //
-// $Id: browser.js,v 1.1 2026/07/16 00:31:10 raeburn Exp $
+// $Id: browser.js,v 1.2 2026/07/20 03:48:11 raeburn Exp $
 //
 // This is a javascript library for managing a headless
 // chromium web browser.  It relies puppeteer (node.js).
@@ -9,15 +9,19 @@
 // getBrowser()
 // closeBrowser()
 //
+const fs = require('fs');
+const path = require('path');
 const puppeteer = require('puppeteer');
 let browserInstance = null;
 
 async function getBrowser() {
   if (!browserInstance) {
-    const pathToChromium = '/usr/bin/chromium-browser';
-    browserInstance = await puppeteer.launch({
+    const pathToChromium = getChromiumPath();
+    if (pathToChromium) {
+      browserInstance = await puppeteer.launch({
         executablePath: pathToChromium
-    });
+      });
+    }
   }
   return browserInstance;
 }
@@ -29,4 +33,14 @@
   }
 }
 
+function getChromiumPath() {
+  const paths = ['/usr/bin/chromium-browser',
+                 '/usr/bin/chromium'];
+  for (const p of paths) {
+    if (fs.existsSync(p)) {
+      return p;
+    }
+  }
+}
+
 module.exports = { getBrowser, closeBrowser };




More information about the LON-CAPA-cvs mailing list