async function launchChromeAndRunLighthouse(url, opts, config) {
const chrome = await chromeLauncher.launch({
port: 9222,
logLevel: 'silent',
chromeFlags: ['--headless', '--disable-gpu'],
const browser = await puppeteer.connect({
browserURL: 'http://localhost:9222',
browser.on('targetchanged', async target => {
const page = await target.page();
if (NETWORK[opts.connection]) {
await page
.target()
.createCDPSession()
.then(client => {
console.log(
`CDP: network conditions set to WPT ${opts.connection} profile.`,
return client.send('Network.emulateNetworkConditions', {
offline: NETWORK[opts.connection].offline,