@@ -20,6 +20,7 @@ import {
2020 extraInlineDeps ,
2121} from '../../constants'
2222import { benchmarkConfigDefaults , configDefaults } from '../../defaults'
23+ import { wildcardPatternToRegExp } from '../../utils/base'
2324import { isCI , stdProvider } from '../../utils/env'
2425import { getWorkersCountByPercentage } from '../../utils/workers'
2526import { VitestCache } from '../cache'
@@ -251,7 +252,7 @@ export function resolveConfig(
251252 }
252253 }
253254
254- const playwrightChromiumOnly = browser . provider === 'playwright' && ( browser . name === 'chromium' || browser . instances ?. every ( i => i . browser === 'chromium' ) )
255+ const playwrightChromiumOnly = isPlaywrightChromiumOnly ( resolved )
255256
256257 // Browser-mode "Playwright + Chromium" only features:
257258 if ( browser . enabled && ! playwrightChromiumOnly ) {
@@ -891,3 +892,28 @@ export function resolveCoverageReporters(configReporters: NonNullable<BaseCovera
891892
892893 return resolvedReporters
893894}
895+
896+ function isPlaywrightChromiumOnly ( config : ResolvedConfig ) {
897+ const browser = config . browser
898+ if ( ! browser || browser . provider !== 'playwright' || ! browser . enabled ) {
899+ return false
900+ }
901+ if ( browser . name ) {
902+ return browser . name === 'chromium'
903+ }
904+ if ( ! browser . instances ) {
905+ return false
906+ }
907+ const filteredProjects = toArray ( config . project ) . map ( p => wildcardPatternToRegExp ( p ) )
908+ for ( const instance of browser . instances ) {
909+ const name = instance . name || ( config . name ? `${ config . name } (${ instance . browser } )` : instance . browser )
910+ // browser config is filtered out
911+ if ( filteredProjects . length && ! filteredProjects . every ( p => p . test ( name ) ) ) {
912+ continue
913+ }
914+ if ( instance . browser !== 'chromium' ) {
915+ return false
916+ }
917+ }
918+ return true
919+ }
0 commit comments