testcafe
Version:
Automated browser testing for the modern web development stack.
44 lines • 7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildChromeArgs = exports.CONTAINERIZED_CHROME_FLAGS = void 0;
exports.CONTAINERIZED_CHROME_FLAGS = ['--no-sandbox', '--disable-dev-shm-usage', '--disable-gpu'];
function buildChromeArgs({ config, cdpPort, platformArgs, tempProfileDir, isContainerized, isNativeAutomation, browserName }) {
const headlessMode = ['chrome', 'chromium'].includes(browserName) ? '--headless=new' : '--headless';
const defaultArgs = [
'--disable-features=LocalNetworkAccessChecks',
'--disable-search-engine-choice-screen',
'--disable-component-extensions-with-background-pages',
'--allow-pre-commit-input',
'--disable-background-networking',
'--disable-background-timer-throttling',
'--disable-backgrounding-occluded-windows',
'--disable-breakpad',
'--disable-default-apps',
'--disable-extensions',
'--disable-hang-monitor',
'--disable-ipc-flooding-protection',
'--disable-prompt-on-repost',
'--disable-renderer-backgrounding',
'--disable-sync',
'--enable-automation',
'--export-tagged-pdf',
'--generate-pdf-document-outline',
'--force-color-profile=srgb',
'--metrics-recording-only',
'--no-first-run',
];
let chromeArgs = []
.concat(cdpPort ? [`--remote-debugging-port=${cdpPort}`] : [], !config.userProfile ? [`--user-data-dir=${tempProfileDir.path}`] : [], config.headless ? [headlessMode] : [], config.userArgs ? [config.userArgs] : [],
// NOTE: we need to prevent new window blocking for multiple windows in Native Automation
isNativeAutomation ? ['--disable-popup-blocking'] : [], platformArgs ? [platformArgs] : [], defaultArgs)
.join(' ');
if (isContainerized) {
exports.CONTAINERIZED_CHROME_FLAGS.forEach(flag => {
if (!chromeArgs.includes(flag))
chromeArgs = chromeArgs.concat(' ', flag);
});
}
return chromeArgs;
}
exports.buildChromeArgs = buildChromeArgs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY2hyb21lLWFyZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYnJvd3Nlci9wcm92aWRlci9idWlsdC1pbi9kZWRpY2F0ZWQvY2hyb21lL2J1aWxkLWNocm9tZS1hcmdzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsMEJBQTBCLEdBQUcsQ0FBQyxjQUFjLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFFdkcsU0FBZ0IsZUFBZSxDQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUU7SUFDaEksTUFBTSxZQUFZLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3BHLE1BQU0sV0FBVyxHQUFJO1FBQ2pCLDZDQUE2QztRQUM3Qyx1Q0FBdUM7UUFDdkMsc0RBQXNEO1FBQ3RELDBCQUEwQjtRQUMxQixpQ0FBaUM7UUFDakMsdUNBQXVDO1FBQ3ZDLDBDQUEwQztRQUMxQyxvQkFBb0I7UUFDcEIsd0JBQXdCO1FBQ3hCLHNCQUFzQjtRQUN0Qix3QkFBd0I7UUFDeEIsbUNBQW1DO1FBQ25DLDRCQUE0QjtRQUM1QixrQ0FBa0M7UUFDbEMsZ0JBQWdCO1FBQ2hCLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsaUNBQWlDO1FBQ2pDLDRCQUE0QjtRQUM1QiwwQkFBMEI7UUFDMUIsZ0JBQWdCO0tBQ25CLENBQUM7SUFFRixJQUFJLFVBQVUsR0FBRyxFQUFFO1NBQ2QsTUFBTSxDQUNILE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUNyRCxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3JFLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDckMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDeEMseUZBQXlGO0lBQ3pGLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFDdEQsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ2xDLFdBQVcsQ0FDZDtTQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVmLElBQUksZUFBZSxFQUFFO1FBQ2pCLGtDQUEwQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLFVBQVUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztLQUNOO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQztBQS9DRCwwQ0ErQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09OVEFJTkVSSVpFRF9DSFJPTUVfRkxBR1MgPSBbJy0tbm8tc2FuZGJveCcsICctLWRpc2FibGUtZGV2LXNobS11c2FnZScsICctLWRpc2FibGUtZ3B1J107XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENocm9tZUFyZ3MgKHsgY29uZmlnLCBjZHBQb3J0LCBwbGF0Zm9ybUFyZ3MsIHRlbXBQcm9maWxlRGlyLCBpc0NvbnRhaW5lcml6ZWQsIGlzTmF0aXZlQXV0b21hdGlvbiwgYnJvd3Nlck5hbWUgfSkge1xuICAgIGNvbnN0IGhlYWRsZXNzTW9kZSA9IFsnY2hyb21lJywgJ2Nocm9taXVtJ10uaW5jbHVkZXMoYnJvd3Nlck5hbWUpID8gJy0taGVhZGxlc3M9bmV3JyA6ICctLWhlYWRsZXNzJztcbiAgICBjb25zdCBkZWZhdWx0QXJncyAgPSBbXG4gICAgICAgICctLWRpc2FibGUtZmVhdHVyZXM9TG9jYWxOZXR3b3JrQWNjZXNzQ2hlY2tzJyxcbiAgICAgICAgJy0tZGlzYWJsZS1zZWFyY2gtZW5naW5lLWNob2ljZS1zY3JlZW4nLFxuICAgICAgICAnLS1kaXNhYmxlLWNvbXBvbmVudC1leHRlbnNpb25zLXdpdGgtYmFja2dyb3VuZC1wYWdlcycsXG4gICAgICAgICctLWFsbG93LXByZS1jb21taXQtaW5wdXQnLFxuICAgICAgICAnLS1kaXNhYmxlLWJhY2tncm91bmQtbmV0d29ya2luZycsXG4gICAgICAgICctLWRpc2FibGUtYmFja2dyb3VuZC10aW1lci10aHJvdHRsaW5nJyxcbiAgICAgICAgJy0tZGlzYWJsZS1iYWNrZ3JvdW5kaW5nLW9jY2x1ZGVkLXdpbmRvd3MnLFxuICAgICAgICAnLS1kaXNhYmxlLWJyZWFrcGFkJyxcbiAgICAgICAgJy0tZGlzYWJsZS1kZWZhdWx0LWFwcHMnLFxuICAgICAgICAnLS1kaXNhYmxlLWV4dGVuc2lvbnMnLFxuICAgICAgICAnLS1kaXNhYmxlLWhhbmctbW9uaXRvcicsXG4gICAgICAgICctLWRpc2FibGUtaXBjLWZsb29kaW5nLXByb3RlY3Rpb24nLFxuICAgICAgICAnLS1kaXNhYmxlLXByb21wdC1vbi1yZXBvc3QnLFxuICAgICAgICAnLS1kaXNhYmxlLXJlbmRlcmVyLWJhY2tncm91bmRpbmcnLFxuICAgICAgICAnLS1kaXNhYmxlLXN5bmMnLFxuICAgICAgICAnLS1lbmFibGUtYXV0b21hdGlvbicsXG4gICAgICAgICctLWV4cG9ydC10YWdnZWQtcGRmJyxcbiAgICAgICAgJy0tZ2VuZXJhdGUtcGRmLWRvY3VtZW50LW91dGxpbmUnLFxuICAgICAgICAnLS1mb3JjZS1jb2xvci1wcm9maWxlPXNyZ2InLFxuICAgICAgICAnLS1tZXRyaWNzLXJlY29yZGluZy1vbmx5JyxcbiAgICAgICAgJy0tbm8tZmlyc3QtcnVuJyxcbiAgICBdO1xuXG4gICAgbGV0IGNocm9tZUFyZ3MgPSBbXVxuICAgICAgICAuY29uY2F0KFxuICAgICAgICAgICAgY2RwUG9ydCA/IFtgLS1yZW1vdGUtZGVidWdnaW5nLXBvcnQ9JHtjZHBQb3J0fWBdIDogW10sXG4gICAgICAgICAgICAhY29uZmlnLnVzZXJQcm9maWxlID8gW2AtLXVzZXItZGF0YS1kaXI9JHt0ZW1wUHJvZmlsZURpci5wYXRofWBdIDogW10sXG4gICAgICAgICAgICBjb25maWcuaGVhZGxlc3MgPyBbaGVhZGxlc3NNb2RlXSA6IFtdLFxuICAgICAgICAgICAgY29uZmlnLnVzZXJBcmdzID8gW2NvbmZpZy51c2VyQXJnc10gOiBbXSxcbiAgICAgICAgICAgIC8vIE5PVEU6IHdlIG5lZWQgdG8gcHJldmVudCBuZXcgd2luZG93IGJsb2NraW5nIGZvciBtdWx0aXBsZSB3aW5kb3dzIGluIE5hdGl2ZSBBdXRvbWF0aW9uXG4gICAgICAgICAgICBpc05hdGl2ZUF1dG9tYXRpb24gPyBbJy0tZGlzYWJsZS1wb3B1cC1ibG9ja2luZyddIDogW10sXG4gICAgICAgICAgICBwbGF0Zm9ybUFyZ3MgPyBbcGxhdGZvcm1BcmdzXSA6IFtdLFxuICAgICAgICAgICAgZGVmYXVsdEFyZ3NcbiAgICAgICAgKVxuICAgICAgICAuam9pbignICcpO1xuXG4gICAgaWYgKGlzQ29udGFpbmVyaXplZCkge1xuICAgICAgICBDT05UQUlORVJJWkVEX0NIUk9NRV9GTEFHUy5mb3JFYWNoKGZsYWcgPT4ge1xuICAgICAgICAgICAgaWYgKCFjaHJvbWVBcmdzLmluY2x1ZGVzKGZsYWcpKVxuICAgICAgICAgICAgICAgIGNocm9tZUFyZ3MgPSBjaHJvbWVBcmdzLmNvbmNhdCgnICcsIGZsYWcpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY2hyb21lQXJncztcbn1cbiJdfQ==