@@ -32,6 +32,7 @@ import { quartoCacheDir } from "../../core/appdirs.ts";
3232import { isWindows } from "../../deno_ral/platform.ts" ;
3333import { makeStringEnumTypeEnforcer } from "../../typing/dynamic.ts" ;
3434import { findChrome } from "../../core/puppeteer.ts" ;
35+ import { safeExistsSync } from "../../core/path.ts" ;
3536import {
3637 chromeHeadlessShellExecutablePath ,
3738 chromeHeadlessShellInstallDir ,
@@ -441,22 +442,18 @@ async function checkInstall(conf: CheckConfiguration) {
441442 conf . jsonResult . chrome = chromeJson ;
442443 }
443444 const chromeCb = async ( ) => {
444- const chromeDetected = await findChrome ( ) ;
445+ const envPath = Deno . env . get ( "QUARTO_CHROMIUM" ) ;
445446 const chromeHsPath = chromeHeadlessShellExecutablePath ( ) ;
447+ const chromeDetected = await findChrome ( ) ;
446448 const chromiumTool = installableTool ( "chromium" ) ;
447449 const chromiumQuarto = chromiumTool && await chromiumTool . installed ( )
448450 ? chromiumTool
449451 : undefined ;
450- if ( chromeDetected . path !== undefined ) {
451- chromeHeadlessOutput . push ( `${ kIndent } Using: Chrome found on system` ) ;
452- chromeHeadlessOutput . push (
453- `${ kIndent } Path: ${ chromeDetected . path } ` ,
454- ) ;
455- if ( chromeDetected . source ) {
456- chromeHeadlessOutput . push ( `${ kIndent } Source: ${ chromeDetected . source } ` ) ;
457- }
458- chromeJson [ "path" ] = chromeDetected . path ;
459- chromeJson [ "source" ] = chromeDetected . source ;
452+ if ( envPath && safeExistsSync ( envPath ) ) {
453+ chromeHeadlessOutput . push ( `${ kIndent } Using: Chrome from QUARTO_CHROMIUM` ) ;
454+ chromeHeadlessOutput . push ( `${ kIndent } Path: ${ envPath } ` ) ;
455+ chromeJson [ "path" ] = envPath ;
456+ chromeJson [ "source" ] = "QUARTO_CHROMIUM" ;
460457 } else if ( chromeHsPath !== undefined ) {
461458 const version = readInstalledVersion ( chromeHeadlessShellInstallDir ( ) ) ;
462459 chromeJson [ "source" ] = "quarto-chrome-headless-shell" ;
@@ -469,6 +466,16 @@ async function checkInstall(conf: CheckConfiguration) {
469466 chromeHeadlessOutput . push ( `${ kIndent } Version: ${ version } ` ) ;
470467 chromeJson [ "version" ] = version ;
471468 }
469+ } else if ( chromeDetected . path !== undefined ) {
470+ chromeHeadlessOutput . push ( `${ kIndent } Using: Chrome found on system` ) ;
471+ chromeHeadlessOutput . push (
472+ `${ kIndent } Path: ${ chromeDetected . path } ` ,
473+ ) ;
474+ if ( chromeDetected . source ) {
475+ chromeHeadlessOutput . push ( `${ kIndent } Source: ${ chromeDetected . source } ` ) ;
476+ }
477+ chromeJson [ "path" ] = chromeDetected . path ;
478+ chromeJson [ "source" ] = chromeDetected . source ;
472479 } else if ( chromiumQuarto !== undefined ) {
473480 chromeJson [ "source" ] = "quarto" ;
474481 chromeHeadlessOutput . push (
0 commit comments